VRF(虚拟路由和转发)。默认情况下,路由器使用单个全局路由表,该表包含通过静态或动态路由协议学习的所有直接连接的网络和前缀。
VRF就像路由器的VLAN,而不是使用单个全局路由表,我们可以使用多个虚拟路由表。路由器的每个接口都分配给不同的VRF。
VRF通常用于MPLS部署,当我们使用没有MPLS的VRF时,我们将其称为VRF lite。这就是我们将在本课中关注的内容。我们来看一个示例拓扑:
在上面的拓扑中,我们有一个ISP路由器和两个名为“Red”和“Blue”的客户。每个客户都有两个站点,并且这些站点连接到ISP路由器。ISP路由器只有一个全局路由表,所以如果我们像上面的拓扑那样连接所有东西,
这就是路由表的样子:
ISP#show ip route connected
C 192.168.4.0/24 is directly connected, FastEthernet3/0
C 192.168.1.0/24 is directly connected, FastEthernet0/0
C 192.168.2.0/24 is directly connected, FastEthernet1/0
C 192.168.3.0/24 is directly connected, FastEthernet2/0
ISP路由器具有单个全局路由表,其具有所有4个直接连接的网络。让我们用VRF来改变这个
我想为客户“Blue”和“Red”创建一个单独的路由表。
首先,我们必须创建这些VRF:
ISP(config)#ip vrf Red
ISP(config-vrf)#
exit
ISP(config)#
ip vrf Blue
ISP(config-vrf)#
exit
在全球范围内,我们为每位客户创建一个VRF。我们的下一步是将ISP路由器的接口添加到正确的VRF中。
这是如何做:
ISP(config)#interface FastEthernet 0/0ISP(config-if)#ip vrf forwarding Blue% Interface FastEthernet0/0 IP address 192.168.1.254 removed due to enabling VRF BlueISP(config-if)#ip address 192.168.1.254 255.255.255.0
在接口级别,我们使用ip vrf forwarding命令将接口分配给正确的VRF。完成此操作后,您将不得不再次添加IP地址。
让我们配置其余的接口:
ISP(config)#interface FastEthernet 1/0
ISP(config-if)#
ip vrf forwarding Red
ISP(config-if)#
ip address 192.168.2.254 255.255.255.0
ISP(config)#interface FastEthernet 2/0
ISP(config-if)#
ip vrf forwarding Blue
ISP(config-if)#
ip address 192.168.3.254 255.255.255.0
ISP(config)#interface FastEthernet 3/0
ISP(config-if)#
ip vrf forwarding Red
ISP(config-if)#
ip address 192.168.4.254 255.255.255.0
现在配置了所有接口。您可以使用一个有用的命令来查看所有VRF及其接口:
我们配置了VRF,让我们来看看ISP路由器的全局路由表:
ISP#show ip route connected
全局路由表没有条目,这是因为所有接口都添加到VRF中。我们来检查一下VRF路由表:
ISP#show ip route vrf Blue connected
C 192.168.1.0/24 is directly connected, FastEthernet0/0
C 192.168.3.0/24 is directly connected, FastEthernet2/0
ISP#show ip route vrf Red connected
C 192.168.4.0/24 is directly connected, FastEthernet3/0
C 192.168.2.0/24 is directly connected, FastEthernet1/0
我们使用show ip route命令,但您需要指定要查看的VRF。如您所见,每个VRF都有自己的路由表,其中包含我们之前配置的接口。
如果你想在路由器上做一些事情,比如发送ping,那么你必须指定你想要使用的VRF。默认情况下,它将使用全局路由表。以下是如何发送ping的示例:
ISP#ping vrf Blue 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
这很容易,只是不要忘记指定正确的VRF。同样的事情适用于路由(协议)。例如,如果要配置静态路由,则必须指定正确的VRF。看看下面的例子:
Router Blue1有一个IP地址为1.1.1.1 / 32的环回接口。让我们在ISP路由器上创建一个静态路由,以便我们可以访问它:
ISP(config)#ip route vrf Blue 1.1.1.1 255.255.255.255 192.168.1.1
我们使用相同的ip route命令,但我指定了静态路由所属的VRF。让我们看看这是否有效:
ISP#ping vrf Blue 1.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/24/52 ms
很容易,ping工作。路由协议怎么样?我们可以使用OSPF,EIGRP,BGP ......完全没问题。我们来看一个OSPF的例子:
客户“Blue”和“Red”都希望使用OSPF来宣传他们的网络。由于我们使用VRF,所以一切都是分开的。让我们从客户Blue的OSPF配置开始:
Blue1(config)#router ospf 1
Blue1(config-router)#
network 192.168.1.0 0.0.0.255 area 0
Blue1(config-router)#
network 1.1.1.1 0.0.0.0 area 0
Blue2(config)#router ospf 1
Blue2(config-router)#
network 192.168.3.0 0.0.0.255 area 0
Blue2(config-router)#
network 3.3.3.3 0.0.0.0 area 0
客户路由器的OSPF配置非常简单。在ISP路由器上,我们必须指定我们想要使用的VRF:
ISP(config)#router ospf 1 vrf Blue
ISP(config-router)#
network 192.168.1.0 0.0.0.255 area 0
ISP(config-router)#
network 192.168.3.0 0.0.0.255 area 0
我们配置OSPF进程1并指定我们想要使用的VRF,这就是它的全部内容。让我们为客户Red做同样的事情:
Red1(config)#router ospf 1
Red1(config-router)#
network 192.168.2.0 0.0.0.255 area 0
Red1(config-router)#
network 2.2.2.2 0.0.0.0 area 0
Red2(config)#router ospf 1
Red2(config-router)#
network 192.168.4.0 0.0.0.255 area 0
Red2(config-router)#
network 4.4.4.4 0.0.0.0 area 0
ISP(config)#router ospf 2 vrf Red
ISP(config-router)#
network 192.168.2.0 0.0.0.255 area 0
ISP(config-router)#
network 192.168.4.0 0.0.0.255 area 0
配置类似,我不得不在ISP路由器上使用另一个进程ID,因为第一个用于客户Blue。以下是ISP路由器上的VRF路由表现在的样子:
ISP#show ip route vrf Blue ospf
Routing Table: Blue
1.0.0.0/32 is subnetted, 1 subnets
O 1.1.1.1 [110/2] via 192.168.1.1, 00:00:24, FastEthernet0/0
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [110/2] via 192.168.3.3, 00:00:24, FastEthernet2/0
ISP#show ip route vrf Red ospf
Routing Table: Red
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/2] via 192.168.2.2, 00:00:19, FastEthernet1/0
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/2] via 192.168.4.4, 00:00:19, FastEthernet3/0
两个单独的路由表,每个VRF的前缀,这看起来不错。
这就是VRF lite的意义所在,虽然它有一个缺点......它不是一个可扩展的解决方案。
配置:
BLUE1:
hostname Blue1
ip cef
interface Loopback0
ip address 1.1.1.1 255.255.255.255
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
router ospf 1
network 1.1.1.1 0.0.0.0 area 0
network 192.168.1.0 0.0.0.255 area 0
end
BLUE2:
hostname Blue2
ip cef
interface Loopback0
ip address 3.3.3.3 255.255.255.255
interface FastEthernet0/0
ip address 192.168.3.3 255.255.255.0
router ospf 1
network 3.3.3.3 0.0.0.0 area 0
network 192.168.3.0 0.0.0.255 area 0
end
ISP:
hostname ISP
ip cef
ip vrf Blue
ip vrf Red
interface FastEthernet0/0
ip vrf forwarding Blue
ip address 192.168.1.254 255.255.255.0
interface FastEthernet1/0
ip vrf forwarding Red
ip address 192.168.2.254 255.255.255.0
interface FastEtherne2/0
ip vrf forwarding Blue
ip address 192.168.3.254 255.255.255.0
interface FastEthernet3/0
ip vrf forwarding Red
ip address 192.168.4.254 255.255.255.0
router ospf 1 vrf Blue
network 192.168.1.0 0.0.0.255 area 0
network 192.168.3.0 0.0.0.255 area 0
router ospf 2 vrf Red
network 192.168.2.0 0.0.0.255 area 0
network 192.168.4.0 0.0.0.255 area 0
end
RED1:
hostname Red1
ip cef
interface Loopback0
ip address 2.2.2.2 255.255.255.255
interface FastEthernet0/0
ip address 192.168.2.2 255.255.255.0
router ospf 1
network 2.2.2.2 0.0.0.0 area 0
network 192.168.2.0 0.0.0.255 area 0
end
RED2:
hostname Red2
ip cef
interface Loopback0
ip address 4.4.4.4 255.255.255.255
interface FastEthernet0/0
ip address 192.168.4.4 255.255.255.0
router ospf 1
network 4.4.4.4 0.0.0.0 area 0
network 192.168.4.0 0.0.0.255 area 0