我在Ubuntu 10.04 LTS上用Quagga做一些实验,作为多宿主和多路由器设置中的BGP路由器。 目前,我在我的实验室里安装了一个假的“ISP”路由器,并在后面有两台Quagga路由器与iBGP共享路由,我遇到了一些我似乎无法find答案的问题。
我的networking设置看起来像这样 。
R1和R2连接一个链路networking(172.26.0.0/30),并连接到同一个共享子网172.26.1.0/24。 链路networking和共享子网在不同的VLAN上。
R1和R2将分别连接到一个ISP,并将172.26.0.0/23通告给它们的ISP对等体。 这将是内部subneted,但要避免beeing过滤一个更大的子网将被宣布。
路由器将使用uCARP在它们自己之间共享一个浮动IP(如果一个路由器断开另一个应该接pipe)。
现在到我的问题。 如果我从ISP1向ip 172.26.1.1发出traceroute或ping命令,一切顺利,我得到答复。 如果我对ip 172.26.1.2做同样的事情,我得到请求超时。
我在路由器上看到ICMP回显请求,172.26.1.2分配给它的接口,但是它不知道在哪里发送回复。
我曾试图向谷歌提供答案,但却空手而归。 尝试了几个解决scheme,但似乎没有任何工作。
我的networkingdevise有什么故障吗? 我知道,如果我使用共享子网和linknet相同的子网一切正常,除了路由器后面的机器使用ping时得到一个ICMPredirect消息,我认为这不是一个好的实现。
我认为172.26.1.2的stream量是通过R1上的VLAN15接口引导的,当R2(172.26.1.2分配给它)没有使用路由到达ISP1的IP地址时,发送ICMP回声请求。
我可以从每个路由器到达每个networking(例如,我可以到达ISP1 192.168.0.1接口),但是如果我在R2上使用172.26.1.2作为源,则不能。 在R1上我可以使用172.26.1.1作为源码,没有任何问题。
路由器的IP规划。
ISP1
R1
R2
我的Quagga BGPdconfiguration看起来像这样:ISP1路由器bgp 65414 bgp路由器标识192.168.0.1networking192.168.0.0/23networking10.10.0.0/24邻居10.10.0.2远程 – 作为65515邻居10.10.0.2描述R1
R1路由器bgp 64515 bgp router-id 172.26.0.1networking172.26.0.0/23邻居172.26.0.2 remote-as 65515邻居172.26.0.2描述R2邻居172.26.0.2 next-hop-self邻居10.10.0.1 remote-as 65514邻居10.10 .0.1说明ISP1邻居10.10.0.1 prefix-list isp1_filter_out out
ip prefix-list isp1_filter_out seq 5 permit 172.26.0.0/23 ip prefix-list isp1_filter_out seq 999 deny 0.0.0.0/0 ge 1
R2 router bgp 65515 bgp router-id 172.26.0.2 network 172.26.0.0/23 neighbor 172.26.0.1 remote-as 65515 neighbor 172.26.0.1 description R2 neighbor 172.26.0.1 next-hop-self
任何想法? 是在Linux或Quagga的问题? 你对我的设置有什么要求吗?
只是想告诉我,在解决这个问题的时候,我从Quagga用户邮件列表中获得了一些帮助,现在这个问题已经解决了。
为了将来的参考,我认为如果有人遇到同样的问题,我发布解决scheme是一个好主意。
问题是Ubuntu的net.ipv4.conf.all.rp_filter和net.ipv4.conf.default.rp_filter被设置为默认启用。 这阻止了数据包进入一个接口并离开另一个接口。
Ubuntu Bugs报告(见下面的链接)中的build议是,当安装了Quagga时rp_filter被禁用,但是这还没有实现。
Quagga用户邮件列表线程
Ubuntu Bugs报告