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

35
0 Copyright©2016 NTT corp. All Rights Reserved. TremaDay # 10 in Okinawa Lagopusで試すL3ルーティング2016/12/07 hibitomo 0

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

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

0 Copyright©2016 NTT corp. All Rights Reserved.

TremaDay # 10 in Okinawa

Lagopusで試すL3ルーティング+α

2016/12/07

hibitomo

0

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

1 Copyright©2016 NTT corp. All Rights Reserved.

いろいろLagopusの仕様が変わっているので情報をまとめてインターネットに放流したい.

インストール

vhost

Hybrid Switch (action:NORMAL)

DSL仕様

断片的な情報を @masaru0714 さんが公開しているのでそれをまとめる.

今日の目標

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

3 Copyright©2016 NTT corp. All Rights Reserved.

Agenda

- Lagopus?

- デモ内容: OpenFlow + L3ルーティング

- Lagopus 0.2.10 のコンパイル&インストール

- Lagopus 0.2.10 の設定(DSL)

- DPDKの設定,インターフェースの設定

- 起動コマンド

- Flow投入 without controller

- 統計情報取得やらなにやら

- Ryuとの接続

- デモ

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

4 Copyright©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

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

5 Copyright©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

Throughp

ut(G

bps)

Packetsize(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

Throughp

ut(G

bps)

Packetsize(byte)

Lagopus

Wire-rate

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

6 Copyright©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

Thro

ug

hp

ut(

Gb

ps)

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

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

7 Copyright©2016 NTT corp. All Rights Reserved.

Action: Normalを活用する

デモ構成

サーバ

端末1

L2ブリッジ

端末2

OpenFlow + L3 ルーティング

Application ネットワーク監視

Lagopus

KVM Namespace

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

8 Copyright©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

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

9 Copyright©2016 NTT corp. All Rights Reserved.

端末2からのパケットはそのままルーティング

デモ構成

サーバ

端末1

L2ブリッジ

端末2

OpenFlow + L3 ルーティング

Application ネットワーク監視

Lagopus

KVM Namespace

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

10 Copyright©2016 NTT corp. All Rights Reserved.

端末1からのパケットはネットワーク監視アプリにも送信

デモ構成

サーバ

端末1

L2ブリッジ

端末2

OpenFlow + L3 ルーティング

Application ネットワーク監視

Lagopus

KVM Namespace

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

11 Copyright©2016 NTT corp. All Rights Reserved.

Action: NORMAL

確認できる機能

サーバ

端末1

L2ブリッジ

端末2

OpenFlow + L3 ルーティング

Application ネットワーク監視

Lagopus

KVM Namespace

Action: NORMAL (L3ルーティング)

Action: NORMAL (L2スイッチ)

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

12 Copyright©2016 NTT corp. All Rights Reserved.

様々なインターフェース

確認できる機能

サーバ

端末1

Bridge1

端末2

Bridge2

Application ネットワーク監視

Lagopus

KVM Namespace

Raw Socket vhost-user pipe 物理

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

13 Copyright©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 になりました

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

14 Copyright©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

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

15 Copyright©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関連

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

16 Copyright©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用の最初のコロン

を忘れない)

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

17 Copyright©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

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

18 Copyright©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

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

19 Copyright©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

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

20 Copyright©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のための設定

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

21 Copyright©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

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

22 Copyright©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 --

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

23 Copyright©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

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

24 Copyright©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'/>

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

25 Copyright©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>

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

26 Copyright©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

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

27 Copyright©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

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

28 Copyright©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}}}

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

29 Copyright©2016 NTT corp. All Rights Reserved.

とりあえずping

まだコントローラ起動してないよ

デモ

サーバ

端末1

L2ブリッジ OpenFlow + L3 ルーティング

Application ネットワーク監視

Lagopus

KVM Namespace

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

30 Copyright©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}

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

31 Copyright©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"}}

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

32 Copyright©2016 NTT corp. All Rights Reserved.

時間がないのでしないかも

デモ

サーバ

端末1

L2ブリッジ OpenFlow + L3 ルーティング

Application ネットワーク監視

Lagopus

KVM Namespace

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

33 Copyright©2016 NTT corp. All Rights Reserved.

Lagopusは高速なOpenFlow1.3対応のソフトウェアスイッチ

output: normal で簡単なL2スイッチング対応

output: normal で簡単なL3ルーティング対応

仮想マシンを含む様々なインターフェースとの接続

OpenFlow + L3ルーティングでこれまでにないネットワーク運用が可能

本スライドの内容とQUICKSTART.mdを参考にすれば同等の環境を構築できるはず...

まとめ

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

34 Copyright©2016 NTT corp. All Rights Reserved.

ご清聴ありがとうございました

34

########## ;;;; #### #### ##

#### #### ## ####

##### ######## ################ ## ##

### ######## ## ###### ## ## ## #### ###### ## ## ## ## ##

###### #### ######## #### ##########

####################mmmm ############