Red Hat Training

A Red Hat training course is available for RHEL 8

第 38 章 配置虚拟路由和转发(VRF)

使用虚拟路由和转发(VRF),管理员可以在同一个主机上同时使用多个路由表。为此,VRF 将网络在第 3 层进行分区。这可让管理员使用每个 VRF 域的独立路由表隔离流量。这个技术与虚拟 LAN(虚拟 LAN)类似,后者在第二层为网络分区,其中操作系统使用不同的 VLAN 标签来隔离共享相同物理介质的流量。

VRF 优于在第二层上分区的好处是,路由会根据涉及的对等者数量进行更好地考虑。

Red Hat Enterprise Linux 为每个 VRF 域使用虚拟 vrt 设备,并通过将现有网络设备添加到 VRF 设备中添加到 VRF 域的路由。之前附加到原始设备的地址和路由将在 VRF 域中移动。

请注意,每个 VRF 域间都是相互隔离的。

38.1. 在不同接口上永久重复使用相同的 IP 地址

这个步骤描述了如何使用 VRF 功能在同一服务器的不同接口中永久使用相同的 IP 地址。

重要

要在重新使用相同的 IP 地址时让远程对等两个 VRF 接口都联系,网络接口必须属于不同的广播域。广播域是一组节点,它们接收被其中任何一个发送的广播流量。在大多数配置中,所有连接到同一交换机的节点都属于相同的域。

先决条件

  • 您以 root 用户身份登录。
  • 没有配置网络接口。

流程

  1. 创建并配置第一个 VRF 设备:

    1. 为 VRF 设备创建连接并将其分配到路由表中。例如,要创建一个名为 vrf0 的 VRF 设备,它将分配给 1001 路由表:

      # nmcli connection add type vrf ifname vrf0 con-name vrf0 table 1001 ipv4.method disabled ipv6.method disabled
    2. 启用 vrf0 设备:

      # nmcli connection up vrf0
    3. 为刚刚创建的 VRF 分配网络设备。例如:要将 enp1s0 以太网设备添加到 vrf0 VRF 设备,并为 enp1s0 分配一个 IP 地址和子网掩码:

      # nmcli connection add type ethernet con-name vrf.enp1s0 ifname enp1s0 master vrf0 ipv4.method manual ipv4.address 192.0.2.1/24
    4. 激活 vrf.enp1s0 连接:

      # nmcli connection up vrf.enp1s0
  2. 创建并配置下一个 VRF 设备:

    1. 创建 VRF 设备并将其分配到路由表中。例如,要创建一个名为 vrf1 的 VRF 设备,它将分配给 1002 路由表,输入:

      # nmcli connection add type vrf ifname vrf1 con-name vrf1 table 1002 ipv4.method disabled ipv6.method disabled
    2. 激活 vrf1 设备:

      # nmcli connection up vrf1
    3. 为刚刚创建的 VRF 分配网络设备。例如:要将 enp7s0 以太网设备添加到 vrf1 VRF 设备,并为 enp7s0 分配一个 IP 地址和子网掩码:

      # nmcli connection add type ethernet con-name vrf.enp7s0 ifname enp7s0 master vrf1 ipv4.method manual ipv4.address 192.0.2.1/24
    4. 激活 vrf.enp7s0 设备:

      # nmcli connection up vrf.enp7s0

38.2. 在不同接口中临时重复使用相同的 IP 地址

本节中的步骤论述了如何使用虚拟路由和转发(VRF)功能在某个服务器的不同接口中临时使用相同的 IP 地址。这个过程仅用于测试目的,因为配置是临时的并在重启系统后会丢失。

重要

要在重新使用相同的 IP 地址时让远程对等两个 VRF 接口都联系,网络接口必须属于不同的广播域。广播域是一组节点,它们接收被其中任何一个发送的广播流量。在大多数配置中,所有连接到同一交换机的节点都属于相同的域。

先决条件

  • 您以 root 用户身份登录。
  • 没有配置网络接口。

流程

  1. 创建并配置第一个 VRF 设备:

    1. 创建 VRF 设备并将其分配到路由表中。例如,要创建一个名为 blue 的 VRF 设备,它将分配给 1001 路由表:

      # ip link add dev blue type vrf table 1001
    2. 启用 blue 设备:

      # ip link set dev blue up
    3. 为 VRF 设备分配网络设备。例如:要将 enp1s0 以太网设备添加到 blue VRF 设备中:

      # ip link set dev enp1s0 master blue
    4. 启用 enp1s0 设备:

      # ip link set dev enp1s0 up
    5. enp1s0 设备分配 IP 地址和子网掩码。例如,将其设置为 192.0.2.1/24:

      # ip addr add dev enp1s0 192.0.2.1/24
  2. 创建并配置下一个 VRF 设备:

    1. 创建 VRF 设备并将其分配到路由表中。例如,要创建一个名为 red 的 VRF 设备,它将分配给 1002 路由表:

      # ip link add dev red type vrf table 1002
    2. 启用 red 设备:

      # ip link set dev red up
    3. 为 VRF 设备分配网络设备。例如:要将 enp7s0 以太网设备添加到 red VRF 设备中:

      # ip link set dev enp7s0 master red
    4. 启用 enp7s0 设备:

      # ip link set dev enp7s0 up
    5. enp7s0 设备分配与 blue VRF 域中的 enp1s0 使用相同的 IP 地址和子网:

      # ip addr add dev enp7s0 192.0.2.1/24
  3. 另外,还可按照上述步骤创建更多 VRF 设备。

38.3. 其它资源