- 编辑 | 排版 | 制图 | 测试 | ©瑞哥
- 此文用时3小时08分钟,原创不易,坚持更不易,希望我的每一份劳动成果都可以得到大家的一个【在看】
一、VRF介绍
V**路由转发表(V** Routingand Forwarding table ),简称VRF,VRF主要是为了解决本地路由冲突问题。PE和CE之间的连接都需要关联一个VRF。可以把每个VRF想象成一台“虚拟路由器”,各个VRF间路由是完全隔离的。
VRF包括:
- 一张独立的路由表;
- 一组归属于这个VRF的接口集合;
- 一组只用于本VRF的路由协议。
既然,VRF间是独立转发的,如何实现VRF之间的路由联通?有两种常见方法:通过静态路由或策略路由实现VRF路由的跨越。
静态路由VRF跨越配置思路:
配置模板1:
代码语言:javascript复制
ip route [vrf vrf_name] network mask[interface-type interface-number] [ip-address]
配置示例1:
代码语言:javascript复制
ip route vrf V**1 10.0.0.0255.0.0.0 GigabitEthernet 3/1/0 12.0.0.1
配置解释1:
在VRF V**1里添加一个去往10.0.0.0/8网段的静态路由,去往这个网段的数据包从GI3/1/0接口转发,下一跳是12.0.0.1。
出接口(例子中的GI3/1/0接口)用于指示将要跳转的VRF,即该出接口属于什么VRF,就指明了目的网段要跳转到该VRF。
接口没有加入任何VRF,那么该接口属于全局VRF,即全局路由表
VRF跳转是以出接口为跳转标识的,所以一定要配置出接口形式的静态路由。同时,必须配置下一跳IP地址,否则ARP无法解析,无法转发数据。
配置模板2:
代码语言:javascript复制
ip route [vrf vrf_name] network mask ip-address global
配置示例2:
代码语言:javascript复制
ip route vrf V**1 10.0.0.0255.0.0.0 12.0.0.1 global
配置解释2:
Global表示全局路由表
在VRF V**1里添加一个去往10.0.0.0/8网段的静态路由,去往这个网段的数据包从全局路由表转发,下一跳是12.0.0.1。
配置模板1与配置模板2差别:
Ø 配置模板1可以实现任意VRF之间、任意VRF与全局路由表之间的VRF跨越
Ø 配置模板2只能实现任意VRF与全局路由表之间的VRF跨越,不能实现VRF与VRF之间的跨越。
策略路由VRF跨越配置思路:
1)定义 ACL感兴趣流
代码语言:javascript复制
ip access-listextended 100
10 permit ip 10.0.0.0 0.255.255.255 any
2)定义策略路由
代码语言:javascript复制
route-map internetpermit 10
match ip address 100
set vrf V**1
set vrf:配置策略路由是 IP 报文选路使用的 VRF 实例,优先级比普通路由高,该命令不能和 set ip [default] nexthop、set [default ]interface 同时配置。从接口上收到的匹配 match规则的 IP 报文将使用该命令指定的 VRF实例的路由表进行选路,而不管该 VRF 是否和收到该 IP报文的接口所属的 VRF一致。
3)接口应用策略路由
代码语言:javascript复制
interfaceGigabitEthernet 3/1/0
ip policy route-map internet
二、大型案例
2.1 实际组网需求
政务网中,MPLS-V**应用已经非常普遍。众所周知,MPLS承载网公网和V**私网之间是无法互通的,因为跨越了VRF,VRF将公网和私网严格区分开来。
在政务网中,存在这样的需求:有部分非V**业务需要承载在公网上。即,某些业务不划入V**网络,通过公网实现互通。一般情况下,V**业务和非V**业务是没有互访需求的,所以,两者通过同一张公网承载没有问题。
但在某些政务网中,存在特殊需求,非V**业务需要上INTERNET,而INTERNET出口本身属于某个MPLS-V**的VRF实例。如何实现非V**业务与V**业务的互联互通就成为一个问题。
需求:
Ø 省城域网局厅接入属于非V**业务,需要和其他非V**业务互访
Ø 省城域网局厅接入需要访问INTERNET
Ø 除省城域网局厅接入以外的非V**业务,不能访问INTERNET
拓扑描述:
Ø 该拓扑是某政务网实际拓扑
Ø 黄色底纹部分是公网部分,同时承载V**和非V**业务
Ø INTERNET出口部分,两台RSR7716连接RSR7708的接口属于VRF internet
2.2 实际组网拓扑
2.3 模拟组网需求
Ø PC1属于非V**业务,需要和其他非V**业务互访
Ø PC1需要访问INTERNET
Ø 除PC1以外的非V**业务,不能访问INTERNET
2.4 模拟组网拓扑
2.5 配置要点
数据传输是双向的,我们需要同时考虑PC1到INTERNET、INTERNET到PC1双向的路由联通性
PC1到INTERNET方向:
Ø 需求是:PC1需要访问INTERNET,但除PC1以外的非V**业务不能访问INTERNET。因此需要在PE1的GI3/1/0入口方向实施跨VRF的策略路由。只允许PC1网段跨VRF转发,其他网段屏蔽。
Ø 同时需要在PE1上全局路由表引入默认路由,使得公网非V**业务路由器能学到去往INTERNET的默认路由。
INTERNET到PC1方向:
Ø PE1上需要回指路由,我们使用跨VRF的静态路由,回指PC1网段。
Ø PE1上需要将该静态路由重发布到VRF 的OSPF中,使得出口路由能学到该非V**路由
2.6 配置步骤
跨VRF路由一般应用在MPLS-V**网络的PE设备上,但其本质是VRF间的跳转,和MPLS无关。因此本案例中不涉及MPLS-V**配置。
PE1配置:
1、基本路由连通性配置:
代码语言:javascript复制
ip vrf V**1
interface GigabitEthernet 3/1/0
ip policy route-map internet
ip address 12.0.0.2255.255.255.0
interfaceGigabitEthernet 3/1/1
ip vrf forwarding V**1
ip address 23.0.0.2 255.255.255.0
interfaceLoopback 0
ip address 2.2.2.2 255.255.255.255
routerospf 1
network 2.2.2.2 0.0.0.0 area 0
network 12.0.0.2 0.0.0.0 area 0
default-information originate always
routerospf 10 vrf V**1
redistribute static subnets
network 23.0.0.2 0.0.0.0 area 0
2、PC1到INTERNET方向路由策略(使用策略路由):
代码语言:javascript复制
route-mapinternet permit 10
match ip address 100
set vrf V**1cess-list extended 100
10 permit ip 10.0.0.0
ip ac0.255.255.255 any
interfaceGigabitEthernet 3/1/0
ip policy route-map internet
3、INTERNET到PC1方向路由策略(使用静态路由):
代码语言:javascript复制
iproute vrf V**1 10.0.0.0 255.0.0.0 GigabitEthernet 3/1/0 12.0.0.1
PE2配置:
代码语言:javascript复制
interfaceGigabitEthernet 0/0
ip ref
ip address 12.0.0.1 255.255.255.0
interfaceGigabitEthernet 0/1
ip ref
ip address 10.0.0.254 255.255.255.0
interfaceLoopback 0
ip ref
ip address 1.1.1.1 255.255.255.255
routerospf 1
network 1.1.1.1 0.0.0.0 area 0
network 10.0.0.0 0.0.0.255 area 0
network 12.0.0.1 0.0.0.0 area 0
INTERNET出口路由器配置:
代码语言:javascript复制
interfaceGigabitEthernet 0/0
ip ref
ip address 23.0.0.3 255.255.255.0
interfaceLoopback 0
ip ref
ip address 3.3.3.3 255.255.255.255
routerospf 1
redistribute static subnets
network 23.0.0.3 0.0.0.0 area 0
default-information originate
iproute 0.0.0.0 0.0.0.0 Loopback 0
2.7 验证配置
PC1可以PING通INTERNET出口路由器3.3.3.3
PC1#ping 3.3.3.3
Sending5, 100-byte ICMP Echoes to 3.3.3.3, timeout is 2 seconds:
< press Ctrl C to break >
!!!!!
Successrate is 100 percent (5/5), round-trip min/avg/max = 1/12/20 ms