Quagga,OSPF,宣布不活动隧道

我有一个3节点的networking,每个都运行OSPF Quagga。

每个节点与p2p,OpenVPN连接: http : //vetal.ca/Download/img/Network_loop.png

(当信誉> 10时,会在这里embedded图片)

pfSense有两个OpenVPN客户端,分别是ip 10.0.1.2和10.0.2.2,分别到服务器1和2。

现在,连接C(10.0.2.1 – 10.0.2.2)死亡。 会发生什么事,networking是适应的,并且pfSence接收OSPF更新(10.0.2.1 – 10.0.2.2)可通过[B-> A]路由访问,而不是仅仅[C] pfSense具有关于10.0.2.1 – 10.0.2.2链接,并知道它存在2跳。

结果是,当OpenVPN,C-tunnel客户端试图重新启动时,它不能。 由于它不能分配路由表中的IP地址:

引用

/sbin/ifconfig ovpnc1 10.0.2.1 - 10.0.2.2 mtu 1500 netmask 255.255.255.255 up FreeBSD ifconfig failed: external program exited with error status: 1 

手动呼叫告诉

 ifconfig: ioctl (SIOCAIFADDR): Address already in use 

我可以防止这种方式? 我能以某种方式探测死链吗? 所以,如果隧道C死亡,服务器2将其删除而不通告

我已经尝试链接检测,无论如何,它显示服务器2(OpenVPN的收听方)上的链接:

 interface tun1 description VPS link C link-detect ipv6 nd suppress-ra ! 

它应该与区分开,例如A – 骨干,? 还是有一个tcp探针插入到quagga来判断链接是否可以ping通?

如果有一个调查,这将有助于处理另一个案件:

在上面的图片中,如果A段停机。 stream量将通过pfSense(B-> C而不是A)重新路由并停留在那里。 由于通过pfSense隧道之间的stream量被禁用(故意)。

我是dynamic路由的新手,并相信有一个标准的方法来处理这个循环

我在pfSense论坛上有一个工作解决scheme:

https://forum.pfsense.org/index.php?topic=91361.msg506747#msg506747

所以,拇指的规则,为客户端。

对于每个VPN-ospf端点,禁止接受“我的(端点)IP / 32”。 所以,它不会来自另一端。

例如,如果在图上,它将在zebra.conf中看起来像这样:

 password <my-password> log syslog ip prefix-list ACCEPTFILTER deny 10.0.1.2/32 ip prefix-list ACCEPTFILTER deny 10.0.2.2/32 ip prefix-list ACCEPTFILTER permit any route-map ACCEPTFILTER permit 10 match ip address prefix-list ACCEPTFILTER ip protocol ospf route-map ACCEPTFILTER