日経NETWORKの手作りネット構築の便利ツールで取りあげられなかったもの 〜手段が目的になってはいけない〜

あけましておめでとうございます。実は今年初のブログです。
本年もよろしくお願いします。

先日CONBUの一員として取材を受けた内容が、日経NETWORKの最新号の「ネット管理のお助けツール」という特集記事で取りあげられています。

日経NETWORK2017年3月号
http://ec.nikkeibp.co.jp/item/backno/NN0203.html

我々が紹介した、手作りネット構築の便利ツール、は以下になります。

  • 譜面台
  • トランシーバーアプリ
  • 静電気で貼り付くホワイトボードシート
  • カーペット用ケーブルガード
  • マグネットフック
  • ゴムシート
  • 六輪台車
  • 隙間用LANケーブル
  • はがしやすいラベルシール
  • 360度カメラ
  • 面ファスナーテープ
  • 深めの折り畳みコンテナー
  • タグ付きのケーブルバンド
  • 外付けのNIC
  • 無線LAN調査機器

ネットワーク技術情報紙とは思えないものが並んでますね。
場違い感半端ない感じです。
でもそれぞれ便利なんですってば!!
便利そうなグッズを街で見かけたら、それどこで買ったの?、その道具の名前は何?、と遠慮せずに聞いちゃうのが情報集めのコツです。
深めの折り畳みコンテナは電車の中で釣りに行くおじさんからアイリスオーヤマで買えることを教えてもらい、スーパーマーケットの中の人に六輪台車の品名を教えてもらいました。

実際にこれらの道具が使われている様子は、CONBUがお手伝いしているイベント会場で見ることができますので、良かったら足を運んでみてくださいませ。

直近だと、DroidKaigi 2017、Elixir Conf Japan 2017 でお手伝いをさせていただきます。

DroidKaigi 2017
https://droidkaigi.github.io/2017/

Elixir Conf Japan 2017
http://www.elixirconf.jp/

 

残念ながら紙面に載ってないけど使うと楽しい道具は他にもあります。
過去のツチノコブログにも登場したモノを2つほど上げておきます。


ガフガン(GAFFGUN)

長いケーブルを一気に床養生できる凄いヤツです。

ケーブル養生の秘密兵器、GAFFGUNを使ってみた
http://tsuchinoko.dmmlabs.com/?p=1708

CONBU ライブ設営 @ YAPPC:Assia Tokyo 2015
https://www.youtube.com/watch?v=C8KR9W5JPfQ

大きめの会場で長い距離を一気に養生するときにはとても便利なんですよね。

とはいえ問題点がいくつかあるので、今回の紙面からは落選しました。

  • 使うのにちょっとコツがいる。
  • ベタっと貼られちゃうので撤収がしにくい
  • 床養生禁止の会場等もあり、使える場所を選ぶ
  • 面養生が必要なケースはそれほど多くない
  • 人が通るような場所をしっかり養生する場合にはゴムシート等の別の道具で養生するほうが良い
  • 使ってると楽しくなってきちゃって、使うことが目的になってきちゃう。

ウォーキングメジャー

コロコロ転がすと距離が測定できる道具です。

ツチノコNOC JANOG39会場下見に行ってきました
http://tsuchinoko.dmmlabs.com/?p=4877

ツチノコNOC〜会場ネットワーク構築下見編〜
http://tsuchinoko.dmmlabs.com/?p=4839

これも以下の理由で今回の紙面からは落選してしまいました。

  • 会場から提供される図面に距離がきちんと入っていることが多く測定が必要ないことが多い
  • 使ってると楽しくなってきちゃって、測定に夢中になって他の大事なことを見落としちゃうことがある。

使って楽しい道具のほうがもちろん良いのですが、楽しすぎて手段が目的化しちゃうのは良くない、ってことですねえ。
我々は使って楽しい便利な道具を引き続き募集中です。

ツチノコNOC 〜ホットステージ大会 LANケーブル作ったよ編〜

こんにちは、普段はDMMでサーバサイドエンジニアをしていますウドラです。

2017年1月18日〜20日に開催された、JANOG39のお手伝いをさせていただきました。ありえないくらい遅くなりましたが、2016年12月13日 〜 15日の3日間で開催されたホットステージ大会の様子をレポです。

ホットステージとは、実際の会場を想定し、 準備した機材でネットワークを構築し動作確認する作業のことです。設定した機材を最終的に、会場にもっていき配置していきます。実は、ホットステージがなにかさえ、わかっておりませんでした(*ノω・*)テヘ

主に3チームにわかれ、以下の作業をしました。
※一部残作業は、各チームがリモートで対応してくださったそうです。お疲れ様です(´;ω;`)

・ネットワーク … IXルータ、PoEスイッチ、APなどの設定作業
・サーバ … DHCPなどのサーバ構築や、監視ツールの導入
・WiFi … ケーブルの準備・チェック、仮組み

現場では、サーバサイドエンジニアの私には縁がない高価なCiscoのAP(中古)がごろごろ転がっていて、ドキドキです。

さて、私はホットステージ大会では、LANケーブルの作成をお手伝いさせていただいました!

事前に 会場下見 をしているので、ルータやAPなどの配置場所をもとに、必要なLANケーブルはリスト済です。今回、短いのは市販のもの、長いものは自分たちで作成しました。その長さ、MAX70m。

1. 既成品のLANケーブルのラベリング

まずは、既成のLANケーブルの長さを確認しながら、ラベリングをします。

ラベリングは、スイッチに大量のLANケーブルをさすので、緊急時にケーブルを抜き間違えを防止するために、必要な作業です。

こんな風にたくさんささっていると、どのケーブルかなんか、すぐさまわかりませんし。

ラベリングが完了したら、袋に戻します。袋にも、番号を書いておきます。
袋に番号があることで、会場設営でケーブルを探す手間を省くことができます。
地味な作業ですが、円滑な運営をするには必須の作業になるのです(`・ω・´)

2. LANケーブルの作成

既製品のラベリングが完了したら、既製品では準備できないLANケーブルの作成に入ります。

2-1. LANケーブルを測り、切る

LANケーブルは切られないものが売られています!

今回は、CAT5e UTP 4P TSUNET-350E 0.5-4P という カテゴリ5e(CAT5e)ケーブルを、ほしい長さに切って作成していきます。

60mオーバーのさを測るのか(;´д`)…と思ったんですが、心配無用。
ケーブルには1mごとに長さが表示されているので、欲しい長さまでひたすら箱からケーブルを出していきます。

ひたすら…

ひたすら…、ひたすら…

とにかく長いので、ケーブルを出す側と、出したケーブルを巻く係の二人一組で行いましょう。
ケーブルを巻くとき、ただまくのではなく、ケーブルをひく時からまないように、 八の字巻きで巻いていく必要があります!

…8の字巻き、…… 8の字巻き……
難しい(´;ω;`) とにかく、難しい(´;ω;`)

言葉では説明できないので図解をしてみました。こんな感じで、順手、逆手を交互に巻いていきます。

必要な長さを箱から出したら、ニッパーでざっくり切ります。

2-2. ケーブルの外皮を剥がす

保護ケーブル(ゴムの部分)の中から芯線をだすため、外皮むき工具などを使って保護ケーブルをはずしていきます。

このあと中の芯線をほぐしたりするので、5~8cmくらいのところで切れ目を入れてしまっていいと思います。
ケーブル自作初めて組なので、失敗を踏まえて少し長めから、外皮をはがしています。

外皮むき工具は、軽めに刃をいれてください!
強めに刃を入れると、中の芯線を傷つけてしまい、再び外皮をむきなおし作業…と、どんどんLANケーブルが短くなってしまいます。外皮むき工具は、軽くやさしく、1回転させて切れ込みをいれましょう。切れ込みをいれたら、ケーブルの端を強めにひっぱったりして、外皮をむきます。

2-3. ケーブルの撚りをほどく

芯線がでれきたら、カラフルな線が各ペアで絡まっているので、撚りをすべてほどいていきます。

ほぐします…

ほぐれーん!!!!!
四苦八苦していると、Wifiチームリーダーさんが、簡単なほぐし方をおしえてくれました!

先端の部分は切ってしまうので、強くぐりぐりして芯線を傷つけても、問題ないとのこと。
遠慮なく折ってトグル状にし、先端をぐるぐるまわして、撚りをほどいていきましょう!

2-4. ケーブルにコネクタを取り付ける

ほぐれたらコネクタに芯線をいれ取付作業を行います。今回準備したコネクタには、 ロードバー(蛍光黄色のやつ)があるタイプです。

芯線の並びは、T568A配線とT568B配線の2種類が存在します。AとBで性能の違いはないのですが、混在させていはいけません!

今回は、一般的なT568B配線で取り付けます。白橙(オレシロ)・橙(オレ) ・白緑(ミドシロ) ・青(アオ) ・白青(アオシロ) ・緑(ミドリ) ・白茶(チャシロ) ・茶(チャ)で並べていきます。

先にロードバーに芯線を、T568B配線順で差し込みます。

芯線がはみ出てる場合は、切って調整しましょう。切り終わったら、コネクタに差し込みます。コネクタ部分に金属があるので、少なくとも、芯線がツメ(金属)に触れる位置までは、ロードバーを押し込みます。爪が芯線に触れないと、ケーブルとして機能しないので注意。

コネクタにさしこんだら、かしめという工具で、圧着します。迷いなく一気にかしめます。これで、LANケーブルの完成!

3. LANケーブルのテスト

LANケーブルが問題なく、動くか検品しましょうー。FLUKE networks のケーブル・テスターを使います。

ちなみに、こちら100万円ほどする高級機械だそうな。とりあえず、拝んでおきましょう。

テスト開始

…見事合格。よかった(∩´∀`)∩ワーイ

損失も問題なかったようです。

今回5本ほどつくりましたが、1本以外は合格でした!
その1本もかしめが失敗しただけで、コネクタを付け直したところ見事合格できました!

逆に市販のケーブルは、2本以外は不合格という状況(´・ω・`)

テスター機械の性能がよすぎるので、数値的には問題なしとのことでしたが、LANケーブルは自作したほうが性能は圧倒的によさそうです。費用もかさみますが。

ということで、みなさんがホットステージを設定している横下でケーブル作成をしてたのでした。

ちょっと時間があまったから、熊手もつくったよ!

最後は仲良く記念撮影

作成したケーブル含めホットステージは、問題なく JANOG39で動作しました(∩´∀`)∩ワーイ

ロードバランサー再入門

こんにちわ。またエライ間隔があいてすんません。
酔っ払い系ツチノコです。

今回はロードバランサーとか ADC ( Application Delivery Controller ) とか呼ばれているもののお話です。

私は元々 L2/L3 のネットワークが専門で最近は仮想基盤なんかも扱っている感じのエンジニアなんですが、久々にロードバランサーに関わる事になりました。

過去にもある程度ロードバランサーについても構築・運用経験はあり、それなりに理解しているつもりだったのですが、実はロードバランサーを通る「パケットの気持ち」になりきれてない事がわかってきました。

同時に、この領域には体系化された教科書的な資料が少ないんだな、ということが見えてきまして、せっかくなのでカンファレンスでしゃべっちゃえ、ついでに同僚向けの研修用資料にしちゃえ、ということで書いちゃいました。

御自由にお使いください。

尚、パケットのウォークスルーを PowerPoint のアニメーションで書いている関係上、ダウンロードしてご覧頂いた方がいいかもしれません。

また、あわせて去年の Internet Week でしゃべったこちらの資料もご覧頂けると幸いです。GSLB なんかと多少からんできます。

 

P.S. 最近は業界の先輩におそわった上野せんべろライフを楽しんでおります。

それでは、よい酒ライフを。

OpenStackの設定と格闘していました

おはようございます。ライトノベル好きのツチノコです。

さて、先日までOpenStackの検証環境を作って検証をしていました(Mitaka Release)。
その時につらかったことの1つが、設定項目に設定するべき値やそもそも項目自体の存在がわからないということでした。
結果としてドキュメントやdaemon起動時の設定値のダンプを見ていろいろと悩んで解決できたのですが、そもそも設定値がどこで定義されているかをmain関数から追いかけてみました。

novaを例にとるとmain関数はcmd/以下にあります。
cmd/api.pyを例に読んでいきます。

37行目にそれっぽい部分があります。

CONF = nova.conf.CONF

nova.conf.CONFはconf/__init__.pyで定義されています。
cfg.CONFはoslo_config.cfg.CONFというグローバル変数で、その下にそれっぽい関数があります。

CONF = cfg.CONF

api.register_opts(CONF)
availability_zone.register_opts(CONF)
base.register_opts(CONF)
cache.register_opts(CONF)
cells.register_opts(CONF)

この関数の実態はconf/api.py#L403にあります。
それで上のほうを見ると、OptGroup(confファイルで[api]などのセクションになる)とOpt(confファイルでauth_stratedy=…_というオプションと値となる)が定義されているところが見つかります。

api_group = cfg.OptGroup('api',
    title='API options',
    help="""
Options under this group are used to define Nova API.
""")

auth_opts = [
    cfg.StrOpt("auth_strategy",
        default="keystone",
        choices=("keystone", "noauth2"),
        deprecated_group="DEFAULT",
        help="""
This determines the strategy to use for authentication: keystone or noauth2.
'noauth2' is designed for testing only, as it does no actual credential
checking. 'noauth2' provides administrative credentials only if 'admin' is
specified as the username.
"""),

まとめ(novaの場合)
・conf/*.py に各オプションの定義があります。
・import nova.conf した段階で各オプションがCONFに登録されます。

他の(いまのところドキュメントが充実していない)プロジェクトもこうやっていけばオプションにたどり着けるはずです。

おまけ
こんな感じで全ファイルをロードしてregister_opts関数を呼べばひょっとしてオプションのリストができるのではということを思いつきました。何事も暴力で解決するのが一番だ。

for 全ファイル
    import モジュール as dummy
    dummy.register_opts(conf)
    print(conf)

結果のnova.txt(348KBあります)の一部です。

[DEFAULT]

(snip...)

[api]

(snip...)

auth_strategy = keystone
# class:      
# deprecated: False
# multi:      False
# required:   False
# help:
# This determines the strategy to use for authentication: keystone or noauth2.
# 'noauth2' is designed for testing only, as it does no actual credential
# checking. 'noauth2' provides administrative credentials only if 'admin' is
# specified as the username.

わーい。

生成に利用したツールは以下の場所にあります。
リポジトリ
プロジェクトごとに生成したテキスト
中間生成されるjsonの例

ドキュメントがあればそちらを参照するのがよいですが、今のところドキュメントが見当たらないdesignate/magnumなども生成できますので、これはこれでよいかなというところです。

今後もいろいろ実験していこうかと思います。

P.S. 発売日が近い本の中でぜったい転職したいんです!! ~バニーガールは賢者を目指す~が気になっています