我有一台 Ubuntu 12.10 工作站,具有以下界面:
eth0 : 10.11.1.15/24
lo:1 : 10.90.50.50/32
lo:2 : 10.1.100.100/32
tap0 : 10.5.200.200/24
如您所见,所有 IP 都适合10.0.0.0/8
子网。
另外,我安装了 Quagga,它通过 OSPF 向其他路由器通告我的链接状态。以下是我的/etc/quagga/ospfd.conf
:
router ospf
passive-interface eth0
router-id 10.90.50.50
redistribute kernel route-map MYMAP
redistribute connected route-map MYMAP
redistribute static route-map MYMAP
network 10.0.0.0/8 area 0.0.0.0
ip prefix-list MYLIST seq 5 deny 10.11.0.0/16 le 32
ip prefix-list MYLIST seq 10 permit 10.0.0.0/8 le 32
ip prefix-list MYLIST seq 20 deny any
route-map MYMAP permit 10
match ip address prefix-list MYLIST
我无法阻止 Quagga 宣传10.11.1.0/24
我的本地子网路线。
既不ip prefix-list MYLIST seq 5 deny 10.11.0.0/16 le 32
也不ip prefix-list MYLIST seq 5 deny 10.11.1.0/24
对路由广告没有影响。最奇怪的是,即使我将所有前缀列表操作从允许更改为拒绝,Quagga 仍会继续广告路由。你知道我做错了什么吗?
答案1
看起来你应该使用类似的东西
distribute-list noeth0 out kernel
!
access-list noeth0 deny 10.11.1.0/24
access-list noeth0 permit any
这Quaggga OSPF 守护进程文档不过,那里有点模糊 - 你可能需要稍微调整一下。
答案2
首先,为什么要重新分配然后阻止在广告/路由语句中选取的子网?我一次又一次地看到人们重新分配厨房水槽,然后试图稍后阻止它。这从根本上是不合理的。最后,您要排除的链接包含在路由语句中,尽管有被动接口命令,但仍会作为存根网络进行广告。不要重新分配已经包含的连接路由。
那些发布广告、重新分配所有内容然后尝试过滤的人需要学习基本的 OSPF 路由设置。
首先,删除重新分配连接。保留被动接口命令,并使您的语句具体化,或者最好将它们放在您想要包含的特定接口上。
router ospf 1
network 10.90.50.50 0.0.0.0 area 0
network 10.1.100.100 0.0.0.0 area 0
network 10.5.200.0 0.0.0.255 area 0
或者例如在特定接口(上面没有相关的网络声明)
interface lo:1
ip ospf 1 area 0
对要包含的其他链接也执行此操作
最后,除非绝对必要,否则请勿重新分发任何内容。