第 28 章 在隔离的 VRF 网络内启动服务
使用虚拟路由和转发(VRF),您可以使用与操作系统主路由表不同的路由表创建隔离网络。然后,您可以启动服务和应用程序,以便它们只能访问该路由表中定义的网络。
28.1. 配置 VRF 设备 复制链接链接已复制到粘贴板!
要使用虚拟路由和转发(VRF),您可以创建一个 VRF 设备,并将物理或虚拟网络接口和路由信息附加给它。
要防止您将自己远程锁定,请在本地控制台中或通过您不想分配给 VRF 设备的网络接口远程执行此流程。
先决条件
- 您已在本地登录或使用与您要分配给 VRF 设备不同的网络接口。
流程
使用同命的虚拟设备创建
vrf0
连接,并将其附加到路由表1000
:nmcli connection add type vrf ifname vrf0 con-name vrf0 table 1000 ipv4.method disabled ipv6.method disabled
# nmcli connection add type vrf ifname vrf0 con-name vrf0 table 1000 ipv4.method disabled ipv6.method disabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 向
vrf0
连接添加enp1s0
设备,并配置 IP 设置:nmcli connection add type ethernet con-name enp1s0 ifname enp1s0 master vrf0 ipv4.method manual ipv4.address 192.0.2.1/24 ipv4.gateway 192.0.2.254
# nmcli connection add type ethernet con-name enp1s0 ifname enp1s0 master vrf0 ipv4.method manual ipv4.address 192.0.2.1/24 ipv4.gateway 192.0.2.254
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令会创建
enp1s0
连接,来作为vrf0
连接的端口。由于此配置,路由信息会自动分配给与vrf0
设备关联的路由表1000
。如果您在隔离网络中需要静态路由:
添加静态路由:
nmcli connection modify enp1s0 +ipv4.routes "198.51.100.0/24 192.0.2.2"
# nmcli connection modify enp1s0 +ipv4.routes "198.51.100.0/24 192.0.2.2"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这向
198.51.100.0/24
网络添加了一个路由,该网络使用192.0.2.2
作为路由器。激活连接:
nmcli connection up enp1s0
# nmcli connection up enp1s0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
显示与
vrf0
关联的设备的 IP 设置:ip -br addr show vrf vrf0
# ip -br addr show vrf vrf0 enp1s0 UP 192.0.2.1/24
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示 VRF 设备及其关联的路由表:
ip vrf show
# ip vrf show Name Table ----------------------- vrf0 1000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示主路由表:
ip route show
# ip route show default via 203.0.113.0/24 dev enp7s0 proto static metric 100
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 主路由表不会提到任何与
enp1s0
设备或192.0.2.1/24
子网关联的路由。显示路由表
1000
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow default
条目表示使用此路由表的服务,将192.0.2.254
用作其默认网关,而不是主路由表中的默认网关。在与
vrf0
关联的网络中执行traceroute
工具,以验证工具是否使用表1000
的路由:ip vrf exec vrf0 traceroute 203.0.113.1
# ip vrf exec vrf0 traceroute 203.0.113.1 traceroute to 203.0.113.1 (203.0.113.1), 30 hops max, 60 byte packets 1 192.0.2.254 (192.0.2.254) 0.516 ms 0.459 ms 0.430 ms ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 第一跳是分配给路由表
1000
的默认网关,而不是系统的主路由表中的默认网关。