ソフトウェアルータ・スイッチ勉強会BOF(IW2016)

imageimage

imageimage

[2016-11-30 19:01]

Lagopusでルータ / 高橋

  • openflow, x86, >10Gbps(DPDK)
  • http://lagopus.github.io
  • ルータ機能も開発中(BGPとか)
    • linuxのルーティングテーブルをlagopusに同期
  • lagopus-as-open-flow-hybrid-switch-662....
  • (ルーティングのデモ)
    • lagosh
    • jsonでflow-ruleを指定して特定のフローだけパケットミラーリングしたり。
    • つかいやすいぞっと

[2016-11-30 19:19]

  • Q: コントローラなしでも動く?
  • A: 起動時のファイルで指定すればフローは入る。

[2016-11-30 19:21]

ホワイトボクスベンダとしてのSDN/NFVへの取り組み / 武田 (株)CASO

  • CASwell:台湾のx86ホワイトボックスベンダ, Foxconnグループ
  • CASO: CASwellの日本法人
  • R1-02330: intel atom c2000
  • R10-4030: intele xeon, 全面のポートがモジュール化されている。
  • Lagopus+VNFによるSDIアプライアンス
  • Tilera: コア数(9-72core)が多いNetworkProcessorをつかった製品。特定用途でx86よ り高パフォーマンス。+SURICATA
  • vCPE/IoT Gateway用: 工場向け、SIM, TPM, 暗号モジュールなどを搭載。

[2016-11-30 19:34]

  • Q: tileraでlagopusがうごくのはいつ?
  • A: 来月には。(ソフトウェア化されたのでハード移植が簡単になった)
  • Q: 工場系でもコントローラは必要?
  • A: yes. 話はそうとう多い。セキュリティの担保をどうするか課題。

[2016-11-30 19:38]

[2016-11-30 19:39]

NetTester 物理ネットワークのテストツール / 高宮

  • 会社間でVPNはってると。NAT/FW/DMZも。FWのテストが工数がかかる。
  • active-standbyがきりかわってもtcpがきれないかどうかというテストは手動でやるの がふつう。
  • テストノード・キャプチャ・CLI・syslogで現地でやらないといけなかったのがリモー トでできるように。
  • 仮想ノードをつなぐ、リンクダウンの注入、シナリオ自動実行
  • openflow swがパッチパネルとして動作。障害の注入も。
  • アプリ屋: Cucumber,RSpec,TEST::Unit, CI, Travis
  • インフラ屋にDevOpsを。DevOps化できているのは上位25%(google,amazon,facebookとか)。
  • http://github.com/net-tester

[2016-11-30 19:47]

  • Q: パケット出す方と受ける方の時間同期はどうしている?
  • A: 単なるパケット転送をみるだけではなく、L7レベル(アプリ)の動作で確認している 。
  • Q: ソフトウェア製品のテストは?
  • A: リセットをかけるためのフックを用意してるので、うまく書いて。ハード製品はう まくやらないとリセットで昼飯くえる時間がかかる。
  • Q: 公開しているのはどのぶぶん?
  • A: パッチパネル用openflowのコントローラとテストシナリオ(レシピ)。設定はむつか しく鍛錬が必要。
  • Q: openflow swの最低スペックは?
  • A: 1.0でok。pica8でやっている。ポート数は4以上、やりたいことによる。
  • Q: リンクダウンはほんとうにリンクダウン?
  • A: forwardをやめるところまで実装。ほんとうに切ってるかは知らず。

[2016-11-30 19:55]

[2016-11-30 19:56]

OpenStack Neutronプロジェクトから見たソフトウェアスイッチ動向 / 市原

  • Neutron: 仮想ネットワークを提供, switch router, vpn, fw, loadblancer.
    • さいきんではNeutronがつかわれている(昔はつかってくれない人がいた)
  • Neutron Stadium: プラグイン
  • 構成: コンピュートノード・ネットワークノード
    • compute-node: vSwitch, SR-IOV
    • network-node: router, bridge (namespace, route, iptable)
  • 歴史:
    • Nova network: linux bridge。 ルータ・トンネリングなし。
    • Quantum(Neutron): 2012/9/27 Folsom。OVS。セキュリティグループに対応不能だったためlinux bridge iptablesをつかっていた。パフォーマンスにもんだい。
  • linuxbridge+VLANで安定運用していたひとからはneutronのうけがわるかった。
    • 問題きりわけがむつかしいとかエンジニアの単価が高かったり。
  • namespaceやiptablesをつかわなくてもよいように → stateful
  • DVR(dist virt router), SFC(serv func chaining)はOVS限定機能
  • openvswitchの最新機能は随時neutronで対応されている。

[2016-11-30 20:12]

  • Q: openvswitchはneutronでかなりつかえてる?
  • A: yes. (NATはまだ入ってないか)
  • Q: ?
  • A: スタジアムにいるならドキュメント・CIを用意しないといけない。
  • Q: 性能は?
  • A: 性能テストはしていない。APIのテストしかしていない。linuxbridgeよりもスケー ルしないところはいろいろある(どんどん遅くなる?)。DPDKに移行するひとは少ない。

[2016-11-30 20:18]

n_kane氏にご挨拶。

image

BitVisor Summit 5

一ッ橋から靖国神社を抜け歩いて25分だった。

P1110379P1110388P1110393

工事中で地上はごちゃごちゃしていたが、26階からはスカイツリーや新宿副都心がきれいにみえた(曇天だったけど)。

imageP1110397

昼飯は地下1階の食堂で。まとまって座れそうな席が奥のほうにあったので座ったらドア から風が吹き込んでクソさむいし、外の喫煙場所からガスが流れこんでくるし、空いているのには理由があった。

imageimage

受付はとくになし。

image

[2016-11-30 13:00]P1110398

「BitVisorの現状と今後」 / 品川高廣

  • 最近の動向
    • 東大で実運用開始
      • 1300台くらい
      • ユーザ数25000
      • 月1でイメージ配信をしている。夜に起動して配信。
    • IPSJ-ONE 高校生向け宣伝
    • CANONのプロビジョニングシステムで宣伝
      • 資源管理をどうするか(端末管理)
      • canon in campus device
      • vThrii Seamless : networkboot, persistent cache, install, freeze, 差分配信, rollback,
  • 課題:
    • nested VMができない・遅い。OSをインストールする演習があるので。
    • ハード依存: ストレージ(NVMeは調査中), ネットワーク。
  • 学術的成果
    • デバイスドライバはハードウェアの故障(ビット反転など)を想定してない(しきれてない)。ポインタがこわれたら? fault-injectionでHW故障をおこす。
    • ベアメタルクラウドで不揮発なものがあると困る(リブートでリセットできない)。NICとかファームウェアとか。MACアドレス書き換え防止。
    • 分散フィルタリング。のっとられた(攻撃側)PCにbitvisorがはいっていれば攻撃パケ ットを止める。
  • 今後の課題
    • WLANとか。
  • 筑波大にもvThriiが入る。

[2016-11-30 13:30]

[2016-11-30 13:31]P1110399

「BitVisor 2016年の主な変更点」 / 榮樂英樹

  • PCIeデバイスの割り込み:
    • INTx: INTA,INTB,INTC,INTDをメッセージでエミュレーションl
    • MSI: バス経由でメモリ書き込み
    • virtio-netではIDやベースアドレスレジスタを偽装、わりこみはスルー。MSIを隠す。→INTxがでないPCがある→MSI対応するしか。MSIはvirtioの仕様がわからないのでMSI-X で。
  • 性能改善
    • thread
      • spinlockにはfairness問題がある。lockfree版はまれにpanic。ticketlockは遅い。
    • nested paging
      • 2MiBページ
    • mm_lockレースコンディション
      • bitvisor 0.?くらい昔からのバグ。ページの状態繊維でlockしてないところがあった。
    • UEFI アラインメントが途中から必須になってた。
    • virio-netわりこみステータス
  • iMAC SDカードリーダ対応: nicとsdがマルチファンクションになってたが,bitvisorが かくしすぎてた。
  • EFI variableエラー
  • intel最新CPU対応 x2APIC
  • BitVisor 2.0
    • unsafe nested virtualization

[2016-11-30 13:53]

  • Q: ページテーブルつかいきったらクリアする処理はそのまま?(じょじょに差し替えるようにならない?)
  • A: yes.
  • Q: ばあたりすぎない?
  • A: 。。。
  • Q: 割り込み変換はドライバ発狂しなかった?
  • A: エッジトリガなのか、たまたまうまくいっている。

[2016-11-30 13:57]

[2016-11-30 13:57]P1110400

「Virtualize APIC accessによるAPICフック手法」 / 富田崇詠

  • マルウェアの挙動の正確な解析が重要 → Alkanet
  • 感染したメモリを経由してシステムコールが発行されたのかどうか判定したい。BTS(intelのBranch Trace Store)で関数の呼出階層を特定。
  • BTSはバッファあふれの可能性 → バッファあふれのタイミングで割り込み発生、蓄積 する。
  • LPIC LVT(Local Vector Table)を変更する必要があるがゲストOSにさわらせないようにするためAPICをフックする。
    • bitvisor MMIOフック (EPT violationで)
    • intel VT Virtualize APIC access (APICページアクセスでVM exit)
    • 起動時間を比較してみた → 大差なし
      • virtualize apic accessではVM Exitを減らすための機能がある(改善余地あり): TPR shadow, apic register virtualization.
  • TPR: 割り込み優先度でマスクするときの閾値 (優先度 = ベクタ / 16)
    • windows起動時の9割以上がTPR
  • TPR shadowはまだ起動中にとまってしまう。

[2016-11-30 14:20]

  • Q: shadow apicと物理apicのどっちでルーティングされる?
  • A: ?
  • Q: どうやって感染領域を知る?
  • A: マルウェアを感染させるときに既知。
  • Q: 非完成領域からのsysenterでもシステムコール自体を変えられてしまったらダメで は?
  • A: ?
  • Q: alkanetを回避する方法はある?
  • A: しらず。
  • Q: XPでも書き込み多い?だとするとshadowからリアルにも反映する必要があるので性 能はあまり改善されないのでは?
  • A: 書き込みが多い。。。

[2016-11-30 14:36]

休憩10分

[2016-11-30 14:45]P1110402

「xHCI Driver Implementation」 / Ake Koomsin

  • ((おれの英語力0なので聞き取れず))
  • MMIO registers: capability, operational, ex.capability, runtime, doorbell.

[2016-11-30 15:17]

  • QA

[2016-11-30 15:28]

[2016-11-30 15:29]P1110404

「TinyVisorを動作させる際に体験したエラーの共有,解説」 / 安岡亮輔

  • tinyvisorはbitvisor summit 2で発表されたもの。
  • tinyvisorを動かせる人が少ない。tinyvisorが動いたという報告は安岡が初めて。→ 増やして素人にやさしくしたい。
  • 半年かかってtinyvisorがうごくようになった。ハード依存が激しいため?
  • snprintf(buf, size, str) -Werror=format-string
  • AMLパーサ(NetBSD由来のコード)でパニック → PCを変えてみた → やっぱり原因不明(傾向つかめず)
  • 今後の予定: nested VM, tinyvisorの動的on/off, migration(VMMの動的update).

[2016-11-30 15:55]

  • Q: tinyvisorのVM0とVM1はいまでも非対称?
  • A: yes. VM1は補助的(機能制限がきつい) 上のVMM1が機能差を吸収してくれるのを期待。
  • Q: やりはじめた動機は?
  • A: VMMを動的にupdateするためにノード内マイグレーションをつかいたい。tinyvisor のon/off(パススルー)ができるとうれしい。

[2016-11-30 16:06]

10分休憩

[2016-11-30 16:15]P1110408

「BitVisor内蔵のlwIPでAlkanetのログ送信を試みる」 / 山下雄也

  • alkanet: アンチデバッグ機能のあるマルウェアでもスレッド単位で解析可能
  • IEEE1394でログを転送している → ハードをえらぶため ethernet版alkanet を開発中
  • UDP使用
  • lwIP(lightweight IP): bitvisorに移植されている。
  • VMMでip隠蔽するかしないかを選べる。TCPチューニング(MSS,sndbufなど)できる。
  • 性能測定(nic=pro1000)
    • tuning+ippassするとパフォーマンス向上
  • ARPで解決するまでパケット待ちキューサイズが1pktに設定されているためARP解決前に2パケット以上送信しようとすると上書きされてしまう。 → tcp_connect()をつかう。
  • UDPの場合はARP replyを待てるように改造するかqlenを伸ばすか。

[2016-11-30 16:38]

  • Q: IEEE1394でのスピードは?
  • A: 400Mbps。最新規格でも実測800Mbpsで頭打ち。
  • Q: ログがおいつかないケースはあるか?
  • A: 400Mbpsでおいつかないケースはるときいている。
  • Q: アンチデバッグとは?
  • A: VMCALLの反応をみるとわかる。ゲストがVMCALLをだしたらbitvisorは未定を返すよ うにする。時刻をみられるとわかっちゃうかも。
  • Q: NIC増やすと速くなる?
  • A: わからず。
  • Q: 10Gは? etherフレーム生送信すればできる
  • Q: syslogも送信できるようになっている。
  • Q: IEEE1394
  • A: メモリを直接読み書きしている

[2016-11-30 16:50]

[2016-11-30 16:50]P1110409

「BitVisor と KVM の性能比較の落とし穴」 / 深井貴明

  • BitVisorとKVMの性能比較時に陥いった問題の紹介
  • sysbenchでKVMが1kBアクセスがやたら遅い
    • タイマよみだしが頻発 → kvm-clockがおそかった。tscにするとはやくなった。
  • KVMは最大メモリ量がわからないのでメモリサイズをどうしたらいいかtry&errになってしまう。
  • KVM host64bit guest32bitだと 64bitの方がドライバやレジスタが多いなので速くなることも。
  • turbostat
  • processor.max_cstate=0にしてCステート下がらないようにしたらACPI idleが走って遅くなった。idle=pollが速い。oracleチューニング
  • EPTバッファあふれ
  • 割り込みが1CPUに集中してしまってもKVMが分散させてくれる。
  • YCSB ベンチマーク
  • 便利ツール: perf, strace/ftrace/dtrace, turbostat
  • iPXE,sshをつかって下まわり(baremetal/bitvisor/KVM)の切り替えを自動化しよう。

[2016-11-30 17:11]

  • Q: overcommit

[2016-11-30 17:14]

「BitVisor Advent Calendarについて」

  • コミュニティのもりあげ
  • ドキュメント
  • 2015年はそこそこ成功した。
  • 2016年は、まだカレンダーが埋まってない。

[2016-11-30 17:20]

  • Q: カレーンダーはあとから埋めてもよい?
  • A: 当日までに埋めるのが文化。
  • Q: 割り込みの分散は、baremetalでLinuxカーネルが分散させる機能が必要なんでは?
  • A: ふつうはHWがやるべき。やる価値はあるかも。
  • ネットワークではRSSがある。(割り込みをちらしつつ同じフローが同じCPUに行くよう に)
  • APICにアイドルCPUに割り込みなげる機能があったかも。

[2016-11-30 17:29]

フリーディスカッション

  • どこかにwikiみたいなものがあるといいかなぁ。
  • HWの動作確認リストがあるといいかな。
  • bitbucketだとダウンロード数が取れない? sourceforgeだと国別に統計情報がとれた りしたんだけど。
  • (オフレコ)機能追加を依頼できるところない?(iGEL以外で) 研究ネタなら大学ででき るけど、開発は未来大学では卒論修論で開発論文が認められている。
  • VM上のguestOSの具合がわるいときのデバッグ方法。
    • CONFIG_EARLY_PRINTK
  • bitvisor自体にデバッグ機能を入れてほしい。
  • 掲示板かなにかでクラウドソーシング?
  • iPXE: UEFIをkernel、initrdをimageに指定すると、ファイルがみられる。
  • floating pointをbitvisor内でつかいえないのはguestとぶつかるので。退避してbitたてたらok。
  • bitvisorのパッチをとりこむポリシーは決まってないなぁ。えいらくさんがパッチをとりこむときに修正するのでえいらくさんの時間がないととりこまれないという。

[2016-11-30 18:06]

檀上背後のカーテンをあけると夜景が。

BlogPaintP1110415image

市ヶ谷駅へ移動。。。

P1110416

IPv6 Summit in TOKYO 2016

浅草橋駅からガード下ぞいに歩いていくと、とづぜんあらわれる高層ビル。まわりの雰囲気から浮きまくり。

image

会場ではIPv6のアクセスポイントが設置されていたが、設定情報がスクリーンに出てないし紙にも印刷してないしめんどくさいのでスルー。

image

最初は暑かったけど、後半は冷房が入って寒い(暖房切っただけかもしれんが)。

image

[2016-11-28 13:13]

基調講演 「IoTの技術動向と日本の戦略」 丹康雄

  • 「日本の戦略」は合意とってないのでオマケ
  • 1980:ユビキタス(virtualとrealの関係がかわってくるといわれた)
  • 2000:インターネット常時接続
  • 2005:Web2.0(もうみんなわすれてるとおもうけど)
  • Web2.0
    • データがコアになる(ソフトはタダ)・集合知
    • データは集めるものから集まるもの(生データ)へ(目的外利用)。
  • Industrie 4.0: 職業観(キャリアパスとか)の変革
  • CPS(cyber physical system): オートマトンと微分方程式で記述する世界
  • IoE: IoThingsだと手にもてるものをイメージできてしまうのでEverything.
  • SoS: System of Systems. M2MはIoTの下位概念に。
  • IoTの5要素: つなげる・かんじる・はんだんする・うごかす・きおくする
  • ホームネットワーク
    • 昔はどうやって安価に家電をつなぐか、を議論していた
    • HEMS: ECHONET Liteが乗る。 TTC TR-1043でまとめた
    • ECHONETは機能分割するのではなく、あるものをそのままモデル化してるので似ているものがある。
  • サービス方法(データをためる方法)
    • スタンドアロン型HNは富裕層向け(アメリカ・中国).家庭ごとに構成がちがうのでメンテ費用がかかる。
    • ASP型: 日本。
    • プラットフォーム型: 家庭内にサービスプラットフォームを置いてデバイスを抽象化。
  • AV系と白物とヘルス系で水平統合はむり。垂直統合がメインになる。
  • ホームネットワークでの試行錯誤はIoTに生かせそう。
  • ECHONETでは農業漁業はきめてなかった→ちゃぶだいがえし状態
  • ホームネットワークをビジネスでやろうとすると欠けていることがおおい。
    • 遠隔管理ができない
    • APIのセマンティックスがすりあわせてない
    • パーソナルデータのあつかいの社会的コンセサスがえられていない
    • サイバーセキュリティ(サイバー治安維持), IoTセキュリティ(物理がはいってくる)
      • 経産省: ものづくり(IPA)
      • 総務省: ネットワーク
      • ぜんぜんあわない水と油
  • LPWA(low power wide area)
    • Flexnet(pagerの帯域をつかう)
    • WI-SUN: R=1km
    • WiFi-Halow
  • 飛びすぎるよりもマルチホップの方がいい、とおもってたのに。長距離は牛・船なんかでは意味がある。
  • 無線は距離と速度で分類できる。7グループにわけられる。
  • 有線は話題になってない。4グループにわけられる。給電できるのが無線との違い。距離・速度・給電電力の3次元に。
  • 複合機はOSGi Javaベースでbundle単位でライブアップデート可能になっていることがおおい。NTT flets jointでB2Bサービスをやっている(うれてないけど).
  • CWMP(CPE WAN Management Protocol)は海外ではそこそこつかわれている。
  • ネットワーク側でしょぼいノードを分離する機能が必要。IPつかっているけどインターネットにつないじゃいけないもの。 like:車検(インターネットにつないでよい?)
  • M2Mの通信はパターンがみえるので異常な通信をみつけやすい。プロビジョニングもらく。
    • 工場内のトラフィックをみたら今なにつくっているか分かってしまうかも
  • 日本のIoTは10年くらい前は先行していたはずだが、NTTがこれいじょう強くなってはこまるとかで事業所つぶしたりして自縄自縛

[2016-11-28 14:08]

[2016-11-28 14:09]

国連IGF会議におけるIPv6普及促進に関する活動 / 奥谷泉

  • IPv4配分が先進国にかたよってる問題。
  • 次の10億人に分配する技術としてのIPv6
  • internet governace forum
    • 国連のなかでも異質、誰でも参加可能、NOGみたいな、
  • IGF best practices forum (BPF)
    • 政治的なはなしではなく、いまある問題の解決
  • IPv6導入top10のうち欧州7,日本は13位

[2016-11-28 14:34]

15分休憩

10分くらい寝た

[2016-11-28 14:49]

IPv6普及最新状況 / 北口

  • cisco 6lab
    • 対応率 = { transitAS% + 3 x sqrt(contents% x user%) } / 4
    • user: OS対応率
    • network: BGP
    • contents: FQDNのAAAA
  • google: 2019年には50%越える予想
  • 日本のネットワークIPv6対応は昔:先行、ちょい前:停滞、最近:ARINの枯渇をきっかけに伸びだした。
  • 日本のコンテンツは36.25%と低い。世界的にみて遅れている。
  • 日本は2000年当初にがんばりすぎて息切れ状態?

[2016-11-28 15:05]

IPアドレス最新レポート / 佐藤晋(ススム)

  • RIPEは/29の配分が多い。
  • ARINの/22が22こも配分されているのは国防関係の組織。
  • ベルギーは普及率高いけど、分配量は少ない。
  • アメリカは普及率も分配量も多い。
  • 日本はアジアの中では比較的がんばっている方。
  • 2014以降、中国が分配を急激に受けている
  • 日本・韓国は先行して分配をうけていたが、最近は鈍い。
  • IP指定事業者のIPv6分配をうけているのは割合的には増えてきてない。
  • IPv4: LACNIC/ARINは最後の/8はつかいきっている。APNICも2019にはつかいきる予想。
  • IPv4アドレス移転: ARIN活発におこなわれている。入手コスト増加。

[2016-11-28 15:20]

IPv6普及・高度化推進協議会報告 / 津国

  • IPv6家庭用ルータガイドライン 第二版
  • RFC7084もある

[2016-11-28 15:26]

  • Q:apple IPv6 25ms happy eyeballは検証した?
  • A:評価してない

[2016-11-28 15:28]

休憩

[2016-11-28 15:40]

携帯キャリアにおけるIPv6対応最新状況

  • シェア順じゃなくて

ソフトバンク / 安力川(やすかがわ)

  • 2017年 IPv6デフォルト化
    • 各社共通で調査や議論
  • 固定通信と移動体通信の違い
    • 移動してもアドレスはかわらない・フィルタリングなどのポリシーの統一
    • エリアごとの展開はできない
  • ネットワーク構成は(オフレコ)
  • 顧客対応 窓口の人/加入者管理/端末管理のIPv6教育に苦労
  • ベアラ以外にもバックエンドの対応もある。ビジネスの部分の対応もある。

ドコモ / 伊藤

  • モバイルネットワークのIP化はimodeが最初。
  • 3G, LTEはIPの技術で構築されている。
  • spmodeはプライベートアドレス
  • 移動してアドレスが他の端末とかぶっても通信は維持できる。
    • (下)モバイルIPネットワークではアドレスの一意性は確保している
    • (上)IPネットワークは重複あり
  • spmodeは2017夏の時点では対応設備にattachされた端末だけlIPv6が利用できる。240a:005b::/64

KDDI / 茂庭

  • 3GではプロキシがFWになっていた。帯域が狭く通信量(ダブル定額でパケット量)に対する顧客の目が厳しかった。
  • LTEでlarge-scale NATを導入。ティアードプランのユーザはパケット量は意識。
  • IPv6になってもFW(SPI,DPI)は必要。

[2016-11-28 16:07]

  • 各社の対応予定
  • docomoは(オフレコ)
  • KDDIは(オフレコ)
  • softbankは(オフレコ)

[2016-11-28 16:11]

  • 2017年夏以降から
  • 海外のローミングもある
  • キャリアが管理してない端末での不具合はおしえて

[2016-11-28 16:18]

休憩

[2016-11-28 16:25]

パネル討論 「IPv6対応のmissing pieceは? 今後の更なる発展に向けて」

  • 東大:えさき、さくら:よこた、IIJ:みやざき、MS:たまる、総務省:たかむら、インテック:あらの(コーディネーター)
  • IAB: SDOに対してIPv6 must,IPv4 compatは必須ではない,IPv6 compatはmust,IPv6-only推し.
  • さくら: レンタル・VPS・クラウドが伸びている。1.3%くらいのユーザがIPv6を利用。ルータ+スイッチは6%が利用。専用サーバではv6を切っているユーザ多め。デフォルトをどっちに倒すかはユーザ層をみて決めている。レンタルサーバはwordpressが半分。
  • IIJ: クラウドサービス(GIO P2; IaaS)やってる。IPv6(dual stack)はつかえるようになっているが、あまり使われていないのが実情。お客さん基幹系システムはIPv6の要望はまずない。
  • MS: クラウドにシフトしてきている。ネットワークインフラは世界第2位の規模。1位は米国政府。下廻りはIPv6対応は済んでいる。Azure. IPv6のメリットは(ごにょごにょ). office365は主要なものはv6対応ずみ。
  • 総務省: IPv6はいいものだというキャンペーンをやめてもらった8年前。そろそろv6じゃないとできないことがでてくるのかなぁと。エンドユーザがアドレスがほしくなってくるころ。Ipv6きてるけどPPPoE買換え1万円は高い障壁。IPoEこい。

[2016-11-28 17:05]

  • メールアドレスの維持を気にしなくていいならISPうつればいいじゃん。いまどきの人はメールアドレスかわるのに抵抗ないんじゃ。
  • デュアルスタック避けてない? シンプルにしてる。サービス事業者間のトラフィックは膨大なので直結。
  • 家庭内ルータの32個のアドレス枯渇してネットにつながらなかった。
  • 企業はサーバ(トラディショナルなサーバ;not IoT)はそんなに持ってない。家庭の方がデバイスの増え方が激しいのでは。
  • IoTでは百単位でアドレスを消費する。デバイスの値段も安くなってきて加速しそう。
  • IPv6 onlyにできる(外にでるときにNAT)? → IIJ:現状はできない。中にv4のものが残っている。
  • コンテンツの対応は(以前はクラウドが対応してないからっていいわけしてた)?あと一歩ふみだすには? → 総務省:うごいているものはいじるな、の原理。
  • google/facebookがIPv6 onlyにしたのは新しいサービスにあわせてやってるんじゃないか。
  • プライベートクラウドよりもパブリッククラウドの方が伸びてる。
  • fallback問題はコンテンツ事業者には致命的。
  • XBOXはIPv6対応は早いほう。IPv6の方がレスポンスがよかったり? チート対策でNAT通したくないのでv6とか。
  • おれからv6をさわるエンジニア対策は? → そろそろシングルスタックを前提にしてもいいんじゃないか。IoTは囲い込みたいし。
  • ネットでころがっているコピペされるコードがIPv4 onlyなのが問題なのでは。
  • 20代〜30代はIPv6にすぽっと抜けてるんじゃないか。

[2016-11-28 17:49]

けっこう人がはいっていて意外だ。ついにIPv6はくる?

imageimage

今日の練習 2016-11-28

ひさしぶりに品プーへ。1時間だけ泳いだ。往復コースはなにやら速そうな人がいたので、完泳コースで前が空いているときはスピードあげて、あとはドリルっぽく。最後に25m Cr *2. 動きが雑だがタイムはまぁまぁ。

image

ドラッグストアの跡地にはステーキ屋が。ただいま研修中。image

まいばすけっと跡地は閉まったままだなぁ。そんなに立地はかわらないとおもうけど。

歌舞伎座.tech#12「メッセージフォーマット/RPC勉強会」

P1110352x

[2016-11-27 13:47]

新宿→銀座→東銀座 出口5ですぐだった。早く着きすぎて、まだ会場設営しおわったところだった。電源タップは潤沢に用意されていて席えらびには困らず。

P1110351P1110354xP1110355x

[2016-11-27 14:00]

前説

  • 仕事でつかっているけどみんだどうしてるのかな?ってことで勉強会開催した。
  • 何つかっている? (30人くらい)
    • XML: 4
    • JSON: 多い
    • messagepack: 仕事1
    • Thrift: 4
    • protocolbuffer: 10
    • avro: 3
    • CBOR(RFC7049): 1
  • 質問は手を挙げてマイクがくるのをまってから。

[2016-11-27 14:10]

ProtocolBuffer / @tayama0324

  • http://tayama0324.github.io/slides/20161127-kbkz-tech.html#/
  • RESTよりgRPCの方が便利って布教中
  • ドワンゴ社内ではScalaをつかっているのでgRPCをさくっと対応
  • gRPCでprotocolbufferを知った人 → 0人; もともとprotocolbufferを知ってた人 → 3人
    • 日本ではprotocolbufferは流行ってないとおもってた。。
  • googleの社内でRPC系はgrpcになっている。ログもprotocolbufferで保存してたり。
  • IDL
    • 変数名 フィールド名 = タグ名;
    • タグ名はフィールド名に対応した番号。いちいちエンコードするのは無駄なので。
  • immutableなデータ構造をつかうためだけにprotocolbufferをつかうのもあり。builderを書くのはめんどくさいので。
  • vs JSON/JSON schema:
    • jsonは静的型付け言語と相性がわるい
    • protocolbufはデータ構造を定義、JSON schemaは値の範囲を記述。JSON schemaでは再帰的データ構造は書けない。
    • バイナリフォーマットなのでサイズが小さい。
    • protocolbuf<->jsonの変換規則はgoogleが決めている。
  • フォーマットの基本的な方針: タグ・ワイヤータイプ・フィールド値をエンコードしたものを並べる。
  • フィールドタイプとワイヤータイプは1:1ではない。ワイヤータイプは4種類しかない。
    • varint(可変長int),32bit fixed,64bit fiexed,byte-array.
    • 文字列はUTF8をbyte-arrayにのせる。
  • signedで負の値のときは最上位ビットが立ってvarintに乗せると損→sint32: 絶対値が小さいもの順にエンコードしていく。0→0,1→1 -1→2...
  • robustness principle
    • IDL ver3が最新、ver2ではrequired/optional/repeated修飾子が必須だった。
    • requiredはbad parts: フィールドが不要になっても削除できない(システム全体で切り替えないといけないので現実的でない)。この話はprotobufにかぎらない話。
      • データ保存で、新しいバージョンをリリースしたあとバグが発覚して古いバージョンに戻したときに死亡...
    • requiredをやめてデフォルト値を導入した。ver2でもデフォルト値があって任意の値が指定でき、デフォルト値なのかデータが飛んできたものかのビットがあった。v3でコンパイルしたコードが小さくなるメリットがある。v3では区別できなくなった。
    • フィールドの追加削除が自由にできるようになった。
  • protocolbufferをつかわなくてもlanguage guideは読んでおくとよい。
  • ガイドラインを読んでおくとたいていの罠を回避できる。

[2016-11-27 14:44]

  • Q: Thriftではrequiredで送ってoptionalで受け取るのができるが? protobufではどうなっている?
  • A: protobufでもできるが基本的にやらない。バージョンが戻るときもあるし。
  • Q: jsonと変換するときにIDLは必要?
  • A: 自動生成されるコードにIDL相当の情報が入っているので不要らしい。

[2016-11-27 14:49]

10分休憩

[2016-11-27 15:00]

ZeroFormatter/MagicOnion / @neuecc

  • http://www.slideshare.net/neuecc/zeroformattermagiconion-fastest-c-serializergrpc-based-c-rpc
  • ググってもないよ。おれおれなので。C#
  • よのなかにフォーマットはいっぱいある。
  • パフォーマンスとは: 速度は実装に依存するので比較するときに注意。
  • スキーマレスならデバッグ耐性がある(ダンプしやすい).
  • バージョニング: キーに文字列をとるものは型の変更に追随しやすい。
  • 古いandroidで速度が問題になることも。サイズが大きいと展開に数秒かかったり。圧縮すると遅くなるし。
  • ひらめいてzeroformatter開発 → deserializeしなければ速い!
    • googleのflatbuffersを同じような仕様だがC#フレンドリーなのがちがう。
  • byte[]をかかえているだけ。プロパティにアクセスしたときに遅延評価でデシリアライズ。先頭にインデックスをおく。
  • あんがい全てのデータは必要ないことが多い。(マスタデータがでかいときとか). 簡易データベースとしてもつかえないこともない。
  • IDL不要。だいきらい。書きやすくない。シンタックスハイライトがない。コンパイラの力がつかえない。protobufでインデックスふるのやだ。
  • unionもサポートしてる。
  • ruby/swiftのフォーマッターを書いてくれる人も。
  • なぜRPCなのか?
    • RESTで手書き。
    • gRPCで自動生成。
    • 自動生成はダルい!つらい! CIの自動化も複雑化の元。ミクロな自動化のせいでマクロがカオスに!
    • C#のDLLにすれば外部スキーマが不要に。
    • クライアント自動生成が残ってしまった。。。 → MagicOnion
  • MagicOninonはgRPCの上にC#のつかいやすさをくわいる。gRPC based C# Network Framework.
    • 通信部分はあまりさわりたくない。
    • gRPCはrpcの引数返り値をいちいち定義するのがダルい。
    • skin layer: うすくラップする。
    • gRPCはmarchalerを切り替えられるので、zeroformatterにかえてる。
  • C#で統一することでの強みがある。

[2016-11-27 15:30]

  • Q: 多言語に移植してほしい?
  • A: zeroformatterは移植してほしい。C#をIDLのようにつかってくれ!
  • Q: 互換性は?
  • A: フィールドを増やす方向は対応する。フィールド消すのは欠番で対応。運用で回避できる範囲。

[2016-11-27 15:33]

10分休憩

[2016-11-27 15:44]

Ad Serving System on Finagle and Thrift / @daimatz

  • https://speakerdeck.com/daimatz/ad-serving-system-on-finagle-and-thrift
  • フォーマットの話よりは運用面の話。
  • Finagleはtwitterが開発。 Your Service as a Funciton.
  • Futureはcomposableなのがcallbackとのちがい。
  • sequential composition: map, flatMap
  • consurrent composition: collect, join, select. selectは最初に終わったfutureをとりだして残りのfutureのseqを返す。
  • FinableのServiceはapply(req)がFuture(resp)を返すかたちになっている。
  • Thriftはfacebookがつくってopensource apache projectにしてまたfacebookがいじってるらしい(fbthrift)。
    • プリミティブ:bool,byte,i16,i32,i64,double,binary,string
    • ユーザ定義型: enum, struct, union, oneof
    • コンテナ: optional, list, set, map
    • protobufにくらべるとコンパクションは弱いかも。
  • DBとloggingでThriftをつかっている。
    • bytesをBLOBとしてMySQLにつっこむ。JOINはアプリでがんばる。
  • DBをアップデート(データマイグレション)するときは、いちいち変換プログラムを書かないといけない。つらい。わりと似たようなことがおおい。 → カジュアルに変換スクリプト(ScalaScript)を書けるようにした。
  • 社内のライブライをすべてつっこんだ fat-jar を用意。scalaのリフレクションもつかう。型チェックもはいるのでうれしい。
  • dashboardをつくってもその機能の管理画面をつくるまで余裕がない問題。→ ScroogeのparserをつかってASTを吐かせてHTMLフォームを自動生成。
  • cold dataはプロセス内でキャッシュ。redisへのアクセスを減らすが、master dataの更新はたまにはあるのでそのときはリロードする。
  • scorer: adサーバでさばききれないときにスコアリングしてくれる。
  • (インターネット越しの)外部のサーバに問い合わせることもある。いい広告がないときに提携している広告会社からもらうときに。
  • 広告系ではオープンソースのを名前空間だけ変えてプロジェクトにつっこむということをよくやるが、バイナリサイズが大きくなってしまう。

[2016-11-27 16:29]

10分休憩

  • 会場は25人くらい?

P1110356x

[2016-11-27 16:40]

CBOR RFC7049 / @fumieval

  • https://www.dropbox.com/sh/j9mt5i95mcf6e66/AADbnVJdhSyOe2c8vps_Q40Ka
  • 鳥とコーヒーが好きな写真家
  • イラストレーターでプレゼン
  • Concise Binary Object Representation
  • encoder/decoderが簡潔にできるようにっている。スキーマレス。
  • http://cbor.me/
  • プリミティブは多め。
  • 無限に長いものも扱える。
  • タグ付きオジェククト: オブジェクトに意味をつける。1は時刻とか、35が正規表現とか。
  • jqみたいなツールを開発中: cbor-tool
  • [2016-11-27 16:59] (発表者:あと何分? → 運営:時間決めてない)
  • 実装はわりといっぱいある。 http://cbor.io/impls.html

[2016-11-27 17:03]

[2016-11-27 17:05]

[2016-11-27 17:15]

Rustで非同期Thrift / @blackenedgold

  • https://keens.github.io/slide/RustdehidoukiThriftshitai/
  • 「SAで広告部門なのでまるかぶりです」
  • RPC: 言語を跨げる + リモートで呼べる
  • protobufはJSONは効率2倍(cpu,mem,net)。
  • avroはプロトコルが柔軟?
  • Thriftは対応言語が豊富。
  • 非同期重要。クライアントに届くまで80%は待ち時間。
  • thrust: コード生成がコンパイラプラグインになっているのがおもしろい
  • RPCはロードバランシングできない。クライアントはサーバにつないだらつなぎっぱなしになりがち。Finagleクライアントはfault-toleranceがある。
  • mioはlibeventのラッパーみたいなもの。ループ内でメモリallocしない。ソケット以外にもメモリチャンネルも監視できる。
  • zero-cost futures in Rust: コンパイル時に解決して状態マシンにしちゃう。型付けはたいへんなことになっている。
  • tokio-service: リクエストをもらってFutureをかえすtrait.
  • tokio-thrift: この発表のためにつくった。
  • ThriftでJSONはやめとけ。(出てくるデータが期待したものとちがって内部構造そのまま)
  • 所有権とゼロコピー: parseするときにバッファをコピーしないようになっている。
  • 複数メソッド: enum化しないといけないムダ。→懇親会で回避方法しってたらおしえて
  • コード自動生成の問題: 生成したコードもコミットしないといけない。コミットしないとツールのバージョンが変わったときにバグったり→バージョン指定するしか
  • 多重化: pipelineとmultiplex. multiplexはシーケンス番号を振るのでオーバヘッドがあるし独自実装。
  • Thriftはストリーミング指向なのにtokio-thriftはバッファ持って何度もparseしちゃう?

[2016-11-27 17:43]

↓LT

API for Front-end / @koba789

[2016-11-27 17:49]

[2016-11-27 17:50]

Web APIでThriftをシリアライザとして使う / @h_kishi

  • http://www.slideshare.net/h_kishi/20161127-web-apithrift
  • JSONつらみ: パフォーマンスでないメモリ食う長期運用してるとフィールドの意味がわからなくなったり
  • 今回はthriftを選定したがprotobuf v3もよさげ。
  • プルリクエストベースでフィールド追加の依頼ができるメリット。
  • チート対策: デシリアライザを難読化
  • IDL書くのメンドクサイがチームが大きくなるとメリットあるはず。

[2016-11-27 17:58]

  • Q: 難読化: スマホアプリで名前がまるみえ(リリース前の秘密の機能がみえちゃう), protobufだとproguardかけるときれいに消えるがthriftではどう?
  • A: 知らず。リフレクションをつかっているところがあるのでムリかも。

[2016-11-27 18:00]

Closing

  • ドワンゴ会場よかった
  • 「みなさんslideshareやspeakerdeckにアップロードしてくれてますがニコナレもあるのでよろしく」

[2016-11-27 18:03]

P1110359P1110360xP1110361P1110363

懇親会は参加せず帰宅。1階では結婚式?をやってた。帰りは雨だった。

センターのプロジェクタが暗いのがアレだな。前の席に座るか後ろに座って天井マウントの液晶ディスプレイみるかの二択。

参加59+発表7に対して実際に来たひとが30未満って、あまり人気のない話題だったのかもしれない。直前キャンセルもいっぱいあったみたいだし。

記事検索
月別アーカイブ
アクセスカウンター

    ギャラリー
    • ソフトウェアルータ・スイッチ勉強会BOF(IW2016)
    • ソフトウェアルータ・スイッチ勉強会BOF(IW2016)
    • ソフトウェアルータ・スイッチ勉強会BOF(IW2016)
    • ソフトウェアルータ・スイッチ勉強会BOF(IW2016)
    • ソフトウェアルータ・スイッチ勉強会BOF(IW2016)
    • BitVisor Summit 5
    Amazon
    Amazonライブリンク
    楽天市場
    adby google
    • ライブドアブログ