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.
0Copyright©2016 NTT corp. All Rights Reserved.
TremaDay # 10 in Okinawa
Lagopusで試すL3ルーティング+α
2016/12/07
hibitomo
0
1Copyright©2016 NTT corp. All Rights Reserved.
 いろいろLagopusの仕様が変わっているので情報をまとめてイン
ターネットに放流したい.
 インストール
 vhost
 Hybrid S...
2Copyright©2016 NTT corp. All Rights Reserved.
 @masaru0714 さんのスライド群
 http://www.slideshare.net/masaruoki9
 Lagopus boo...
3Copyright©2016 NTT corp. All Rights Reserved.
Agenda
- Lagopus?
- デモ内容: OpenFlow + L3ルーティング
- Lagopus 0.2.10 のコンパイル&インストー...
4Copyright©2016 NTT corp. All Rights Reserved.
Lagopus
OpenFlowスイッチのソフトウェア実装
汎用x86サーバで動作可能
高速なパケット処理と幅広いプロトコルに対応
> 10G...
5Copyright©2016 NTT corp. All Rights Reserved.
性能評価
 単純なポートフォワードを実施した場合のスループットを測定
CPU
E5-2697v2
2.70GHz
NIC Intel X520
メモ...
6Copyright©2016 NTT corp. All Rights Reserved.
最新の性能
1.9
3.6
7.4
20.6
36.3
39.4
8.2
16.1
25.0
34.0
39.2 39.5
9.0
17.9
27.6...
7Copyright©2016 NTT corp. All Rights Reserved.
 Action: Normalを活用する
デモ構成
サーバ
端末1
L2ブリッジ
端末2
OpenFlow + L3 ルーティング
Applicat...
8Copyright©2016 NTT corp. All Rights Reserved.
 Action: Normalを活用する
デモ構成
サーバ
端末1
L2ブリッジ
端末2
OpenFlow + L3 ルーティング
Applicat...
9Copyright©2016 NTT corp. All Rights Reserved.
 端末2からのパケットはそのままルーティング
デモ構成
サーバ
端末1
L2ブリッジ
端末2
OpenFlow + L3 ルーティング
Applic...
10Copyright©2016 NTT corp. All Rights Reserved.
 端末1からのパケットはネットワーク監視アプリにも送信
デモ構成
サーバ
端末1
L2ブリッジ
端末2
OpenFlow + L3 ルーティング
...
11Copyright©2016 NTT corp. All Rights Reserved.
 Action: NORMAL
確認できる機能
サーバ
端末1
L2ブリッジ
端末2
OpenFlow + L3 ルーティング
Applicati...
12Copyright©2016 NTT corp. All Rights Reserved.
 様々なインターフェース
確認できる機能
サーバ
端末1
Bridge1
端末2
Bridge2
Application ネットワーク監視
Lag...
13Copyright©2016 NTT corp. All Rights Reserved.
 LagopusのDPDKオプション変更(vHOST-USER PMD を使う場合)
Lagopusのインストール(基本はQUICKSTART.m...
14Copyright©2016 NTT corp. All Rights Reserved.
 Hugepageの設定
 QUICKSTART.mdを参照
 コンパイル (OpenFlow hybrid switchを使う場合)
 “...
15Copyright©2016 NTT corp. All Rights Reserved.
 lagopus.dsl (例)
Lagopusの設定ファイル
channel controller01-channel create -dst-...
16Copyright©2016 NTT corp. All Rights Reserved.
 lagopus.dsl (例)
Lagopusの設定ファイル
channel controller01-channel create -dst-...
17Copyright©2016 NTT corp. All Rights Reserved.
 lagopus.dsl (例)
Lagopusの設定ファイル
channel controller01-channel create -dst-...
18Copyright©2016 NTT corp. All Rights Reserved.
 lagopus.dsl (例)
Lagopusの設定ファイル
channel controller01-channel create -dst-...
19Copyright©2016 NTT corp. All Rights Reserved.
 lagopus.dsl (例)
Lagopusの設定ファイル
channel controller01-channel create -dst-...
20Copyright©2016 NTT corp. All Rights Reserved.
 lagopus.dsl (今回のデモ用の設定)
Lagopusの設定ファイル
channel controller01-channel crea...
21Copyright©2016 NTT corp. All Rights Reserved.
 DPDK (16.11版.スクリプトの名前が変わっています)
 Linuxカーネルから,DPDKに管理を移す
 Rawsock
 プロトコ...
22Copyright©2016 NTT corp. All Rights Reserved.
 Lagopus 0.2.10
 DSLに記述してあれば,--vdevオプションは不要
 -p オプションは不要
Lagopusの起動
$ s...
23Copyright©2016 NTT corp. All Rights Reserved.
※ Lagopusを実行,interfaceを作成してからVMを起動する
 QEMUで直接起動する場合のコマンド
VMの起動
sudo qemu-...
24Copyright©2016 NTT corp. All Rights Reserved.
※ Lagopusを実行,interfaceを作成してからVMを起動する
 libvirtを使う場合のXML定義ファイル (CPU部分)
 あと...
25Copyright©2016 NTT corp. All Rights Reserved.
※ Lagopusを実行,interfaceを作成してからVMを起動する
 libvirtを使う場合のXML定義ファイル (DPDK利用のinte...
26Copyright©2016 NTT corp. All Rights Reserved.
 IPの設定(Lagopus起動,interface作成後に操作)
 ※IPを設定しないとL2スイッチとして動作します
 DSLで記述したin...
27Copyright©2016 NTT corp. All Rights Reserved.
 telnet
 スクリプト
 https://github.com/hibitomo/lago-dsl
 Document
 https...
28Copyright©2016 NTT corp. All Rights Reserved.
 OpenFlow プログラムからの取得
 lagoshで取得 ( `$ lagosh -c show interface`等)
 DSLから...
29Copyright©2016 NTT corp. All Rights Reserved.
 とりあえずping
 まだコントローラ起動してないよ
デモ
サーバ
端末1
L2ブリッジ OpenFlow + L3 ルーティング
Appli...
30Copyright©2016 NTT corp. All Rights Reserved.
 Ryuの起動
 Bridgeの接続,Flowの確認
Ryuと接続
$ ryu-manager /usr/local/lib/python2.7...
31Copyright©2016 NTT corp. All Rights Reserved.
 Flow投入
 通常のルーティングに加え,IP:10.0.0.10 からのパケットはポート3にも出
力する
Ryuと接続
$ ~/ofctl_...
32Copyright©2016 NTT corp. All Rights Reserved.
 時間がないのでしないかも
デモ
サーバ
端末1
L2ブリッジ OpenFlow + L3 ルーティング
Application ネットワーク監視...
33Copyright©2016 NTT corp. All Rights Reserved.
 Lagopusは高速なOpenFlow1.3対応のソフトウェアスイッチ
 output: normal で簡単なL2スイッチング対応
 ou...
34Copyright©2016 NTT corp. All Rights Reserved.
ご清聴ありがとうございました
34
########
## ;;;; ##
## #### ##
#### ##
## ## ####
#####...
Upcoming SlideShare
Loading in …5
×

Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)

2,068 views

Published on

Lagopusのいろいろな設定方法をまとめてあります.

Published in: Software
  • Be the first to comment

Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)

  1. 1. 0Copyright©2016 NTT corp. All Rights Reserved. TremaDay # 10 in Okinawa Lagopusで試すL3ルーティング+α 2016/12/07 hibitomo 0
  2. 2. 1Copyright©2016 NTT corp. All Rights Reserved.  いろいろLagopusの仕様が変わっているので情報をまとめてイン ターネットに放流したい.  インストール  vhost  Hybrid Switch (action:NORMAL)  DSL仕様  断片的な情報を @masaru0714 さんが公開しているのでそれをまと める. 今日の目標
  3. 3. 2Copyright©2016 NTT corp. All Rights Reserved.  @masaru0714 さんのスライド群  http://www.slideshare.net/masaruoki9  Lagopus book  http://www.lagopus.org/lagopus-book/en/html/  本発表で利用しているスクリプト  https://github.com/hibitomo/lagopus-tools  https://github.com/hibitomo/lago-dsl  https://github.com/hibitomo/lago-mon  https://github.com/hibitomo/ofctl_script 参考情報
  4. 4. 3Copyright©2016 NTT corp. All Rights Reserved. Agenda - Lagopus? - デモ内容: OpenFlow + L3ルーティング - Lagopus 0.2.10 のコンパイル&インストール - Lagopus 0.2.10 の設定(DSL) - DPDKの設定,インターフェースの設定 - 起動コマンド - Flow投入 without controller - 統計情報取得やらなにやら - Ryuとの接続 - デモ
  5. 5. 4Copyright©2016 NTT corp. All Rights Reserved. Lagopus OpenFlowスイッチのソフトウェア実装 汎用x86サーバで動作可能 高速なパケット処理と幅広いプロトコルに対応 > 10Gbps OpenFlow1.3仕様に幅広く対応 OpenFlow コントローラ コントロールプレーン OpenFlow プロトコル OpenFlow スイッチ データプレーン Flow Table フローパターン アクション フローパターン アクション カウンター カウンター Flow Table #2 Flow Table #3 Flow Table #4
  6. 6. 5Copyright©2016 NTT corp. All Rights Reserved. 性能評価  単純なポートフォワードを実施した場合のスループットを測定 CPU E5-2697v2 2.70GHz NIC Intel X520 メモリ 64GB OS Ubuntu 14.04LTS CPU E5-2667v3 3.20GHz NIC Intel XL710 メモリ 64GB OS Ubuntu 14.04LTS  10GbE  測定環境  測定結果  40GbE  測定環境  測定結果 6.66 8.65 9.28 9.49 9.63 9.77 9.83 9.85 9.86 0 1 2 3 4 5 6 7 8 9 10 0 200 400 600 800 1000 1200 1400 Throughput(Gbps) Packet size (byte) Lagopus Wire-rate 7.7 15.5 26.5 34.2 39.2 39.5 0 5 10 15 20 25 30 35 40 0 200 400 600 800 1000 1200 1400 Throughput(Gbps) Packet size (byte) Lagopus Wire-rate
  7. 7. 6Copyright©2016 NTT corp. All Rights Reserved. 最新の性能 1.9 3.6 7.4 20.6 36.3 39.4 8.2 16.1 25.0 34.0 39.2 39.5 9.0 17.9 27.6 35.1 39.2 39.5 0 5 10 15 20 25 30 35 40 45 0 200 400 600 800 1000 1200 1400 1600 Throughput(Gbps) Packet size (bytes) -- -cff00 -n4 -- --fifoness none -- -cff00 -n4 -- --bsz "(32,32),(32,32),(32,32) --fifoness none -- -cff00 -n4 -- --bsz "(32,32),(32,32),(32,32) --fifoness none --rx "(0,0,9),(1,0,10)" --tx "(0,10),(1,9)" --w "11,12,13,14,15" wirerate
  8. 8. 7Copyright©2016 NTT corp. All Rights Reserved.  Action: Normalを活用する デモ構成 サーバ 端末1 L2ブリッジ 端末2 OpenFlow + L3 ルーティング Application ネットワーク監視 Lagopus KVM Namespace
  9. 9. 8Copyright©2016 NTT corp. All Rights Reserved.  Action: Normalを活用する デモ構成 サーバ 端末1 L2ブリッジ 端末2 OpenFlow + L3 ルーティング Application ネットワーク監視 Lagopus KVM Namespace 192.168.0.10 192.168.1.10 192.168.0.1 192.168.1.1 10.0.0.1
  10. 10. 9Copyright©2016 NTT corp. All Rights Reserved.  端末2からのパケットはそのままルーティング デモ構成 サーバ 端末1 L2ブリッジ 端末2 OpenFlow + L3 ルーティング Application ネットワーク監視 Lagopus KVM Namespace
  11. 11. 10Copyright©2016 NTT corp. All Rights Reserved.  端末1からのパケットはネットワーク監視アプリにも送信 デモ構成 サーバ 端末1 L2ブリッジ 端末2 OpenFlow + L3 ルーティング Application ネットワーク監視 Lagopus KVM Namespace
  12. 12. 11Copyright©2016 NTT corp. All Rights Reserved.  Action: NORMAL 確認できる機能 サーバ 端末1 L2ブリッジ 端末2 OpenFlow + L3 ルーティング Application ネットワーク監視 Lagopus KVM Namespace Action: NORMAL (L3ルーティング) Action: NORMAL (L2スイッチ)
  13. 13. 12Copyright©2016 NTT corp. All Rights Reserved.  様々なインターフェース 確認できる機能 サーバ 端末1 Bridge1 端末2 Bridge2 Application ネットワーク監視 Lagopus KVM Namespace Raw Socketvhost-userpipe物理
  14. 14. 13Copyright©2016 NTT corp. All Rights Reserved.  LagopusのDPDKオプション変更(vHOST-USER PMD を使う場合) Lagopusのインストール(基本はQUICKSTART.mdを参考に) diff --git a/mk/make_dpdk.sh b/mk/make_dpdk.sh index 52914c6..92d3e97 100755 --- a/mk/make_dpdk.sh +++ b/mk/make_dpdk.sh @@ -80,7 +80,7 @@ edit_dpdk_config CONFIG_RTE_BUILD_SHARED_LIB=y $NEWCONFIG #edit_dpdk_config CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y $NEWCONFIG edit_dpdk_config CONFIG_RTE_IXGBE_INC_VECTOR=n $NEWCONFIG edit_dpdk_config CONFIG_RTE_LIBRTE_PMD_PCAP=n $NEWCONFIG -edit_dpdk_config CONFIG_RTE_LIBRTE_PMD_VHOST=n $NEWCONFIG +edit_dpdk_config CONFIG_RTE_LIBRTE_PMD_VHOST=y $NEWCONFIG edit_dpdk_config CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO=n $NEWCONFIG edit_dpdk_config CONFIG_RTE_LIBRTE_PMD_BOND=n $NEWCONFIG edit_dpdk_config CONFIG_RTE_APP_TEST=n $NEWCONFIG v0.2.10からはデフォルトで CONFIG_RTE_LIBRTE_PMD_VHOST=y になりました
  15. 15. 14Copyright©2016 NTT corp. All Rights Reserved.  Hugepageの設定  QUICKSTART.mdを参照  コンパイル (OpenFlow hybrid switchを使う場合)  “--enable-hybrid” : hybrid switchをenableにする  “--enable-jumbo-frame” : ジャンボフレームに対応する • ※ vhost-userが上手く動いて無さそう  “gcc-full-opt” : 最適化オプションを付ける(つけないと”-O0”) Lagopusのインストール(基本はQUICKSTART.mdを参考に) $ ./configure --enable-hybrid --enable-jumbo-frame $ make gcc-full-opt -j 8 $ sudo make install
  16. 16. 15Copyright©2016 NTT corp. All Rights Reserved.  lagopus.dsl (例) Lagopusの設定ファイル channel controller01-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller01 create -channel controller01-channel -role equal -connection-type main channel controller02-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller02 create -channel controller01-channel -role equal -connection-type main interface interface00 create -type ethernet-dpdk-phy -device :0000:07:00.1 interface interface01 create -type ethernet-dpdk-phy -device eth_pipe0 interface interface02 create -type ethernet-dpdk-phy -device eth_pipe1,attach=eth_pipe0 interface interface03 create -type ethernet-dpdk-phy -device eth_vhost0,iface=/tmp/sock0 interface interface04 create -type ethernet-rawsock -device veth0 port port01 create -interface interface00 port port02 create -interface interface01 port port03 create -interface interface02 port port04 create -interface interface03 port port05 create -interface interface04 bridge bridge01 create -controller controller01 -port port01 1 -port port02 2 -dpid 0x1 bridge bridge01 enable bridge bridge02 create -controller controller02 -port port03 1 -port port04 2 -port port05 3 -dpid 0x2 bridge bridge02 enable コントローラ 関連 Interface関連 port関連 Bridge関連
  17. 17. 16Copyright©2016 NTT corp. All Rights Reserved.  lagopus.dsl (例) Lagopusの設定ファイル channel controller01-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller01 create -channel controller01-channel -role equal -connection-type main channel controller02-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller02 create -channel controller01-channel -role equal -connection-type main interface interface00 create -type ethernet-dpdk-phy -device :0000:07:00.1 interface interface01 create -type ethernet-dpdk-phy -device eth_pipe0 interface interface02 create -type ethernet-dpdk-phy -device eth_pipe1,attach=eth_pipe0 interface interface03 create -type ethernet-dpdk-phy -device eth_vhost0,iface=/tmp/sock0 interface interface04 create -type ethernet-rawsock -device veth0 port port01 create -interface interface00 port port02 create -interface interface01 port port03 create -interface interface02 port port04 create -interface interface03 port port05 create -interface interface04 bridge bridge01 create -controller controller01 -port port01 1 -port port02 2 -dpid 0x1 bridge bridge01 enable bridge bridge02 create -controller controller02 -port port03 1 -port port04 2 -port port05 3 -dpid 0x2 bridge bridge02 enable 物理: PCIアドレス. (namespace用の最初のコロン を忘れない)
  18. 18. 17Copyright©2016 NTT corp. All Rights Reserved.  lagopus.dsl (例) Lagopusの設定ファイル channel controller01-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller01 create -channel controller01-channel -role equal -connection-type main channel controller02-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller02 create -channel controller01-channel -role equal -connection-type main interface interface00 create -type ethernet-dpdk-phy -device :0000:07:00.1 interface interface01 create -type ethernet-dpdk-phy -device eth_pipe0 interface interface02 create -type ethernet-dpdk-phy -device eth_pipe1,attach=eth_pipe0 interface interface03 create -type ethernet-dpdk-phy -device eth_vhost0,iface=/tmp/sock0 interface interface04 create -type ethernet-rawsock -device veth0 port port01 create -interface interface00 port port02 create -interface interface01 port port03 create -interface interface02 port port04 create -interface interface03 port port05 create -interface interface04 bridge bridge01 create -controller controller01 -port port01 1 -port port02 2 -dpid 0x1 bridge bridge01 enable bridge bridge02 create -controller controller02 -port port03 1 -port port04 2 -port port05 3 -dpid 0x2 bridge bridge02 enable Pipe
  19. 19. 18Copyright©2016 NTT corp. All Rights Reserved.  lagopus.dsl (例) Lagopusの設定ファイル channel controller01-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller01 create -channel controller01-channel -role equal -connection-type main channel controller02-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller02 create -channel controller01-channel -role equal -connection-type main interface interface00 create -type ethernet-dpdk-phy -device :0000:07:00.1 interface interface01 create -type ethernet-dpdk-phy -device eth_pipe0 interface interface02 create -type ethernet-dpdk-phy -device eth_pipe1,attach=eth_pipe0 interface interface03 create -type ethernet-dpdk-phy -device eth_vhost0,iface=/tmp/sock0 interface interface04 create -type ethernet-rawsock -device veth0 port port01 create -interface interface00 port port02 create -interface interface01 port port03 create -interface interface02 port port04 create -interface interface03 port port05 create -interface interface04 bridge bridge01 create -controller controller01 -port port01 1 -port port02 2 -dpid 0x1 bridge bridge01 enable bridge bridge02 create -controller controller02 -port port03 1 -port port04 2 -port port05 3 -dpid 0x2 bridge bridge02 enable vhost
  20. 20. 19Copyright©2016 NTT corp. All Rights Reserved.  lagopus.dsl (例) Lagopusの設定ファイル channel controller01-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller01 create -channel controller01-channel -role equal -connection-type main channel controller02-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller02 create -channel controller01-channel -role equal -connection-type main interface interface00 create -type ethernet-dpdk-phy -device :0000:07:00.1 interface interface01 create -type ethernet-dpdk-phy -device eth_pipe0 interface interface02 create -type ethernet-dpdk-phy -device eth_pipe1,attach=eth_pipe0 interface interface03 create -type ethernet-dpdk-phy -device eth_vhost0,iface=/tmp/sock0 interface interface04 create -type ethernet-rawsock -device veth0 port port01 create -interface interface00 port port02 create -interface interface01 port port03 create -interface interface02 port port04 create -interface interface03 port port05 create -interface interface04 bridge bridge01 create -controller controller01 -port port01 1 -port port02 2 -dpid 0x1 bridge bridge01 enable bridge bridge02 create -controller controller02 -port port03 1 -port port04 2 -port port05 3 -dpid 0x2 bridge bridge02 enable rawsocket
  21. 21. 20Copyright©2016 NTT corp. All Rights Reserved.  lagopus.dsl (今回のデモ用の設定) Lagopusの設定ファイル channel controller01-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller01 create -channel controller01-channel -role equal -connection-type main channel controller02-channel create -dst-addr 127.0.0.1 -protocol tcp controller controller02 create -channel controller02-channel -role equal -connection-type main interface interface00 create -type ethernet-dpdk-phy -device :0000:07:00.2 -mtu 9000 interface interface01 create -type ethernet-dpdk-phy -device eth_pipe0 -mtu 9000 interface interface02 create -type ethernet-dpdk-phy -device eth_pipe1,attach=eth_pipe0 -mtu 9000 interface interface03 create -type ethernet-dpdk-phy -device eth_vhost0,iface=/tmp/sock0 -mtu 9000 interface interface04 create -type ethernet-rawsock -device veth0 -mtu 9000 port port01 create -interface interface00 port port02 create -interface interface01 port port03 create -interface interface02 port port04 create -interface interface03 port port05 create -interface interface04 bridge bridge01 create -controller controller01 -port port01 1 -port port02 2 -dpid 0x1 -l2-bridge true -mactable-ageing-time 300 - mactable-max-entries 8192 bridge bridge01 enable bridge bridge02 create -controller controller02 -port port03 1 -port port04 2 -port port05 3 -dpid 0x2 -l2-bridge true -mactable- ageing-time 300 -mactable-max-entries 8192 bridge bridge02 enable MTUの設定 action: normalのための設定
  22. 22. 21Copyright©2016 NTT corp. All Rights Reserved.  DPDK (16.11版.スクリプトの名前が変わっています)  Linuxカーネルから,DPDKに管理を移す  Rawsock  プロトコルオフロードをoffにする必要がある NICの設定 $ sudo ./src/dpdk/tools/dpdk-devbind.py --bind=igb_uio 0000:02:02.0 $ sudo ethtool -K veth0 tx off
  23. 23. 22Copyright©2016 NTT corp. All Rights Reserved.  Lagopus 0.2.10  DSLに記述してあれば,--vdevオプションは不要  -p オプションは不要 Lagopusの起動 $ sudo lagopus -C ${LAGOPUS_DSL} -- -c e -n 4 -m 1024 --
  24. 24. 23Copyright©2016 NTT corp. All Rights Reserved. ※ Lagopusを実行,interfaceを作成してからVMを起動する  QEMUで直接起動する場合のコマンド VMの起動 sudo qemu-system-x86_64 ¥ -M pc-1.0 -cpu host -m 4096 -smp 4 -enable-kvm ¥ -drive file=/home/vsw/IMAGES/Ubuntu64_lagopus.img,if=none,id=drive-virtio-disk0,format=raw ¥ -device virtio-blk-pci,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 ¥ -object memory-backend-file,id=mem,size=4096M,mem-path=/mnt/huge,share=on ¥ -mem-prealloc -mem-path /dev/hugepages ¥ -numa node,memdev=mem ¥ -chardev socket,id=chr0,path=/tmp/sock0 ¥ -netdev vhost-user,id=hostnet0,chardev=chr0,vhostforce ¥ -device virtio-net-pci,netdev=hostnet0,id=net0,csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off ¥ -vnc 0.0.0.0:0
  25. 25. 24Copyright©2016 NTT corp. All Rights Reserved. ※ Lagopusを実行,interfaceを作成してからVMを起動する  libvirtを使う場合のXML定義ファイル (CPU部分)  あとapparmorの設定.面倒であれば消す. VMの起動 @@ -21,6 +26,10 @@ </features> <cpu mode='host-model'> <model fallback='allow'/> + <topology sockets='1' cores='8' threads='1'/> + <numa> + <cell id='0' cpus='0-7' memory='8388608' unit='KiB' memAccess='shared'/> + </numa> </cpu> <clock offset='utc'> <timer name='rtc' tickpolicy='catchup'/>
  26. 26. 25Copyright©2016 NTT corp. All Rights Reserved. ※ Lagopusを実行,interfaceを作成してからVMを起動する  libvirtを使う場合のXML定義ファイル (DPDK利用のinterface部分)  あとapparmorの設定.面倒であれば消す. VMの起動 <interface type='vhostuser'> <source type='unix' path='/tmp/sock0' mode='client'/> <mac address='52:54:00:00:00:01'/> <model type='virtio'/> <driver> <host csum='off' gso='off' tso4='off' tso6='off' ecn='off' mrg_rxbuf='off'/> <guest csum='off' tso4='off' tso6='off' ecn='off' ufo='off'/> </driver> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </interface>
  27. 27. 26Copyright©2016 NTT corp. All Rights Reserved.  IPの設定(Lagopus起動,interface作成後に操作)  ※IPを設定しないとL2スイッチとして動作します  DSLで記述したinterfaceと同名のinterfaceが出来ているのでそれに設定 LagopusのIPアドレスの設定 $ sudo ip addr add 10.0.0.1 dev interface02 $ sudo ip addr add 192.168.0.1 dev interface03 $ sudo ip addr add 192.168.1.1 dev interface04
  28. 28. 27Copyright©2016 NTT corp. All Rights Reserved.  telnet  スクリプト  https://github.com/hibitomo/lago-dsl  Document  https://github.com/lagopus/lagopus/blob/master/docs/how-to-use- ds-flow-cmd.md コントローラレスのFlow投入 $ telnet 127.0.0.1 12345 flow bridge01 add priority=1 apply_actions=output:normal $ ./lago-dsl.py flow bridge01 add priority=1 apply_actions=output:normal $ ./lago-dsl.py flow bridge02 add priority=1 apply_actions=output:normal
  29. 29. 28Copyright©2016 NTT corp. All Rights Reserved.  OpenFlow プログラムからの取得  lagoshで取得 ( `$ lagosh -c show interface`等)  DSLからの取得  DSLを使った情報取得のスクリプト  https://github.com/hibitomo/lago-mon 統計情報の取得 $ ./lago-dsl/lago-dsl.py interface interface00 stats [{u'name': u'interface00', u'rx-dropped': 0, u'tx-errors': 0, u'rx-bytes': 4520858, u'tx-packets': 1006, u'rx- packets': 1606, u'tx-bytes': 3319226, u'rx-errors': 0, u'tx-dropped': 0}] $ ./lago-mon/ifstats_monitor.py -l 10 {"timestamp": "2016-06-08T14:13:04.253669", "interfaces": {"interface1": {"name": "interface1", "rx-dropped": 0, "tx-errors": 0, "rx-bytes": 0, "tx-packets": 0, "rx- packets": 0, "tx-bytes": 0, "rx-errors": 0, "tx-dropped": 0}, "interface0": {"name": "interface0", "rx-dropped": 0, "tx-errors": 0, "rx-bytes": 0, "tx-packets": 0, "rx- packets": 0, "tx-bytes": 0, "rx-errors": 0, "tx-dropped": 0}}}
  30. 30. 29Copyright©2016 NTT corp. All Rights Reserved.  とりあえずping  まだコントローラ起動してないよ デモ サーバ 端末1 L2ブリッジ OpenFlow + L3 ルーティング Application ネットワーク監視 Lagopus KVM Namespace
  31. 31. 30Copyright©2016 NTT corp. All Rights Reserved.  Ryuの起動  Bridgeの接続,Flowの確認 Ryuと接続 $ ryu-manager /usr/local/lib/python2.7/dist-packages/ryu/app/ofctl_rest.py $ ~/ofctl_script/check_dpid [1,2] $ ~/ofctl_script/show_flow -d 1 table 0 {"match":{},"actions":["OUTPUT:NORMAL"],"cookie":0,"packet_count":0,"priority":1,"table_id":0} $ ~/ofctl_script/show_flow -d 2 table 0 {"match":{},"actions":["OUTPUT:NORMAL"],"cookie":0,"packet_count":0,"priority":1,"table_id":0}
  32. 32. 31Copyright©2016 NTT corp. All Rights Reserved.  Flow投入  通常のルーティングに加え,IP:10.0.0.10 からのパケットはポート3にも出 力する Ryuと接続 $ ~/ofctl_script/add_flow -d 2 ¥ {"priority":100,"cookie":1,"actions":["OUTPUT:NORMAL","OUTPUT:3"],"match":{"eth_type":2048,"ipv4_src":" 10.0.0.10"}}
  33. 33. 32Copyright©2016 NTT corp. All Rights Reserved.  時間がないのでしないかも デモ サーバ 端末1 L2ブリッジ OpenFlow + L3 ルーティング Application ネットワーク監視 Lagopus KVM Namespace
  34. 34. 33Copyright©2016 NTT corp. All Rights Reserved.  Lagopusは高速なOpenFlow1.3対応のソフトウェアスイッチ  output: normal で簡単なL2スイッチング対応  output: normal で簡単なL3ルーティング対応  仮想マシンを含む様々なインターフェースとの接続  OpenFlow + L3ルーティングでこれまでにないネットワーク運用が 可能  本スライドの内容とQUICKSTART.mdを参考にすれば同等の環境を構 築できるはず... まとめ
  35. 35. 34Copyright©2016 NTT corp. All Rights Reserved. ご清聴ありがとうございました 34 ######## ## ;;;; ## ## #### ## #### ## ## ## #### ##### ######## ## ############## ## ## ### ######## ## ## #### ## ## ## #### ## #### ## ## ## ## ## ###### #### #### #### #### ########## #################### mmmm ## ##########

×