我正在配置具有以下拓扑的网络:
我需要做的是提供一项由 Anycast 提供并由 OSPF 宣布的服务。我设法在路由器上配置了 OSPF。我还在两台服务器中创建了一个具有相同 IP 的虚拟接口。但现在我不确定如何在服务器上配置 Bird,以便客户端可以通过 Anycast IP 访问它们。我正在模拟 GNS3 上的网络。
我正在尝试在运行BIRD 路由守护程序的两台主机之间使用 RIPv2 协议建立基本通信。
我有一个有地址Host A
的接口。
我有另一台主机,其接口具有 address 。这些接口通过电缆直接连接。如果我在两台机器上添加静态路由,我可以在两台机器之间 ping 通。enp0
10.0.1.50/24
Host B
enp1
10.1.1.25/24
我有以下bird.conf
内容Host A
:
protocol kernel {
learn; # Learn all alien routes from the kernel
persist; # Don't remove routes on bird shutdown
scan time 20; # Scan kernel routing table every 20 seconds
export all; # Default is export none
}
protocol device {
scan time 10; # Scan interfaces every 10 seconds
}
protocol direct {
interface "enp0"
}
protocol rip MyRIP {
export all;
import all;
interface "enp0" { mode multicast;};
}
bird.conf
onHost B
是相同的,除了替换enp0
为enp1
在两台主机上启动鸟守护程序后,我可以做一个tcpdump -ni enp0 -vv
13:21:41.943537 IP (tos 0xc0, ttl 1, id 4933, offset 0, flags [none], proto UDP (17), length 132)
10.1.1.25.520 > 224.0.0.9.7742: [udp sum ok] UDP, length 104
13:21:41.943704 IP (tos 0xc0, ttl 1, id 150, offset 0, flags [none], proto UDP (17), length 272)
10.0.1.50.520 > 224.0.0.9.7742: [bad udp cksum 0xec48 -> 0x1219!] UDP, length 244
我可以跳入birdcl
命令行并运行show rip neighbors
并获得一个空表。
如果我将地址设置在同一个子网上,我可以运行show rip neighbors
并且可以10.0.1.50
在我的邻居列表中看到。
如果链路的两端不在同一个子网上,如何让这些路由器将彼此列为邻居?
我必须对网络如何工作有某种不正确的心理画面,路由器不需要一直与不在同一子网上的邻居通话吗?
我没有挂断特定于 BIRD 的答案。