Contenu connexe
Similaire à LagopusとAzureとIPsecとDPDK (20)
LagopusとAzureとIPsecとDPDK
- 2. Copyright©2018 NTT corp. All Rights Reserved.
Agenda
Lagopus projectとShowNet
AzureのVMから見える、AzureのNetwork
AzureのNetwork(宇田さん)
- 4. Copyright©2018 NTT corp. All Rights Reserved.
Lagopus project
Lagopus Switch
x86サーバで動作するOpenFlow 1.3+tunnel対応のOSSスイッチ
Lagopus Router
OSSのソフトウェアルータ
C + golang
Zebra 2.0 projectと連携
現状: そこそこ早いVRF対応IPsec GW
- 5. Copyright©2018 NTT corp. All Rights Reserved.
Lagopus Switch
Lagopus Rt
internet
Azure GW(FW/NAT)
192.168.210.1
Lagopus Rt
192.168.210.6/24
10.1.1.1
Azure VM
192.168.210.4/24
10.2.1.1
Azure VM
192.168.210.5/24
10.3.1.1
10.0.0.10/2410.20.0.1/24
ShowNet M-plane
Packet Broker
ShowNet
Azure Cloud
- 6. Copyright©2018 NTT corp. All Rights Reserved.
Azure側の構成
LagopusRt
Azure VM
Azure GW(NAT/FW)
Azure内のVMとShowNetのVMをIPsecトンネルでつなぐ
default GW
IPsec Tunnel
- 9. Copyright©2018 NTT corp. All Rights Reserved.
IPsecの設定
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
# strictcrlpolicy=yes
# uniqueids = no
conn %default
authby=secret
type=tunnel
auto=add
compress=no
conn ipsec-gw
left=192.168.210.6 # AzureVMから見たIP
leftsubnet=192.168.128.0/17
leftfirewall=no
right=10.0.0.10 # ShowNetのアドレス
rightsubnet=0.0.0.0/0
ike=aes128-sha1-ecp521
esp=aes128-sha1-ecp521
keyexchange=ikev1
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
# strictcrlpolicy=yes
# uniqueids = no
conn %default
authby=secret
type=tunnel
auto=start
compress=no
conn ipsec-gw
left=10.0.0.10 # ShowNetのアドレス
leftsubnet=0.0.0.0/0
leftfirewall=no
right=10.1.1.1 # AzureのGlobal IP
rightid=192.168.210.6 # AzureVMから見たIP
rightsubnet=192.168.128.0/17
ike=aes128-sha1-ecp521
esp=aes128-sha1-ecp521
keyexchange=ikev1
ShowNet AzureNAT配下に相手がいるので追加設定が必要
- 10. Copyright©2018 NTT corp. All Rights Reserved.
AzureのL3(外から見える世界)
LagopusRt
AzureVM
Azure GW(NAT/FW)
• VMの設定
• LagopusRt: 192.168.210.6
• AzureVM: 192.168.210.5
• 外から見えるアドレス
• LagopusRt: (割り当てられたグローバルIP)
• AzureVM: (割り当てられたグローバルIP)
default GW
IPsec Tunnel
- 12. Copyright©2018 NTT corp. All Rights Reserved.
AzureのL3(ポータルからしか見えない世界)
LagopusRt
AzureVM
Azure GW(NAT/FW)
• 設定
• LagopusRtのdefault gateway -> Azure GW
• AzureVMのdefault gateway -> Azure GW
• 実際
• LagopusRtのdefault gateway -> Azure GW
• AzureVMのdefault gateway -> Azure GW
• AzureVMのShowNet宛 -> LagopusRt (あて先IPが書き換わる!)
(UDR: User Defined Routes)
default GW
IPsec Tunnel
- 14. Copyright©2018 NTT corp. All Rights Reserved.
AzureのL2(AzureVMから見える世界)
? (192.168.210.6) at 12:34:56:78:9a:bc [ether] on eth0
? (192.168.210.1) at 12:34:56:78:9a:bc [ether] on eth0
arp
00:0d:3a:51:f1:ea > 12:34:56:78:9a:bc, ethertype IPv4 (0x0800), lengt
74:83:ef:41:27:47 > 00:0d:3a:51:f1:ea, ethertype IPv4 (0x0800), length
00:0d:3a:51:f1:ea > 12:34:56:78:9a:bc, ethertype IPv4 (0x0800), lengt
74:83:ef:41:27:47 > 00:0d:3a:51:f1:ea, ethertype IPv4 (0x0800), length
tcpdump
LagopusRt
AzureVM
Azure GW(NAT/FW)
あて先MACはすべて 12:34:56:78:9a:bc
行きと帰りでMACが違う(MACラーニングとは)
default GW
IPsec Tunnel
(tcpdumpしているとなぞの168.63.129.16との通信が見える)
- 16. Copyright©2018 NTT corp. All Rights Reserved.
AzureのL1(Netvsc PMDのBIND)
Bus info Device Class Description
====================================================
pci@0001:00:02.0 rename4 network MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]
eth0 network Ethernet interface
eth1 network Ethernet interface
businfo
DEV_UUID=$(basename $(readlink /sys/class/net/eth1/device))
NET_UUID="f8615163-df3e-46c5-913f-f2d2f965ed0e"
modprobe uio_hv_generic
echo $NET_UUID > /sys/bus/vmbus/drivers/uio_hv_generic/new_id
echo $DEV_UUID > /sys/bus/vmbus/drivers/hv_netvsc/unbind
echo $DEV_UUID > /sys/bus/vmbus/drivers/uio_hv_generic/bind
Netvsc-pmd のBind
PCIはない。rename4はeth0を高速NICで指定したため見えている。
- 17. Copyright©2018 NTT corp. All Rights Reserved.
AzureのNetwork
アンダーレイ(VxLAN or NVGRE)
ユーザネットワーク
きっとWindows Server
(そりゃそうだ)
- 19. Copyright©2018 NTT corp. All Rights Reserved.
AzureとDPDKとIPsec
Azure(クラウド)でL2を考えてはいけない。
AzureのNICにPCIはない。DPDKはuio_hv_generic、NetVSC pmd で掴
む。
AzureでもDPDKで動く。そう、Lagopusならね。
NAT配下のIPsecは設定とログをよく確認しましょう。