interop2013 orc チームvyavyavya

Post on 28-May-2015

1.249 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

とあるVyattaの名前空間 チーム vyavyavyavyavyavyavyavyavyavyavyavyavyavyavya

中村 遼 upa@haeena.net 浅井大史 panda@hongo.wide.ad.jp

~ネームスペース~

IaaS Cloud

Ü  IaaSクラウド全盛 Ü  Amazon EC2 Ü  さくらのクラウド Ü  NTT Cloud(n) Ü  KDDI CloudCore

Ü  個人でもクラウドを運用できる Ü  VMware、KVM、Xen、 Ü  いろいろ便利ですよね! Ü  ハードを持たずに個人でサービスを提供したり Ü  検証用にVMをつくったり消したり Ü  数の暴力でスケールアウトしたり

IaaS CloudIaaS Cloud

VMVM

HVHV

クラウドのネットワーク

Ü  でも、VMがあるだけじゃだめ!!

Ü  クラウド上のネットワーク

Ü  セグメントの分割とルーティング

Ü  ACLやIDSなどのFirewall機能

Ü  NATなど

クラウドにもネットワークの機能が必要

Ü  個人で運用するプライベートクラウドから商用IaaSクラウドまで、全部使いたいよ!

Software Router Vyatta

Ü  そこでVyattaですよ!

Ü  Linuxベースのソフトウェアルータ

Ü  様々なLinuxのネットワークの機能を まとめたCLIを提供 (Juni○erっぽい)

Ü  オープンソース < 重要 Ü  ユーザ会などコミュニティも活発

Ü  VyattaはVMとISOで提供 Ü  VMイメージをクラウド上にデプロイ

Ü  仮想ルータとしてクラウドネットワークを 構築できる!!

Vyatta「を」仮想化?Vyatta「で」仮想化?

Ü  Vyattaをルータにしてクラウド上でネットワーク構築

Ü  「Vyattaを仮想化」してクラウドへ投入!! Ü  もちろん可能!ルータの数だけVyatta VMをデプロイでOK

Ü  クラウドネットワークを簡単構築! VyattavRouterVyattavRouter

でも、Vyatta VMをたくさんつくるのもしんどい。。。 サーバの台数が増えるのと同じだけの運用コストかかる。。。

Vyatta「で」仮想化

Ü  実は、Vyatta自体には、ネットワーク仮想化のための機能が無い

Ü  ネットワーク仮想化の機能といえば... Ü  VRF : 経路表の仮想化

Ü  Virtual Chassis : 筐体の二身一体によるHA

Ü  Logical System : 筐体の仮想化

Ü  VLAN 4k越え : セグメント数増大

Vyatta「で」仮想化

Ü  実は、Vyatta自体には、ネットワーク仮想化のための機能が無い

Ü  ネットワーク仮想化の機能といえば... Ü  VRF : 経路表の仮想化

Ü  Virtual Chassis : 筐体の二身一体によるHA

Ü  Logical System : 筐体の仮想化

Ü  VLAN 4k越え : セグメント数増大

全部できないじゃないですかヤダーー!!

なので、つくってみました。

せきや先生、VyattaでVRFしたいんですけど、Linuxで便利な何かないですか?

VRFができると?

Ü  1つのVyatta Networkで、複数の仮想ネットワークスライスを構築できるようになる!!

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から叩けるようにする!

Vyattaのネットワーク周り

Ü  VyattaのConfigシステム Ü  1つ1つのコマンドがシェルスクリプト

Ü  設定をcommitすると、createやdelete時などにキックされる

Ü  ネットワーク系は基本的にQuagga経由 Ü  IPアドレスの設定からルーティングプロトコルまで

Linux Kernel

zebra ospfd ospf6d

Vyatta CLI

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

追加したCLIの一部 : VRF

Ü  vrf のnode.def Ü  netnsの作成

Ü  loの生成

Ü  zebraのconfig生成

Ü  zebraの実行

Ü  access-listやroute-mapなどをコピーし、vyatta cli上では1つでも全てのVRFで共有できる。

追加したCLIの一部 : vlan interface

Ü  VRFにアタッチするVLAN interfaceのnode.def

veth type interface

Ü  VRFを切っただけでは、VRF間をルーティングすることができない

Ü  ip link add type veth Ü  論理的に接続された2つのインターフェースが作成される Ü  片方を別のネームスペースにいれる Ü  -> それぞれにアドレスをつけると、Namespaceを超えて通信するこ

とができる

Namespace#1 Namespace#2 veth0 veth1

kernelの内部で論理的に接続される

現在のVyatta VRF拡張でできること

Ü  VRF

Ü  vlan interface

Ü  veth interface

Ü  OSPFv2

Ü  OSPFv3

Ü  static route

デモ

何VRFいけるの?@技術審査会

Ü  IXIAさんのご協力を得て計測 Ü  300 VRF, 1 Neighbor, 10 Routes = 3000 Routes

Ü  何も考えずにnetwork-typeをにbroadcastにしてたら 300 NeighborでIXIAのCPUが張り付く。。ごめんなさい。。

Ü  network-type p2pで再度計測させてください

これが先週の技術審査会での計測でした。

何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で合計200万経路完食!! Ü  IXIAがBackbone Areaだと5000経路(?)

Ü  別OSPF Areaの経路にして試すとさらにいけるはず

5000 Routes x 400 VRF = 2000000 Routes

動画

何VRFいけるの?@本審査会

Ü IXIAさんの本気 Ü  OSPF でAnother Areaの経路を入れる

Ü 1VRFに3000経路 Ü  1000 VRF (250 vlan interface@ 1 eth x 4)

Ü  3000 経路 x 1000 VRF = 300万経路

300万経路食えました

何VRFいけるの?@本審査会

Ü  1VRFに3000経路いけた次は、、、

Ü  1VRFに5000経路でいってみよう!!

Ü 1VRFに5000経路 Ü  1000 VRF (250 vlan interface per 1 eth x4)

Ü  5000 経路 x 1000 VRF = 500万経路

500万経路おいしいですおいしいです

これで最後

1000 VRF 、10000経路

= 1000万経路

1000万経路

もう無理。。。

うっぷ、うっぷ、、でも完食

ココ

あれ?フルルートって何経路だったっけ。。。?

というわけで、VyattaでVRFできたよ!

Ü  これで、Vyattaで経路表の仮想化ができた! Ü  1台のVyattaで複数のネットワークを分割して管理

Ü  Dynamic Routing Protocolももちろんサポート!

Ü  ソースコードはこちら Ü  https://github.com/upa/vrf-vyatta

VyattaとVRFで楽しい仮想化ライフを?

ありがとうございました

top related