在最近一期名为“使用VRF隔离全部用户”的讲座中,我开始讨论一种日益常见的情况。这种情况包括使用×××路由表和转发表(VRF)在共享网络上隔离用户的需求。VRF允许我们在逻辑上把为那些共享同样的网络设备的用户提供的第二层和第三层功能分开。这种分离还允许服务提供商使用MPLS等其它技术把在它们骨干网中的用户分开。MPLS不在本讲座涉及的范围之内,因此,我们现在仅讨论VRF。在本讲座中,我将向你演示如何使用我们以前介绍过的方法设置VRF。

以前介绍的情况回顾


  我们曾经讨论过涉及到两个用户(A和B)要求一家服务提供商(你)提供互联网接入的情况。由于服务提供商和用户的规模都很小,安装一台共享的网络设备就可以支持这种需求。最初看起来这个种情况允许客户A和客户B的网络混合在一起。为了证明这个问题,这个服务提供商把两个客户都放到了VRF中。


创建VRF


  实际配置一个VRF并不是一件困难的工作。一个VRF有两个主要的组成部分:路由区分符和路由目标。一个路由区分符(RD)是一个数字,除了帮助识别在一个提供商的网络中的×××和允许重叠IP区域之外没有其它的含义。RD是一个分为两个部分的8个字节的数字:前面是2个字节的类型域后面是6个字节的赋值域。不用介绍得太详细,RD的赋值域通常用来代表一个独立系统编号(ASN 2个字节),接着是一个任意编号(4个字节)或者一个IP地址(4个字节),最后是一个任意编号(2个字节)。你可以在下面两个格式中的任何一种格式中输入一个RD。


  16-bit AS number: your 32-bit number


  例如, 101:3.


  32-bit IP address: your 16-bit number


  例如, 192.168.122.15:1.


  使用这个例子的情况,让我们在这台服务提供商路由器上设置2个VRF。客户A的RD是192.168.1.1:100。客户B的RD是192.168.2.1:200。


  客户A


  SP_Router(config)#interface loopback 1


  SP_Router(config-if)#description Loopback interface for Customer_A VRF


  SP_Router(config)#ip vrf Customer_A


  SP_Router(config)#interface g0/0


  SP_Router(config-if)#description Connection to the Customer_A router


  SP_Router(config-vrf)#rd 192.168.1.1:100


  SP_Router(config-vrf)#route-target import 192.168.1.255:100


  SP_Router(config-vrf)#route-target export 192.168.1.255:100


  客户B


  SP_Router(config)#interface loopback 2


  SP_Router(config-if)#description Loopback interface for Customer_B VRF


  SP_Router(config)#interface g0/1


  SP_Router(config-if)#description Connection to the Customer_B router


  SP_Router(config)#ip vrf Customer_B


  SP_Router(config-vrf)#rd 192.168.2.1:200


  SP_Router(config-vrf)#route-target import 192.168.2.255:200


  SP_Router(config-vrf)#route-target export 192.168.2.255:200


  Assigning the interfaces


  一旦你创建VRF的工作结束,你就可以开始分配特定的接口并且开始把客户分开。注意,我没有为旨在用于VRF中的接口分配IP地址。如果你在确定VRF中的接口之前分配IP地址,这个IP地址将被删除,你必须重新为接口分配IP地址。


  客户A


  SP_Router(config)#interface lo1


  SP_Router(config-if)#ip vrf forwarding Customer_A


  SP_Router(config-if)#ip address 192.168.1.1 255.255.255.255


  SP_Router(config)#interface g0/0


  SP_Router(config-if)#ip vrf forwarding Customer_A


  SP_Router(config-if)#ip address 10.1.1.1 255.255.255.252


  客户B


  SP_Router(config)#interface lo2


  SP_Router(config-if)#ip vrf forwarding Customer_B


  SP_Router(config-if)#ip address 192.168.2.1 255.255.255.255


  SP_Router(config)#interface g0/1


  SP_Router(config-if)#ip vrf forwarding Customer_B


  SP_Router(config-if)#ip address 10.1.2.1 255.255.255.252


  这些设置已经修改了我们的情况。下面的图显示了这个事情看起来是什么样子。


  你可以使用显示ip vrf命令验证你的设置:


  SP_Router #show ip vrf


  Name Default RD Interfaces


  Customer_A 192.168.1.1:100 Loopback1


  GigabitEthernet0/0


  Customer_B 192.168.2.1:200 Loopback2


  GigabitEthernet0/1