配置 vrf、路由泄露.note

noteId: WEB25428a3c6f78ceb7af6d5a4cd6b04eeb · 原始路径:/ALL/网络 - C模块/VRF/配置 vrf、路由泄露.note · 图片:1 · 附件待处理:0

 
 
·什么是 vrf:
VRF = 在同一台路由器上,创建多个彼此完全隔离的路由表(RIB + FIB),存在vrf时,一台路由器 = 多台逻辑路由器
vlan    //二层隔离
vrf     //三层隔离
 
用处:
VRF (Virtual Routing and Forwarding) 是在一台物理路由器内创建多个独立路由表的术语。角色: 类似于创建了多个虚拟路由器,因此属于不同 VRF 的接口即使使用相同的 IP 地址范围,也可以共存而不会发生路由冲突。
用途:多租户 (Multi-tenancy): 服务提供商为多个客户分别提供独立的网络环境时。
安全隔离: 在同一台设备上对内网、外网、DMZ 等进行逻辑隔离时。
MPLS VPN: 在服务提供商环境中实现客户专属 VPN 的核心技术。
2. VRF 的技术特征独立的路由表每个 VRF 拥有自己的路由条目,不与其他 VRF 共享。
例:可以在 VRF A 中设置 $10.0.0.0/24$,同时在 VRF B 中也设置 $10.0.0.0/24$。
接口绑定 (Interface Binding)将路由器的物理接口或子接口归属于特定的 VRF。
接口仅参照所属 VRF 的路由表。路由泄露 (Route Leaking - 选择性共享)必要时可以共享 VRF 之间的部分路由。(例:仅在内网和安全网之间共享部分路径)
互联网接入 (结合 NAT)若要从各 VRF 访问互联网,需要为每个 VRF 进行 NAT 设置,或与中央 NAT VRF 相连。
 
一、配置 vrf:
 
1、普通 vrf(只支持IPv4):
ip vrf EXTERNAL
 rd 1:1    //区分相同前缀的唯一标识
 
# 在接口中调用:
interface GigabitEthernet0/3
 no ip address
 vrf forwarding VRF
 ip address 123.1.1.254 255.255.255.0
 
 
 
2、扩展 vrf(支持IPv4和IPv6):
vrf definition EXTERNAL
 rd 1:1
 address-family ipv4
 
# 在接口中调用:
interface GigabitEthernet0/3
 no ip address
 vrf forwarding VRF
 ip address 123.1.1.254 255.255.255.0
 
 
二、配置 vrf 路由泄露:
如果想要让 vrf 路由 ping到外部路由、或让外部路由,ping到vrf路由,就需要配置 vrf路由泄露
两种方式:
1、静态路由
2、BGP路由
 
1、使用静态路由配置vrf路由泄露:
vrf definition EXTERNAL
 rd 1:1
 address-family ipv4
 
# 在接口中调用:
interface GigabitEthernet0/3
 no ip address
 vrf forwarding VRF
 ip address 123.1.1.254 255.255.255.0
 
 
# 配置路由泄露:
## 最好在外部全局路由的网关上配置(最好也同时能是vrf的网关)
ip route 123.1.1.1 255.255.255.255 GigabitEthernet0/3    //配置一条去往 vrf客户端的路由(让流量能够去往vrf)
 
## 一定要在vrf网关上配置
ip route vrf VRF 0.0.0.0 0.0.0.0 2.2.2.2 global    //配置一条vrf客户端的出口路由,指定下一跳为 2.2.2.2,让vrf 路由能够出来(global参数表示该下一跳地址会在主路由表中寻址,而不是在vrf路由表中寻址)
我这里写的是默认路由,也可以定义一个只允许vrf路由访问的网段
 
 
2、让 vrf 间直接互通(RD / RT):
# 依靠 RD/RT
## 例如一台路由器上有两个vrf:VRF1、VRF2
vrf definition VRF1
 rd 1:1
 route-target export 1:1    //如果路由被导出到bgp,就打上 RT 1:1 的标签
 route-target import 2:2    //VRF1允许导入带 RT 2:2 标签的路由
 address-family ipv4
 
vrf definition VRF2
 rd 2:2
 route-target export 2:2
 route-target import 1:1
 address-family ipv4
 
## 然后配置 bgp:
router bgp 65000
 bgp log-neighbor-changes
 !
 address-family ipv4 vrf VRF1
  redistribute connected
 exit-address-family
 !
 address-family ipv4 vrf VRF2
  redistribute connected
 exit-address-family
这样配置vrf之间就能够直接互通了
 
 
3、跨设备配置路由泄露(静态静态):
假如拓扑时这样的:
SRV2是VRF设备
要从CR2(global)访问到SRV2
 
## 基础配置
# IR3:
vrf definition SHANGHAI2026
 rd 200:30
 address-family ipv4
 exit-address-family
 
interface GigabitEthernet0/1
 vrf forwarding SHANGHAI2026
 ip address 192.168.1.254 255.255.255.0
 
interface GigabitEthernet0/2
 ip address 200.2.3.2 255.255.255.252
 
# CR2:
interface GigabitEthernet0/0
 ip address 200.2.2.2 255.255.255.252
 
interface Loopback1
 ip address 100.64.2.2 255.255.255.255
 
因为是 CR2要使用 loopback 1访问 vrf,所以IR3就要给一条vrf路由指向CR2
并且CR2上也要配置一条路由,指向IR3
这些路由的下一跳都无所谓,只要能够指向相应的机器即可(因为配置到这里,肯定都是全网通的环境了)
# 配置路由泄露:
## IR3:
ip route vrf SHANGHAI2026 100.64.2.2 255.255.255.255 100.64.2.2 global    //前面指定要访问的路由,后面这个指定路由下一跳(global地址)
 
## CR2:
ip route 192.168.1.1 255.255.255.255 100.64.1.3
 
 
三、PBR 跨 vrf/global 转发(PBR让数据包改用指定的表进行转发):
# 设置PBR 让vrf路由使用global路由表查表转发:
## 让匹配到的 vrf 流量使用 global 表进行查表转发:
ip access-list extended vrf1
 permit ip 10.10.10.0 0.0.0.255 192.168.20.0 0.0.0.255
route-map vrf1 10
 match ip address vrf1
 set global
 
interface GigabitEthernet0/0
 ip policy route-map A_TO_GLOBAL
 
# 设置PBR 让global路由使用vrf路由表查表转发:
## 让匹配到的 流量,使用 vrf 表进行查表转发:
ip access-list extended global1
 permit ip 192.168.20.0 0.0.0.255 10.10.10.0 0.0.0.255
route-map GLOBAL_TO_A permit 10
 match ip address global1
 set vrf A
interface GigabitEthernet0/1
 ip policy route-map global1
 
## 这里还需要解决一个问题(用路由泄露),vrf路由出去后,并没有回来的回程路由,因为路由是vrf,global并不知道怎么过来:
ip route 10.10.10.0 255.255.255.0 GigabitEthernet0/0
 
 
四、MP-BGP路由泄露:
其实就是MPLS VPN,看 MPLS那篇笔记即可