VXLAN on Oracle Linux8

遠隔地でL2でほしいケースに対する選択肢としてL2TPやVPNを試してきましたが、VXLANがLinuxはカーネルレベルサポートらしいことを知ったので試してみます。

環境としては以下で試してみます。VXLANの通信はens224を使って通すようにします。

ノードインターフェイスIPNote
Node1ens192192.168.9.81/22物理インターフェイス
ens224192.168.41.81/22物理インターフェイス
vxlan110.0.1.81/24vxlanインターフェイス
vxlan210.02.81/24vxlanインターフェイス
Node2ens192192.168.9.82/22物理インターフェイス
ens224192.168.42.82/22物理インターフェイス
vxlan110.0.1.82/24vxlanインターフェイス
vxlan210.0.2.82/24vxlanインターフェイス

Node1でvxlan1,2のインターフェイスを追加します。

# ip link add vxlan1 type vxlan id 1 dev ens224
# ip link add vxlan2 type vxlan id 2 dev ens224
# ip addr add 10.0.1.81/24 broadcast 10.0.1.255 dev vxlan1
# ip addr add 10.0.2.81/24 broadcast 10.0.2.255 dev vxlan2
# ip link set vxlan1 up
# ip link set vxlan2 up

Node2でもvxlan1,2のインターフェイスを追加します。

# ip link add vxlan1 type vxlan id 1 dev ens224
# ip link add vxlan2 type vxlan id 2 dev ens224
# ip addr add 10.0.1.82/24 broadcast 10.0.1.255 dev vxlan1
# ip addr add 10.0.2.82/24 broadcast 10.0.2.255 dev vxlan2
# ip link set vxlan1 up
# ip link set vxlan2 up

今回はVXLANの通信をユニキャストにしようと思うので、対向ノードを登録します。

Node1で以下を実行します。

# bridge fdb append 00:00:00:00:00:00 dev vxlan1 dst 192.168.41.82
# bridge fdb append 00:00:00:00:00:00 dev vxlan2 dst 192.168.41.82

Node2では以下を実行します。

# bridge fdb append 00:00:00:00:00:00 dev vxlan1 dst 192.168.41.81
# bridge fdb append 00:00:00:00:00:00 dev vxlan2 dst 192.168.41.81

これで設定はOKです。

疎通確認してみます。

# ping 10.0.1.82
PING 10.0.1.82 (10.0.1.82) 56(84) bytes of data.
64 bytes from 10.0.1.82: icmp_seq=1 ttl=64 time=0.217 ms
64 bytes from 10.0.1.82: icmp_seq=2 ttl=64 time=0.244 ms
^C
--- 10.0.1.82 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1013ms
rtt min/avg/max/mdev = 0.217/0.230/0.244/0.020 ms

# ping 10.0.2.82
PING 10.0.2.82 (10.0.2.82) 56(84) bytes of data.
64 bytes from 10.0.2.82: icmp_seq=1 ttl=64 time=0.259 ms
64 bytes from 10.0.2.82: icmp_seq=2 ttl=64 time=0.244 ms
^C
--- 10.0.2.82 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1042ms
rtt min/avg/max/mdev = 0.244/0.251/0.259/0.017 ms

通信できるのがわかったので、両ノードでiperf3をインストールし帯域を測定してみます。

# dnf install iperf3 -y

Node2でサーバを起動します。

# iperf3 -s

まずは物理インターフェイスで確認します。Node1から接続します。

# iperf3 -c 192.168.41.82
Connecting to host 192.168.41.82, port 5201
[  5] local 192.168.41.81 port 43104 connected to 192.168.41.82 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  2.77 GBytes  23.8 Gbits/sec   56   2.13 MBytes
[  5]   1.00-2.00   sec  2.80 GBytes  24.0 Gbits/sec    0   2.39 MBytes
[  5]   2.00-3.00   sec  2.80 GBytes  24.0 Gbits/sec    0   2.52 MBytes
[  5]   3.00-4.00   sec  2.80 GBytes  24.1 Gbits/sec    0   2.52 MBytes
[  5]   4.00-5.00   sec  2.79 GBytes  24.0 Gbits/sec    0   2.89 MBytes
[  5]   5.00-6.00   sec  2.79 GBytes  23.9 Gbits/sec    0   2.97 MBytes
[  5]   6.00-7.00   sec  2.76 GBytes  23.8 Gbits/sec    1   2.97 MBytes
[  5]   7.00-8.00   sec  2.79 GBytes  24.0 Gbits/sec    0   2.97 MBytes
[  5]   8.00-9.00   sec  2.79 GBytes  24.0 Gbits/sec    0   2.98 MBytes
[  5]   9.00-10.00  sec  2.80 GBytes  24.0 Gbits/sec    0   3.02 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  27.9 GBytes  24.0 Gbits/sec   57             sender
[  5]   0.00-10.04  sec  27.9 GBytes  23.9 Gbits/sec                  receiver

20Gbpsちょっと出ています。

次にvxlanインターフェイスでNode1から接続してみます。

# iperf3 -c 10.0.1.82
Connecting to host 10.0.1.82, port 5201
[  5] local 10.0.1.81 port 46692 connected to 10.0.1.82 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  2.97 GBytes  25.5 Gbits/sec    4   3.02 MBytes
[  5]   1.00-2.00   sec  2.64 GBytes  22.7 Gbits/sec    1   3.02 MBytes
[  5]   2.00-3.00   sec  2.35 GBytes  20.2 Gbits/sec    1   3.02 MBytes
[  5]   3.00-4.00   sec  2.35 GBytes  20.2 Gbits/sec    2   3.02 MBytes
[  5]   4.00-5.00   sec  2.35 GBytes  20.2 Gbits/sec    3   3.02 MBytes
[  5]   5.00-6.00   sec  2.34 GBytes  20.1 Gbits/sec    1   3.02 MBytes
[  5]   6.00-7.00   sec  2.37 GBytes  20.4 Gbits/sec    0   3.02 MBytes
[  5]   7.00-8.00   sec  2.35 GBytes  20.2 Gbits/sec    0   3.02 MBytes
[  5]   8.00-9.00   sec  2.33 GBytes  20.0 Gbits/sec    0   3.02 MBytes
[  5]   9.00-10.00  sec  2.34 GBytes  20.1 Gbits/sec    0   3.02 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  24.4 GBytes  21.0 Gbits/sec   12             sender
[  5]   0.00-10.04  sec  24.4 GBytes  20.9 Gbits/sec                  receiver

こちらも20Gbpsちょっと出ています。8~9割程度の速度が出てそうですね。

今回はアンダーレイネットワークもL2にして評価しましたが、実際にはL3で設定して、遠隔地のノートともL2で通信することができそうです。

また、ip linkで追加した状態だと、再起動でvxlanインターフェイスは消えるので、nmcliで追加する方法を調べました。

Node1と2でそれぞれ以下のようにするだけで、追加できます。これで再起動してもvxlanインターフェイスが維持されます。

Node1 # nmcli connection add type vxlan con-name vxlan1 ifname vxlan1 id 1 local 192.168.41.81 remote 192.168.41.82 ipv4.address 10.0.1.81/24 dev ens224
Node1 # nmcli connection add type vxlan con-name vxlan2 ifname vxlan2 id 2 local 192.168.41.81 remote 192.168.41.82 ipv4.address 10.0.2.81/24 dev ens224
Node1 # nmcli connection modify vxlan1 connection.autoconnect yes
Node1 # nmcli connection modify vxlan2 connection.autoconnect yes
Node1 # nmcli connection modify vxlan1 ipv4.method manual
Node1 # nmcli connection modify vxlan2 ipv4.method manual

Node2 # nmcli connection add type vxlan con-name vxlan1 ifname vxlan1 id 1 local 192.168.41.82 remote 192.168.41.81 ipv4.address 10.0.1.82/24 dev ens224
Node2 # nmcli connection add type vxlan con-name vxlan2 ifname vxlan2 id 2 local 192.168.41.82 remote 192.168.41.81 ipv4.address 10.0.2.82/24 dev ens224
Node2 # nmcli connection modify vxlan1 connection.autoconnect yes
Node2 # nmcli connection modify vxlan2 connection.autoconnect yes
Node2 # nmcli connection modify vxlan1 ipv4.method manual
Node2 # nmcli connection modify vxlan2 ipv4.method manual

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)