Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
とあるVyattaの名前空間チーム vyavyavyavyavyavyavyavyavyavyavyavyavyavyavya中村 遼 upa@haeena.net浅井大史 panda@hongo.wide.ad.jp	~ネームスペース~
IaaS Cloud	Ü  IaaSクラウド全盛Ü  Amazon EC2Ü  さくらのクラウドÜ  NTT Cloud(n)Ü  KDDI CloudCoreÜ  個人でもクラウドを運用できるÜ  VMware、KVM、Xen、...
クラウドのネットワーク	Ü  でも、VMがあるだけじゃだめ!!Ü  クラウド上のネットワークÜ  セグメントの分割とルーティングÜ  ACLやIDSなどのFirewall機能Ü  NATなどクラウドにもネットワークの機能が必要Ü  ...
Software Router Vyatta	Ü  そこでVyattaですよ!Ü  LinuxベースのソフトウェアルータÜ  様々なLinuxのネットワークの機能をまとめたCLIを提供 (Juni○erっぽい)Ü  オープンソース < ...
Vyatta「を」仮想化?Vyatta「で」仮想化?	Ü  Vyattaをルータにしてクラウド上でネットワーク構築Ü  「Vyattaを仮想化」してクラウドへ投入!!Ü  もちろん可能!ルータの数だけVyatta VMをデプロイでOKÜ...
Vyatta「で」仮想化	Ü  実は、Vyatta自体には、ネットワーク仮想化のための機能が無いÜ  ネットワーク仮想化の機能といえば...Ü  VRF : 経路表の仮想化Ü  Virtual Chassis : 筐体の二身一体によるH...
Vyatta「で」仮想化	Ü  実は、Vyatta自体には、ネットワーク仮想化のための機能が無いÜ  ネットワーク仮想化の機能といえば...Ü  VRF : 経路表の仮想化Ü  Virtual Chassis : 筐体の二身一体によるH...
なので、つくってみました。
せきや先生、VyattaでVRFしたいんですけど、Linuxで便利な何かないですか?
VRFができると?	Ü  1つのVyatta Networkで、複数の仮想ネットワークスライスを構築できるようになる!!
VyattaでVRFするには?	Ü  Linux Network NamespaceÜ  もともとはLinux Containers (LXC)を実現するためのネットワークスタックの分割機能Ü  Namespaceごとに経路表が作成される...
Vyattaのネットワーク周り	Ü  VyattaのConfigシステムÜ  1つ1つのコマンドがシェルスクリプトÜ  設定をcommitすると、createやdelete時などにキックされるÜ  ネットワーク系は基本的にQuagga経...
VyattaでVRF with Namespace	Ü  VRFはNamespaceで作るÜ  ip netns add vrf1Ü  Quaggaを複数インスタンスあげるÜ  vtyshはQuaggaが複数プロセスあがることを想定して...
追加したCLIの一部 : VRF	Ü  vrf のnode.defÜ  netnsの作成Ü  loの生成Ü  zebraのconfig生成Ü  zebraの実行Ü  access-listやroute-mapなどをコピーし、vyat...
追加したCLIの一部 : vlan interface	Ü  VRFにアタッチするVLAN interfaceのnode.def
veth type interface	Ü  VRFを切っただけでは、VRF間をルーティングすることができないÜ  ip link add type vethÜ  論理的に接続された2つのインターフェースが作成されるÜ  片方を別のネー...
現在のVyatta VRF拡張でできること	Ü  VRFÜ  vlan interfaceÜ  veth interfaceÜ  OSPFv2Ü  OSPFv3Ü  static route
デモ
何VRFいけるの?@技術審査会	Ü  IXIAさんのご協力を得て計測Ü  300 VRF, 1 Neighbor, 10 Routes = 3000 RoutesÜ  何も考えずにnetwork-typeをにbroadcastにしてたら3...
何VRFいけるの?@本審査会	Ü  400 VRFに5000経路ずつÜ  IXIAと4ポートずつ接続Ü  各ポートでVLANを切り、1ポート100VLAN、100VRF x4Ü  1VRFに対して5000経路投入
何VRFいけるの?@本審査会	Ü  400 VRFに5000経路ずつÜ  IXIAと4ポートずつ接続Ü  各ポートでVLANを切り、1ポート100VLAN、100VRF x4Ü  1VRFに対して5000経路投入	Ü 400 VRFで...
5000 Routes x 400 VRF = 2000000 Routes
動画
何VRFいけるの?@本審査会	Ü IXIAさんの本気Ü  OSPF でAnother Areaの経路を入れるÜ 1VRFに3000経路Ü  1000 VRF (250 vlan interface@ 1 eth x 4)Ü  3000...
300万経路食えました
何VRFいけるの?@本審査会	Ü  1VRFに3000経路いけた次は、、、Ü  1VRFに5000経路でいってみよう!!Ü 1VRFに5000経路Ü  1000 VRF (250 vlan interface per 1 eth x4)...
500万経路おいしいですおいしいです
これで最後	1000 VRF 、10000経路= 1000万経路
1000万経路
もう無理。。。
うっぷ、うっぷ、、でも完食	ココ
あれ?フルルートって何経路だったっけ。。。?
というわけで、VyattaでVRFできたよ!	Ü  これで、Vyattaで経路表の仮想化ができた!Ü  1台のVyattaで複数のネットワークを分割して管理Ü  Dynamic Routing Protocolももちろんサポート!Ü  ...
ありがとうございました
INTEROP2013 ORC チームvyavyavya
Upcoming SlideShare
Loading in …5
×

INTEROP2013 ORC チームvyavyavya

2,407 views

Published on

INTEROP2013で開催されたOpen Router Competitionのチームvyavyavyaの発表資料です。ネタはVyattaでつくるVRF。

Published in: Technology

INTEROP2013 ORC チームvyavyavya

  1. 1. とあるVyattaの名前空間チーム vyavyavyavyavyavyavyavyavyavyavyavyavyavyavya中村 遼 upa@haeena.net浅井大史 panda@hongo.wide.ad.jp ~ネームスペース~
  2. 2. IaaS Cloud Ü  IaaSクラウド全盛Ü  Amazon EC2Ü  さくらのクラウドÜ  NTT Cloud(n)Ü  KDDI CloudCoreÜ  個人でもクラウドを運用できるÜ  VMware、KVM、Xen、Ü  いろいろ便利ですよね!Ü  ハードを持たずに個人でサービスを提供したりÜ  検証用にVMをつくったり消したりÜ  数の暴力でスケールアウトしたりIaaS CloudIaaS CloudVMVMHVHV
  3. 3. クラウドのネットワーク Ü  でも、VMがあるだけじゃだめ!!Ü  クラウド上のネットワークÜ  セグメントの分割とルーティングÜ  ACLやIDSなどのFirewall機能Ü  NATなどクラウドにもネットワークの機能が必要Ü  個人で運用するプライベートクラウドから商用IaaSクラウドまで、全部使いたいよ!
  4. 4. Software Router Vyatta Ü  そこでVyattaですよ!Ü  LinuxベースのソフトウェアルータÜ  様々なLinuxのネットワークの機能をまとめたCLIを提供 (Juni○erっぽい)Ü  オープンソース < 重要Ü  ユーザ会などコミュニティも活発Ü  VyattaはVMとISOで提供Ü  VMイメージをクラウド上にデプロイÜ  仮想ルータとしてクラウドネットワークを構築できる!!
  5. 5. Vyatta「を」仮想化?Vyatta「で」仮想化? Ü  Vyattaをルータにしてクラウド上でネットワーク構築Ü  「Vyattaを仮想化」してクラウドへ投入!!Ü  もちろん可能!ルータの数だけVyatta VMをデプロイでOKÜ  クラウドネットワークを簡単構築! VyattavRouterVyattavRouterでも、Vyatta VMをたくさんつくるのもしんどい。。。サーバの台数が増えるのと同じだけの運用コストかかる。。。
  6. 6. Vyatta「で」仮想化 Ü  実は、Vyatta自体には、ネットワーク仮想化のための機能が無いÜ  ネットワーク仮想化の機能といえば...Ü  VRF : 経路表の仮想化Ü  Virtual Chassis : 筐体の二身一体によるHAÜ  Logical System : 筐体の仮想化Ü  VLAN 4k越え : セグメント数増大
  7. 7. Vyatta「で」仮想化 Ü  実は、Vyatta自体には、ネットワーク仮想化のための機能が無いÜ  ネットワーク仮想化の機能といえば...Ü  VRF : 経路表の仮想化Ü  Virtual Chassis : 筐体の二身一体によるHAÜ  Logical System : 筐体の仮想化Ü  VLAN 4k越え : セグメント数増大全部できないじゃないですかヤダーー!!
  8. 8. なので、つくってみました。
  9. 9. せきや先生、VyattaでVRFしたいんですけど、Linuxで便利な何かないですか?
  10. 10. VRFができると? Ü  1つのVyatta Networkで、複数の仮想ネットワークスライスを構築できるようになる!!
  11. 11. VyattaでVRFするには? Ü  Linux Network NamespaceÜ  もともとはLinux Containers (LXC)を実現するためのネットワークスタックの分割機能Ü  Namespaceごとに経路表が作成されるÜ  そのNamespace上でプロセスを起動すると、その経路表(厳密にはネットワークスタック)の上で動作するÜ  ip netns add VRF1Ü  ip netns exec VRF1 bash 1. Namespaceで経路表を分割して、2. 各Namespace上でQuaggaを動かし、3. 全てのQuaggaをVyatta CLIから叩けるようにする!
  12. 12. Vyattaのネットワーク周り Ü  VyattaのConfigシステムÜ  1つ1つのコマンドがシェルスクリプトÜ  設定をcommitすると、createやdelete時などにキックされるÜ  ネットワーク系は基本的にQuagga経由Ü  IPアドレスの設定からルーティングプロトコルまで Linux Kernel zebra ospfd ospf6d Vyatta CLI
  13. 13. VyattaでVRF with Namespace Ü  VRFはNamespaceで作るÜ  ip netns add vrf1Ü  Quaggaを複数インスタンスあげるÜ  vtyshはQuaggaが複数プロセスあがることを想定していないÜ  パッチ > http://lists.quagga.net/pipermail/quagga-dev/2012-July/009627.htmlÜ  あとはひたすらVyattaのCLI拡張を書く!! Linux Kernel zebra ospfd ospf6d Vyatta CLI zebra ospfd ospf6d Namespace #1 Namespace #2
  14. 14. 追加したCLIの一部 : VRF Ü  vrf のnode.defÜ  netnsの作成Ü  loの生成Ü  zebraのconfig生成Ü  zebraの実行Ü  access-listやroute-mapなどをコピーし、vyatta cli上では1つでも全てのVRFで共有できる。
  15. 15. 追加したCLIの一部 : vlan interface Ü  VRFにアタッチするVLAN interfaceのnode.def
  16. 16. veth type interface Ü  VRFを切っただけでは、VRF間をルーティングすることができないÜ  ip link add type vethÜ  論理的に接続された2つのインターフェースが作成されるÜ  片方を別のネームスペースにいれるÜ  -> それぞれにアドレスをつけると、Namespaceを超えて通信することができるNamespace#1 Namespace#2 veth0 veth1 kernelの内部で論理的に接続される
  17. 17. 現在のVyatta VRF拡張でできること Ü  VRFÜ  vlan interfaceÜ  veth interfaceÜ  OSPFv2Ü  OSPFv3Ü  static route
  18. 18. デモ
  19. 19. 何VRFいけるの?@技術審査会 Ü  IXIAさんのご協力を得て計測Ü  300 VRF, 1 Neighbor, 10 Routes = 3000 RoutesÜ  何も考えずにnetwork-typeをにbroadcastにしてたら300 NeighborでIXIAのCPUが張り付く。。ごめんなさい。。Ü  network-type p2pで再度計測させてくださいこれが先週の技術審査会での計測でした。
  20. 20. 何VRFいけるの?@本審査会 Ü  400 VRFに5000経路ずつÜ  IXIAと4ポートずつ接続Ü  各ポートでVLANを切り、1ポート100VLAN、100VRF x4Ü  1VRFに対して5000経路投入
  21. 21. 何VRFいけるの?@本審査会 Ü  400 VRFに5000経路ずつÜ  IXIAと4ポートずつ接続Ü  各ポートでVLANを切り、1ポート100VLAN、100VRF x4Ü  1VRFに対して5000経路投入 Ü 400 VRFで合計200万経路完食!!Ü  IXIAがBackbone Areaだと5000経路(?)Ü  別OSPF Areaの経路にして試すとさらにいけるはず
  22. 22. 5000 Routes x 400 VRF = 2000000 Routes
  23. 23. 動画
  24. 24. 何VRFいけるの?@本審査会 Ü IXIAさんの本気Ü  OSPF でAnother Areaの経路を入れるÜ 1VRFに3000経路Ü  1000 VRF (250 vlan interface@ 1 eth x 4)Ü  3000 経路 x 1000 VRF = 300万経路
  25. 25. 300万経路食えました
  26. 26. 何VRFいけるの?@本審査会 Ü  1VRFに3000経路いけた次は、、、Ü  1VRFに5000経路でいってみよう!!Ü 1VRFに5000経路Ü  1000 VRF (250 vlan interface per 1 eth x4)Ü  5000 経路 x 1000 VRF = 500万経路
  27. 27. 500万経路おいしいですおいしいです
  28. 28. これで最後 1000 VRF 、10000経路= 1000万経路
  29. 29. 1000万経路
  30. 30. もう無理。。。
  31. 31. うっぷ、うっぷ、、でも完食 ココ
  32. 32. あれ?フルルートって何経路だったっけ。。。?
  33. 33. というわけで、VyattaでVRFできたよ! Ü  これで、Vyattaで経路表の仮想化ができた!Ü  1台のVyattaで複数のネットワークを分割して管理Ü  Dynamic Routing Protocolももちろんサポート!Ü  ソースコードはこちらÜ  https://github.com/upa/vrf-vyattaVyattaとVRFで楽しい仮想化ライフを?
  34. 34. ありがとうございました

×