我想让 ucarp 通过无线 (802.11g) 接口工作,但在有线端从未看到过这些软件包。设置如下:Box1 (10.0.0.11,无线) -- AP -- (10.0.0.13,有线) Box2。这些盒子运行的是 Fedora 14。
Ucarp 使用 IP 协议 112 上的多播,因此问题可能普遍存在多播问题(该领域的新手)。测试多播的示例可能会有所帮助。
尝试了不同的 AP,但没有成功。
接口配置:
框1:
wlan0 Link encap:Ethernet HWaddr 00:25:D3:66:D7:29
inet addr:10.0.0.11 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::225:d3ff:fe66:d729/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3247070 errors:0 dropped:0 overruns:0 frame:0
TX packets:2789199 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1093108352 (1.0 GiB) TX bytes:1110510418 (1.0 GiB)
框2:
eth0 Link encap:Ethernet HWaddr 00:30:18:49:2C:0B
inet addr:10.0.0.13 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: 2002:5ab8:94f:0:230:18ff:fe49:2c0b/64 Scope:Global
inet6 addr: fe80::230:18ff:fe49:2c0b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:94644 errors:0 dropped:0 overruns:0 frame:0
TX packets:103837 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14241594 (13.5 MiB) TX bytes:36028932 (34.3 MiB)
Box1(无线)似乎有两个公告(proto 112 上的 tcpdump):
11:29:25.077027 IP (tos 0x10, ttl 255, id 29951, offset 0, flags [DF], proto VRRP (112), length 56)
10.0.0.13 > 224.0.0.18: VRRPv2, Advertisement, vrid 2, prio 0, authtype none, intvl 1s, length 36, addrs(7): 94.170.238.51,40.179.39.159,179.178.2.92,138.102.99.137,193.62.189.152,135.186.175.252,119.36.182.32
11:29:25.078044 IP (tos 0x10, ttl 255, id 49527, offset 0, flags [DF], proto VRRP (112), length 56)
10.0.0.11 > 224.0.0.18: VRRPv2, Advertisement, vrid 2, prio 0, authtype none, intvl 1s, length 36, addrs(7): 94.170.238.51,40.179.39.160,157.97.113.49,176.72.71.53,161.168.39.154,206.173.245.12,7.133.19.141
Box2 只能看到它自己的。
答案1
802.11 仅允许您使用与 AP 关联的 MAC 地址。CARP 将使用虚拟 MAC,因此无法通过 WLAN 工作。
这也是为什么 WLAN 客户端桥接必须进行 MAC NAT 的原因 - 但这对 CARP 没有帮助,您需要保持虚拟 MAC 完好无损。
使用 WDS 应该可以实现这一点,但我不知道如何在 Linux 中配置它(我认为这是可能的,因为 OpenWRT 等公司已经这样做了)。支持 WDS 的外部客户端桥应该可以工作。