2020-06更新:现在在不同路由表之间本地导入导出不一定需要启动MPBGP。在VRF里面设置route-replication也可以达到相同的效果。
首先要配置BGP(但是可以没有Peer)。要确保待导入的表在BGP的RIB里面;如果不在的话需要redistribute到BGP进程里。然后用route-map导入。示例:
|
! 除默认路由外 ip prefix-list NO_DEFAULT_ROUTE seq 5 deny 0.0.0.0/0 ip prefix-list NO_DEFAULT_ROUTE seq 10 permit 0.0.0.0/0 le 32 route-map GLOBAL_TO_PROXY_VRF permit 10 match ip address prefix-list NO_DEFAULT_ROUTE ip vrf PROXY rd 100:100 import ipv4 unicast 65535 map GLOBAL_TO_PROXY_VRF route-target export 100:100 route-target import 100:100 |
配置里的65535是导入数量上限,默认只有不到1000条,完全不够用。配置完成以后可能需要等几分钟才能看到效果,因为VRF之间路由泄露完全靠BGP进程来实现,BGP进程刷新还是挺慢的。
注意这样导入以后,如果路由上没有next hop interface信息,那么这条路由是无效的。所以要么手工设置一下recursive路由到interface上:
|
ip route vrf PROXY 192.0.2.100 255.255.255.255 Dialer1 10 ip route vrf PROXY 192.0.2.200 255.255.255.255 Dialer0 10 |
要么把connected路由也redistribute进VRF。(注意如果你有BGP peer尤其是隧道里面的peer的话,要记得filter掉这些路由。)