使用route-map修改收到的路由

在quagga内,可以配置zebra使得对外部OSPF/BGP学习到的路由进行一些处理。比如学到了1段到192.168.0.0/16的路由,如果想自己单独指定到这段地址时使用特定IP做源IP,那么可以直接在配置


ip prefix-list INNET1 seq 5 permit 192.168.0.0/16 le 32
route-map Server2INNET1 permit 10
    match ip address prefix-list INNET1
    set src 10.10.7.6

这样当收到102.168.0.0/16这段路由时,实际注入kernel的时候会加上src,变成类似


192.168.0.0/16 dev eth0  proto kernel  scope link src 10.10.7.6  metric 11

此时如果服务器去访问192.168.0.0/16的地址时,便自动使用10.10.7.6这个IP做源IP。也可以直接默认的源IP改掉,这样默认都使用这个IP做源IP出去。


ip prefix-list DEFAULT seq 5 permit 0.0.0.0/0
!
route-map Server2default permit 10
    match ip address prefix-list DEFAULT
    set src 10.10.7.6

也可以在zebra内添加静态的路由,修改到特定目标网段的时使用的源IP


ip route 10.0.0.0/8 10.10.6.5
ip route 10.0.0.0/8 10.10.7.5
ip route 172.16.0.0/12 10.10.6.5
ip route 172.16.0.0/12 10.10.7.5

ip prefix-list static seq 5 permit 10.0.0.0/8
ip prefix-list static seq 10 permit 172.16.0.0/12
ip prefix-list default seq 5 permit 0.0.0.0/0

route-map rm1 permit 10
match ip address prefix-list default
set src 10.10.8.66
ip protocol ospf route-map rm1

route-map rm2 permit 10
match ip address prefix-list static
set src 10.10.8.2
ip protocol static route-map rm2

这样可以让默认的源IP是10.10.8.66,然后到到10.0.0.0/8和172.16.0.0/12使用源IP是 10.10.8.2.
参考:
http://www.admin-magazine.com/Articles/Routing-with-Quagga

此条目发表在net分类目录。将固定链接加入收藏夹。

发表回复