tag:blogger.com,1999:blog-42539901494883532542023-11-16T23:33:34.306+09:00Giving is Taking - NetworkingAnonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-4253990149488353254.post-33250562128658095702016-03-02T06:39:00.000+09:002016-03-02T06:39:20.271+09:00ネットワークプログラマビリティ勉強会 #8 #npstudy<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">開催概要</h3>
<div class="outline-text-3" id="text-1">
<ul>
<li>日時: 2016/03/03(火) 19:00 - 17:00
</li>
<li>会場: シスコシステムズ合同会社 21F セミナールーム
</li>
<li>ホームページ: <a href="http://network-programmability.connpass.com/event/26539/">http://network-programmability.connpass.com/event/26539/</a>
</li>
<li>hash tag: <a href="https://twitter.com/search?q=%23npstudy&src=typd">#npstudy</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">他のまとめ</h3>
<div class="outline-text-3" id="text-2">
<ul>
<li><a href="http://togetter.com/li/944967">togetter</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">感想</h3>
<div class="outline-text-3" id="text-3">
<p>
今回はOVS関連の話を聞けた。
いろんなレイヤーの「ネットワークプログラミング」が聞けてよかった。
</p>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">OVN (Open Virtual Network) について</h3>
<div class="outline-text-3" id="text-4">
<ul>
<li>進藤資訓(@motonori<sub>shindo)さん</sub>
</li>
<li>OVS2.5.0がリリースされた
<ul>
<li>OVNも含まれる(Experimental)
</li>
</ul>
</li>
<li>オープンな仮想ネットワークの実装
<ul>
<li>L2、L3、Security Group、ACL、トンネル、物理スイッチ連携
</li>
</ul>
</li>
<li>目指すところ
<ul>
<li>商用で使えるようなクオリティを目指す
</li>
<li>OpenStackとのよりよい連携
</li>
</ul>
</li>
<li>OVNの構成
<ul>
<li>northd
<ul>
<li>northからsouthに変換する
</li>
<li>Restful APIではなくDBでのアクセス
</li>
<li>northband DB
<ul>
<li>望まれる状態を保持する
<ul>
<li>物理的なものには入らない
</li>
</ul>
</li>
</ul>
</li>
<li>southband DB
<ul>
<li>ランタイムで変わる内容
</li>
</ul>
</li>
</ul>
</li>
<li>controller
<ul>
<li>HVごとに動く分散のコントローラ
</li>
</ul>
</li>
</ul>
</li>
<li>OpenStackとの連携
<ul>
<li>これまで
<ul>
<li>複雑
<ul>
<li>iptablesとかをOVN Nativeで
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>チュートリアル
<ul>
<li><a href="https://github.com/openvswitch/ovs/blob/master/tutorial/OVN-Tutorial.md">https://github.com/openvswitch/ovs/blob/master/tutorial/OVN-Tutorial.md</a>
</li>
<li>コマンドラインとかでNorthに書くと、OFのテーブルに変換される
</li>
<li>論理と物理を紐付けると初めて意味のある論理テーブルになる
</li>
</ul>
</li>
<li>OVNで使えるカプセル化
<ul>
<li>要件
<ul>
<li>メタデータのサポート
</li>
<li>マルチパスとの親和性
</li>
<li>ハードウェアアクセラレーション
</li>
</ul>
</li>
<li>サポートされているのは Geneve、STT、VXLAN
</li>
</ul>
</li>
<li>OVNとNSX
<ul>
<li>競合するものではない
<ul>
<li>OVNは"SDNコントローラ"を目指していない
<ul>
<li>FocusはOpenStack
</li>
</ul>
</li>
<li>NSXはよりリッチな
</li>
</ul>
</li>
</ul>
</li>
<li>質疑
</li>
<li>OVNはいまはOpenStackのpluginの一部
</li>
<li>まだ開発中
<ul>
<li>floating IPとかもまだ
</li>
</ul>
</li>
<li>OVNとOpenStackは結構絡んでいる
</li>
<li>ロジカルフローの例
<ul>
<li>物理的な語彙はでてこない
</li>
<li>どの物理ポートとかはない
</li>
</ul>
</li>
<li>OVNで簡単なことやったら結構フローになっていたトラブルシュートは?
<ul>
<li>難しい
<ul>
<li>非常にシンドイ
</li>
<li>OpenFlowのテーブルを直接書くのはアセンブラを直接読み書きしているのと同じ
</li>
<li>抽象化が必要。
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-5" class="outline-3">
<h3 id="sec-5">ELKではじめるホームネットワーク監視</h3>
<div class="outline-text-3" id="text-5">
<ul>
<li>urkr さん
<ul>
<li>ネットワークプリセールスエンジニア
</li>
</ul>
</li>
<li>ELK
<ul>
<li>Elasticsearch/Logstash/Kibana
<ul>
<li>OSS
<ul>
<li>勢いがある
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>UTMを入手
<ul>
<li>GUIからではログが見えない
</li>
<li>Syslogサーバ、兼、NetFlowコレクタを
</li>
</ul>
</li>
<li>Logstash -> Elasticsearch
</li>
<li>Kibana -> Elasticsearch
</li>
<li>Kibana Dashboardを作って満足プロセスが必要
</li>
<li>Flexible NetFlowの受け取り方: 仕組みが用意されている
<ul>
<li>TLV形式で定義されている
</li>
</ul>
</li>
<li>vagrant boxとかdockerでできるものがあったらいいかな
</li>
<li>UTMとかについて気軽にできるとよいかな
</li>
</ul>
</div>
</div>
<div id="outline-container-6" class="outline-3">
<h3 id="sec-6">機械学習によるリモートネットワークの異常検知</h3>
<div class="outline-text-3" id="text-6">
<ul>
<li>@Clorets8lack さん
</li>
<li>海外のネットワーク管理
<ul>
<li>距離と時差
<ul>
<li>損失と遅延
</li>
</ul>
</li>
<li>インド 600ms
<ul>
<li>さすが天竺
</li>
</ul>
</li>
<li>なかなか現地にいけない
</li>
<li>USのをインドに展開というのは難しい
</li>
<li>人件費が安い
</li>
<li>スイッチが買えないところもある
</li>
<li>静電気が異常にでる国がある
</li>
<li>現地ベンダに任せきりになってしまう
<ul>
<li>信頼関係の構築が必要
</li>
<li>高度なトラブルシュート
</li>
</ul>
</li>
<li>Sonarmanでパケットキャプチャしたファイルから障害検知
<ul>
<li>いろいろな地域のネットワークでは、しきい値の設定が難しい
</li>
<li>「普段の状態」を定義する
<ul>
<li>明らかに逸脱した状態を異常とする
</li>
</ul>
</li>
<li>エラーカウンタ70項目と時間密度から標準偏差を求めて70以上は異常と判断
</li>
</ul>
</li>
<li>事例が溜まったら
</li>
<li>過去の同一時刻とか、曜日、月末、月初とか
</li>
<li>いっぱつレッドの例も定義
</li>
<li>Cで実装していたけど、IPv6まわりが大変
</li>
<li>Wiresharkのフィルタを使う
<ul>
<li>経験を活かしている
</li>
</ul>
</li>
<li>HWを海外に送るのは大変→VMにした
</li>
<li>見つかったモノ
<ul>
<li>BYODのAndroidのdhcpdの不具合
</li>
<li>TCP/UDP比率でウィルス
</li>
<li>けっこうよい精度で問題に到達できている
</li>
</ul>
</li>
<li>感想
<ul>
<li>可視化して仕事が増える
<ul>
<li>自分と他人も
</li>
</ul>
</li>
</ul>
</li>
<li>情シス考
<ul>
<li>いろいろな情シス部門がいる
</li>
<li>バリバリパケット読む人はいない
</li>
<li>可視化ツールいれたけど、見ていない
</li>
<li>ターゲット間違ってね?
</li>
<li>問題発見ツールとして提案活動
<ul>
<li>ソリューション営業
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>実働の人がやれているというのはいい
</li>
<li>データセンター、サイバーエージェントとかはほしがっている
</li>
<li>機械学習での故障検知はいろいろでている
</li>
</ul>
</div>
</div>
<div id="outline-container-7" class="outline-3">
<h3 id="sec-7">openvswitchのステートフルなアレとかL3なアレをOpenFlow越しにアレコレする</h3>
<div class="outline-text-3" id="text-7">
<ul>
<li>@shun159 さん
</li>
<li>OVS新しそうな機能
<ul>
<li>arp
<ul>
<li>
</li>
</ul>
</li>
<li>コントラック
</li>
<li>NATもできるように
<ul>
<li>kernelにパッチを当てる必要
</li>
<li>未リリースのOVSを使う必要がある
</li>
</ul>
</li>
<li>OVSのこの機能はOFのベンダー機能
<ul>
<li>Nicira Extensionの一部
<ul>
<li>OVS
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-8" class="outline-3">
<h3 id="sec-8">ブラウザからルータを操作してみた</h3>
<div class="outline-text-3" id="text-8">
<ul>
<li>@kooshin さん
</li>
<li>GUI
<ul>
<li>いろいろ開発大変
<ul>
<li>結局、詳細はCUIで見る方がよい
</li>
</ul>
</li>
</ul>
</li>
<li>GUIとCUIのいいとこ取り
<ul>
<li>ブラウザ上でGUIで概略を見て、詳細はCUI(tty)で見る
</li>
</ul>
</li>
<li>Rubyとgotty
<ul>
<li>Qiitaに<a href="http://qiita.com/kooshin/items/8c7dbfc9c5e8a88d1705">GoTTYでブラウザからルータを操作してみた</a> という記事を書いた
</li>
</ul>
</li>
</ul>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-3943913638618220852015-11-06T04:59:00.001+09:002015-11-06T04:59:51.098+09:00NetOpsCoding #1 参加メモ<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">開催概要</h3>
<div class="outline-text-3" id="text-1">
<ul>
<li>日時: 2015/10/30 (金) 19:00 to 21:00 (実際には22:00ごろまででした)
</li>
<li>ビッグローブ株式会社(品川シーサイドパークタワー 3F)
</li>
<li>ハッシュタグ: <a href="https://twitter.com/search?q=%23netopscoding">#netopscoding</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">他の方のまとめなど</h3>
<div class="outline-text-3" id="text-2">
<ul>
<li><a href="http://togetter.com/li/893491">Togetterまとめ</a> by @stereocat さん
</li>
<li><a href="http://d.hatena.ne.jp/stereocat/20151031/1446296406">NetOpsCoding #1 参加メモ - # cat /var/log/stereocat | tail -n3</a> by @stereocat さん
<ul>
<li>こちらにかなり詳細にメモされています。
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">まとめ・感想</h3>
<div class="outline-text-3" id="text-3">
<p>
Network 運用のためのCodingの話でした。
</p>
<p>
似ている勉強会にネットワークプログラマビリティ勉強会(<a href="https://twitter.com/search?q=%23npstudy">#npstudy</a>)というのがありますが、非常に分野が近いというかOverrapしています。
#npsutdy がネットワークの仕組みとかがメイン(かなぁ)である一方で、
このNetOpsCodingは運用からの視点で見ています。
</p>
<p>
この勉強会のよいところとしては、運用の視点から具体的な困りごとをベースに議論ができるところかな と思いました。
いろいろな困りごとから出発して、共通的な仕組みができるとうれしいです。
</p>
<p>
今回の発表では、Microsoftさんの取り組みがありましたが、圧巻でした(資料は2015/11/06現在 見つけられていません)。
最終的にはここまでいくといいと思いますが、規模が大きくない現場ではなかなかここまで作り込むのは大変だと思います。
NetOpsCodingを通して共通的なフレームワークが作れると管理規模が小さい環境でも効率的に管理できてうれしいです。
現状でもCLI, SNMP, NETCONF, Rest APIといろいろなやりかたがあるので、そこを吸収する必要性を再認識しました。
</p>
<p>
また、今回はLTで5分だけNetwork Test Automationという発表をさせてもらいました。(<a href="http://network-programmability.connpass.com/event/13103/">#npstudyの発表の再構成</a>ですが。)
NetOpsCodingを始めるところの敷居が下げられるといいなぁ と思っています。
</p>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">Introduction of NetOpsCoding</h3>
<div class="outline-text-3" id="text-4">
<ul>
<li>発表者: biglobe 土屋さん
</li>
<li>発表資料:
<ul>
<li><a href="http://www.slideshare.net/taijitsuchiya5/introduction-to-netopscoding">http://www.slideshare.net/taijitsuchiya5/introduction-to-netopscoding</a>
</li>
</ul>
</li>
</ul>
<p>
ネットワーク運用者が自動化して、楽して、ミスを減らして、楽しいことに時間を使うために、
どうしたらよいのか?ベストプラクティスを共有したい という趣旨でした。
ネットワーク運用者、ソフトウェア開発者、Network機器メーカーいろいろな立場から、
自動化を進めていきたい という話でした。
</p>
</div>
</div>
<div id="outline-container-5" class="outline-3">
<h3 id="sec-5">ネットワークAPI作成30分Coding</h3>
<div class="outline-text-3" id="text-5">
<ul>
<li>発表者: IDCF 井上さん
</li>
<li>発表資料:
<ul>
<li><a href="http://qiita.com/inoueissei/items/3fd94fec1233d3a31b78">http://qiita.com/inoueissei/items/3fd94fec1233d3a31b78</a>
</li>
</ul>
</li>
</ul>
<p>
Rubyはじめて半年くらいという井上さんがvSRX(のルータ機能)を
NetConfで設定するという話でした。
</p>
<p>
通信系のデモとしては珍しく(?)、pingではなく、descriptionを設定する ということでした。
</p>
<p>
<a href="http://qiita.com/inoueissei/items/3fd94fec1233d3a31b78">Qiitaの記事</a> をベースに進んでいきました。
</p>
<p>
今回の例では、最終的にはCLI over NETCONFというような感じだったので、
まずは、これができると、いまの運用との一貫性を築くことができるので、よいと思いました。
(結局、これがないと、いろいろなところで実装しなくなるのでつらいですね。)
</p>
</div>
</div>
<div id="outline-container-6" class="outline-3">
<h3 id="sec-6">Microsoftにおけるネットワーク自動化とそれを支えるソフトウェア群について</h3>
<div class="outline-text-3" id="text-6">
<ul>
<li>発表者: Microsoft 北島さん
</li>
<li>発表資料:
<ul>
<li>見つけられていません。
</li>
</ul>
</li>
</ul>
<p>
いくつかのソフトウェア群についての紹介がありました。非常に刺激的で有用なものが多いです。
一方で、これを規模の小さいうちの環境では工数かけられないなぁ とか、そう思うところもありました。
けっこう、一般化できるかもしれないので、仕組みをNetOpsCodingで作っていったら、
みんなで幸せになれるのかもなと 思いました。
</p>
<p>
ソフトウェア群はこんな感じでした。
</p><ul>
<li>SES(Standard Enforcement Script)
<ul>
<li>Perlスクリプト
</li>
<li>機器のConfigがテンプレートと一致していなければNGとする
</li>
<li>Model Driven ではなく、Adaptive
</li>
</ul>
</li>
<li>Pre/Post-change Validation
<ul>
<li>事前の状態と事後の状態を比較する
</li>
<li>事後の状態がテンプレートとマッチしていなくても、事前も同じだったら、今回のオペレーションによるものではない
</li>
<li>差分がでたところだけ確認して、問題なければ、そのままにする
</li>
</ul>
</li>
<li>MPLS Autobandwidth Automation
<ul>
<li>MPLSのBandwidthの制御をするための話
</li>
</ul>
</li>
<li>Monitoring Intelligence
<ul>
<li>複数のグラフを時間軸で相関を見る。
</li>
<li>FibrecutでCPU負荷が上がったり、QoSのプライオリティごとの通信が変化したり、しなかったり
</li>
<li>CLI, SNMP, Syslogをアグリゲートしている
</li>
<li>Ping meshでsrc/dstのメッシュをしておくと、どのあたりに問題があるかわかりやすい
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-7" class="outline-3">
<h3 id="sec-7">YANG modelの話など</h3>
<div class="outline-text-3" id="text-7">
<ul>
<li>発表者: IETF Ops Area Chair, Benoit Claiseさん
</li>
<li>通訳: CISCO 河野 美也さん
</li>
<li>発表資料:
<ul>
<li><a href="http://www.slideshare.net/miyakohno/data-modelsandautomationjp">http://www.slideshare.net/miyakohno/data-modelsandautomationjp</a>
</li>
</ul>
</li>
</ul>
<p>
NETCONFのデータモデルを記述できるYANGというモデリング言語の話でした。
NETCONF自体はYANGでのモデリングと切り離して考えられる。
しかし、統一したオペレーション(設定と監視)を考えると、YANGでモデリングされている必要があるということでした。(たぶん)
</p>
<p>
いろいろな機器が統一した記述で(ある程度)設定できるとうれしいです。
</p>
</div>
</div>
<div id="outline-container-8" class="outline-3">
<h3 id="sec-8">ネットワーク運用自動化お悩み相談室</h3>
<div class="outline-text-3" id="text-8">
<ul>
<li>発表者:
<ul>
<li>インターネットマルチフィード 川上さん
</li>
</ul>
</li>
<li>資料
<ul>
<li><a href="http://www.slideshare.net/yuyarin/ss-54552843">http://www.slideshare.net/yuyarin/ss-54552843</a>
</li>
</ul>
</li>
</ul>
<p>
会場の参加者がどのようなところに興味があるかを聞き出す、面白い内容でした。
NetOpsの自動化のイメージが全然違うので、それぞれのイメージを共有したい という意図です。
会場では、まずは設定とチェックのところの自動化をやりたい という感じだったような気がしていますが、記憶が曖昧です。。
</p>
</div>
</div>
<div id="outline-container-9" class="outline-3">
<h3 id="sec-9">ライトニングトーク</h3>
<div class="outline-text-3" id="text-9">
</div>
<div id="outline-container-9-1" class="outline-4">
<h4 id="sec-9-1">Model driven automation!</h4>
<div class="outline-text-4" id="text-9-1">
<ul>
<li>発表者:
<ul>
<li>CISCO 河野 美也さん
</li>
</ul>
</li>
</ul>
<p>
YANGモデルとかの話だったと思います。自分のLTの準備とかしていて、
あまり聞けませんでした。
</p>
</div>
</div>
<div id="outline-container-9-2" class="outline-4">
<h4 id="sec-9-2">Network Test Automation</h4>
<div class="outline-text-4" id="text-9-2">
<ul>
<li>発表者:
<ul>
<li>@otahi
</li>
</ul>
</li>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/CRzAKfN2MnlnFS" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/HiroshiOta2/network-test-automation-net-ops-coding-2015" title="Network Test Automation - Net Ops Coding 2015" target="_blank">Network Test Automation - Net Ops Coding 2015</a> </strong> from <strong><a href="//www.slideshare.net/HiroshiOta2" target="_blank">Hiroshi Ota</a></strong> </div>
</ul>
<p>
Networkの自動化の第一歩として、基本の動作確認の仕組みの共有です。
Config系の自動化は、ミスすると通信できなくなりますが、
基本動作確認を自動化しても、基本的には通信できなくなることはありません。
なので、そこから最初に手をつけるのがよいのかな という話です。
</p>
<p>
テストツールとしては次のようなものを紹介しました。(自家製ツールの紹介が多いです。)
使ってみて、Issue、Pull Requestもらえるとうれしいです。
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup><col class="left" /><col class="left" /><col class="left" />
</colgroup>
<tbody>
<tr><td class="left">Test Tool</td><td class="left">対象</td><td class="left">備考</td></tr>
<tr><td class="left"><a href="http://serverspec.org/">Serverspec</a></td><td class="left">Servers(static)</td><td class="left"></td></tr>
<tr><td class="left"><a href="https://github.com/ryotarai/infrataster">Infrataster</a></td><td class="left">Servers(dynamic)</td><td class="left"></td></tr>
<tr><td class="left"><a href="https://github.com/otahi/infrataster-plugin-dns">Infrataster-plugin-dns</a> (<a href="https://github.com/spotify/rspec-dns">Rspec-dns</a>)</td><td class="left">DNS servers</td><td class="left"></td></tr>
<tr><td class="left"><a href="https://github.com/otahi/infrataster-plugin-firewall">Infrataster-plugin-firewall</a></td><td class="left">Firewalls</td><td class="left">Traget serverにtcpdump, netcat が必要</td></tr>
<tr><td class="left"><a href="https://github.com/otahi/lbspec">Lbspec</a></td><td class="left">Load Balancers(L4-L7)</td><td class="left">Target serverにngrep, netcat が必要</td></tr>
<tr><td class="left"><a href="https://github.com/otahi/rspec-ssltls">Rspec-ssltls</a></td><td class="left">SSL/TLS</td><td class="left"></td></tr>
</tbody>
</table>
<p>
機能的なテスト以外(性能系のテストなど)は、ここではできていないので、
性能などを計測したい という場合は、別途そのようなツールが必要です。
</p>
</div>
</div>
<div id="outline-container-9-3" class="outline-4">
<h4 id="sec-9-3">テスト駆動型ネットワーク</h4>
<div class="outline-text-4" id="text-9-3">
<ul>
<li>発表者:
<ul>
<li>山口正徳さん
</li>
</ul>
</li>
<li>資料:
<ul>
<li><a href="http://www.slideshare.net/kinunori/ss-54587970">http://www.slideshare.net/kinunori/ss-54587970</a>
</li>
</ul>
</li>
</ul>
<p>
ItamaeとServerspecを使ってテスト駆動でCumulus Linuxの設定を作っていく事例でした。
本番環境以外に開発環境がある場合は、このやり方でやりたいです。
</p>
</div>
</div>
<div id="outline-container-9-4" class="outline-4">
<h4 id="sec-9-4">インフラ屋の友:Tera Term</h4>
<div class="outline-text-4" id="text-9-4">
<ul>
<li>発表者:
<ul>
<li>GCIS SDN BHD, James Chin Sze Yihさん
</li>
</ul>
</li>
<li>資料:
<ul>
<li><a href="http://www.slideshare.net/netopscoding/tera-term">http://www.slideshare.net/netopscoding/tera-term</a>
</li>
</ul>
</li>
</ul>
<p>
Skypeでの参加ということで、驚きました。
内容はTeraTerm のスクリプトを使った自動化でした。
expectやこの手のツールも、使うのと、使わないのとで大きな差があるので、
ここのあたりも共有できるとよいのでしょうか。
(私はTeraTerm使っていないですが。)
</p></div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com1tag:blogger.com,1999:blog-4253990149488353254.post-88298475955506475752015-08-26T19:21:00.001+09:002015-08-27T09:21:54.070+09:00YAPC::ASIA 2015 参加メモ<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">参加したところ</h3>
<div class="outline-text-3" id="text-1">
<ul>
<li>日時: 2015/08/21(金) 10:00 - 18:00(懇親会)
</li>
<li>日時: 2015/08/22(土) 10:00 - 18:00
</li>
<li>会場: 国際展示場 会議棟
</li>
<li>ホームページ: <a href="http://yapcasia.org/2015/">http://yapcasia.org/2015/</a>
</li>
<li>hash tag: <a href="https://twitter.com/hashtag/yapcasia">#yapcasia</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">初めてのYAPC::ASIAでした</h3>
<div class="outline-text-3" id="text-2">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Re1OZLvmLlAnzYcAAl9oGr3BsmWa-N8qcPxV11IYlth2b0D5FMLHebPsnk86uIsArhmnIOhuaY-SGli6CxIHtz6e6FMhkqY3YQPEK1qDZHC5rLFOQxb_zNsQKNVrJQz3kpbD3PyLjLc/s1600/IMG_20150821_175910.jpg" imageanchor="1" ><img alt="懇親会は大盛況でした。" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Re1OZLvmLlAnzYcAAl9oGr3BsmWa-N8qcPxV11IYlth2b0D5FMLHebPsnk86uIsArhmnIOhuaY-SGli6CxIHtz6e6FMhkqY3YQPEK1qDZHC5rLFOQxb_zNsQKNVrJQz3kpbD3PyLjLc/s320/IMG_20150821_175910.jpg" /></a>
<p>
ネットワークエンジニアでRubyがメインの私にとって、今回、初めてのYAPC::ASIAでした。
</p>
<p>
金曜日と土曜日の両日参加し、懇親会にも参加できました。
</p>
<p>
多くのOSSの開発者と話ができたこと(アイコンと顔が一致した)が一番よかったです。
</p>
<p>
YAPC::ASIAを快適に過ごしている裏で、YAPC::ASIAの開催側でいろいろなかたが努力しているのを感じました。
ありがとうございました。
</p>
<p>
「blogを書くまでがYAPC」ということで、2つの発表について振り返ろうと思います。
(YAPC::ASIAのあとに家族旅行があり、blog更新が遅くなりました。)
</p>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3"><a href="http://yapcasia.org/2015/talk/show/e8eebd70-f906-11e4-8f91-8ab37d574c3a">それは僕たちのドメイン・DNS運用</a></h3>
<div class="outline-text-3" id="text-3">
<ul>
<li>@jiggyakkuma さん
</li>
<li><a href="https://docs.google.com/presentation/d/1NO0j91NBwoiB-EuwERzEVDktvSciQjBFWe0gCifx-I8/edit">スライド</a>
</li>
</ul>
<p>
某面白法人でのDNSレコード(受託のWebサイトのレコードなど)の管理方法についての話でした。
</p><ul>
<li>AWSのRoute53での運用をするようになった
</li>
<li>その運用のツールとして、Roadworkerというツールを使っている
</li>
<li>Circle CIを使ってCIを回している
</li>
<li>実際にDNSレコードが反映されているかはテストしていない
</li>
</ul>
<p>
このような話だったので、@jiggyakkumaさんと、次のようなやりとりで、
テストツール(infrataster-plugin-dns, rspec-dns)を紹介したのですが。。。
</p>
<blockquote class="twitter-tweet" lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/otahi">@otahi</a> ありがとうございます!参考にさせていただきます!!</p>— jigyakkuma (@jigyakkuma_) <a href="https://twitter.com/jigyakkuma_/status/634579972116471808">2015, 8月 21</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>
Roadworkerにテストコマンドあるじゃん!! という落ちでした。
</p>
<blockquote class="twitter-tweet" lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/otahi">@otahi</a> test、気付いてなかった...私も見てみますー</p>— jigyakkuma (@jigyakkuma_) <a href="https://twitter.com/jigyakkuma_/status/634939166933934080">2015, 8月 22</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>
Roadworkerはとても良さそうなので、
AWSのRoute53以外のDNSレコードの運用にも応用したい熱が上昇中です。
</p>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4"><a href="http://yapcasia.org/2015/talk/show/4f85e87a-f9ec-11e4-8262-8ab37d574c3a">3分でサービスのOSを入れ替える技術</a></h3>
<div class="outline-text-3" id="text-4">
<ul>
<li>@hsbt さん
</li>
<li><a href="http://www.slideshare.net/hsbt/advanced-technic-for-os-upgrading-in-3-minutes">スライド</a>
</li>
</ul>
<p>
タイトルでは想像できないくらいいろんな取り組みをしていて、とても参考になる話でした。
</p>
<p>
まず、課題設定として、「Do scale-out with extremely rapid automation!!!1」という
ところからのスタートです。
この課題に向けて、どのようなアプローチをとるのか。
</p>
<p>
アプローチとしては、以下のようなアプローチのようです。
</p>
<ul>
<li>アプローチ
<ul>
<li>Infrastructure as a Code化
<ul>
<li>VMの作成手順書からPuppetへの置き換え
</li>
<li>puppetマニフェストの修正
</li>
</ul>
</li>
<li>VMのサービスへの投入の自動化
<ul>
<li>ノードのImmutable化
</li>
<li>現実の手順をコードにする
</li>
</ul>
</li>
<li>クラウド指向のアーキテクチャの導入
<ul>
<li>監視などで登録を手動でやらないといけないものからの脱却
</li>
<li>fluentdなどでのログの収集自動化
</li>
</ul>
</li>
<li>コマンド化
<ul>
<li>コマンドをthorなどを使って簡単に!
</li>
</ul>
</li>
<li>VM起動時間の短縮
<ul>
<li>Packerを使って、起動のためのphaseを段階を分けて実行するように
<ul>
<li>Minimal image(phase1)
</li>
<li>Role specified(phase2)
</li>
</ul>
</li>
</ul>
</li>
<li>Infra CI
<ul>
<li>Severspecなどを使って、壊れていないことを確認できるようにする
</li>
</ul>
</li>
<li>OSの切り替え
<ul>
<li>Secientific LinuxからCent OS7 へ
</li>
</ul>
</li>
<li>Blue Green デプロイ
<ul>
<li>Nginx などでの切り替え(ELBはここでは使わない)
</li>
</ul>
</li>
<li>(将来)ここまで来たらDockerとかも考えられる
</li>
</ul>
</li>
</ul>
<p>
コード化して、CI回しながら、リファクタリング という、
ソフトウェア開発的なアプローチでの置き換えにより、
短期間での実現したという素晴らしい内容でした。
</p>
<p>
「すばらしい」のだが、一方で、「自分でもできるのではないか?」 と
思うことができて、成功体験の共有は素晴らしい と思いました。
</p>
</div>
</div>Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com1tag:blogger.com,1999:blog-4253990149488353254.post-519418486452176212015-08-09T07:30:00.000+09:002015-10-04T07:24:59.147+09:00Trema Day #7 Presented by APC に参加してきた<div class="outline-3" id="outline-container-1">
<h3 id="sec-1">
開催概要</h3>
<div class="outline-text-3" id="text-1">
<ul>
<li>日時: 2015/08/08(金) 13:00 - 17:00
</li>
<li>会場: 株式会社エーピーコミュニケーションズ オフィス ECHO
</li>
<li>ホームページ: <a href="http://trema.connpass.com/event/16844/">http://trema.connpass.com/event/16844/</a>
</li>
<li>hash tag: <a href="https://twitter.com/hashtag/tremaday?src=hash">#tremaday</a>
</li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-2">
<h3 id="sec-2">
他のかたのまとめ</h3>
<div class="outline-text-3" id="text-2">
<ul>
<li><a href="http://togetter.com/li/858237">Trema Day #7 まとめ - Togetterまとめ</a> by @stereocat さん
</li>
<li><a href="http://komeiy.blogspot.jp/2015/08/trema-day-7.html">Trema Day #7 に参加してきた</a> by @komeinw さん
</li>
<li><a href="http://d.hatena.ne.jp/stereocat/20150810/1439215359">TremaDay #7 参加メモ</a> # cat /var/log/stereocat | tail -n3 by @stereocat さん</li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-3">
<h3 id="sec-3">
感想</h3>
<div class="outline-text-3" id="text-3">
トレンドなのか、たまたまなのか、今回は無線関係のOpenFlowの話が多かった。
TremaがPure Rubyになったということで、いい加減、Trema入門します。
エーピーコミュニケーションズさんのすばらしい会場で、
懇親会まで準備いただいてありがとうございました!
</div>
</div>
<div class="outline-3" id="outline-container-4">
<h3 id="sec-4">
OpenFlowで覚えるネットワーク</h3>
<div class="outline-text-3" id="text-4">
<ul>
<li>@steraocat さん
</li>
<li><a href="http://www.slideshare.net/stereocat55/tremaday7">http://www.slideshare.net/stereocat55/tremaday7</a>
</li>
</ul>
</div>
<div class="outline-4" id="outline-container-4-1">
<h4 id="sec-4-1">
まとめると</h4>
<div class="outline-text-4" id="text-4-1">
ネットワークをあまり理解していない人に向けて、どのようにしたら
理解してもらえるか。どうやったらネットワークを理解している人を増やせるか
という課題に対して、
Yellowケーブルなどのころからのネットワークの変化を
OpenFlowを使って追体験することで、理解を深められるのではないか という
試み。
</div>
</div>
<div class="outline-4" id="outline-container-4-2">
<h4 id="sec-4-2">
メモ</h4>
<div class="outline-text-4" id="text-4-2">
<ul>
<li>テクニカルな話ではない
</li>
</ul>
− ネットワーク = コミュニケーションをする道具
<br />
<ul>
<li>複数の人 で達成する
<ul>
<li>情報のやりとりをやる
</li>
</ul>
</li>
<li>必ず2点の「端点」がある
</li>
<li>ゴール: 自分の頭の中にあるものが相手の頭の中になっている
<ul>
<li>音声、紙
<ul>
<li>日本語 とかいうルールがある
<ul>
<li>プロトコル
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>ネットワークのかたち
<ul>
<li>どんな情報を伝えるか
</li>
<li>どこのだれに情報を伝えるか
</li>
<li>何を使って情報を伝えるか
</li>
<li>メディア
</li>
</ul>
</li>
<li>mininet使うと簡単に試せる
</li>
<li>糸電話からLearning Switchへ
</li>
<li>同時に話すとCollisionが発生する
<ul>
<li>共有メディアは人が増えるとしゃべれなくなる
</li>
</ul>
</li>
<li>近代ネットワークの道
<ul>
<li>ブリッジ → スイッチ
</li>
<li>スイッチになるとコリジョンが発生しなくなる
</li>
</ul>
</li>
</ul>
− スイッチにするには
<br />
<ul>
<li>KnownなARPテーブル
</li>
<li>UnknownなARPテーブル → Learning Switch
</li>
<li>よその部屋の人との会話
<ul>
<li>IPの話→Simple Router
</li>
</ul>
</li>
<li>L1とはL2というのを下から上に理解するといいのではと思っている
</li>
<li>コリジョンドメイン、全二重と半二重、物理メディアの話は端よっている
</li>
<li>OpenFlowを使おうとおもうと、面倒見る人がいない
<ul>
<li>ソフト屋
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="outline-3" id="outline-container-5">
<h3 id="sec-5">
ニューTrema5つのポイント</h3>
<div class="outline-text-3" id="text-5">
<ul>
<li>@yasuhito さん
</li>
<li><a href="http://www.slideshare.net/yasuhito/trema-5">http://www.slideshare.net/yasuhito/trema-5</a></li>
</ul>
</div>
<div class="outline-4" id="outline-container-5-1">
<h4 id="sec-5-1">
まとめる</h4>
<div class="outline-text-4" id="text-5-1">
新しいTremaになった。
見た目は変わっていないが、中身はだいぶかわった。
OpenFlow1.3.4に対応し、Pure Rubyにして、
コントローラ連携がしやすくなって、テストフレームワークと
ドキュメントが充実した。
</div>
</div>
<div class="outline-4" id="outline-container-5-2">
<h4 id="sec-5-2">
メモ</h4>
<div class="outline-text-4" id="text-5-2">
<ul>
<li id="sec-5-2-1">OpenFlow1.3.4に対応<br />
<ul>
<li>–openflow13 と足すとしゃべれるようになった
</li>
<li>pioで対応
</li>
<li>trema/pio を見るとわかる
</li>
</ul>
</li>
</ul>
<ul>
<li id="sec-5-2-2">Pure Ruby化<br />
<ul>
<li>インストールが簡単
</li>
<li>openvswitchを入れて、bundle install でできる
</li>
<li>デバッグしやすい
</li>
<li>pryとかでパケットインのところでそのときのスコープの変数とかが見える
</li>
<li>pryだとmethodの補完もできる
</li>
<li>show-sourceとかでmethodなので。
</li>
</ul>
</li>
</ul>
<ul>
<li id="sec-5-2-3">コントローラ連携<br />
<ul>
<li>既存のコントローラを組み合わせて高機能なコントローラを作ることができる
</li>
<li>delegatorというのを使う
</li>
<li>クラスの継承を使って機能を拡張するのも簡単
</li>
</ul>
</li>
</ul>
<ul>
<li id="sec-5-2-4">テストフレームワーク<br />
<ul>
<li>テスト
<ul>
<li>INPUT とOUTPUTを定義するとできる
</li>
</ul>
</li>
<li>Cucumberでできる
</li>
<li>Given When Thenでかける
</li>
</ul>
</li>
</ul>
<ul>
<li id="sec-5-2-5">ドキュメント<br />
<ul>
<li>Cucumberの記述からドキュメントを生成するようにした
</li>
</ul>
ー その結果充実した
</li>
</ul>
<ul>
<li id="sec-5-2-6">協力のお願い<br />
<ol>
<li>バグ報告
</li>
<li>パッチのPR
</li>
<li>新しいアプリ
</li>
<li>Trema本レビュー
</li>
</ol>
</li>
</ul>
</div>
</div>
</div>
<div class="outline-3" id="outline-container-6">
<h3 id="sec-6">
OVS拡張の話(とPioの話)</h3>
<div class="outline-text-3" id="text-6">
<ul>
<li>@shun159 さん
</li>
<li><a href="http://slides.com/shun159/deck/fullscreen#/">http://slides.com/shun159/deck/fullscreen#/</a>
</li>
</ul>
</div>
<div class="outline-4" id="outline-container-6-1">
<h4 id="sec-6-1">
まとめると</h4>
<div class="outline-text-4" id="text-6-1">
TremaのPacketParserであるPioに
OVSで使われている Nicira拡張をいれたいという話。
Nicira拡張はOVSに限定されているが、
いろいろと使いやすいものがある。
</div>
</div>
<div class="outline-4" id="outline-container-6-2">
<h4 id="sec-6-2">
メモ</h4>
<div class="outline-text-4" id="text-6-2">
<ul>
<li>PioはRubyのパケットパーサ実装
<ul>
<li>パケットのパースをするツール
</li>
<li>パケットを作れるツール
</li>
<li>PioがだんだんCoreの部分に近づいている
</li>
<li>Pioの性能がTremaの性能に影響を与える
</li>
</ul>
</li>
<li>OVSのNicira拡張にいろいろと使えるものがある
</li>
<li>OpenFlowのきついところ
<ul>
<li>「Controllerに転送を書くんでしょ?」
</li>
<li>「そうだよ?」
</li>
<li>辛そう
</li>
</ul>
</li>
<li>宣言的にやりたい
</li>
<li>OpenFlow的にはpacket_inさせるな!というのが一般的だが。。
</li>
<li>簡単にかけます
</li>
</ul>
</div>
</div>
<div class="outline-4" id="outline-container-6-3">
<h4 id="sec-6-3">
QA</h4>
<div class="outline-text-4" id="text-6-3">
<ul>
<li>Q: Pioにいれるきがあるか?
</li>
<li>A: 熟読してから決める(by @yasuhito さん)
</li>
<li>Q: 使える実装はどれくらい?
</li>
<li>A: OVSなら使える
</li>
<li>C: 他のハードのスイッチはけっこうはまりそう?。
</li>
<li>C: Nicira拡張なのでOVSなら使える
</li>
</ul>
</div>
</div>
</div>
<div class="outline-3" id="outline-container-7">
<h3 id="sec-7">
いろいろなデバイスでOpenVNetを動かしてみようとした</h3>
<div class="outline-text-3" id="text-7">
<ul>
<li>@qb0c80aE さん
</li>
<li><a href="http://www.slideshare.net/qb0C80aE/openvnet-51423180">http://www.slideshare.net/qb0C80aE/openvnet-51423180</a></li>
</ul>
</div>
<div class="outline-4" id="outline-container-7-1">
<h4 id="sec-7-1">
まとめると</h4>
<div class="outline-text-4" id="text-7-1">
OpenVNet(OVS, Trema, MySQL など)を
次世代携帯型データセンター(Android 2.x)で
動かそうと頑張ったが、そこまでいかなかった。。 という
死闘の記録。
</div>
</div>
<div class="outline-4" id="outline-container-7-2">
<h4 id="sec-7-2">
メモ</h4>
<div class="outline-text-4" id="text-7-2">
<ul>
<li>Edge Overlayのおさらい
<ul>
<li>Hostに仮想Switchがのるタイプのネットワーク
</li>
<li>OpenStack Newtronとの親和性
</li>
</ul>
</li>
<li>次世代携帯型データセンター
<ul>
<li>rbenvでrubyのコンパイルが1日で終わる。
</li>
<li>Tremaのコンパイルも1時間
</li>
<li>rootをとる必要がある
</li>
<li>けっこう辛い
</li>
</ul>
</li>
<li>デモ
<ul>
<li>OVS, Tremaはなんとか動いたが。。
</li>
<li>無理矢理アラインメント変更したから。。
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="outline-3" id="outline-container-8">
<h3 id="sec-8">
Dive into wireless openflow!</h3>
<div class="outline-text-3" id="text-8">
<ul>
<li>@kwi さん
</li>
<li><a href="https://speakerdeck.com/kwi/dive-into-wireless-openflow-ja">https://speakerdeck.com/kwi/dive-into-wireless-openflow-ja</a>
</li>
</ul>
</div>
<div class="outline-4" id="outline-container-8-1">
<h4 id="sec-8-1">
まとめると</h4>
<div class="outline-text-4" id="text-8-1">
無線LANとOpenFlowについての考えは珍しくはないが、
無線LANベンダによって、ロックインがあるため、いろいろ難しい面もある。
Raspberry Piを使った実装のデモを使って、効果の説明があった。
</div>
</div>
<div class="outline-4" id="outline-container-8-2">
<h4 id="sec-8-2">
メモ</h4>
<div class="outline-text-4" id="text-8-2">
<ul>
<li>無線とOpenFlowの組み合わせは珍しくはない
</li>
<li>無線はいろいろわからない(見えない)
</li>
<li>今回作ったやつはラズベリーパイで動いている
</li>
<li>効果
<ul>
<li>状態を監視できる
</li>
<li>APの電波でどちらを優先するか などの制御ができる
</li>
<li>デバイスごとの癖がわかる
</li>
</ul>
</li>
<li>実装
<ul>
<li>Linux netdev = openflow portとした
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="outline-4" id="outline-container-8-3">
<h4 id="sec-8-3">
QA</h4>
<div class="outline-text-4" id="text-8-3">
<ul>
<li>Q: 無線LANの標準はあるのか?
</li>
<li>A: 標準にしてもいいがONFとしてどうなっているかはわからない
</li>
<li>C: 個人的には標準化したほうがよいかという気持ちはある
</li>
</ul>
</div>
</div>
</div>
<div class="outline-3" id="outline-container-9">
<h3 id="sec-9">
「Lagopusで遊ぶ(仮)」 あらため「Lagopusで試すFirewall」</h3>
<div class="outline-text-3" id="text-9">
<ul>
<li>@hibitomo さん
</li>
<li>スライドはNot Yet
</li>
</ul>
</div>
<div class="outline-4" id="outline-container-9-1">
<h4 id="sec-9-1">
まとめると</h4>
<div class="outline-text-4" id="text-9-1">
FirewallのACLをLagopusで実装してみる試み。
ポートのRangeを実装するところはLagopusなら力業で実現できる(はず)。
ちょうどLagopusが新しくなって動いていないが、すぐに直るはず。
</div>
</div>
<div class="outline-4" id="outline-container-9-2">
<h4 id="sec-9-2">
メモ</h4>
<div class="outline-text-4" id="text-9-2">
<ul>
<li>ACLのポートレンジのところは、最大26万ルールにおさまる!!
</li>
<li>Lagopus →100万ルール いける(はず)
</li>
<li>priorityを気をつける必要がある
</li>
</ul>
</div>
</div>
<div class="outline-4" id="outline-container-9-3">
<h4 id="sec-9-3">
QA</h4>
<div class="outline-text-4" id="text-9-3">
<ul>
<li>Q: テストツールは?
</li>
<li>A: RyuのテストツールでJSONをいれればできるので、これでいける?
</li>
</ul>
</div>
</div>
</div>
<div class="outline-3" id="outline-container-10">
<h3 id="sec-10">
(仮題)Dockerコンテナのネットワーク周りについて</h3>
<div class="outline-text-3" id="text-10">
<ul>
<li>yoshimaさん
</li>
<li><a href="http://www.slideshare.net/Oshima0x3fd/docker-51844008">http://www.slideshare.net/Oshima0x3fd/docker-51844008</a></li>
</ul>
</div>
<div class="outline-4" id="outline-container-10-1">
<h4 id="sec-10-1">
まとめると</h4>
<div class="outline-text-4" id="text-10-1">
DockerではネットワークまわりがいまHot。
docker 1.8 experimentalではいろいろ遊べる。
RunCを使えば、dockerが入らないようなシステムでも
コンテナを簡単に作れる。
</div>
</div>
<div class="outline-4" id="outline-container-10-2">
<h4 id="sec-10-2">
メモ</h4>
<div class="outline-text-4" id="text-10-2">
<ul>
<li>Trema関係ない
</li>
<li>いまDocker Networkに力入れている
</li>
<li>コンテナの周りのツール いろいろある
</li>
<li>きょうの話
<ul>
<li>libnetwork
<ul>
<li>コンテナのネットワーク
</li>
</ul>
</li>
<li>RunC
</li>
</ul>
</li>
<li>libnetworkの話
<ul>
<li>言葉の定義
<ul>
<li>SandBox → コンテナのこと
</li>
<li>Endpoint → vethとかのこと
</li>
</ul>
</li>
<li>libnetwork driverがdocker0作成したりする
</li>
<li>libnetwork driver
<ul>
<li>bridge デフォルト
</li>
<li>overlay VXLANでトンネルをはる
</li>
</ul>
</li>
<li>overlay driver
<ul>
<li>docker 1.8-experimentalから利用可能
</li>
</ul>
</li>
<li>swarmはいまはネットワーク周りまだ管理していない
</li>
<li>consulでやっている
</li>
<li>docker create network overlay のようにやる
</li>
<li>docker service publish h1.test ってやる
</li>
<li>service とIPアドレスが対応している
</li>
<li>/etc/hostsに書かれている
</li>
<li>network driver だとarpがこない
<ul>
<li>broadcastとかはdocker側で管理している
</li>
</ul>
</li>
<li>今後はlibnetworkを中心に発展していきそう
</li>
</ul>
</li>
<li>RunCの話
<ul>
<li>ホワイトボックススイッチ
</li>
<li>Cumulus Linuxなど
<ul>
<li>Debian 7ベース
</li>
</ul>
</li>
<li>dockerを入れるにはいろいろ問題があって。。
</li>
<li>そこでRunC
</li>
<li>Open Container Projectに準拠させた
</li>
<li>dockerのような常駐デーモンがいない
</li>
<li>docker export でtarにして、それをrootfsにして、そこでruncを走らせるとコンテナが動く
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="outline-4" id="outline-container-10-3">
<h4 id="sec-10-3">
QA</h4>
<div class="outline-text-4" id="text-10-3">
<ul>
<li>Q: vxlanはdocker間だけ?
</li>
<li>A: 現状はdocker間だけでしかvxlanは通信できない
</li>
<li>Q: どうしてスイッチ上でコンテナを動かしたい?
</li>
<li>A: スイッチ上でアプリが動けばいろいろやりたい。アプリの配置を簡単にしたい
</li>
<li>Q: dockerのネットワーク切り替えはできる?
</li>
<li>A: 一応できるけど、ホスト名では解決できない
</li>
</ul>
</div>
</div>
</div>
<div class="outline-3" id="outline-container-11">
<h3 id="sec-11">
LT</h3>
<div class="outline-text-3" id="text-11">
ぜんぜんかけていないので、あとで追記します。きっと。。
</div>
<div class="outline-4" id="outline-container-11-1">
<h4 id="sec-11-1">
LT SDNに夢見た無線AP~</h4>
<div class="outline-text-4" id="text-11-1">
<ul>
<li>@tkshnt さん
</li>
<li><a href="http://www.slideshare.net/takashinaito146/lansdn">http://www.slideshare.net/takashinaito146/lansdn</a>
</li>
</ul>
</div>
</div>
<div class="outline-4" id="outline-container-11-2">
<h4 id="sec-11-2">
LT 無線LANコントローラーからSDNへの移行可能性と拡張性の模索</h4>
<div class="outline-text-4" id="text-11-2">
<ul>
<li>@SRCHACK さん
</li>
</ul>
</div>
</div>
<div class="outline-4" id="outline-container-11-3">
<h4 id="sec-11-3">
LT Lagopus 0.2</h4>
<div class="outline-text-4" id="text-11-3">
<ul>
<li>@masaru0714 さん
</li>
<li><a href="http://www.slideshare.net/masaruoki9/lagopus-02">http://www.slideshare.net/masaruoki9/lagopus-02</a>
</li>
</ul>
</div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-46054620841868943412015-07-04T17:40:00.001+09:002015-07-04T18:14:44.189+09:00ネットワークプログラマビリティ勉強会 #5<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">開催概要</h3>
<div class="outline-text-3" id="text-1">
<ul>
<li>日時: 2015/07/03(金) 19:00 - 21:00
</li>
<li>会場: シスコシステムズ合同会社 21F セミナールーム
</li>
<li>ホームページ: <a href="http://network-programmability.connpass.com/event/15788/">http://network-programmability.connpass.com/event/15788/</a>
</li>
<li>hash tag: <a href="https://twitter.com/search?q=%23npstudy">#npstudy</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">他のかたのまとめ</h3>
<div class="outline-text-3" id="text-2">
<ul>
<li><a href="http://togetter.com/li/842504">ネットワークプログラマビリティ勉強会 #5 #npstudy まとめ - Togetterまとめ</a> by @stereocat さん
</li>
<li><a href="http://d.hatena.ne.jp/stereocat/20150703/1435937853">ネットワークプログラマビリティ勉強会 #npstudy #5 参加メモ</a> by @stereocat さん
<ul>
<li>とても詳しく書いてあるので、お勧めです。
</li>
</ul>
<li><a href="http://www.itbook.info/web/2015/07/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%93%E3%83%AA%E3%83%86%E3%82%A3%E5%8B%89%E5%BC%B7%E4%BC%9A-5-%E5%8F%82%E5%8A%A0%E3%83%A1.html">ネットワークプログラマビリティ勉強会 #5 参加メモ</a> by @itbook さん
</li>
</ul>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">OpenStack CongressとDatalog</h3>
<div class="outline-text-3" id="text-3">
<ul>
<li>@motonori_shindo さん
</li>
<li>今回のタイトルの背景
<ul>
<li>前々々回の宣言的言語に触発された。
</li>
</ul>
</li>
<li>OpenStack Congressとは
<ul>
<li>Policy as a Service をになうプロジェクト
</li>
<li>Congress = 議会 というところから、Policy を制定するところ というイメージ。
</li>
<li>Standaloneでも動作するが、OpenStackと一緒に動作するのが、もっとも効果的。
</li>
<li><a href="https://github.com/openstack/congress">https://github.com/openstack/congress</a>
</li>
</ul>
</li>
<li>Policyとは?
<ul>
<li>何かしらによって課される制約に対して、どうあるべきかを規定するもの
<ul>
<li>法律
</li>
<li>ビジネスルール
</li>
<li>セキュリティ要件
</li>
<li>など
</li>
</ul>
</li>
</ul>
</li>
<li>汎用的なPolicy Language
<ul>
<li>Datalog
</li>
<li>一階述語論理に基づいた宣言的論プログラミング言語
<ul>
<li>DSL
</li>
</ul>
</li>
<li>1970年代からある
</li>
<li>Prologに似ている
<ul>
<li>会場でPrologを5行以上書いたことある人
<ul>
<li>多少いた
</li>
</ul>
</li>
<li>PrologとDatalogの違い
<ul>
<li>停止することが保証されている
</li>
<li>Function symbolがない
</li>
<li>節の順序は無関係
</li>
<li>リストの概念がない
</li>
<li>カット(!)やfail(強制させる)オペレータがない
</li>
</ul>
</li>
</ul>
</li>
<li>書式
<ul>
<li>ヘッド :- ボディ
</li>
<li><atom> :- <literal 1>, <literal 2>, <literal 3>, .. <literal N>
</li>
<li>literal 1, 2, .. Nがなりたてばatomがなりたつ
</li>
</ul>
</li>
<li>Safty Properties
</li>
<li>Datalog(Prolog)書き方
<ul>
<li>ファクト
</li>
<li>ルール
</li>
<li>そして問い合わせ
</li>
</ul>
</li>
<li>用途
<ul>
<li>Monitoring
<ul>
<li>ポリシーを照らしあわして、もしミスマッチがあればレポートする
</li>
</ul>
</li>
<li>Enforcement
<ul>
<li>違反があったら回避するアクションをとる
</li>
</ul>
</li>
<li>Audiing
<ul>
<li>PolicyやPolicy違反の履歴管理
</li>
</ul>
</li>
</ul>
</li>
<li>制約
<ul>
<li>いまは再帰のルールはできない
</li>
</ul>
</li>
<li>サポートしているCongress 用ドライバ
<ul>
<li>OpenStackファミリ
</li>
<li>:
</li>
<li>vCenter
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div id="outline-container-3-1" class="outline-4">
<h4 id="sec-3-1">QA</h4>
<div class="outline-text-4" id="text-3-1">
<ul>
<li>性能は?
<ul>
<li>ちょっと前まではすごく遅かった。最近大幅向上している。何百台。
</li>
</ul>
</li>
<li>だれがかくのか?
<ul>
<li>クラウド管理者がかく。ユーザーがかくものではない
</li>
</ul>
</li>
<li>メリットは?
<ul>
<li>意図した状態を保つのは難しい。システムでなんとかしたい
</li>
</ul>
</li>
<li>なぜVMWareが力をいれている
<ul>
<li>VMWareが最初スタートしたからかな。
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-3-2" class="outline-4">
<h4 id="sec-3-2">感想</h4>
<div class="outline-text-4" id="text-3-2">
<p>OpenStackでないシステムであれば、ZabbixとかNagiosが監視、アクションをやっている。
ここではSNMPだったり、サーバにエージェント入れたりして、いろいろやっている。
OpenStackで統一的なポリシー管理の仕組みを作ると統一できるってことかな。
OpenStackを目指して、vendorが仕組みを統一できるといろいろメリットはありそうな気がした。
(NETCONFとかも一緒か)
</p>
</div>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">クラウドを活用したシステム構築における、ネットワークのInfrastructure as Code</h3>
<div class="outline-text-3" id="text-4">
<ul>
<li>@qb0C80aE さん
</li>
<li>今日の話
<ul>
<li>SDN
</li>
<li>オーケストレーション
</li>
<li>その他
</li>
</ul>
</li>
<li>Infrastructure as a Code
<ul>
<li>管理されたコードが正
</li>
</ul>
</li>
<li>Infrastructure as a Codeおさらい
<ul>
<li>Chef, Puppet, Ansible とか
</li>
<li>最近の概念
<ul>
<li>Immutable
</li>
<li>Blue-Green Deployment
<ul>
<li>Immutable、Blue-Greenなら冪等性いらないよね→シンプルになる
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>AWS、OpenStackとかIaaS
<ul>
<li>APIで制御できる
</li>
<li>この場合のコード化は
<ul>
<li>利用側からみたもの
</li>
<li>IaaSが隠蔽している
</li>
<li>OpenStack Neutron API
<ul>
<li>Extentionで拡張できる
</li>
<li>プログラムを書いて、丸投げして、
</li>
</ul>
</li>
<li>オーケストレータ
<ul>
<li>コードを宣言的 or 一部手続き的に記述し、書いたとおりにリソースを積み上げて実現
</li>
<li>CloudFormation
<ul>
<li>JSONでかくとできる
</li>
</ul>
</li>
</ul>
</li>
<li>テストも自動化でできる
<ul>
<li>ServerspecとかInfratasterとか
</li>
</ul>
</li>
<li>オーケストレーションの発展
<ul>
<li>使いたいクラウドをうまく組み合わせてシステムを構築できる
</li>
<li>Terraform
<ul>
<li>provisionerで定義
<ul>
<li>使えるモノが変わってくる
</li>
</ul>
</li>
</ul>
</li>
<li>resourceで定義
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>ネットワークの構成要素
<ul>
<li>ネットワークの構成要素とは。
<ul>
<li>Node?Link?Patch?…
</li>
<li>人によって全然違う。
</li>
</ul>
</li>
</ul>
</li>
<li>CloudFormationみたいなモノ
<ul>
<li>OdenOS
<ul>
<li>トポロジのコントロールが主体
</li>
</ul>
</li>
</ul>
</li>
<li>コード記述の標準フォーマット
<ul>
<li>ないのかな?
</li>
<li>作りたいなということで動き始めた
</li>
<li>上から下まで設定できたらいいな
</li>
</ul>
</li>
</ul>
</div>
<div id="outline-container-4-1" class="outline-4">
<h4 id="sec-4-1">QA</h4>
<div class="outline-text-4" id="text-4-1">
<ul>
<li>ネットワークを管理する目線で言語、記載方式とかの概念をがんばって、いまのやつでできるのか?
<ul>
<li>オーケストレーションとかでけっこうできる。ありものはありものでかけるっていうのができるといいな と。
</li>
</ul>
</li>
<li>ネットワークの設定とかは共通的になってきたのかな。ネットワークがなぜ宣言的になったほうがよい?
<ul>
<li>手続きだと辛い。インフラ(ネットワーク含む)が宣言的にできるといいな。でもなかなか難しい。
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-4-2" class="outline-4">
<h4 id="sec-4-2">感想</h4>
<div class="outline-text-4" id="text-4-2">
<p>ネットワーク機器のマネジメントについては、既存の機器を考えるとなかなか難しいな。
基本的な部分だけでも(どこまでが基本的な部分か というのが人によって違うのだろうけど。)、
統一的に設定できるようになるとうれしいかもしれない。
そういう意味では、TerraformとかServerspec(Specinfra)のようにprovidorというか、実装は
泥臭いことをしているけど、ユーザーはJSONを書けばそれなりにできるとかがあるといいのかもしれない。
(過去機種もCLIとかでいろいろやれば、なんとかなるだろうし。(基本的なところは!))
</p>
</div>
</div>
</div>
<div id="outline-container-5" class="outline-3">
<h3 id="sec-5">エンタープライズにおけるOpenflowユースケースを考える</h3>
<div class="outline-text-3" id="text-5">
<ul>
<li>@Clorets8lack さん
</li>
</ul>
<p>− <a href="http://www.slideshare.net/cloretsblack/open-flow-50138221">資料</a>
</p><ul>
<li>会場の情シス担当者は?
<ul>
<li>ほとんどいない。。
</li>
</ul>
</li>
<li>エンタープライズ運用担当者の特徴
<ul>
<li>既存のネットワークを置き換えるという発想はない
<ul>
<li>もどせるとうれしい
</li>
</ul>
</li>
<li>「可視化」がキーワード
<ul>
<li>運用定量化と効果計測のため数値化を常に考えている
</li>
</ul>
</li>
</ul>
</li>
<li>SDN
<ul>
<li>プログラミングは解決手段の一つ
</li>
</ul>
</li>
<li>ユースケース2つ
<ul>
<li>冗長システムのコントロール
<ul>
<li>問題点
<ul>
<li>切り替えがうまくできないコトがある
<ul>
<li>ハングアップなど、ダウン検知が難しい障害がある
</li>
<li>情シス担当者には最悪
<ul>
<li>2倍払って、なに?これ? と経営からいわれる。
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>解決方法
<ul>
<li>サービス監視を高度化する
<ul>
<li>自動テストを書いて、それを流す(高度な死活監視)
</li>
</ul>
</li>
<li>切り替え処理を単純/確実化
<ul>
<li>抜線と一緒にする(ポートStateの制御)
</li>
</ul>
</li>
<li>なぜフロー制御でなく、ポートStateの制御なのか?
<ul>
<li>現時点で状態が把握しやすい LEDとかで見やすい
</li>
<li>他の担当に動作を説明しやすい
</li>
<li>アナログな手段で容易に再現可能(本当に線を抜くとか)
</li>
</ul>
</li>
<li>具体的な切り替え手順
<ul>
<li>NICチーミングを使う
</li>
<li>優先I/Fをあらかじめダウンさせておく
</li>
</ul>
</li>
<li>使いどころ
<ul>
<li>冗長機能がない製品を無理矢理冗長構成をする
</li>
<li>HAクラスタ製品のだめ押し
</li>
</ul>
</li>
<li>やってみた感想
<ul>
<li>障害状態の保存という移管点では、ポートダウンが使いづらい
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>パケットキャプチャによるエビデンスベースの障害対応
<ul>
<li>海外情シスあるある
<ul>
<li>「エラーログが出ていないのでこちらに問題はありません」
</li>
<li>「ログがないのでこれ以上調べられません」
</li>
</ul>
</li>
<li>エラーログが正しく出されているとは限らない
</li>
<li>それなら
<ul>
<li>パケットキャプチャで証拠を突きつけて「短く」会話する
</li>
<li>詳しそうなオーラを出して押し切る
</li>
</ul>
</li>
<li>運用上の問題
<ul>
<li>再現できない
</li>
</ul>
</li>
<li>解決方法
<ul>
<li>容量を大きめのリングバッファでパケットをキャプチャしておく
</li>
<li>問題が発生したらそのパケットを保存しておく
<ul>
<li><a href="http://develup-japan.co.jp/wp/archives/184/">Sonarman</a>というものを作りました
</li>
</ul>
</li>
<li>OpenFlowでミラーポートを制御
</li>
<li>ポートごとにVLAN TAGをつけるとあとでわかりやすい
<ul>
<li>海外だと元の配線にしないで帰るとかあるので、これで助かる
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div id="outline-container-5-1" class="outline-4">
<h4 id="sec-5-1">QA</h4>
<div class="outline-text-4" id="text-5-1">
<ul>
<li>引き継ぎの話をどうするの?
<ul>
<li>ドキュメント書きましょう。現場の人しかわからないことが多いので、現場で伝えられるように。
</li>
</ul>
</li>
<li>昔のやつでいろいろやったら、すべてのポートがシャットダウンしたことがあった、気をつけていることは?
<ul>
<li>全部が切れることはなかった
</li>
<li>5本入っています、全部、5本切り替える とか気にするところはある
</li>
</ul>
</li>
<li>運用と自分でのプログラムするのの両立は?
<ul>
<li>情シスは現場のやりたいというのい弱い。
</li>
<li>ニーズありきで、どうやるか。同じ居室の会議室を2社でどのように利用するか など、そういうときに課題解決できるかな。
</li>
<li>これからどう両立するかは考えないといけない
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-5-2" class="outline-4">
<h4 id="sec-5-2">感想</h4>
<div class="outline-text-4" id="text-5-2">
<p>前回に引き続き、非常におもしろい話だった。
情シスのひとはあまりこういう勉強会にはでてこないのかな。
情シスのひとで、運用のためにコード書いている人はあまりみないし。
(外部の業者さんが書いていたりするのだろう)
</p>
<p>
運用の自動化のためにプログラム書いたりすると、属人性があがってしまうところは、もどかしい。
情シスで「高度自動化チーム」とかを作って、そこのチームでは使用言語とか仕組みを統一する
とかがいいのかもしれない。
(このチームもどのくらい効果があるか、とかを可視化しないといけないのか。。。)
</p>
</div>
</div>
</div>
<div id="outline-container-6" class="outline-3">
<h3 id="sec-6">自動でできるかな?</h3>
<div class="outline-text-3" id="text-6">
<ul>
<li>@_norin_ さん
<ul>
<li>データセンターの中のひと
</li>
</ul>
</li>
<li>きょうの話
<ul>
<li>定型作業の自動化、その結果
</li>
<li>機械と話をするところ
</li>
</ul>
</li>
<li>シナリオ
<ul>
<li>L2-ホスト間のInterfaceを設定して、L3でping確認する
</li>
</ul>
</li>
<li>How
<ul>
<li>CLI
<ul>
<li>最強。人間には優しいが、自動化はやりにくい。
</li>
</ul>
</li>
<li>SNMP
<ul>
<li>Link UP/Down
<ul>
<li>snmpset … IF-MIB::ifAdminStatus
</li>
</ul>
</li>
<li>Duplexなど他はほとんどreadonly
<ul>
<li>VLANはprivate MIBにある
</li>
</ul>
</li>
<li>敗北。。
</li>
</ul>
</li>
<li>NETCONF
<ul>
<li>古い機器にはない。
</li>
<li>新しいのも結構ばらばら
</li>
<li>CLI over NETCONFみたいのがあるが、結局これで十分?
</li>
</ul>
</li>
<li>REST
<ul>
<li>3750ではHTTPでコマンドをいれられる
</li>
<li>マニュアルとかでは見つからなからない?
</li>
</ul>
</li>
<li>Web UI
<ul>
<li>LiveHTTPHeaderとかで見て、やればいける。
</li>
</ul>
</li>
</ul>
</li>
<li>今後の課題
<ul>
<li>メッセージボディの規格がまとまっていない
</li>
<li>古い機械をどうやってすくっていくか。
</li>
</ul>
</li>
</ul>
</div>
<div id="outline-container-6-1" class="outline-4">
<h4 id="sec-6-1">QA</h4>
<div class="outline-text-4" id="text-6-1">
<ul>
<li>時間不足のためQAは懇親会パートで!
</li>
</ul>
</div>
</div>
<div id="outline-container-6-2" class="outline-4">
<h4 id="sec-6-2">感想</h4>
<div class="outline-text-4" id="text-6-2">
<p>新しいネットワーク機器だと、だいぶ、自動化やりやすくなっているのかなと思う。
EsxiとかもRubyのライブラリでけっこう簡単にいろいろできる。
利用シーンを限定すれば、L2スイッチとかでも自動化はまぁまぁいけるのかな。
なかなか汎用的なものは作れないので、ネットワーク技術者が利用シーンに応じて、
プログラミングして、自動化するのが現実的なのかもしれない。
ただ、このあたりは情シスの課題と同じかな。(属人的になるとその人がいなくなると終わる。。)
</p>
</div>
</div>
</div>Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-15822248954657049162015-04-26T07:39:00.001+09:002015-04-26T07:40:00.295+09:00ネットワークプログラマビリティ勉強会 #4 @GMO Yours<div id="content">
<h1 class="title">
ネットワークプログラマビリティ勉強会 #4 @GMO Yours</h1>
<div class="outline-3" id="outline-container-1">
<h3 id="sec-1">
開催概要</h3>
<div class="outline-text-3" id="text-1">
<ul>
<li>日時: 2015/04/23(木) 19:00 - 21:00
</li>
<li>会場: <a href="http://yours.gmo.jp/">GMO Yours</a>
</li>
<li>ホームページ: <a href="http://network-programmability.connpass.com/event/13103/">http://network-programmability.connpass.com/event/13103/</a>
</li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-2">
<h3 id="sec-2">
他のかたのまとめ</h3>
<div class="outline-text-3" id="text-2">
いろいろまとめられているので、全体的なのは他のかたのメモを参照してください。
<br />
<ul>
<li><a href="http://d.hatena.ne.jp/stereocat/20150423/1429800673">ネットワークプログラマビリティ勉強会 #4 参加メモ</a> by @stereocat さん
</li>
<li><a href="http://notepad.cc/qebbizi54">ネットワークプログラマビリティ勉強会#4</a> by @flower<sub>norn</sub> さん
</li>
<li><a href="http://komeiy.blogspot.jp/2015/04/4.html?m=1">ネットワークプログラマビリティ勉強会#4に参加してきた</a> by @komeinw さん
</li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-3">
<h3 id="sec-3">
感想</h3>
<div class="outline-text-3" id="text-3">
今回は、LTの発表をしたせいで、あまり他の人の発表をこころの余裕をもって聞くことができませんでしたが、
自分としては発表することで自分が知りたい内容がしれたのでよかったと思います。
<br />
一番大きい収穫は、この勉強会にどのような人が来ているか?ということがわかったことです。
「ネットワークエンジニア」というのは、範囲が非常に広いので、発表者がどのような人をターゲットに話をしたら
いいのかが難しいと思っていたからです。
<br />
今回の超おおざっぱな私の集計によると、次のようになっています。(重複含む。全体人数は100人くらい)
<br />
<table border="2" cellpadding="6" cellspacing="0" frame="hsides" rules="groups">
<colgroup><col class="left"></col><col class="left"></col><col class="left"></col>
</colgroup>
<tbody>
<tr><td class="left">Type</td><td class="left">Related to</td><td class="left">How many people at this study?</td></tr>
<tr><td class="left">SDN</td><td class="left">OpenFlow, OpenStack</td><td class="left">20 people</td></tr>
<tr><td class="left">Internet</td><td class="left">BGP</td><td class="left">10 people</td></tr>
<tr><td class="left">Intranet</td><td class="left">WAN, Inter DC</td><td class="left">15 people</td></tr>
<tr><td class="left">DC internal</td><td class="left">Firewall, Load balancer,L2/L3 switch</td><td class="left">30 people</td></tr>
<tr><td class="left">Platform Service</td><td class="left">DNS, mail, proxy</td><td class="left">20 people</td></tr>
<tr><td class="left">Server</td><td class="left">Linux, Windows,</td><td class="left">20 people</td></tr>
<tr><td class="left">Application</td><td class="left">Web Service, Mail Service</td><td class="left">10 people</td></tr>
</tbody>
</table>
全体として、SDNとかをいま使っている人は20%くらいで、80%の人はSDNとかに興味はあるけど、
いまの活動としてはあまり使っていないということでした。
DNS, mailとかの基盤サービスをやっている人も結構いて、「ネットワークエンジニア」が広いということがわかりました。
(自分の中の仮説どおりです。)
<br />
よかったことと、改善できたらいいな ということをまとめるとこんな感じです。
</div>
<div class="outline-4" id="outline-container-3-1">
<h4 id="sec-3-1">
よかったこと</h4>
<div class="outline-text-4" id="text-3-1">
<ul>
<li><a href="https://twitter.com/hashtag/npstudy?f=realtime">#npstudy</a> というハッシュタグがついたことで、いろいろ情報がまとまったこと
</li>
<li>どんな人が参加しているかがわかったこと
</li>
<li>具体的なプログラミングのことになると、けっこう、一歩引いてしまうということがわかったこと
</li>
<li>会場設備がよくて、Wifiやドリンクも提供していただいたこと(GMOさんありがとうございます)
</li>
</ul>
</div>
</div>
<div class="outline-4" id="outline-container-3-2">
<h4 id="sec-3-2">
改善できたらいいな ということ</h4>
<div class="outline-text-4" id="text-3-2">
<ul>
<li>終了がギリギリになってしまって、懇親があまりできなかったこと
<ul>
<li>LTでは質問を受け付けず、会場での懇親の場(30分でも)で聞いてくださいのほうがよかったかもですね
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="outline-3" id="outline-container-4">
<h3 id="sec-4">
発表</h3>
<div class="outline-text-3" id="text-4">
自分の気持ち的に、全体の発表はあまり見れなかったので、自分の発表のところだけ。。
</div>
<div class="outline-4" id="outline-container-4-1">
<h4 id="sec-4-1">
ネットワークのテスト自動化(Network Test Automation) @otahi</h4>
<iframe allowfullscreen="" frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/key/hnVTXzzqPg1M0L" style="border-width: 1px; border: 1px solid #CCC; margin-bottom: 5px; max-width: 100%;" width="425"> </iframe> <br />
<div style="margin-bottom: 5px;">
<strong> <a href="https://www.slideshare.net/HiroshiOta2/network-test-automation-2015" target="_blank" title="Network Test Automation 2015-04-23 #npstudy">Network Test Automation 2015-04-23 #npstudy</a> </strong> from <strong><a href="https://www.slideshare.net/HiroshiOta2" target="_blank">Hiroshi Ota</a></strong> </div>
<div class="outline-text-4" id="text-4-1">
ネットワークテストの自動化して、インシデント対応などでの「ダブルチェック」の再発防止を減らしていきたい。
そういう感じで話をしました。
<br />
自前のテスト自動化ツールなどの紹介をしたので、「なんだ」と思ったかたもいたと思いますが、
OSSなので、自分で書き換えれば、もっとよくなりますよ! ということで。。
<br />
今回紹介したツールは、以下のとおりです。(上の2つ以外は自作ツールです。)
<br />
<table border="2" cellpadding="6" cellspacing="0" frame="hsides" rules="groups">
<colgroup><col class="left"></col><col class="left"></col><col class="left"></col>
</colgroup>
<tbody>
<tr><td class="left">Type</td><td class="left">Test target</td><td class="left">Remarks</td></tr>
<tr><td class="left"><a href="http://serverspec.org/">Serverspec</a></td><td class="left">Servers(static)</td><td class="left"></td></tr>
<tr><td class="left"><a href="https://github.com/ryotarai/infrataster">Infrataster</a></td><td class="left">Servers(dynamic)</td><td class="left"></td></tr>
<tr><td class="left"><a href="https://github.com/otahi/infrataster-plugin-dns">Infrataster-plugin-dns</a></td><td class="left">DNS servers</td><td class="left"></td></tr>
<tr><td class="left"><a href="https://github.com/otahi/infrataster-plugin-firewall">Infrataster-plugin-firewall</a></td><td class="left">Firewalls</td><td class="left">Traget server needs: tcpdump, netcat</td></tr>
<tr><td class="left"><a href="https://github.com/otahi/lbspec">Lbspec</a></td><td class="left">Load Balancers(L4-L7)</td><td class="left">Target server needs: ngrep, netcat</td></tr>
<tr><td class="left"><a href="https://github.com/otahi/rspec-ssltls">RSpec-ssltls</a></td><td class="left">SSL/TLS</td><td class="left"></td></tr>
</tbody>
</table>
<br />
今回紹介しなかったですが、<a href="https://github.com/otahi/rspec-proxypac">RSpec-proxypac</a> というproxy.pacをテストするツールもあります。
<br />
<br />
将来的にはOpenFlowを使って、TDDできるとおもしろいかなと思っています。
<br />
<a href="http://trema.github.io/trema/">Trema</a> に興味をもって、Rubyを始めたので、そろそろTremaに恩返しをしたいとは思っています。
<br />
<br />
スライドは適当な「英語」で書いていますが、私のボキャブラリの範囲なので、
難しいことはないと思います(英語的に意味がわからないことはあるかもしれませんが)。
<br />
なぜ、英語で書いたかというと、せっかく書くのだから
「スライドだけ」でも他の人にも見てもらえたらな と思ったからです。
OSSのツールを広めるのであれば、英語圏(全世界)の人が見てくれたほうがいいですよね。
<br />
このスライドに対して、2015/4/23に発表して、2015/4/26 07:22現在で、USからのアクセスもそれなりにありますので、
英語で書いておいて、効果はあったかな と(とはいえ、このblog記事を英語ではかけなかった。。)。
<br />
<ul>
<li>Top countries
</li>
</ul>
<table border="2" cellpadding="6" cellspacing="0" frame="hsides" rules="groups">
<colgroup><col class="left"></col><col class="right"></col>
</colgroup>
<tbody>
<tr><td class="left">Name</td><td class="right">Views</td></tr>
<tr><td class="left">Japan</td><td class="right">464</td></tr>
<tr><td class="left">United States</td><td class="right">68</td></tr>
<tr><td class="left">Canada</td><td class="right">5</td></tr>
<tr><td class="left">France</td><td class="right">4</td></tr>
<tr><td class="left">Philippines</td><td class="right">2</td></tr>
</tbody>
</table>
<br />
<br />
Happy network life!!!</div>
</div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-38157550692042692692014-09-29T06:29:00.002+09:002014-09-29T06:33:06.460+09:00vagrant-proxyconf(1.4.0) supports docker (en)<p>Hello, proxy fans in the world, </p>
<p>Finally,<a href="https://github.com/tmatilai/vagrant-proxyconf">vagrant-proxyconf</a><a href="https://github.com/tmatilai/vagrant-proxyconf/blob/master/CHANGELOG.md#140--2014-09-28">docker has been released!(version 1.4.0).</a>So, you can run docker easily behind a corporate proxy.</p>
<p><a href="https://www.docker.io/"><img border="0" width="70%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6XPMwSQd4bvwfhtzq36zco0S5LnlyX7W0ejXz6T5GddFpZ6nJa3uFwDoc-bcq7b0WFaRsHC8zHvCdMYfqhL0aQ9eMLWZ8BtXmE4twzvTEqr_3s1w0G5TBwtAbVnNxcFQBht1IJCqhGU4/s320/large_v-trans.png" alt="docker" title="" /></a></p>
<blockquote class="twitter-tweet" data-cards="hidden" lang="ja"><p>vagrant-proxyconf 1.4.0 finally released! Adds support for docker, thanks to <a href="https://twitter.com/otahi">@otahi</a>. <a href="https://t.co/EiAo7czZ0d">https://t.co/EiAo7czZ0d</a> <a href="https://twitter.com/hashtag/Vagrant?src=hash">#Vagrant</a></p>— Teemu Matilainen (@tmatilai) <a href="https://twitter.com/tmatilai/status/516257558303358976">2014, 09/28</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>You can use vagrant-proxy docker support for docker hosts on ubuntu, RHEL(6,7), CoreOS, boot2docker and so on.</p>
<p>It is easy to use. Install <code>vagrant-proxyconf</code>, then add your proxy configuration to Vagrantfile. If you already use vagrant-proxyconf, you don't need extra configuration for vagrant-proxy docker support.</p>
<h3 id="vagrant-proxyconf-のinstall">vagrant-proxyconf installation</h3>
<p>Install <code>vagrant-proxyconf</code></p>
<pre class="prettyprint prettyprinted"><code><span class="pln">$ vagrant plugin install vagrant</span><span class="pun">-</span><span class="pln">proxyconf
</span><span class="typ">Installing</span><span class="pln"> the </span><span class="str">'vagrant-proxyconf'</span><span class="pln"> plugin</span><span class="pun">.</span><span class="pln"> </span><span class="typ">This</span><span class="pln"> can take a few minutes</span><span class="pun">...</span><span class="pln">
</span><span class="typ">Installed</span><span class="pln"> the plugin </span><span class="str">'vagrant-proxyconf (1.4.0)'</span><span class="pun">!</span><span class="pln">
$ </span></code></pre>
<p>If you can't install vagrant plugin because of proxy server. Try the followings.</p>
<pre class="prettyprint prettyprinted"><code><span class="pln">$ http_proxy</span><span class="pun">=</span><span class="pln">http</span><span class="pun">:</span><span class="com">//myproxy:3128/ vagrant plugin install vagrant-proxyconf</span><span class="pln">
</span><span class="typ">Installing</span><span class="pln"> the </span><span class="str">'vagrant-proxyconf'</span><span class="pln"> plugin</span><span class="pun">.</span><span class="pln"> </span><span class="typ">This</span><span class="pln"> can take a few minutes</span><span class="pun">...</span><span class="pln">
</span><span class="typ">Installed</span><span class="pln"> the plugin </span><span class="str">'vagrant-proxyconf (1.4.0)'</span><span class="pun">!</span><span class="pln">
$ </span></code></pre>
<h3 id="vagrantfile">Vagrantfile</h3>
<p>Add configuration.</p>
<pre class="prettyprint prettyprinted"><code class="language-ruby"><span class="pln">VAGRANTFILE_API_VERSION </span><span class="pun">=</span><span class="pln"> </span><span class="str">"2"</span><span class="pln">
</span><span class="typ">Vagrant</span><span class="pun">.</span><span class="pln">configure</span><span class="pun">(</span><span class="pln">VAGRANTFILE_API_VERSION</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">do</span><span class="pln"> </span><span class="pun">|</span><span class="pln">config</span><span class="pun">|</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="typ">Vagrant</span><span class="pun">.</span><span class="pln">has_plugin</span><span class="pun">?(</span><span class="str">"vagrant-proxyconf"</span><span class="pun">)</span><span class="pln">
config</span><span class="pun">.</span><span class="pln">proxy</span><span class="pun">.</span><span class="pln">http </span><span class="pun">=</span><span class="pln"> </span><span class="str">"http://myproxy:3128/"</span><span class="pln">
config</span><span class="pun">.</span><span class="pln">proxy</span><span class="pun">.</span><span class="pln">no_proxy </span><span class="pun">=</span><span class="pln"> </span><span class="str">"localhost,127.0.0.1,.example.com"</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
</span><span class="com"># ... other stuff</span><span class="pln">
</span><span class="kwd">end</span></code></pre>
<h3 id="runningdocker">Running docker</h3>
<p>After <code>vagrant up</code>, try to run docker.</p>
<pre class="prettyprint prettyprinted"><code><span class="pln">vagrant@vagrant</span><span class="pun">-</span><span class="pln">ubuntu</span><span class="pun">-</span><span class="pln">trusty</span><span class="pun">-</span><span class="lit">64</span><span class="pun">:~</span><span class="pln">$ sudo docker</span><span class="pun">.</span><span class="pln">io pull </span><span class="pun">-</span><span class="pln">t </span><span class="lit">14.04</span><span class="pln"> ubuntu
</span><span class="typ">Pulling</span><span class="pln"> repository ubuntu
ad892dd21d60</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Download</span><span class="pln"> complete
vagrant@vagrant</span><span class="pun">-</span><span class="pln">ubuntu</span><span class="pun">-</span><span class="pln">trusty</span><span class="pun">-</span><span class="lit">64</span><span class="pun">:~</span><span class="pln">$ </span></code></pre>
<p>If you set <code>http_proxy</code>, it will affect for https communication for docker. You can use private repositories in your intranet, because you can set <code>no_proxy</code>. <br>
<a href="https://github.com/dotcloud/docker/blob/master/registry/registry.go">docker/registry/registry.go</a> <br>
<a href="https://github.com/dotcloud/docker/blob/master/registry/auth.go">docker/registry/auth.go</a> <br>
<a href="http://golang.org/src/pkg/net/http/transport.go">The Go Programming Language Source file src/pkg/net/http/transport.go</a></p>
<p>Happy proxy life!!</p>
<p><a href="http://www.docker.com/legal/marks_and_logos/">Docker logo and marks usage</a></p>Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-79662728999453172722014-09-29T05:51:00.000+09:002014-09-29T05:57:32.046+09:00vagrant-proxyconf(1.4.0) supports docker<p>全国のproxy愛好家みなさん、こんにちは。</p>
<p>ついに、<a href="http://www.vagrantup.com/">vagrant</a>を使う上で欠かすことのできない<a href="https://github.com/tmatilai/vagrant-proxyconf">vagrant-proxyconf</a>に<a href="https://github.com/tmatilai/vagrant-proxyconf/blob/master/CHANGELOG.md#140--2014-09-28">dockerサポート</a>が加わりました(version 1.4.0)。これでproxyの内側でも気軽にvagrant上でdockerが使えるようになりました。</p>
<p><a href="https://www.docker.io/"><img border="0" width="70%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6XPMwSQd4bvwfhtzq36zco0S5LnlyX7W0ejXz6T5GddFpZ6nJa3uFwDoc-bcq7b0WFaRsHC8zHvCdMYfqhL0aQ9eMLWZ8BtXmE4twzvTEqr_3s1w0G5TBwtAbVnNxcFQBht1IJCqhGU4/s320/large_v-trans.png" alt="docker" title="" /></a></p>
<blockquote class="twitter-tweet" data-cards="hidden" lang="ja"><p>vagrant-proxyconf 1.4.0 finally released! Adds support for docker, thanks to <a href="https://twitter.com/otahi">@otahi</a>. <a href="https://t.co/EiAo7czZ0d">https://t.co/EiAo7czZ0d</a> <a href="https://twitter.com/hashtag/Vagrant?src=hash">#Vagrant</a></p>— Teemu Matilainen (@tmatilai) <a href="https://twitter.com/tmatilai/status/516257558303358976">2014, 9月 28</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>対応している主なゲスト(dockerのホスト)としては、ubuntu, RHEL(6,7), CoreOS, boot2dockerなどです。</p>
<p>使い方は簡単です。<code>vagrant-proxyconf</code>をインストールし、Vagrantfileに以下のようにproxyの設定をして起動するだけです。(いまvagrant-proxyconfを利用しているひとはpluginをupdateすればそのまま使えます。)</p>
<h3 id="vagrant-proxyconf-のinstall">vagrant-proxyconf のinstall</h3>
<p><code>vagrant-proxyconf</code>をインストールします。</p>
<pre class="prettyprint prettyprinted"><code><span class="pln">$ vagrant plugin install vagrant</span><span class="pun">-</span><span class="pln">proxyconf
</span><span class="typ">Installing</span><span class="pln"> the </span><span class="str">'vagrant-proxyconf'</span><span class="pln"> plugin</span><span class="pun">.</span><span class="pln"> </span><span class="typ">This</span><span class="pln"> can take a few minutes</span><span class="pun">...</span><span class="pln">
</span><span class="typ">Installed</span><span class="pln"> the plugin </span><span class="str">'vagrant-proxyconf (1.4.0)'</span><span class="pun">!</span><span class="pln">
$ </span></code></pre>
<p>ここでproxyが理由でインストールできない場合は。。こんな感じですね。</p>
<pre class="prettyprint prettyprinted"><code><span class="pln">$ http_proxy</span><span class="pun">=</span><span class="pln">http</span><span class="pun">:</span><span class="com">//myproxy:3128/ vagrant plugin install vagrant-proxyconf</span><span class="pln">
</span><span class="typ">Installing</span><span class="pln"> the </span><span class="str">'vagrant-proxyconf'</span><span class="pln"> plugin</span><span class="pun">.</span><span class="pln"> </span><span class="typ">This</span><span class="pln"> can take a few minutes</span><span class="pun">...</span><span class="pln">
</span><span class="typ">Installed</span><span class="pln"> the plugin </span><span class="str">'vagrant-proxyconf (1.4.0)'</span><span class="pun">!</span><span class="pln">
$ </span></code></pre>
<h3 id="vagrantfile">Vagrantfile</h3>
<p>こんな感じでproxyの設定を書いてください。</p>
<pre class="prettyprint prettyprinted"><code class="language-ruby"><span class="pln">VAGRANTFILE_API_VERSION </span><span class="pun">=</span><span class="pln"> </span><span class="str">"2"</span><span class="pln">
</span><span class="typ">Vagrant</span><span class="pun">.</span><span class="pln">configure</span><span class="pun">(</span><span class="pln">VAGRANTFILE_API_VERSION</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">do</span><span class="pln"> </span><span class="pun">|</span><span class="pln">config</span><span class="pun">|</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="typ">Vagrant</span><span class="pun">.</span><span class="pln">has_plugin</span><span class="pun">?(</span><span class="str">"vagrant-proxyconf"</span><span class="pun">)</span><span class="pln">
config</span><span class="pun">.</span><span class="pln">proxy</span><span class="pun">.</span><span class="pln">http </span><span class="pun">=</span><span class="pln"> </span><span class="str">"http://myproxy:3128/"</span><span class="pln">
config</span><span class="pun">.</span><span class="pln">proxy</span><span class="pun">.</span><span class="pln">no_proxy </span><span class="pun">=</span><span class="pln"> </span><span class="str">"localhost,127.0.0.1,.example.com"</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
</span><span class="com"># ... other stuff</span><span class="pln">
</span><span class="kwd">end</span></code></pre>
<h3 id="dockerを使う">dockerを使う</h3>
<p><code>vagrant up</code>でVagrantを起動したら、dockerを使ってみてください。</p>
<pre class="prettyprint prettyprinted"><code><span class="pln">vagrant@vagrant</span><span class="pun">-</span><span class="pln">ubuntu</span><span class="pun">-</span><span class="pln">trusty</span><span class="pun">-</span><span class="lit">64</span><span class="pun">:~</span><span class="pln">$ sudo docker</span><span class="pun">.</span><span class="pln">io pull </span><span class="pun">-</span><span class="pln">t </span><span class="lit">14.04</span><span class="pln"> ubuntu
</span><span class="typ">Pulling</span><span class="pln"> repository ubuntu
ad892dd21d60</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Download</span><span class="pln"> complete
vagrant@vagrant</span><span class="pun">-</span><span class="pln">ubuntu</span><span class="pun">-</span><span class="pln">trusty</span><span class="pun">-</span><span class="lit">64</span><span class="pun">:~</span><span class="pln">$ </span></code></pre>
<p><code>http_proxy</code>を設定すればhttpsの通信もそれを使うようです。また、<code>no_proxy</code>も使えると思いますので、プライベートのレポジトリがあっても大丈夫ですね。 <br>
<a href="https://github.com/dotcloud/docker/blob/master/registry/registry.go">docker/registry/registry.go</a> <br>
<a href="https://github.com/dotcloud/docker/blob/master/registry/auth.go">docker/registry/auth.go</a> <br>
<a href="http://golang.org/src/pkg/net/http/transport.go">The Go Programming Language Source file src/pkg/net/http/transport.go</a></p>
<p>Happy proxy life!!</p>
<p><a href="http://www.docker.com/legal/marks_and_logos/">Docker logo and marks usage</a></p>Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-57305319146474905512014-09-22T07:07:00.000+09:002014-09-22T07:10:32.614+09:00Ruby Hiroba 2014に参加してきた<div id="content">
<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">概要</h3>
<div class="outline-text-3" id="text-1">
<ul>
<li>日時: 2014/9/21(日) 09:15~17:00
</li>
<li>会場: CyberAgent, Inc. SHIBUYA MARK CITY WEST 13th floor
</li>
<li>ホームページ: <a href="http://rubyhiroba.org/2014/">rubyhiroba.org/2014/</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">全体感想</h3>
<div class="outline-text-3" id="text-2">
<p>今回、初めて、Ruby関連のイベントに参加しました。
RubyKaigi2014の一連の会議ということで、Rubyコミッタのかたもいらっしゃって、
Ruby愛を感じました。(RubyKaigiでそうとうお疲れだったのだと思いますが。)
</p>
<p>
友人から地域コミュニティいったらというおすすめもらったので、
その視点でもいろいろ見ていました。
さすがに遠くて難しいですが、toRuby, guRubyの出張版でなんとなく感じがつかめました。
地域的には<a href="http://qwik.jp/tokyurb/">tokyu.rb</a>が家から近くて、良さそうだと思いました。
(ということで、時間があえば次回とかに参加しようかと思っています。ML登録しました)
</p>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">自分の発表</h3>
<div class="outline-text-3" id="text-3">
<p>他のかたのLT見てたら、自分もしてみたくなり、急遽スライド作りました。
内容がうすいものでしたが、興味をもっていただければ幸いです。
このLTのgemは<a href="https://github.com/otahi/pacproxy">github/otahi/pacproxy</a>にあります。
<iframe src="//www.slideshare.net/slideshow/embed_code/39335258" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="https://www.slideshare.net/HiroshiOta2/ruby-hiroba-2014-pacproxyotahi" title="pacproxy - Ruby hiroba 2014" target="_blank">pacproxy - Ruby hiroba 2014</a> </strong> from <strong><a href="http://www.slideshare.net/HiroshiOta2" target="_blank">Hiroshi Ota</a></strong> </div>
</p>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">他の発表?などの感想など</h3>
<div class="outline-text-3" id="text-4">
<p>あんまりメモできていないのと、そろそろ朝ご飯作らないといけない時間なので、
すみません。。
</p>
</div>
<div id="outline-container-4-1" class="outline-4">
<h4 id="sec-4-1">guRuby</h4>
<div class="outline-text-4" id="text-4-1">
<p><a href="http://www.amazon.co.jp/dp/4048687158">メタプログラミングRuby</a>の読書会ということで、本を持っていなかったので、
電子書籍で<a href="https://pragprog.com/book/ppmetr2/metaprogramming-ruby-2">Metaprogramming Ruby 2: Program Like the Ruby Pros</a>を購入して臨みました。
</p>
<p>
`method_missing` のところを呼んで、irbでうってという形式で、
わからないところを共有して、という感じで一歩一歩やっていきました。
</p>
<p>
method_missingはRubyを始めた当初に出会って、混乱の窮地に陥ったことがあったので、
感慨深かったです。(<a href="https://github.com/spotify/rspec-dns/blob/master/lib/rspec-dns/have_dns.rb">rspec-dnsというgemのコード</a>で)
</p>
</div>
</div>
<div id="outline-container-4-2" class="outline-4">
<h4 id="sec-4-2">toRuby</h4>
<div class="outline-text-4" id="text-4-2">
<p>こちらは<a href="http://tatsu-zine.com/books/naruhounix">なるほどUnixプロセス ― Rubyで学ぶUnixの基礎</a>の読書会ということで、
こちらも電子書籍で早速購入しました。
</p>
<p>
ここでは、シグナルハンドリングのところを読みながら、理解を深めていきました。
</p>
<p>
LTで話した<a href="https://github.com/otahi/pacproxy">pacproxy</a>というのを作っているので、とても参考になるところでした。
ちゃんとしたUNIXのサービスを作るのには、きっても切れないところですね。
</p>
</div>
</div>
<div id="outline-container-4-3" class="outline-4">
<h4 id="sec-4-3">LTthon</h4>
<div class="outline-text-4" id="text-4-3">
<p>
多くありすぎて、ぜんぜんかけません。。
</p>
<p>
多様性のあるすばらしいLTthonだったと思います。
LTthonということで、長時間お疲れ様でした。
</p>
</div>
</div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-44168670685680391082014-06-29T08:57:00.000+09:002014-07-01T07:01:50.213+09:00hbstudy #55 「Docker勉強会」リターンズ に参加してきた<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">概要 </h3>
<div class="outline-text-3" id="text-1">
<ul>
<li>
日時: 2014/6/27(金) 19:00~21:30
</li>
<li>
会場: ハロー会議室 新宿 C+D
</li>
<li>
スピーカー: 中井悦司さん <a href="https://twitter.com/enakai00">@enakai00</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">当日資料 </h3>
<div class="outline-text-3" id="text-2">
<ul>
<li>
<a href="http://www.slideshare.net/enakai/docker-34526343">Dockerクイックツアー</a>
</li>
<li>
<a href="http://www.slideshare.net/enakai/docker-34668707">Dockerを支える技術</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">他のかたのまとめなど </h3>
<div class="outline-text-3" id="text-3">
<ul>
<li>
<a href="http://togetter.com/li/685683">togetterまとめ</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">感想 </h3>
<div class="outline-text-3" id="text-4">
<p>最近は、Dockerについて、多く情報をInputして、自分の中でイメージを構築しようとしています。(英語とかの多聴に近いかも。)
そのなかで、今回の勉強会での気づきは、DockerがLXCなどの他のシステムと違うのは
さまざまな既存の技術を「一連の仕組み」としているところだな ということです。
</p>
<p>
これまでのLinux上の技術を組み合わせて、
CPU、メモリ、ネットワーク、ストレージなど一括して切り出せるようにしているので、
人によって、かゆいところが違ってくるのだと思います。
</p>
<p>
また、サーバの種類によって、Dockerを使ったほうがよいか、否かがかわってくると思います。
Dockerの技術はデバイスを隠蔽しているので、直接ハードを扱いたい場合などには利用できないのと、
DBもやり方によっては、実現できるのかもしれませんが、あまりメリットが多くないのかな と思います。
なので、実際にはアプリケーションサーバなどの状態を持たないサーバをDockerで
構築するのが最初になるのかな と思いました。
</p>
<p>
ただ、自分の興味のあるネットワーク周辺については、Dockerの思想からはずれるとことがあるかもしれませんが、
いろいろ小細工していきたいな と思いました。
(今回、@enakai00 さんがネットワーク周りの操作をデモでやっていただいて、なんとなくイメージが持てました。)
</p>
</div>
</div>
<div id="outline-container-5" class="outline-3">
<h3 id="sec-5">内容メモ </h3>
<div class="outline-text-3" id="text-5">
<p>
ちょこっとしたまとめです。スライド見るとだいたい書いてあるので。。
</p>
</div>
<div id="outline-container-5.1" class="outline-4">
<h4 id="sec-5.1">Docker入門(Docker クイックツアー) </h4>
<div class="outline-text-4" id="text-5.1">
<ul>
<li>
コンテナの仕組み
<ul>
<li>
Linux上でのコンテナは、昔(といっても、そんなに昔ではない)からある技術を組み合わせ
</li>
<li>
ホスト側から、ひとまとまりにして、切り離せる
</li>
</ul>
</li>
<li>
Dockerの仕組み
<ul>
<li>
これまで実現するためには、一生懸命組み合わせないといけなかったものを簡単にできるようにしたもの
</li>
<li>
インターネット上のレポジトリにコンテナをイメージを置き、利用できるようにしている
</li>
<li>
ホスト側の環境がある程度そろっていると、コンテナの動きもかわらないようにできる
</li>
</ul>
</li>
<li>
Docekrを動かしてみる
<ul>
<li>
デモでいろいろ見せていただきました
<ul>
<li>
ちゃんとFedoraの上で、CentOSのtracerouteも動きました
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-5.2" class="outline-4">
<h4 id="sec-5.2">Docker を支える技術 </h4>
<div class="outline-text-4" id="text-5.2">
<ul>
<li>
Linuxコンテナの実態
<ul>
<li>
namespaceを使っていろいろなリソースを分離している
</li>
<li>
コンテナ内部からは見えないが、ホスト側からは見える(操作できる)
</li>
<li>
コンテナではpid 1のプロセスが落ちると、コンテナとして落ちる
</li>
<li>
ネットワークのnamespeceCentOS 6.4とかだと使えない-> 6.5では入っている)
</li>
<li>
これまでaufs依存だったが、Device Mapper Thin-Provisioningという仕組みが入って、aufs依存しなくなった
<ul>
<li>
Red Hatさんが作り込んだようです
</li>
</ul>
</li>
<li>
ホスト側からは、いろいろ設定が変更できる
<ul>
<li>
Docekrでは固定でも、そとから変更すれば変更できる
<ul>
<li>
ただし、Dockerの思想とは反するのと、ホストによって振る舞いが違ってくることもある
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-38527118535946364532014-06-23T07:04:00.001+09:002014-07-01T10:12:17.747+09:00JTF2014に参加してきた<div id="outline-container-1" class="outline-2">
<div class="outline-text-2" id="text-1">
<p>
JTF2014に参加してきたので、メモを残します。
もうご飯作る時間になってしまったので、ここまでです。。
</p>
</div>
<div id="outline-container-1.1" class="outline-3">
<h3 id="sec-1.1">概要 </h3>
<div class="outline-text-3" id="text-1.1">
<ul>
<li>
2014/06/22 (日) 10:00-18:00
</li>
<li>
産業技術大学院大学
</li>
<li>
<a href="http://2014.techfesta.jp/p/program.html">プログラム</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.2" class="outline-3">
<h3 id="sec-1.2">他のかたのまとめなど </h3>
<div class="outline-text-3" id="text-1.2">
<p><a href="http://2014.techfesta.jp/2014/06/blog-post_27.html">主催者:JTF2014の資料・記事等をまとめ</a>
<p><a href="http://togetter.com/li/533842">togetter</a>
</p>
</div>
</div>
<div id="outline-container-1.3" class="outline-3">
<h3 id="sec-1.3">感想 </h3>
<div class="outline-text-3" id="text-1.3">
</div>
<div id="outline-container-1.3.1" class="outline-4">
<h4 id="sec-1.3.1">Serverspec のような「成功」を成し遂げるには他者を巻き込む </h4>
<div class="outline-text-4" id="text-1.3.1">
<ul>
<li>
宮下 剛輔さん(@gosukenator)
</li>
<li>
発表資料: <a href="https://speakerdeck.com/mizzy/serverspec-at-jtf2014">Serverspec at JTF2014</a>
</li>
</ul>
<p>Serverspecのmizzyさんの話でしたが、とても楽しく、また、参考になりました。
(というか、参考にしてがんばります!!)
構成管理+仮想化+テスト+CIやGithubなどの環境の変化があったところに、
Serverspecがぴったりとはまったということでした。
(あと、@naoya<sub>ito</sub> さんに広めてもらうことが、日本での普及の鍵だったそうです。。)
その土台には、プロダクトを「KISS」にする、他者を巻き込みやすいようにする というようなことを
やり続ける ということがある。と。
たしかに、自分がコミットしたOSSは愛着がわきますね。
</p>
<p>
<a href="http://serverspec.org/">Serverspec</a>と<a href="https://github.com/spotify/rspec-dns">rspec-dns</a>にインスパイアされて<a href="https://github.com/otahi/lbspec">Lbspec</a>というものを作っているので、
今回の話を参考にして、がんばっていきたいと思います。
</p>
</div>
</div>
<div id="outline-container-1.3.2" class="outline-4">
<h4 id="sec-1.3.2">docker関連 </h4>
<div class="outline-text-4" id="text-1.3.2">
<ul>
<li id="sec-1.3.2.1">dockerがいま暑い <br/>
<ul>
<li>
関連セッション
<ul>
<li>
秋吉 真衣さん(@MaiMai816)、遠藤博樹さん: <a href="http://2014.techfesta.jp/p/program.html#specialnote2">Dockerのエンタープライズ開発での活用モデル</a>
</li>
<li>
坂部 広大さん(@koudaiii)
<ul>
<li>
発表資料: <a href="http://www.slideshare.net/ssusera9d121/dockerjtf2014">Docker ― 俺の環境ではその不具合は起きないを撲滅する</a>
</li>
</ul>
</li>
<li>
荒井 康宏さん(@kimotuki): <a href="http://2014.techfesta.jp/p/program.html#d52">Dockerで考えるマルチクラウドの未来</a>
</li>
</ul>
</li>
</ul>
<p>JTF2014の中心はdockerだったように思います。
docker関連のセッションの数も多く、また、セッションには立ち見がでるほど人がきていました。
ただ、会場では「本番運用」までを期待していたものの、docker入門の部分が大きく、
ちょっと物足りなかったかかな と思います。
入門も必要なところなので、セッションごとの役割分担ができていたらよかったですね。
そもそも、本番運用までやっているところもほとんどないと思うので、自分で開拓するしかないですね。きっと。
</p>
</li>
<li id="sec-1.3.2.2">dockerは「秘伝のたれ」を取り除く銀の弾丸ではない <br/>
これまでのサーバ構築が職人の「秘伝のたれ」で構成されていることに対するカウンターとして、
dockerでコンテナ作って、CI回して・・・というのをやっているのだと思うのですが、
dockerコンテナに「秘伝のたれ」が入り込む余地はあって、
結局、ある「ゴールデンコンテナ」からの子孫を大事に守り続けることになるかもしれない
という風に思いました。
ただ、hyper visor上のVMに比べたら、生成、消滅を繰り返してやれる分、
CIを速く回していけるので、思いました。
</li>
</ul>
</div>
</div>
<div id="outline-container-1.3.3" class="outline-4">
<h4 id="sec-1.3.3">DMM.comさんはお客様にコンテンツを速く提供するためには、「なんでもする」 </h4>
<div class="outline-text-4" id="text-1.3.3">
<ul>
<li>
発表資料: <a href="http://tsuchinoko.dmmlabs.com/?p=1296">DMMツチノコブログ: July Tech Festa 2014で発表してきました</a>
</li>
</ul>
<p><a href="http://tsuchinoko.dmmlabs.com/">DMM ツチノコブログ</a>で最近情報発信を活発にされているDMM.comさんのインフラ(ネットワーク周り)の
話をお聞きすることできました。(このようにDMM.comさんが話をするのは10年ぶりだそうです。)
お客様にコンテンツを速く提供するためには、「なんでもする」という話がとても印象に残りました。
「稟議も即決」「自分たちの責任でそのときのベストと思うシステムで構成する」というところが
とてもかっこよかったです。
これからの情報発信にも期待です。
</p>
</div>
</div>
<div id="outline-container-1.3.4" class="outline-4">
<h4 id="sec-1.3.4">フロントエンドでビルドツール特にgulpが活躍 </h4>
<div class="outline-text-4" id="text-1.3.4">
<ul>
<li>
河村 奨さん(@cognitom)
</li>
<li>
発表資料: <a href="https://speakerdeck.com/cognitom/front-end-build-tools-jtf2014-tokyo">Front-end Build Tools - JTF2014 Tokyo</a>
</li>
</ul>
<p>自分とはあまり関係ないところも聴いてみようと思って、このセッションを聴いたのですが、
デザインのところでもだいぶ自動化で環境が変わってきているな と思いました。
</p>
<p>
デザイナーがやるべきところに注力できるようにする ツールが進化しているというのがとてもおもしろかったです。
あとでもう一度、調べてみようと思います。
</p>
</div>
</div>
<div id="outline-container-1.3.5" class="outline-4">
<h4 id="sec-1.3.5">主催者、スポンサーに感謝 </h4>
<div class="outline-text-4" id="text-1.3.5">
<p>とても濃いセッションが多くあり、とても楽しく1日すごせました。
懇親会はでられなかったのですが、事前に申し込むと1000円以下で、
おいしい昼食と飲み物とお菓子がいただけるという。。
それだけで1000円の価値があります。。
ありがとうございました。
</p>
</div>
</div>
</div>
</div>Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-3538063028582816422014-03-17T11:29:00.001+09:002014-03-17T11:44:56.793+09:00LoadBalancerもRSpecで定義: Lbspec<p>LoadBalancerのspecは、あるリクエストに対して、期待するレスポンスを返すか という表現では不十分である。実際にnodeにリクエストが到達するか ということを表現しなければいけない。そこで、LbspecというRSpecのMatcherを作った。これを使うと、LoadBalancerがnodeにリクエストを転送することをRSpecの書式で表現できる。</p>
<p>これでLoadBalancerもRSpecで定義できるはず。。</p><div class="se-section-delimiter"></div>
<h2 id="リンク">リンク</h2>
<ul>
<li><a href="https://github.com/otahi/lbspec">github/otahi/lbspec</a></li>
<li><a href="http://rubygems.org/gems/lbspec">rubygems/gems/lbspec</a></li>
</ul><div class="se-section-delimiter"></div>
<h2 id="installation">Installation</h2>
<p>Gemfileに書く:</p>
<pre><code>gem 'lbspec'
</code></pre>
<p>bundlerを実行する:</p>
<pre><code>$ bundle
</code></pre>
<p>もしくはgem installする:</p>
<pre><code>$ gem install lbspec
</code></pre>
<h2 id="requires">Requires</h2>
<ul>
<li>nodeにsshで入れる(~/.ssh/configなどで定義されている)</li>
</ul>
<h2 id="usage">Usage</h2>
<p>こんな感じで <code>spec_helper.rb</code>で require <code>lbspec</code> する:</p>
<pre class="prettyprint prettyprinted" style=""><code class="language-ruby"><span class="com"># spec/spec_helper.rb</span><span class="pln">
</span><span class="kwd">require</span><span class="pln"> </span><span class="str">'rspec'</span><span class="pln">
</span><span class="kwd">require</span><span class="pln"> </span><span class="str">'lbspec'</span></code></pre>
<p>あとはSpecを記述する:</p>
<pre class="prettyprint prettyprinted" style=""><code class="language-ruby"><span class="pln">require_relative </span><span class="str">'spec_helper'</span><span class="pln">
describe </span><span class="str">'vhost_a'</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
it </span><span class="pun">{</span><span class="pln"> should transfer</span><span class="pun">(</span><span class="str">'node_a'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
describe </span><span class="str">'vhost_b'</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
it </span><span class="pun">{</span><span class="pln"> should transfer</span><span class="pun">([</span><span class="str">'node_b'</span><span class="pun">,</span><span class="str">'node_c'</span><span class="pun">])</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
describe </span><span class="str">'vhost_c:80'</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
it </span><span class="pun">{</span><span class="pln"> should transfer</span><span class="pun">([</span><span class="str">'node_b'</span><span class="pun">,</span><span class="str">'node_c'</span><span class="pun">]).</span><span class="pln">port</span><span class="pun">(</span><span class="lit">80</span><span class="pun">)</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
describe </span><span class="str">'vhost_c:80'</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
it </span><span class="pun">{</span><span class="pln"> should transfer</span><span class="pun">([</span><span class="str">'node_b'</span><span class="pun">,</span><span class="str">'node_c'</span><span class="pun">]).</span><span class="pln">port</span><span class="pun">(</span><span class="lit">53</span><span class="pun">).</span><span class="pln">udp </span><span class="pun">}</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
describe </span><span class="str">'vhost_c:80'</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
it </span><span class="pun">{</span><span class="pln"> should transfer</span><span class="pun">(</span><span class="str">'node_c'</span><span class="pun">).</span><span class="pln">http</span><span class="pun">.</span><span class="pln">path</span><span class="pun">(</span><span class="str">'/test/'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
describe </span><span class="str">'vhost_c:443'</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
it </span><span class="pun">{</span><span class="pln"> should transfer</span><span class="pun">([</span><span class="str">'node_b'</span><span class="pun">,</span><span class="str">'node_c'</span><span class="pun">]).</span><span class="pln">port</span><span class="pun">(</span><span class="lit">80</span><span class="pun">).</span><span class="pln">https</span><span class="pun">.</span><span class="pln">path</span><span class="pun">(</span><span class="str">'/test/'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
</span><span class="kwd">end</span></code></pre>
<h2 id="how-it-works">How it works</h2>
<h3 id="transfer">#transfer</h3>
<ol>
<li>nodeにsshでログインする</li>
<li>nodeでprobeをキャプチャーする</li>
<li>probeを使ってリクエストを投げる(or パケットを投げる)</li>
<li>nodeにprobeが来ているかで判定する</li>
</ol>
<p>ここで、nodeではコマンドを実行しているだけなので、nodeに特別なプログラムを入れる必要はない。(ngrepとかtcpdumpが簡単かもしれないが、access.logをgrepするのほうが簡単かもしれない。)</p>
<p><img src="https://raw.github.com/otahi/lbspec/master/images/transfer_overview.gif" alt="#tranfer works" title=""></p>
<h2 id="configuration">Configuration</h2>
<h3 id="transfer-1">#transfer</h3>
<p>キャプチャとリクエストを投げる方法はカスタマイズできる。なので、キャプチャ方法を定義して、自分で投げたいリクエストを生成できる。</p>
<pre class="prettyprint prettyprinted" style=""><code class="language-ruby"><span class="typ">RSpec</span><span class="pun">.</span><span class="pln">configuration</span><span class="pun">.</span><span class="pln">lbspec_capture_command </span><span class="pun">=</span><span class="pln">
</span><span class="kwd">lambda</span><span class="pln"> </span><span class="kwd">do</span><span class="pln"> </span><span class="pun">|</span><span class="pln">port</span><span class="pun">,</span><span class="pln"> prove</span><span class="pun">|</span><span class="pln">
port_str </span><span class="pun">=</span><span class="pln"> port </span><span class="pun">></span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">?</span><span class="pln"> </span><span class="str">"port #{port}"</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">''</span><span class="pln">
</span><span class="str">"sudo ngrep #{prove} #{port_str} | grep -v \"match:\""</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
</span><span class="typ">RSpec</span><span class="pun">.</span><span class="pln">configuration</span><span class="pun">.</span><span class="pln">lbspec_https_request_command </span><span class="pun">=</span><span class="pln">
</span><span class="kwd">lambda</span><span class="pln"> </span><span class="kwd">do</span><span class="pln"> </span><span class="pun">|</span><span class="pln">addr</span><span class="pun">,</span><span class="pln"> port</span><span class="pun">,</span><span class="pln"> path</span><span class="pun">,</span><span class="pln"> prove</span><span class="pun">|</span><span class="pln">
uri </span><span class="pun">=</span><span class="pln"> </span><span class="str">'<a href="https://" target="_blank" rel="noreferrer" style="cursor:help;display:inline !important;">https://</a>'</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">"#{addr}:#{port}#{path}?#{prove}"</span><span class="pln">
system</span><span class="pun">(</span><span class="str">"curl -o /dev/null -sk #{uri}"</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">end</span></code></pre>
<p>カスタマイズできるのは次のコマンド。</p>
<ul>
<li><code>lbspec_capture_command</code> with <code>|port, prove|</code></li>
<li><code>lbspec_udp_request_command</code> with <code>|addr, port, prove|</code></li>
<li><code>lbspec_tcp_request_command</code> with <code>|addr, port, prove|</code></li>
<li><code>lbspec_http_request_command</code> with <code>|addr, port, path, prove|</code></li>
<li><code>lbspec_https_request_command</code> with <code>|addr, port, path, prove|</code></li>
</ul>Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-56495939611228449022014-02-23T07:08:00.001+09:002014-02-23T07:08:56.093+09:00Trema Day #5 に参加してきた<div id="content">
<div id="outline-container-1" class="outline-2">
<div class="outline-text-2" id="text-1">
<p>
Trema Day #5に参加してきたので、メモしておく。
</p>
</div>
<div id="outline-container-1.1" class="outline-3">
<h3 id="sec-1.1">感想 </h3>
<div class="outline-text-3" id="text-1.1">
<p>TremaはOSSでがんばっている。
小さいところでも貢献したいと思う。(まずはVagrant周りとかでも)
</p>
<p>
今回は懇親会にも参加できて、楽しかった。
ネットワーク屋が多いが、いろんな分野にまたがっているので、幅があって楽しい。
</p>
</div>
</div>
<div id="outline-container-1.2" class="outline-3">
<h3 id="sec-1.2">概要 </h3>
<div class="outline-text-3" id="text-1.2">
<ul>
<li>
2014/02/22 (土) 13:00-17:00
</li>
<li>
KDDIウェブコミュニケーションズ CloudCoreセミナールーム
</li>
<li>
<a href="http://atnd.org/event/E0024377">atnd</a>
</li>
<li>
<a href="http://www.ustream.tv/channel/yasuhito?utm_campaign=t.co&utm_source=ustre.am%2FSXK7&utm_medium=social&utm_content=20140221200222">ust</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.3" class="outline-3">
<h3 id="sec-1.3">他のかたのまとめなど </h3>
<div class="outline-text-3" id="text-1.3">
<ul>
<li>
<a href="http://togetter.com/li/633286"> togetter Tremaday#5 まとめ</a>
</li>
</ul>
</div>
</div>
<hr></hr>
<div id="outline-container-1.4" class="outline-3">
<h3 id="sec-1.4">■意外に違う Trema と Trema-Edge </h3>
<div class="outline-text-3" id="text-1.4">
<ul>
<li>
大芝さん
</li>
<li>
<a href="https://github.com/trema/trema-edge/">Trema-Edge</a>使ってみてTremaと違うところ
<ul>
<li>
Pio, Sinatra が手強い
</li>
<li>
不具合系の回避策とか(2014/02/22時点)
</li>
</ul>
</li>
<li>
Trema Edgeとは
<ul>
<li>
OpenFlow1.3
<ul>
<li>
OpenFlow1.3の違いは扱わない
</li>
</ul>
</li>
</ul>
</li>
<li>
変わっていないところ
<ul>
<li>
起動
<ul>
<li>
違いなし
</li>
</ul>
</li>
<li>
ハンドラ定義
<ul>
<li>
違いなし
<ul>
<li>
ポート情報の一覧の取得のところFeaturesRequest/Replyでとれなくなっている
</li>
</ul>
</li>
</ul>
</li>
<li>
タイマー定義とかメッセージ創始とか
<ul>
<li>
違いなし
<ul>
<li>
フロー追加はoptionに変更あり(OpenFlow1.3関連?)
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
変わっているところ
<ul>
<li>
パケットインのときのパケット情報取得
<ul>
<li>
マッチ条件の名前が変わっている
</li>
</ul>
</li>
<li>
PortStatusのポート情報受け取り
<ul>
<li>
PortStatusがPortクラスを継承している
</li>
</ul>
</li>
<li>
PacketOutでデータのみのパケット出力
<ul>
<li>
PacketInに指定していないとエラーになる
</li>
</ul>
</li>
<li>
Sinatraとの連携しようとしたときの振る舞い
<ul>
<li>
TremaのLoggerがSinatraのモジュールのLoggerとバッティングしている
</li>
<li>
エラーがでない
</li>
</ul>
</li>
<li>
Trema::Pioと連携
<ul>
<li>
Trema-EdgeがObjectクラスのところで修正している
</li>
<li>
array?がtrueとかになってしまう
</li>
<li>
ワークアラウンドするとarpとかだせることまで確認
</li>
</ul>
</li>
<li>
便利メソッドの有無
<ul>
<li>
<code>send_flow_mod_add</code> など基本的なところくらいしかない
</li>
<li>
port.up?とかport.down?とかできない
</li>
</ul>
</li>
<li>
Statsメッセージについて
<ul>
<li>
マルチパートメッセージになった
</li>
</ul>
</li>
<li>
OpenFlow1.3関連でいろいろ変わっている
<ul>
<li>
割愛
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div id="outline-container-1.4.1" class="outline-4">
<h4 id="sec-1.4.1">質疑応答 </h4>
<div class="outline-text-4" id="text-1.4.1">
<ul>
<li>
Q. Trema-Edgeのテスト用のスイッチとか、ダンプフローとかどうなっている?
</li>
<li>
A. 会社ではOpenFlowスイッチがあるので、あまり使っていない
</li>
<li>
C. sugyoさんがやりかたがあるらしいという情報がある
</li>
<li>
C. なんかやったらできる記憶がある
</li>
<li>
Q. グループテーブルっていまも使える?
</li>
<li>
A. あとで調べる(大山さんがあとでまとめていただける とのこと)
</li>
</ul>
</div>
</div>
</div>
<hr></hr>
<div id="outline-container-1.5" class="outline-3">
<h3 id="sec-1.5">■ <code>of_protocol</code> で遊んでみた </h3>
<div class="outline-text-3" id="text-1.5">
<ul>
<li>
近藤さん(<code>@Eishun_Kondoh</code>)
</li>
<li>
資料
<ul>
<li>
<a href="http://www.slideshare.net/ssuser6d53d5">of-protocolで遊んでみた</a>
</li>
</ul>
</li>
<li>
<a href="http://flowforwarding.org/">of-protocol</a>とは?
<ul>
<li>
Erlangで実装
</li>
<li>
flowforwading.orgのなかのerlangな人たちが作ったLINCというスイッチのパーサ
</li>
<li>
使えるバージョンは1.2、1.3のようだ
</li>
<li>
モジュール
<ul>
<li>
of<sub>protocol</sub>
<ul>
<li>
ofp<sub>v4</sub><sub>utilsとか使うとなんかできる感じ</sub>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
使いかた(こんな感じ)
<ul>
<li>
<code>of_protocol:encode(#ofp_message)</code>
</li>
<li>
<code>of_protocol:decode(BinaryData)</code>
</li>
</ul>
</li>
<li>
Flower?ベースで作ってみた
<ul>
<li>
3.5klocくらい
</li>
<li>
Tremaにコネクトできた
</li>
</ul>
</li>
<li>
遊ぶのにはよいと思う。
</li>
</ul>
</div>
<div id="outline-container-1.5.1" class="outline-4">
<h4 id="sec-1.5.1">質疑応答 </h4>
<div class="outline-text-4" id="text-1.5.1">
<ul>
<li>
Q. どこら辺を参考にしている?
</li>
<li>
A. <a href="https://github.com/FlowForwarding/LINC-Switch">LINC-Switch</a>を参考にした
</li>
<li>
A. <a href="https://github.com/travelping/flower">FlowER</a>を参考にした
</li>
<li>
C. 半年コードを読んで、3ヶ月かけて実装したような感じ
</li>
<li>
C. Erlangの本(飛行機本)にはいろいろ書かれている
</li>
<li>
C. <a href="http://elixir-lang.org/">Elixir</a>だとErlangのVMでRubyっぽい
</li>
<li>
C. ElixirだとRubyとかのように文法定義できるかんじ
</li>
<li>
Q. Erlangのメリットは?
</li>
<li>
A. VMの上で動いていて、他のマシンの上にあるVMに移せたりする
</li>
<li>
A. 小さいスレッドが作れる
</li>
<li>
A. 横方法にスケールアウトすることができる
</li>
<li>
Q. 構成図の四角はプロセス?
</li>
<li>
A. 違う。もっとごちゃごちゃしている
</li>
</ul>
</div>
</div>
</div>
<hr></hr>
<div id="outline-container-1.6" class="outline-3">
<h3 id="sec-1.6">■Tremaをもっと手軽で簡単に。 </h3>
<div class="outline-text-3" id="text-1.6">
<ul>
<li>
大山さん(@user<sub>localhost</sub>)
</li>
<li>
素人がTremaを使うにあたって
<ul>
<li>
一般の声
<ul>
<li>
Trema 覚えるの大変そう
</li>
<li>
やりたいことは簡単なのにやることが多い
</li>
</ul>
</li>
<li>
呪文が多い
</li>
<li>
そこで
<ul>
<li>
<a href="https://github.com/gree/observed">Observed</a>
<ul>
<li>
他のシステムと連携するシステム
</li>
</ul>
</li>
<li>
Observedが仕組み
<ul>
<li>
外部システム連携は各プラグインが肩代わり
</li>
</ul>
</li>
</ul>
</li>
<li>
Trema−Gmail連携
<ul>
<li>
Tremaから情報をとって、Gmailに送る
<ul>
<li>
observe(見るところ).then(やること) という感じでかくと
</li>
</ul>
</li>
</ul>
</li>
<li>
HTTP-Trema連携
<ul>
<li>
監視しておいて落ちたら、他のサーバに振るテーブルにする
</li>
</ul>
</li>
<li>
Pluginはいくつかある
</li>
</ul>
</li>
</ul>
</div>
<div id="outline-container-1.6.1" class="outline-4">
<h4 id="sec-1.6.1">質疑応答 </h4>
<div class="outline-text-4" id="text-1.6.1">
<ul>
<li>
Q. 他のフレームワークは?それとの優位性は?
</li>
<li>
A. JavaでCamelがある。連携作業を並列にやれたり とか効率的にできるように。まだpluginが充実していない。
</li>
<li>
Q. メッセージングで使えるやつのメッセージングツールとの差は?
</li>
<li>
A. fluentdはログに特化している
</li>
<li>
A. Observedはなんでも対応できるフレームワーク
</li>
<li>
Q. Observedは社内でやっているの?
</li>
<li>
A. 完全に個人のレベルでやっている
</li>
<li>
C. 呪文が多すぎる?について、視点が複数ある。サンプルコードが恣意的。
</li>
<li>
C. 共通化できると連携処理はかける
</li>
<li>
C. フレームワークを1つ覚えればいろいろできる
</li>
<li>
Q. 取りこぼしが起こるのか?syslogのように取りこぼしがあるのか?
</li>
<li>
A. 他のシステムに依存するところ。
</li>
<li>
Q. どれくらいTremaに対応しているか?
</li>
<li>
Q. なにができているか?
</li>
<li>
A. statをとる、flowを変更する というレベルはある。
</li>
<li>
C. Trema本体からそとに提供する仕組みがあるといいが、hookしてレポートする仕組みがあれば十分
</li>
</ul>
</div>
</div>
</div>
<hr></hr>
<div id="outline-container-1.7" class="outline-3">
<h3 id="sec-1.7">■Go Deep </h3>
<div class="outline-text-3" id="text-1.7">
<ul>
<li>
千葉さん(@chibacchie)
<ul>
<li>
最近Rubyを勉強し始めた
</li>
</ul>
</li>
<li>
資料
<ul>
<li>
<a href="http://www.slideshare.net/chibayasunobu/go-deep-20140221-00">Go Deep</a>
</li>
</ul>
</li>
<li>
Tremaでコントローラを作るときの課題
<ul>
<li>
受信したところからパケットパースするとるのは面倒だ
</li>
<li>
Rubyでパケットパーサが欲しい
</li>
<li>
libwireshark を使って、rubyに返す
</li>
<li>
ruby-wiresharkを作った
</li>
<li>
wiresharkの対応している分だけメソッドができる
</li>
<li>
まだ公開できるレベルではないが、公開できるようになったら公開する
</li>
</ul>
</li>
</ul>
</div>
<div id="outline-container-1.7.1" class="outline-4">
<h4 id="sec-1.7.1">質疑応答 </h4>
<div class="outline-text-4" id="text-1.7.1">
<ul>
<li>
Q. wiresharkのバージョンが変わると変わる?
</li>
<li>
A. 変わる
</li>
<li>
Q. Packetはリアルタイムで見える?
</li>
<li>
A. 見える。pcapの機能である。
</li>
<li>
C. parserの仕事。パースする。treeを表示する。意味がわかる。の両方の機能
</li>
<li>
C. wiresharkが意味づけしてくれる
</li>
<li>
Q. IPアドレスとかはRubyのクラスにマッピングできる?
</li>
<li>
A. できる
</li>
<li>
C. wiresharkのラッピングがgemでなはないのであるとうれしい
</li>
</ul>
</div>
</div>
</div>
<hr></hr>
<div id="outline-container-1.8" class="outline-3">
<h3 id="sec-1.8">■[LT]エクルとリームなネットワーク機器テスト環境の実現 </h3>
<div class="outline-text-3" id="text-1.8">
<ul>
<li>
空閑さん
</li>
<li>
ネットワークテスタHWが持つ高精度な試験をSWツールに適用したい
</li>
<li>
チャレンジ
<ul>
<li>
アプローチ1: Userspace Dataplane
<ul>
<li>
ハードのDataplaneをソフトに持って行く
</li>
</ul>
</li>
<li>
アプローチ2: Timing API
<ul>
<li>
パケット送受信のタイミングをNICにオフロード
</li>
<li>
Userspaceからパケットごとに送信タイミングを指定
<ul>
<li>
NICにその送信タイミングにしたがって送出する実装を追加する
</li>
</ul>
</li>
<li>
8nsの精度
</li>
</ul>
</li>
<li>
2つの時間の指定方法
<ul>
<li>
Global(絶対的な指定)
</li>
<li>
Local(相対的な指定)
</li>
</ul>
</li>
<li>
アプローチ3: Programmable Interface
<ul>
<li>
Ethernet Character device
<ul>
<li>
echo "0000 FFFF"> /dev/ethpipe/0 などのようにする
</li>
<li>
リプレイできる
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
shell scriptで実装してみる
<ul>
<li>
shell scriptで書いて8nsの精度でやる
</li>
</ul>
</li>
<li>
アプリケーションとしては
<ul>
<li>
latency emuration
</li>
<li>
"Extreme" network testing
</li>
<li>
Generic purpose network IO
</li>
</ul>
</li>
<li>
オープンソースなので使える
</li>
</ul>
</div>
<div id="outline-container-1.8.1" class="outline-4">
<h4 id="sec-1.8.1">質疑応答 </h4>
<div class="outline-text-4" id="text-1.8.1">
<ul>
<li>
Q. ppsとかをはかるとかそういうことにも使えるのか?
</li>
<li>
A. 使える。jitterとかを作れる。1GのNICで500Mbpsとかもきれいにだせる。
</li>
<li>
C. 10Gも目指す。
</li>
<li>
Q. bash押しな理由は?
</li>
<li>
A. シンプル化という視点でいうと、cat コマンドというイメージだったから。
</li>
<li>
A. sedとかして、プロセスが重くなる。gnu grepだと6Gbpsくらいはできる
</li>
<li>
A. 高速化を考えるんらASCIIにせずに、binaryで扱うとよいと思う。
</li>
<li>
Q. NICからデータをユーザープログラムが受け取るのは割り込みベース?
</li>
<li>
A. データの割り込みは間引きする
</li>
<li>
Q. いろいろDPDKとかに? ポーリング vs 割り込み
</li>
<li>
A. 割り込みだからできない という話ではない。(バウンダリ周り)
</li>
</ul>
</div>
</div>
</div>
<hr></hr>
<div id="outline-container-1.9" class="outline-3">
<h3 id="sec-1.9">■[LT]VagrantとかTrema-edge switchとかデバッグツール </h3>
<div class="outline-text-3" id="text-1.9">
<ul>
<li>
sugyoさん(@sugyo<sub>now</sub>)
</li>
<li>
資料
<ul>
<li>
<a href="http://gist.io/9149764">http://gist.io/9149764</a>
</li>
</ul>
</li>
<li>
Vagrant でTremaのVMを作る
<ul>
<li>
trema/virtualbox-sdn
</li>
<li>
<a href="https://github.com/trema/virtualbox-sdn">https://github.com/trema/virtualbox-sdn</a>
</li>
<li>
chefをきれいにしたい
</li>
</ul>
</li>
<li>
trema-edge switch
<ul>
<li>
ryuのテスト
</li>
<li>
<a href="http://osrg.github.io/ryu/certification.html">http://osrg.github.io/ryu/certification.html</a>
</li>
<li>
Tremaはけっこういい点とっている
</li>
</ul>
</li>
<li>
tremaのデバッグツール
<ul>
<li>
shell script
</li>
<li>
/proc/とかを見て出している。
</li>
</ul>
</li>
</ul>
</div>
<div id="outline-container-1.9.1" class="outline-4">
<h4 id="sec-1.9.1">質疑応答 </h4>
<div class="outline-text-4" id="text-1.9.1">
<ul>
<li>
Q. Vagrantまわりで他になにか情報あるか?
</li>
<li>
A. あまりない
</li>
<li>
C. 作ってくれる人がいればぜひ
</li>
</ul>
</div>
</div>
</div>
<hr></hr>
<div id="outline-container-1.10" class="outline-3">
<h3 id="sec-1.10">■[LT]Tremaの作り直し </h3>
<div class="outline-text-3" id="text-1.10">
<ul>
<li>
高宮さん(@yasuhito)
</li>
<li>
Tremaの現状
<ul>
<li>
C
<ul>
<li>
37000行
</li>
<li>
test 30000行
</li>
</ul>
</li>
<li>
Ruby
<ul>
<li>
8500行
</li>
<li>
test 7000行
</li>
</ul>
</li>
<li>
合計
<ul>
<li>
80000行
</li>
</ul>
</li>
</ul>
</li>
<li>
目標
<ul>
<li>
できるところはRubyにしたい(メンテナンスのため)
</li>
</ul>
</li>
<li>
Cの部分の分類
<ul>
<li>
switch manager
<ul>
<li>
試しに実装した
<ul>
<li>
C: 3000行
</li>
<li>
Ruby : 200行
</li>
<li>
期間1週間
</li>
</ul>
</li>
</ul>
</li>
<li>
switch daemon
</li>
<li>
openflow ライブラリ
</li>
<li>
main loop
</li>
<li>
messanger
</li>
<li>
packet in filter
</li>
</ul>
</li>
<li>
試しに実装してみた
<ul>
<li>
switch manager
<ul>
<li>
C: 3000行
</li>
<li>
Ruby : 200行
</li>
<li>
期間1週間かかった
</li>
</ul>
</li>
</ul>
</li>
<li>
やることがたくさんある
</li>
<li>
方針?
<ul>
<li>
アプリからやる
</li>
<li>
Trema-Edgeから?
</li>
<li>
TremaでもRuby2.0以上にする予定
</li>
<li>
Tremaでも1.3をサポートする方向で。
</li>
<li>
がちでできるように性能は気にしてほしい
</li>
<li>
必要なスパイスは消さないように
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div id="postamble">
</div>
</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-9209401743390066862013-12-19T06:49:00.000+09:002013-12-19T10:22:46.244+09:00Vagrant 1.4.1でCentOS上でdockerを走らせてみる<div id="content">
<p>Vagrantが1.4.1になって、Redhat、CentOSでもdockerのproviderが動くようになったということで、試してみた。
</p>
<blockquote class="twitter-tweet" lang="ja"><p>Vagrant 1.4.1 has been released. Bug fixes with one big improvement: Docker provisioner works on RedHat guests! <a href="http://t.co/EmB5qlwpBa">http://t.co/EmB5qlwpBa</a></p>— Mitchell Hashimoto (@mitchellh) <a href="https://twitter.com/mitchellh/statuses/413373337889275904">2013, 12月 18</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">結果 </h3>
<div class="outline-text-3" id="text-1">
<p>とりあえず動かしてみることは簡単にできた。
</p>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">事前準備 </h3>
<div class="outline-text-3" id="text-2">
<ul>
<li>
<a href="http://www.vagrantup.com/downloads.html">Vagrant 1.4.1をダウンロード</a>する
</li>
</ul>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">Vagrantfileを作る </h3>
<div class="outline-text-3" id="text-3">
<script src="https://gist.github.com/otahi/8030318.js"></script>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">実行 </h3>
<div class="outline-text-3" id="text-4">
<p><code>vagrant up</code>
</p>
</div>
</div>
<div id="outline-container-5" class="outline-3">
<h3 id="sec-5">こんな感じでdockerのコンテナができていることを確認 </h3>
<div class="outline-text-3" id="text-5">
<pre class="example">[otahi@otahiair test-docker-vagrant]$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Box 'centos65' was not found. Fetching box from specified URL for
the provider 'virtualbox'. Note that if the URL does not have
a box for this provider, you should interrupt Vagrant now and add
the box yourself. Otherwise Vagrant will attempt to download the
full box prior to discovering this error.
Downloading box from URL: https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box
Extracting box...te: 660k/s, Estimated time remaining: --:--:--)
Successfully added box 'centos65' with provider 'virtualbox'!
[default] Importing base box 'centos65'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Fixed port collision for 22 => 2222. Now on port 2200.
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2200 (adapter 1)
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] The guest additions on this VM do not match the installed version of
VirtualBox! In most cases this is fine, but in rare cases it can
cause things such as shared folders to not work properly. If you see
shared folder errors, please make sure the guest additions within the
virtual machine match the version of VirtualBox you have installed on
your host and reload your VM.
Guest Additions Version: 4.3.4
VirtualBox Version: 4.2
[default] Mounting shared folders...
[default] -- /vagrant
[default] Running provisioner: docker...
[default] Installing Docker (latest) onto machine...
[default] Pulling Docker images...
[default] -- Image: centos
[otahi@otahiair test-docker-vagrant]$ vagrant ssh
[vagrant@vagrant-centos65 ~]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 6.4 539c0211cd76 8 months ago 300.6 MB (virtual 300.6 MB)
centos latest 539c0211cd76 8 months ago 300.6 MB (virtual 300.6 MB)
[vagrant@vagrant-centos65 ~]$ sudo docker run centos echo hello
hello
[vagrant@vagrant-centos65 ~]$
</pre>
</div>
</div>
<div id="postamble">
</div>
</div>Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-82094366580782192392013-08-24T08:18:00.002+09:002013-09-01T12:45:17.547+09:00RSpecを使ってDNSのテストを自動で実施する方法<div id="content">
<p>DNSのテストを素早く回すことができるrspec-dnsというのがあるので紹介する。
これを使えば、DNSを変更するときにだいぶ安心できるはず。
</p>
<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">使うもの </h3>
<div class="outline-text-3" id="text-1">
<ul>
<li>
ruby
</li>
<li>
rspec
</li>
<li>
<a href="https://github.com/customink/rspec-dns">rspec-dns</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">どのように書くのか? </h3>
<div class="outline-text-3" id="text-2">
<p>次のように <code>update_config</code> でDNSを指定する。(config/dns.ymlというのを更新するので、なにもやらなければ、config/dns.ymlに記載されているまま)
レコードごとにspecを記載していく。
複数のDNSをテストしたい場合は、 <code>update_config</code> でDNSを指定していく。
</p>
<script src="https://gist.github.com/otahi/b83f22a5ea4d121ca431.js"></script>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">実行のやり方 </h3>
<div class="outline-text-3" id="text-3">
<ul>
<li>
git clone
<ul>
<li>
<code>% git clone -b example https://github.com/otahi/rspec-dns.git</code>
</li>
</ul>
</li>
<li>
move into example directory and run
<ul>
<li>
<code>% cd rspec-dns/example</code>
</li>
<li>
<code>% rvm use 1.9.3</code>
</li>
<li>
<code>% bundle install --path=vendor/bundle --binstubs=vendor/</code>
</li>
<li>
<code>% bundle exec rspec -c -f doc</code>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">どのような出力になるか? </h3>
<div class="outline-text-3" id="text-4">
<pre class="example">% bundle exec rspec -c -f doc
github.com
should have the correct dns entries with {:type=>"A", :address=>"192.30.252.128"}
should have the correct dns entries with {:type=>"A", :address=>"192.30.252.129"}
should have the correct dns entries with {:type=>"A", :address=>"192.30.252.130"}
should have the correct dns entries with {:type=>"A", :address=>"192.30.252.131"}
should have the correct dns entries with {:type=>"A", :address=>"204.232.175.90"}
should have the correct dns entries with {:type=>"A", :address=>"207.97.227.239"}
should have the correct dns entries with {:type=>"MX", :exchange=>"ASPMX.L.GOOGLE.com", :preference=>10}
should have the correct dns entries with {:type=>"MX", :exchange=>"ALT1.ASPMX.L.GOOGLE.com", :preference=>20}
should have the correct dns entries with {:type=>"MX", :exchange=>"ALT2.ASPMX.L.GOOGLE.com", :preference=>20}
should have the correct dns entries with {:type=>"MX", :exchange=>"ASPMX2.GOOGLEMAIL.com", :preference=>30}
should have the correct dns entries with {:type=>"MX", :exchange=>"ASPMX3.GOOGLEMAIL.com", :preference=>30}
should have the correct dns entries with {:type=>"NS", :name=>"ns1.p16.dynect.net"}
should have the correct dns entries with {:type=>"NS", :name=>"ns2.p16.dynect.net"}
should have the correct dns entries with {:type=>"NS", :name=>"ns3.p16.dynect.net"}
should have the correct dns entries with {:type=>"NS", :name=>"ns4.p16.dynect.net"}
should have the correct dns entries with {:type=>"TXT", :data=>"v=spf1 include:_spf.google.com include:_netblocks.zdsys.com include:sendgrid.net include:mailgun.org include:smtp.github.com ~all"}
should have the correct dns entries with {:type=>"SOA", :mname=>"ns1.p16.dynect.net", :rname=>"hostmaster.github.com", :refresh=>3600, :retry=>600, :expire=>604800, :minimum=>60}
Finished in 2.4 seconds
17 examples, 0 failures
%
</pre>
</div>
</div>
<div id="outline-container-5" class="outline-3">
<h3 id="sec-5">Reference </h3>
<div class="outline-text-3" id="text-5">
<ul>
<li>
<a href="https://github.com/customink/rspec-dns">rspec-dns</a>
</li>
</ul>
</div>
</div>
<div id="postamble">
</div>
</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-56985463198947865922013-08-04T08:23:00.001+09:002013-08-04T08:23:18.013+09:00Linux Container (lxc) on Cent OS 6.4 on Vagrant VM<div id="outline-container-1" class="outline-2">
<h2 id="sec-1">Linux Container(lxc) on Cent OS 6.4 on Vagrant VM </h2>
<div class="outline-text-2" id="text-1">
<p>
vagrant で作ったCent OS 6.4 のVMの上に、Linux Containerを複数起動できる環境を作る方法をまとめる。
中身は<a href="https://github.com/otahi/vagrant-centos-lxc">github</a>を参照のこと。
</p>
</div>
<div id="outline-container-1.1" class="outline-3">
<h3 id="sec-1.1">背景 </h3>
<div class="outline-text-3" id="text-1.1">
<ul>
<li>
MacやWindowsをホストとして利用するときに、Linux由来のツールをそのまま利用することが難しい場合がある。
<ul>
<li>
たとえば、iptables, openvswitch など
</li>
</ul>
</li>
<li>
lxcの情報はUbuntuの情報が多く、いつも使っているCent OSの情報が少なかったので、ちょっと試した。
</li>
<li>
ちょっとした複数マシン連携のテストなんかに使えるかな?と思う。
</li>
<li>
Tremaの環境を作って遊びたいときに使えるのではないか?とか。
</li>
</ul>
</div>
</div>
<div id="outline-container-1.2" class="outline-3">
<h3 id="sec-1.2">構成 </h3>
<div class="outline-text-3" id="text-1.2">
<p>lxcのVM2つをvagrant で作ったCent OS のVMの上に作る。
</p>
<p>
<img src="https://raw.github.com/otahi/vagrant-centos-lxc/master/images/layout.png" alt="layout." width="100%" />
</p>
</div>
</div>
<div id="outline-container-1.3" class="outline-3">
<h3 id="sec-1.3">事前条件 </h3>
<div class="outline-text-3" id="text-1.3">
<ul>
<li>
VirtualBox installed(upper 4.2.16)
<ul>
<li>
<a href="https://www.virtualbox.org/wiki/Downloads">Download VirtualBox</a>
</li>
</ul>
</li>
<li>
vagrant installed(uppper 1.2.0)
<ul>
<li>
<a href="http://downloads.vagrantup.com/">Vagrant Downloads</a>
</li>
</ul>
</li>
<li>
vagrant box has been set as "centos64-base"
<ul>
<li>
<code>%vagrant box add centos64-base http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box</code>
<ul>
<li>
ここのURLはそのうちなくなるかもしれない
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.4" class="outline-3">
<h3 id="sec-1.4">動かし方 </h3>
<div class="outline-text-3" id="text-1.4">
<ul>
<li>
git リポジトリをとってくる
<ul>
<li>
<code>%git clone https://github.com/otahi/vagrant-centos-lxc.git</code>
</li>
</ul>
</li>
<li>
vagrant up
<ul>
<li>
<code>%vagrant up</code>
</li>
</ul>
</li>
<li>
しばし待つ
</li>
<li>
vagrant VMにログイン
<ul>
<li>
<code>%vagrant ssh</code>
</li>
</ul>
</li>
<li>
lxc VMs にログイン
<ul>
<li>
<code>%sudo lxc-console -n vm1</code>
</li>
<li>
<code>%sudo lxc-console -n vm2</code>
</li>
</ul>
</li>
<li>
これで構成図のとおりのVMが動いているはず。
</li>
</ul>
</div>
</div>
<div id="outline-container-1.5" class="outline-3">
<h3 id="sec-1.5">References </h3>
<div class="outline-text-3" id="text-1.5">
<ul>
<li>
<a href="http://oss.fulltrust.co.jp/?p=322">LXC用CentOSのテンプレート</a>
</li>
</ul>
</div>
</div>
</div>Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-19143869320406131082013-07-28T08:20:00.000+09:002013-07-28T08:21:40.894+09:00Trema Day #3 に参加してきた(一部)<div id="content">
<div id="outline-container-1" class="outline-2">
<div class="outline-text-2" id="text-1">
<p>
Trema Day #3に参加してきたので、まとめる。
ぜんぜんまとまっていないが、とりあえず出す。ということで。。
</p>
</div>
<div id="outline-container-1.1" class="outline-3">
<h3 id="sec-1.1">全体(といっても前半) </h3>
<div class="outline-text-3" id="text-1.1">
<p>4歳の息子が一緒にいきたがったので、連れて行ったが、
結果としては最初に少し間に合わず、途中で帰ることに。。
</p>
<p>
<a href="http://www.ustream.tv/channel/yasuhito?utm_campaign=t.co&utm_source=13099367&utm_medium=social">ust</a>に録画がでたので、あとでこちらを参考に、あとで書き直す予定。
</p>
<p>
Wakame-VDCの話はとても興味深かった。
TremaをHiper Visorごとにいれてあり、それを集中管理するという方法が、
「そういう使い方もあるのか」と思った。
Wakame-VDC自身も興味深かった。lxcとかも使えるということで、
Macの上にVMを立てて、いろいろ遊べる気がした。
ちょっといろいろ調べてみようと思う。
</p>
<p>
RubyでPacketParserの話も興味深かった。
今回はLLDPの話だったが、もっとレイヤが上位のパケットを考えると、
tcpdumpレベルでは難しいパケットの抽出もでき、
解析もけっこうやりやすくなるのかもしれないと思った。
</p>
</div>
</div>
<div id="outline-container-1.2" class="outline-3">
<h3 id="sec-1.2">概要 </h3>
<div class="outline-text-3" id="text-1.2">
<ul>
<li>
2013/07/27 (土) 13:00-17:00
</li>
<li>
KDDIウェブコミュニケーションズ CloudCoreセミナールーム
</li>
<li>
<a href="http://atnd.org/event/tremaday3">atnd</a>
</li>
<li>
<a href="http://www.ustream.tv/channel/yasuhito?utm_campaign=t.co&utm_source=13099367&utm_medium=social">ust</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.3" class="outline-3">
<h3 id="sec-1.3">他のかたのまとめ </h3>
<div class="outline-text-3" id="text-1.3">
<ul>
<li>
<a href="http://d.hatena.ne.jp/stereocat/20130727/1374943732">Trema Day #3 参加メモ #tremaday # cat /var/log/stereocat | tail -n3</a>
<ul>
<li>
<code>@stereocat</code> さんのまとめ。とても詳しい。こちらをおすすめ。
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.4" class="outline-3">
<h3 id="sec-1.4">Wakame-VDCの仮想ネットワーク </h3>
<div class="outline-text-3" id="text-1.4">
<ul>
<li>
あくしゅ 山崎泰宏( <code>@sparklegate</code> )さん
</li>
<li>
Virtual Networking
<ul>
<li>
構造
<ul>
<li>
Agent Network
</li>
</ul>
</li>
<li>
VM同士のネットワーク
</li>
<li>
eth0とeth1でeth1をマネジメントにしてhva(Hyper Visor Agent)を接続
</li>
<li>
分離
<ul>
<li>
物理NW
</li>
<li>
論理NW
</li>
<li>
VM
</li>
</ul>
</li>
<li>
WakameではHVに1つのovs、1つのhva(Tremaコントローラ含む)
</li>
<li>
dhcp、dnsなどはTremaコントローラで折り返す
</li>
<li>
トンネリング
<ul>
<li>
MAC2MAC(と呼んでいる方法を使っている)
<ul>
<li>
ARPのブロードキャストドメインをコントロール
</li>
<li>
ARPブロードキャストをユニキャストに変換する(これでスイッチは学習できる)
<ul>
<li>
L3は超えられない
</li>
</ul>
</li>
</ul>
</li>
<li>
DBで管理できているので、それを使ってやる
</li>
</ul>
</li>
<li>
WakameではTremaとovsの間はUnixSocket通信している
</li>
<li>
Wakame-vnetというのを切り出そうとしている
</li>
</ul>
</li>
<li>
Q&A
<ul>
<li>
RabbitMQからZeroMQにした理由は?
<ul>
<li>
セルロイドというライブラリがzeroMQだった
</li>
<li>
小さいパケットの処理が早い
</li>
</ul>
</li>
<li>
ブロードキャストをユニキャストに変換するのはarp以外にも制御できる?
<ul>
<li>
明らかに対向がわかるものしかできない
</li>
</ul>
</li>
</ul>
</li>
<li>
資料
<ul>
<li>
見つけられていないが、<a href="http://opencarf.org/wp-content/uploads/2012/02/GRACE-Seminar-20120221-04-yamasaki.pdf">OPEN CARFの資料</a>を参考にするとちょっとわかりやすいかも。
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.5" class="outline-3">
<h3 id="sec-1.5">OpenFlowでSDN作りました </h3>
<div class="outline-text-3" id="text-1.5">
<ul>
<li>
中程さん@UEC
</li>
<li>
ospf -> sospf関連のとOpenFlowの話
</li>
<li>
ospfだと経路が重なり輻輳の問題がある
<ul>
<li>
それを解決したい
</li>
</ul>
</li>
<li>
今回はPOXで書いたので長くなってしまった
</li>
</ul>
</div>
</div>
<div id="outline-container-1.6" class="outline-3">
<h3 id="sec-1.6">Rubyでパケットパーサ </h3>
<div class="outline-text-3" id="text-1.6">
<ul>
<li>
<code>@yasuhito</code> さん
<ul>
<li>
trema #3の話
<ul>
<li>
Lineを貼ってみた
</li>
<li>
フィールドオブドリームズのように人が来る
</li>
</ul>
</li>
<li>
今回はコンビニの大木さんが発表。
</li>
</ul>
</li>
<li>
LLDPを使ったトポロジ探索サンプルプログラム
<ul>
<li>
短く、読みやすく、改造しやすく
</li>
<li>
LLDPジェネレータとパーサ
</li>
<li>
PacketFu
<ul>
<li>
ちょっと流儀が。。
</li>
</ul>
</li>
<li>
Racket
<ul>
<li>
おしい
</li>
</ul>
</li>
<li>
BinData
<ul>
<li>
けっこう使われている
</li>
<li>
バイナリをパースするライブラリ
</li>
<li>
DSL的
</li>
</ul>
</li>
</ul>
</li>
<li>
BinData
<ul>
<li>
プリミティブ型があり、それを組み合わせて定義できる
</li>
</ul>
</li>
<li>
Trema::Packetとして共通部を切り出してやっていければなと思う
</li>
<li>
資料
<ul>
<li>
<a href="http://www.slideshare.net/yasuhito/ruby-24673774">スライド</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.7" class="outline-3">
<h3 id="sec-1.7">OpenFlowの可視化ツール </h3>
<div class="outline-text-3" id="text-1.7">
<ul>
<li>
大山裕泰さん
</li>
<li>
***ここで帰ることになってしまった。。***
</li>
</ul>
</div>
</div>
<div id="outline-container-1.8" class="outline-3">
<h3 id="sec-1.8">LT 安くOFS&冗長化 </h3>
<div class="outline-text-3" id="text-1.8">
<ul>
<li>
あとで
</li>
</ul>
</div>
</div>
<div id="outline-container-1.9" class="outline-3">
<h3 id="sec-1.9">LT OpenStackでのトラフィックフロー制御 </h3>
<div class="outline-text-3" id="text-1.9">
<ul>
<li>
<code>@ttsubo</code> さん
</li>
<li>
資料
<ul>
<li>
<a href="http://www.slideshare.net/ToshikiTsuboi/open-stack-withopenflow">スライド</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.10" class="outline-3">
<h3 id="sec-1.10">Virtual Network Platform の紹介 </h3>
<div class="outline-text-3" id="text-1.10">
<ul>
<li>
<code>@sugyo_now</code> さん
</li>
<li>
資料
<ul>
<li>
<a href="http://testboard.pw/trema_day/virtual_network_platform.html#/">スライド</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div id="postamble">
</div>
</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-81047429228917284422013-06-28T05:51:00.002+09:002013-06-29T08:16:30.169+09:00Vagrantでパケアナ #pakeana 16<a href="http://pa.hebikuzure.com/">第16回「ネットワークパケットを読む会(仮)」</a>で話した。<br />
<br />
PC上のVMで他人に迷惑をかけずに実験をするための方法を考えたので、突っ込みをください。<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="356" marginheight="0" marginwidth="0" mozallowfullscreen="" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/23589529" style="border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;" webkitallowfullscreen="" width="427"> </iframe> <br />
<div style="margin-bottom: 5px;">
<strong> <a href="http://www.slideshare.net/HiroshiOta2/vagrant-packana16otahi" target="_blank" title="Vagrant packana16-otahi">Vagrant packana16-otahi</a> </strong> from <strong><a href="http://www.slideshare.net/HiroshiOta2" target="_blank">Hiroshi Ota</a></strong> <br />
<br />
<br />
<div class="p1">
<u>※init.shの最終行は<span class="s1">2013/06/29</span>追加。これがないと、<span class="s1">HostOnlyNetwork</span>以外は<span class="s1">IP</span>パケットがでない。</u></div>
<br />
<a href="http://www.slideshare.net/twovs/how-to-get-get">@twovs さんの「how to GET GET」</a>はあとで役に立つと思うので、メモしておく。</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-23266659920397643212013-06-26T03:05:00.001+09:002013-06-26T03:51:39.471+09:00Private Proxy Settings<div id="outline-container-1" class="outline-2">
<div id="outline-container-1.1" class="outline-3">
<h3 id="sec-1.1">Background </h3>
<div class="outline-text-3" id="text-1.1">
<p>いくつかの企業ではproxyサーバ経由でhttp(s)クライアントが
企業の外にあるサーバにアクセスする必要がある。
場合によっては、proxyサーバはusername/passwordの認証を要求する。
http(s)クライアントによっては、認証ありのproxyサーバを使えない場合もある。
</p>
</div>
</div>
<div id="outline-container-1.2" class="outline-3">
<h3 id="sec-1.2">Purpose </h3>
<div class="outline-text-3" id="text-1.2">
<p>ここでは複数のhttp(s)クライアントのproxy設定を削減するためのproxy設定を提供する。
</p>
<p>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZUrAod1JrO0hIwEfn2aY7kG7y8PDMKP5YSnQ7pZ2KoryLrAshyDzU6_9ITjQN7wNEZWAi6gMDN8-PNS6Qm6Tsu-jeeEabpa94YppamIW63Xfis9zP9llzNSxBY8Lq8m16rQPcTjxNKMY/s1600/layout.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZUrAod1JrO0hIwEfn2aY7kG7y8PDMKP5YSnQ7pZ2KoryLrAshyDzU6_9ITjQN7wNEZWAi6gMDN8-PNS6Qm6Tsu-jeeEabpa94YppamIW63Xfis9zP9llzNSxBY8Lq8m16rQPcTjxNKMY/s320/layout.png" alt="layout. proxy can use upstrem proxy" /></a>
</p>
</div>
</div>
<div id="outline-container-1.3" class="outline-3">
<h3 id="sec-1.3">Note </h3>
<div class="outline-text-3" id="text-1.3">
<ul>
<li>
権限に従って設定してください
</li>
</ul>
</div>
</div>
<div id="outline-container-1.4" class="outline-3">
<h3 id="sec-1.4">Specs </h3>
<div class="outline-text-3" id="text-1.4">
<ul>
<li>
proxyサーバはlocalhost/hostonlynetworkにのみサービスを提供する
</li>
<li>
proxyサーバは上流proxyサーバのusername/passwordのペアを保持する
</li>
<li>
proxyサーバはインターネットへのアクセスに上流proxyサーバを使う
</li>
</ul>
</div>
</div>
<div id="outline-container-1.5" class="outline-3">
<h3 id="sec-1.5">How-to run </h3>
<div class="outline-text-3" id="text-1.5">
<ul>
<li>
Git clone
<ul>
<li>
<code>%git clone https://github.com/otahi/private_proxy_settings.git</code>
</li>
</ul>
</li>
<li>
Modify squid.conf for your own environment
<ul>
<li>
<code>%vi squid.conf</code>
</li>
</ul>
</li>
<li>
Install squid
<ul>
<li>
eg[mac].
<ul>
<li>
<code>%brew install squid</code>
</li>
</ul>
</li>
<li>
eg[cygwin].
<ul>
<li>
<code>%apt-cyg install squid</code>
</li>
</ul>
</li>
</ul>
</li>
<li>
Put squid.conf to right place
<ul>
<li>
eg[mac].
<ul>
<li>
<code>%cp squid.conf /usr/local/etc/</code>
</li>
</ul>
</li>
<li>
eg[cygwin].
<ul>
<li>
<code>%cp squid.conf /etc/</code>
</li>
</ul>
</li>
</ul>
</li>
<li>
Create a directory
<ul>
<li>
<code>%sudo mkdir -p /var/cache/squid/</code>
</li>
</ul>
</li>
<li>
Change owner a directory and a file for nobody
<ul>
<li>
<code>%sudo chwon nobody:nobody /var/cache/squid</code>
</li>
<li>
<code>%sudo chwon nobody:nobody /var/log/squid.log</code>
</li>
</ul>
</li>
<li>
Create cache directory
<ul>
<li>
eg[mac].
<ul>
<li>
<code>%sudo /usr/local/sbin/squid -z</code>
</li>
</ul>
</li>
<li>
eg[cygwin].
<ul>
<li>
<code>%/usr/bin/squid -z</code>
</li>
</ul>
</li>
</ul>
</li>
<li>
Run squid
<ul>
<li>
eg[mac].
<ul>
<li>
<code>%sudo /usr/local/sbin/squid</code>
</li>
</ul>
</li>
<li>
eg[cygwin].
<ul>
<li>
<code>%/usr/bin/squid</code>
</li>
</ul>
</li>
</ul>
</li>
<li>
Run squid as a daemon
<ul>
<li>
eg[mac].
<ul>
<li>
<code>%sudo /usr/local/sbin/squid -k shutdown</code>
</li>
<li>
<code>%sudo install -oroot -gwheel squid.plist /Library/LaunchDaemons/</code>
</li>
<li>
<code>%sudo launchctl load /Library/LaunchDaemons/squid.plist</code>
</li>
</ul>
</li>
<li>
eg[cygwin].
<ul>
<li>
TODO check cygserver
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.6" class="outline-3">
<h3 id="sec-1.6">How-to use a proxy server </h3>
<div class="outline-text-3" id="text-1.6">
<p>Set envirionment variables or browser settings
</p>
</div>
<div id="outline-container-1.6.1" class="outline-4">
<h4 id="sec-1.6.1">set environment variables for the proxy(for local application) </h4>
<div class="outline-text-4" id="text-1.6.1">
<p>eg.
</p>
<pre class="src src-sh"><span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>=localhost:3128
<span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTPS_PROXY</span>=$<span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>
<span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">FTP_PROXY</span>=$<span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>
<span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">http_proxy</span>=$<span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>
<span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">https_proxy</span>=$<span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>
<span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">ftp_proxy</span>=$<span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>
</pre>
</div>
</div>
<div id="outline-container-1.6.2" class="outline-4">
<h4 id="sec-1.6.2">set environment variables for the proxy(for VMs) </h4>
<div class="outline-text-4" id="text-1.6.2">
<p>eg[192.168.100.1 is a proxy server in a hostonlynetwork].
</p>
<pre class="src src-sh"><span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>=192.168.100.1:3128
<span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTPS_PROXY</span>=$<span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>
<span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">FTP_PROXY</span>=$<span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>
<span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">http_proxy</span>=$<span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>
<span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">https_proxy</span>=$<span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>
<span style="color: #98fb98; font-weight: bold;">export</span> <span style="color: #7fffd4; font-weight: bold; font-style: italic;">ftp_proxy</span>=$<span style="color: #7fffd4; font-weight: bold; font-style: italic;">HTTP_PROXY</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-1.7" class="outline-3">
<h3 id="sec-1.7">References </h3>
<div class="outline-text-3" id="text-1.7">
<ul>
<li>
<a href="https://github.com/otahi/private_proxy_settings/">github/otahi/private_proxy_settings</a>
</li>
<li>
<a href="http://www.squid-cache.org/Doc/config/">Squid configuration directives</a>
</li>
</ul>
</div>
</div>
</div>Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-4780726007777058812013-06-22T11:29:00.000+09:002013-06-23T06:26:15.427+09:00hbstudy#45「serverspecが拓いたサーバテストの世界」に参加してきた<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">開催概要 </h3>
<div class="outline-text-3" id="text-1">
<ul>
<li>
<a href="http://connpass.com/event/2580/">hbstudy#45</a>
</li>
<li>
2013/06/21(金) 19:00〜
</li>
<li>
ハロー会議室新宿
</li>
<li>
第45回: serverspecが拓いたサーバテストの世界
</li>
</ul>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">感想 </h3>
<div class="outline-text-3" id="text-2">
<ul>
<li>
宮下さんを見習って、子供と一緒にがんばろうと思う。
</li>
<li>
まずは自分の担当するところでまずは試してみよう。
</li>
<li>
最後にテストを回すというスタイルから、できあがったときにはテストは終わっているという状態にしていきたい。
</li>
</ul>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">全体まとめ </h3>
<div class="outline-text-3" id="text-3">
<ul>
<li>
serverspecは
<ul>
<li>
機能が欲しい人が実装するという基本
</li>
<li>
puppet, chefとかの仕組みと疎結合
<ul>
<li>
できあがったserver自体をテストするので
</li>
</ul>
</li>
<li>
「読みやすい、書きやすい、わかりやすい」を大切にしている
</li>
<li>
spechelperを書き換えればいろいろできる
</li>
</ul>
</li>
<li>
気軽にpull requestしてほしい
</li>
<li>
やりたいことがあれば各自実装を!
</li>
</ul>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">追加情報(2013/06/23追加) </h3>
<div class="outline-text-3" id="text-4">
<ul>
<li>
<a href="http://podcast.bulknews.net/post/53587224871/ep14-docker-naoya-mizzy">@gosukenator さんがいっていたPodcastがでてた</a>
<ul>
<li>
ep14: Test Driving DevOps with Docker, chef and serverspec (naoya, mizzy) - Tatsuhiko Miyagawa's Podcast
</li>
</ul>
</li>
<li>
<a href="http://togetter.com/li/522648">「hbstudy#44 「serverspecが拓いたサーバテストの世界」 #hbstudy」をトゥギャりました。 by @sechiro さん</a>
</li>
</ul>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">paperboy&co. Technical Manager 宮下 剛輔さん [twitter: @gosukenator] </h3>
<div class="outline-text-3" id="text-4">
<p><a href="http://www.slideshare.net/mizzy/serverspec-hbstudy45">発表資料:serverspec by 宮下さん</a>
</p>
</div>
<div id="outline-container-4.1" class="outline-4">
<h4 id="sec-4.1">serverspecの位置づけ、serverspecとは、使い方 </h4>
<div class="outline-text-4" id="text-4.1">
<ul>
<li>
宮下さん @gosukenator
<ul>
<li>
<a href="http://www.paperboy.co.jp/">paperboy&co</a>
<ul>
<li>
ロリポップなどのレンタルサーバなどで有名
</li>
</ul>
</li>
</ul>
</li>
<li>
サーバプロビジョニングとは
<ul>
<li>
いろいろな領域が含まれる(大きくは3つ)
<ul>
<li>
Application Service - Orchestration
<ul>
<li>
方法
<ul>
<li>
Capistrano
</li>
<li>
Fabric
</li>
</ul>
</li>
<li>
テスト
<ul>
<li>
外から見る
<ul>
<li>
zabbix
</li>
<li>
Nagios
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
System config - Configration(きょうはここが中心)
<ul>
<li>
方法
<ul>
<li>
puppet
</li>
<li>
chef
</li>
</ul>
</li>
<li>
テスト
<ul>
<li>
serverspec
<ul>
<li>
サーバ自身を見る
</li>
<li>
パッケージとかもみる
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
os, vm - BootStrapping
<ul>
<li>
EC2
</li>
<li>
OpenStack
</li>
</ul>
</li>
</ul>
</li>
<li>
監視とは継続的なテストである @kazuho
</li>
<li>
Zabbixとかあれば、serverspecいらない ともいえなくはない
<ul>
<li>
Zabbixで継続して監視ししながら実装できるのであれば
</li>
</ul>
</li>
</ul>
</li>
<li>
System configとテスト
<ul>
<li>
これまでは?
<ul>
<li>
shell script?
</li>
<li>
実際のサービスの確認だった?
</li>
</ul>
</li>
</ul>
</li>
<li>
Configuration Management Framework(CMF)
<ul>
<li>
puppet
</li>
<li>
chef
</li>
<li>
<a href="http://www.ansibleworks.com/">ansible</a>
<ul>
<li>
orchestrationも含んでいるツール
</li>
</ul>
</li>
</ul>
</li>
<li>
CMFとテスト
<ul>
<li>
これまでは?
<ul>
<li>
shell script?
</li>
</ul>
</li>
<li>
界隈のツール
<ul>
<li>
シンタックスチェック
<ul>
<li>
foodcritic
</li>
<li>
knife cookbook test
</li>
</ul>
</li>
<li>
ユニットテスト
<ul>
<li>
chefspec
<ul>
<li>
実際のサーバでやるのではない
</li>
<li>
chefの正当性を確認するためのツール
</li>
</ul>
</li>
<li>
rspec-puppet
</li>
</ul>
</li>
<li>
結合テスト
<ul>
<li>
Minitest Chef Handler
</li>
<li>
Cucumber Chef
</li>
<li>
Test Kitchen
</li>
<li>
rspec-system
<ul>
<li>
puppet用
</li>
</ul>
</li>
<li>
serverspec
<ul>
<li>
puppetでもchefでも
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
なぜ serverspecを作ったの?
<ul>
<li>
余計な機能が多い
</li>
<li>
chef,puppetなどのツールに依存している
</li>
</ul>
</li>
<li>
TestKitchenと合わせると良さそう
</li>
<li>
そもそもserverspecが必要なの?
<ul>
<li>
一度だけ書いて、修正しないなら不要
</li>
<li>
マニフェスト、レシピを継続的に更新するなら必要
<ul>
<li>
これの自動化のために必要
</li>
</ul>
</li>
<li>
テストコードの書きやすさ、読みやすさも重要
</li>
<li>
テストツールのシンプルさが重要
<ul>
<li>
なので、serverspec
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
serverspecについて
<ul>
<li>
サーバのテストを「簡潔に」書くための仕組み
<ul>
<li>
RSpecで書く
<ul>
<li>
読みやすい
<ul>
<li>
最近expectで書くのがよいとされている→少し読みにくい
</li>
</ul>
</li>
</ul>
</li>
<li>
しかし、shouldのほうが見やすい
<ul>
<li>
serverspecではshould全部のオブジェクトにshouldメソッドをつける必要がないのでよい
</li>
</ul>
</li>
</ul>
</li>
<li>
serverspecはshellからコマンドたたいているだけ
</li>
<li>
コマンドのパターン
<ul>
<li>
ローカル
</li>
<li>
ssh接続
<ul>
<li>
エージェントをいる必要はない
</li>
<li>
コマンドを実行するだけなのでテスト対象にはrubyすらいらない
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
severspecのはじめかた
<ul>
<li>
<code># yum install rubygems</code>
</li>
<li>
<code># gem install serverspec rake</code>
</li>
<li>
<code># serverspec-init</code>
<ul>
<li>
ssh or local?
</li>
<li>
ファイル、ディレクトリができる
</li>
</ul>
</li>
<li>
<code># rake spec</code>
<ul>
<li>
.rspec で–colour で色つく
</li>
<li>
–format S で文字列で表示
</li>
<li>
まさにテスト駆動でできる
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-4.2" class="outline-4">
<h4 id="sec-4.2">serverspecについて </h4>
<div class="outline-text-4" id="text-4.2">
<ul>
<li>
serverspecが生まれた経緯
<ul>
<li>
2007年 puppetを使い始めた
</li>
<li>
puppetで構築は自動化できた
</li>
<li>
テストをどうするか?
</li>
<li>
テスト報告を簡単に作りたい
</li>
<li>
Assurerというperlツール作った
<ul>
<li>
テスト駆動サーバ構築! 2007年
</li>
<li>
面倒。。
<ul>
<li>
レポーティング機能をつけたので重くなった
</li>
</ul>
</li>
<li>
実用にいたらなかった
</li>
</ul>
</li>
<li>
puppetのマニフェストのリファクタリングをしようと思った
</li>
<li>
テストが必要だろう
</li>
<li>
rspec-testはモジュール型になっているマニフェストのテストにしか使えない。。
<ul>
<li>
モジュールかされていないものにはテストがかけない
</li>
</ul>
</li>
<li>
マニフェストをテストではなくて、実際のサーバの状態をテストすればよい
</li>
<li>
<a href="http://d.hatena.ne.jp/hiboma/20130513/1368411746">@hibomaがやっていたこと</a> をパクッてgem化した
</li>
<li>
sshでできるように、rubyなくていいようにした
</li>
<li>
local実行、OS判別などを追加してもらった
</li>
</ul>
</li>
<li>
なにができる?
<ul>
<li>
いろいろマッチャがある
</li>
<li>
任意のコマンドがたたける
</li>
<li>
sshのときはstderrとstdoutが混ざる
</li>
</ul>
</li>
<li>
<a href="http://serverspec.org/">serverspec.org</a>をみて
</li>
<li>
サポートOS
<ul>
<li>
サポートしている
<ul>
<li>
Redhat系
</li>
<li>
Debian
</li>
<li>
Gentoo
</li>
<li>
Solaris
</li>
<li>
Darwin
</li>
</ul>
</li>
<li>
サポートしていない
<ul>
<li>
BSD
<ul>
<li>
利用者がいないから??
</li>
</ul>
</li>
<li>
Windows
<ul>
<li>
以前移植しようとしている人がいたがまだpull requestがきていない。。
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
serverspecはsudoしてrootで実行している
<ul>
<li>
sshのみ
</li>
<li>
Localではsudoはしない(たたくときにできるから)
</li>
</ul>
</li>
<li>
パスの追加設定もできる
<ul>
<li>
spec helperで
</li>
<li>
システムが違うとだめだから
</li>
</ul>
</li>
<li>
一部パスを追加することもできる
</li>
<li>
pre<sub>commandでテストコマンドの前に実行して&</sub>;&で実行できる
<ul>
<li>
今後サポートするかは不明
</li>
</ul>
</li>
<li>
サーバーごとにディレクトリを掘る
</li>
<li>
ロール単位とかもできる<a href="http://serverspec.org/advanced_tips.html">serverspec.orgのadvanced tips</a>にある
</li>
<li>
テストを常に実行する環境を作りたかった
<ul>
<li>
Ukigomo
<ul>
<li>
IRCでもできる
</li>
</ul>
</li>
</ul>
</li>
<li>
一部を変更したときに全体を壊していないことを確認できる
<ul>
<li>
CIできる
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-4.3" class="outline-4">
<h4 id="sec-4.3">serverspecのコントリビュータを増やすための話(メモれていない。。) </h4>
<div class="outline-text-4" id="text-4.3">
<ul>
<li>
プログラムの内部の話 <a href="https://github.com/mizzy/serverspec">github-mizzy/serverspec</a>
<ul>
<li>
fileの例(コードを読むと結構わかりやすい気がした。)
</li>
<li>
be<sub>installedの例</sub>
</li>
</ul>
</li>
<li>
serverspecのテストの話(十分理解はできなかった。。)
</li>
<li>
全部実装していなくてもpull requestしてほしい
<ul>
<li>
作業中の場合はWIP(work in progress)とつけておく
</li>
<li>
自分のOSで動けばOK(他のOSを気にしているときつくなるので)
</li>
<li>
お気軽にpull requestしてください
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-4.4" class="outline-4">
<h4 id="sec-4.4">まとめ </h4>
<div class="outline-text-4" id="text-4.4">
<ul>
<li>
読みやすい、書きやすい、わかりやすい
<ul>
<li>
簡潔
<ul>
<li>
簡潔さ重要
</li>
</ul>
</li>
</ul>
</li>
<li>
要件が変わる
<ul>
<li>
継続的なテストが必要
</li>
<li>
テストも複雑になる
<ul>
<li>
簡潔にし続ける
<ul>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-4.5" class="outline-4">
<h4 id="sec-4.5">質問 </h4>
<div class="outline-text-4" id="text-4.5">
<ul>
<li>
Q. ユーザーはサーバに対して固定?
<ul>
<li>
spechelperが固定になっているが、対応付けすればOK
</li>
</ul>
</li>
<li>
Q. このユーザーはこれができて、このユーザーはこれができない というのはできない?
<ul>
<li>
基本はやりたい人が実装してもらえれば。。
</li>
<li>
コマンドをかけるので、sudoを使ってコマンドで書いてもよいかも
</li>
</ul>
</li>
<li>
Q. paperboyも実運用で使っている?
<ul>
<li>
まだあまりない
</li>
</ul>
</li>
<li>
Q. 量が多くなると、時間かかる?
<ul>
<li>
RSpecの並列化ができるのではないか?
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-4.6" class="outline-4">
<h4 id="sec-4.6">イベント告知(馬場さんより) </h4>
<div class="outline-text-4" id="text-4.6">
<ul>
<li>
立て続きにあるので、各自確認を
<ul>
<li>
<a href="http://heartbeats.jp/hbstudy/">インフラエンジニア勉強会hbstudy</a>
</li>
</ul>
</li>
<li>
hbstudy#46 トラブル☆しゅーたーず#06 ~chain reaction~
<ul>
<li>
日時: 2013/6/29(土) 13:30~20:00
</li>
<li>
会場: ニフティ株式会社 ラウンジ&会議室
</li>
</ul>
</li>
<li>
hbstudy#47 July Tech Festa 2013 コードの中のインフラ(Infrastructure as Programming)
<ul>
<li>
日時: 2013/7/14(日) 10:00~21:00
</li>
<li>
会場: 産業技術大学院大学(AIIT)
</li>
</ul>
</li>
<li>
hbstudy#48 インフラ+セキュリティ=楽しい? 他2本
<ul>
<li>
日時: 2013/7/19(金) 19:00~21:30
</li>
<li>
会場: ハロー会議室 新宿 B+C (東京都新宿区西新宿1丁目5-11 新宿三葉ビル6F)
</li>
<li>
DeNA茂岩さん がいろいろとお話を。
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div id="postamble">
</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-17223717540654864822013-04-21T00:43:00.000+09:002013-05-03T07:15:42.778+09:00Trema Day #2 に参加してきた<div id="outline-container-1.1" class="outline-3">
<h3 id="sec-1.1"><span class="section-number-3">1.1</span> 概要 </h3>
<div class="outline-text-3" id="text-1.1">
<ul>
<li>
Trema Day #2
<ul>
<li>
日時: 2013/04/20(土) 13:00-17:00
</li>
<li>
場所: KDDIウェブコミュニケーションズ CloudCoreセミナールーム @ 麹町
</li>
<li>
URI: <a href="http://atnd.org/event/E0014494">http://atnd.org/event/E0014494</a>
</li>
<li>
tag: <a href="https://twitter.com/search?q=%23tremaday">#tremaday</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.2" class="outline-3">
<h3 id="sec-1.2"><span class="section-number-3">1.2</span> 全体 </h3>
<div class="outline-text-3" id="text-1.2">
<p>
OpenFlow/SDN周辺を勉強しないとなと思いながら、
ずっと手をつけられていなかったが、
Tremaでいい加減OpenFlowを体験してみようと思い、
Trema day #2に参加した。
</p>
<p>
会場はネットワーク系のエンジニア7割、サーバ・アプリよりのエンジニア3割という
感じの参加者だった。
</p>
<p>
OpenFlow関連の技術はまだユースケースが多くなく(データセンターなどでは一部確立できている部分はあるが)、
どのようにOpenFlowをやっていくか というところの議論が多く、ためになった。
IPv6と同じ(?)で、なかなか、キラーアプリがない状態で、
エンジニアがこれは大事だとは思いながらも、実際にどのように
いまの環境、会社に適用していくか というところのイメージがあまりない状態だと思う。
</p>
<p>
手段の目的化もときにはあってよいと思うので、
エンジニアは、この技術を心に秘めて、いろんな困りごとを見て、
OpenFlowを使うと、その困りごとがどのように解決できるか というのを探し続けるのかな と思う。
(アプリ開発者と机を隣にするという議論もあったが、そういうことだと思う。)
</p>
<p>
Tremaをまだほとんど触れていないので、
どこら辺に困難があるかわかっていないため、
理解ができていないところが多いと思うが、メモしてみる。
</p>
<p>
次回のTrama Dayには違う視点で話を理解できるように、
まずは、ソースコード読んだり、実装してみたりしよう。
テストフレームワークも。。
</p>
<p>
<a href="http://blog.livedoor.jp/kensuu/archives/54448950.html">参考:nanapi社長日記 - 「目的があっての手段だ」なんて考え、つまらなくないですか? </a>
</p>
</div>
</div>
<div id="outline-container-1.3" class="outline-3">
<h3 id="sec-1.3"><span class="section-number-3">1.3</span> OpenFlow 1.2で、トラフィックエンジニアリングを試してみた by @ttsubo さん </h3>
<div class="outline-text-3" id="text-1.3">
<p>
OpenFlow 1以降で追加された機能のひとつである、マルチフローテーブルを使って、
通信種別によってパスを使い分けて、経路に問題が発生したら、
瞬時に切り替えるということをやっていた。
</p>
<p>
通信種別はTOS(Type of Serive)を使って分けていて、
普段は別の経路を指定して、いざというときには、
同じパスを通るようにする という手段だと思う。
</p>
<p>
この手法であれば、コントローラに負荷をかけずに
マルチパス、と問題発生時の切り替えができる と理解した。
</p>
<p>
ちなみに、説明の中にでてきた<a href="http://www.acronymfinder.com/OAM.html">OAMはOperations Administration and Maintenanceの略のようだ</a>。
<a href="http://www.itbook.info/study/oam3.html">OAMの説明</a>を読むとそうかなと思う。
</p>
<p>
<a href="http://www.slideshare.net/ToshikiTsuboi/tremaday-2">資料リンク</a>
</p>
</div>
</div>
<div id="outline-container-1.4" class="outline-3">
<h3 id="sec-1.4"><span class="section-number-3">1.4</span> Tremaで作る実用OpenFlowコントローラ by @chibacchie さん </h3>
<div class="outline-text-3" id="text-1.4">
<p>
いろいろな事情があって、いろいろ話せないことがあった模様。
前半はOpenFlowを(TremaのC言語ライブラリで)実装するときの注意点。
</p>
<ol>
<li>
TremaはOFCではない
<ul>
<li>
Tremaはフレームワーク
</li>
<li>
他のライブラリを使えばよい
</li>
</ul>
</li>
<li>
OFSはデータベースではない
<ul>
<li>
Flow modは確実にすぐに実行されるわけではない
</li>
<li>
Barrier Requestをすると実行される
<ul>
<li>
apps/transaction manager
</li>
</ul>
</li>
</ul>
</li>
<li>
非同期でイベントが発生する feathres request/replyよりも前に
<ul>
<li>
そういうことも考慮する
</li>
<li>
無視するための処理が必要
</li>
</ul>
</li>
<li>
send_openflow_messageはqueueに追加するだけ
<ul>
<li>
順序の保証もない
</li>
</ul>
</li>
<li>
libtramaはthread safeではない関数がある
<ul>
<li>
thread safe化プロジェクトをこじんまりとしている
</li>
</ul>
</li>
<li>
send queueは固定長
</li>
<li>
flush_messenger()を読んではいけない
<ul>
<li>
Handlerが再帰的に呼ばれる可能性がある
</li>
</ul>
</li>
<li>
start_tremaはfork(2)を呼ぶ可能性がるので注意
<ul>
</ul>
</li>
</ol>
<p>後半は、大量のネットワークスライスを制御するために、
OpenFlowController(Work)を配置して、REST APIで制御する
システムの説明だった。
</p>
<p>
WorkerとDBを使って負荷分散するとスケールアウトで対応できそうだな
と思う一方、勉強しないと大変そうなところがわからないな と思った。
</p>
<p>
<a href="http://www.slideshare.net/chibayasunobu/developing-production-open-flow-controller-with-trema-201304160">資料リンク</a>
</p>
</div>
</div>
<div id="outline-container-1.5" class="outline-3">
<h3 id="sec-1.5"><span class="section-number-3">1.5</span> SDN人生相談 </h3>
<div class="outline-text-3" id="text-1.5">
<p>
みなさん、エンジニアとして悩んでいるなと。
(全体のところで省略。)
</p>
</div>
</div>
<div id="outline-container-1.6" class="outline-3">
<h3 id="sec-1.6"><span class="section-number-3">1.6</span> 会社をOpenFlowにしちゃおう by 大山さん </h3>
<div class="outline-text-3" id="text-1.6">
<p>
会社に入ると説明責任がある。
ただ自分がやりたいからやるではできない。
なので、GUIで可視化して、OpenFlowとかをやっていきたい
という趣旨と思う。
</p>
<p>
利用者(一般社員、アプリ開発者、サーバ管理者、インフラ運用者)によって、
いろいろみたいビューが違うので、それを表現できるようにしたらよいのでは?という
コメントがあったが、
そうだなぁ と思った。
</p>
<p>
インフラのエンジニアとしては、数あるネットワーク機器で
問題が発生していたらすぐにわかるように、とか、
いつもと違うことがすぐにわかる(感覚的に)といいなぁ と思った。
</p>
</div>
</div>
<div id="outline-container-1.7" class="outline-3">
<h3 id="sec-1.7"><span class="section-number-3">1.7</span> Tremaで構築中小企業の社内LAN by 近藤さん </h3>
<div class="outline-text-3" id="text-1.7">
<p>
中小企業で実際にOpenFlowで社内ネットワークを構築した という話。
</p>
<p>
これこそ、手段の目的化だが、
実際にやってみないと、なにが問題なのか どうなのかがわからない
というところから出発していて、
自分もこういうアプローチでいくのかな と漠然と思った。
</p>
<p>
社内LAN環境だと、場合によってはセキュリティを絡めて、
Radiusとかの認証と組み合わせてもよいかな と思った。
</p>
</div>
</div>
<div id="outline-container-1.8" class="outline-3">
<h3 id="sec-1.8"><span class="section-number-3">1.8</span> LT - 手半田でつくるEthernetスイッチ箱 by @SRCHACK さん </h3>
<div class="outline-text-3" id="text-1.8">
<p>
自作でEthernetスイッチ箱を作るという話。
詳しくはInteropのORCを参照のことということで、
Interopで時間をとって見に行こうと思う。
</p>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0tag:blogger.com,1999:blog-4253990149488353254.post-22190057639085022772013-04-20T22:46:00.000+09:002013-05-03T07:18:07.465+09:00ネットワークパケットを読む会(仮) 14回に参加してきた<div id="outline-container-1.1" class="outline-3">
<h3 id="sec-1.1"><span class="section-number-3">1.1</span> 概要 </h3>
<div class="outline-text-3" id="text-1.1">
<ul>
<li>
ネットワークパケットを読む会(仮) 14回
<ul>
<li>
日時: 2013/04/19(金) 19:00-20:45
</li>
<li>
場所: 京橋プラザ区民館 2階 洋室1号室
</li>
<li>
URI: <a href="http://pa.hebikuzure.com/">http://pa.hebikuzure.com/</a>
</li>
<li>
tag: <a href="https://twitter.com/search?q=%23pakeana">#pakeana</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-1.2" class="outline-3">
<h3 id="sec-1.2"><span class="section-number-3">1.2</span> 全体 </h3>
<div class="outline-text-3" id="text-1.2">
<p>
初めてネットワークパケットを読む会(仮)にパケット解析経験者として参加した。
今回はフレッシャーズ向けということで、パケット解析のいろは、
パケット解析の心得、パケット解析の黒い部分?について、
振り返ることができて、とてもよかった。
</p>
<p>
月曜日からは心得にしたがって、正常系のパケットをいっぱい見るようにしようと思う。
</p>
<p>
次回は2013/05/24(金)を予定しているとのことなので、こちらも参加したいと思う。
</p>
</div>
</div>
<div id="outline-container-1.3" class="outline-3">
<h3 id="sec-1.3"><span class="section-number-3">1.3</span> フレッシャーのためのパケット解析入門 by @hebikuzure さん </h3>
<div class="outline-text-3" id="text-1.3">
<p>
パケットの解析とはなにか、パケットを採る場所、方法、ツールなどの紹介だった。
</p>
<p>
パケットツールの紹介では、Wireshark、tcpdump を中心にいろいろなツールの紹介があった。
その中で、<a href="http://www.netresec.com/?page=NetworkMiner">NetworkMiner</a>というツールの紹介があった。
このツールは、キャプチャした通信から、ファイル、画像などが見やすい形で
表示することができるツールで、アプリケーションの通信でどのような
通信がされているかを見ることができ、Wiresharkとは違った用途で使えそうだ。
</p>
<p>
また、Windowsの場合は、Microsoftの<a href="http://www.microsoft.com/en-us/download/details.aspx?id=4865">Network Monitor</a>がパケットとプロセスの情報とを
結びつけられるということで、これも使えそうだ。
</p>
<p>
<a href="http://www.slideshare.net/hebikuzure/20130419-19149363">資料リンク</a>
</p>
</div>
</div>
<div id="outline-container-1.4" class="outline-3">
<h3 id="sec-1.4"><span class="section-number-3">1.4</span> tcpdumpから始まるネットワークエンジニアの朝 by @twovs さん </h3>
<div class="outline-text-3" id="text-1.4">
<p>
ネットワークエンジニアとしての心得を紹介だった。
経験に基づき、どのようなところに着目するか、どのように
異常に気づくかを簡潔にまとめてあった。
</p>
<p>
その中で、一番こころに残ったのは、
「正常系のパケットをいっぱい見よう」「パケットは読むんじゃない感じるんだ」というところ。
</p>
<p>
日頃から正常系のパケットを見ていると、
異常が起こったときに、パケットの感じが違う ということに気づくことができる。
tcpdumpで多くのパケットを見ることで、正常系を意識に残す。
もし、tcpdumpでなにか違う と思ったら、Wiresharkでじっくり現象を見ていく と
いうように、tcpdumpでパケットを感じるということが大切だということだった。
(だいぶ意訳がはいっているが。。)
</p>
<p>
<a href="http://www.slideshare.net/twovs/pakeana-14">資料リンク</a>
</p>
</div>
</div>
<div id="outline-container-1.5" class="outline-3">
<h3 id="sec-1.5"><span class="section-number-3">1.5</span> とある環境(3G回線)であるアプリのパケットを見てみた by @totoromasaki さん </h3>
<div class="outline-text-3" id="text-1.5">
<p>
ちょっとここではかけない。。
とても黒い感じがした。
</p>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/18297335343213309864noreply@blogger.com0