CentOS8にてnmcli コマンドよるVRF設定方法を記載します。
CentOS7ではKernel Versionの関係で設定できません。
1.NICデバイスの確認
以下の状態からens32にVRF table10を設定していきます。
[root@c85g192 ~]# nmcli dev DEVICE TYPE STATE CONNECTION ens33 ethernet connected ens33 virbr0 bridge connected (externally) virbr0 ens32 ethernet disconnected -- lo loopback unmanaged -- virbr0-nic tun unmanaged --
2.VRFの作成
先にVRFのRouteテーブルを作成します。
ここでは、table 10 とします。
nmcli connection add type vrf autoconnect yes ifname vrf10 con-name vrf10 table 10 nmcli connection modify vrf10 ipv4.method disabled ipv6.method disabled nmcli connection up vrf10
<出力例>
[root@c85g192 ~]# nmcli connection add type vrf autoconnect yes ifname vrf10 con-name vrf10 table 10 Connection 'vrf10' (501751b7-df6d-4d18-95d6-cb87459d6052) successfully added. [root@c85g192 ~]# nmcli connection modify vrf10 ipv4.method disabled ipv6.method disabled [root@c85g192 ~]# nmcli connection up vrf10 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5) [root@c85g192 ~]# nmcli con show NAME UUID TYPE DEVICE ens33 1de6e2fb-e8ee-4c3d-852b-5f84d480a201 ethernet ens33 virbr0 7c2ded50-2e7c-49e4-ba46-2081f823c50f bridge virbr0 vrf10 501751b7-df6d-4d18-95d6-cb87459d6052 vrf vrf10
3.ens32(物理NICデバイス)の設定
シンタックスは、ブリッジに物理デバイスをアタッチする設定に近いです。
masterにvrf10を指定している点がポイントとなります。
その他、今回作成したVRF table 10のRouteテーブルは、VRF無しのDefaultのRouteテーブルと分離されていますので、IPアドレスに加え、Gatewayアドレスも設定してしまいます。
nmcli connection add type ethernet autoconnect yes ifname ens32 con-name ens32 master vrf10 nmcli connection modify ens32 ipv4.method manual ipv4.address 192.168.30.192/24 nmcli connection modify ens32 ipv4.gateway 192.168.30.254 nmcli connection up ens32
<出力例>
[root@c85g192 ~]# nmcli connection add type ethernet autoconnect yes ifname ens32 con-name ens32 master vrf10 nmcli connection modify ens32 ipv4.gateway 192.168.30.254 nmcli connection up ens32 Connection 'ens32' (fa7f298b-266f-4131-8d70-39c4bf542e36) successfully added. [root@c85g192 ~]# nmcli connection modify ens32 ipv4.method manual ipv4.address 192.168.30.192/24 [root@c85g192 ~]# nmcli connection modify ens32 ipv4.gateway 192.168.30.254 [root@c85g192 ~]# nmcli connection up ens32 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7) [root@c85g192 ~]# nmcli con show NAME UUID TYPE DEVICE ens33 1de6e2fb-e8ee-4c3d-852b-5f84d480a201 ethernet ens33 ens32 fa7f298b-266f-4131-8d70-39c4bf542e36 ethernet ens32 virbr0 7c2ded50-2e7c-49e4-ba46-2081f823c50f bridge virbr0 vrf10 501751b7-df6d-4d18-95d6-cb87459d6052 vrf vrf10
4.設定確認
ip -br addr show vrf vrf10 ip vrf show ip route show table 10 ip vrf exec vrf10 ping 192.168.30.254
<出力例>
[root@c85g192 ~]# ip -br addr show vrf vrf10
ens32 UP 192.168.30.192/24 fe80::8cf6:2ee3:5eb0:8817/64
[root@c85g192 ~]# ip vrf show
Name Table
-----------------------
vrf10 10
[root@c85g192 ~]# ip route show table 10
default via 192.168.30.254 dev ens32 proto static metric 101
broadcast 192.168.30.0 dev ens32 proto kernel scope link src 192.168.30.192
192.168.30.0/24 dev ens32 proto kernel scope link src 192.168.30.192 metric 101
local 192.168.30.192 dev ens32 proto kernel scope host src 192.168.30.192
broadcast 192.168.30.255 dev ens32 proto kernel scope link src 192.168.30.192
[root@c85g192 ~]# ip vrf exec vrf10 ping 192.168.30.254
PING 192.168.30.254 (192.168.30.254) 56(84) bytes of data.
64 bytes from 192.168.30.254: icmp_seq=1 ttl=64 time=1.41 ms
64 bytes from 192.168.30.254: icmp_seq=2 ttl=64 time=1.87 ms
64 bytes from 192.168.30.254: icmp_seq=3 ttl=64 time=1.89 ms
^C
--- 192.168.30.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2006ms
rtt min/avg/max/mdev = 1.409/1.721/1.888/0.223 ms
以上です。