20190323-サーバーネットワーキング講座 – Linuxのルーティングと和解しよう
ref: https://wp.infra-workshop.tech/event/5472/
自己紹介
- 学生の頃にLinuxでルーターを作ってたり
- そのころの知識から派生して開発でお仕事
- ISPのDC(つよい)
- インターネットライクなものを作っていた
- ネットのお仕事してる
目次
- NWって何?
- ルーティング
- ネットワークの仕様ってこんなのあるよね←わかる
- 市場について
- 追い付くために・・・
- コマンド
-
こんな感じね~の共有
-
セッションしようと思った理由
- 20190319のセッションでネットワークってなんだっけって話が出たので
- そういう仕事をしていて、毎回同じようなことを教えているので
- 10年前から状況が大分変った
- Juniper, Ciscoだよねから内製とか色々できてきた
1. ルーティングってなんだっけ?
- ネット / ワーク
- ネット = 網
- ワーク = 仕事
- IPネットワーク
- 身近なアプリ、ブラウザとか・・・
- 全部繋ぐのがネットワーク
- 何故難しい?
- 家庭では組み込みのDHCP, NAPTとか単純なセグメントのネットワーク設計してくれる
- 中身についてはよくわからないよね
- おうちの外・・・ISPやらIXやらIPSやらDCやらと繋がっている
- こいつら(ネットワークエレメント)を正しくアクセスさせるためにルーティングが必要
- 時代の中で大分隠蔽化されてきて歯抜けにならないように
- 「見たらわかるじゃん」→地球規模だとよくわからん
- ISPの中にも色々
- N00, N000規模、めっちゃくちゃ複雑。
サーバーネットワーキング
- internet - L2/L3 - server1 - L2/L3 - server2
- 家庭のネットワークと違う
- server1から見た場合、左右どっちにパケットを投げればいい?
まとめ
- 難しい話は抜きに、膨大な道順をどっちに行けばいいかというのが課題。これを解決する
2. 市場動向
- サーバーのネットワーキングの盛り上がりの話
- 超大規模なDCの台頭
- DCの規模とCisco, Juniperと力関係が逆転しちゃった
- 内製化(ODM Quanta), 独自OS...主導してきた
- 超大規模なDCの台頭
- SDN・NFV
- 2012年・・・うっ頭が・・・OpenFlowSwitch...
- そっからクラウドさんが出てきて・・・
- そんな難しいわけではない
- 機能の仮想化
- LB, FW, Router, DPIなんかがOpenStack上に乗っけてきたり(2012ねんごろ)
- 経路の仮想化
- マルチテナントで経路をほげほげ
- VPNaaS, SD-WAN, Service Function Chaining
- まだまだ気軽には使えない
- 機能の仮想化
機能の仮想化
- 仮想化によるオーバーヘッドの解消
- SW
- DPDK...Linuxのネットワークを経由しないパケット操作・・・!?
- ソフトウェアでやるのは大変->HWは大変
- DPDK...Linuxのネットワークを経由しないパケット操作・・・!?
- HW
- SmartNIC/P4(Stratum)
- 最近盛り上がってる
- SmartNIC/P4(Stratum)
- これらをもとにv**を制御、高速化
- OpenなAPIでの組み合わせ・・・市場の要求、さらなる高度化
- SW
経路の仮想化
- NSH方式...パケットの頭につける
- SRv6
- 従来拡張
- ProxyARP+vRT(opencontrailとか), BGP, VxLAN, MPLS(古め)
- on Torellis Architechture... こういうのを乗っける仕事が(後述)
まとめ
- 機能、経路仮想化、API標準化がNWの世界でも!!
- 次に具体化
Torellis Architechtureについて
- 従来(North-South)
- インターネットがNorth
- サーバーがSouth
- Northにいかに行くか/返ってくるか
- 終端のラスト1マイルのトラフィックが増大
- Trellis(East-West)
- facebook産
- SV->DB->SVとかが多い・・・加速したい・・・
- Project Calico + OpenStack / K8s
- サーバーがTrellisの下に一杯居て、BGPで通知してどこにでも行く、どこでも性能が損なわない
- これ就活の時にあった動きだわ
- Cybozu coil
- サイボウズぐらいの企業でも取り組むくらいには流行ってる
- OpenStackと連携
- https://www.slideshare.net/VirtualTech-JP/project-calico-introduction-openstack-20177
- 前からもにょもにょされてたってこと
- facebookの記事は2014年
- サーバーがTrellisの下に一杯居て、BGPで通知してどこにでも行く、どこでも性能が損なわない
何が言いたかった?
- ネットワークてサーバーとかアプリの人間から遠い存在だった
- 仮想化出てきた
- Trellis出てきた
- 身近になってきた
- ネットワークベンダもRESTとか出してきた
- どうやってNW運用楽にしようかって話がどんどんDC/Cloudベンダから出てきてる
- プログラマブルASIC、専用OS、
(ここでマイク瞬断)
- 何しゃべってたか録画も生きてねえ!ww
- https://github.com/github/glb-director
3. Linuxのルーティングコマンド
- 今僕たちってどうやってるんだっけ?を共有
- net-tools...iproute2うっ頭が...
- nmcliは悪だ!!
- nmcliは神だよ
- nmcliは邪心だよ
- 正直なところOpenStackがNetworkManager止めろというのでそっちでは出番無さそう
- 個人的に、単体で普通にサーバー使うときはNetworkManagerとnmcli推奨
- ip .. とか route, arpとかの比較
- lsofとかその辺ぐらいで開発できるよ!
で、どう使うの?
ip route
コマンドを教えたい- 問題(図はスライド参照)
- 基本的にはip routeでルーティングテーブルの向き先を確認する?
- 答え
- ip route get IPアドレス
- えっこれ便利(知らなかった)
- 昔はroute PRINTしてみてたけど...
- 参加者の人みんなrouteで慣れてるw
- ワイもやで
- ip route get IPアドレス
- 例示の問題は間違ってる
- eth2から出るべき
- 問題(図はスライド参照)
- 言いたいとこはここに集約されている!!
ip route get
を覚えろ!!- 答え合わせあってた
(*´ω`*)
- 答え合わせあってた
正しく設定するためには
- 現状確認(図)
- ip route
- 現状確認(機器)
- ip route get IP
- 設定
- ip route add ...
- ...
プチまとめ
- シンプルルーティングはこんな感じで楽
- 宛先IP確認
- 宛先IP向けルーティング確認
- 誤ってたら設定
他にも...
- SRE本 ... L3DSR - ip tunnel
- L2DSR ... ip neigh(わかる)
- LinuxでPBR
- VLAN(管理表いやん)
- 永続化(わかる)
幕間
- ここからプチハンズオン
- mininet
4. mininetハンズオン
- この辺は省略。動画で見てねっ
- とりあえず面白そう。動作も軽そうでいい。