我的设置
我有一台 FreeBSD 服务器,其输出如下uname -a
:
FreeBSD glacier 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012
[email protected]:/usr/obj/usr/src/sys/GENERIC amd64
它使用 SixXS 与虚拟接口 gif0 建立 ipv6 隧道,并通过路由器请求充当 LAN 的 ipv6 路由器。我得到了一个由路由器宣布的 /64 子网,客户端正在使用它。服务器通过以桥接模式连接到接口 em2 的 WLAN AP 连接到家庭 LAN。为了加快数据传输速度,服务器还通过聚合接口 lagg0 连接到千兆 LAN。
WLAN 使用 ipv4 子网 192.168.9.0/24 和千兆 LAN 192.168.0.0/24。一些桌面客户端(例如我的 iMac)通过两种介质连接到服务器(有线和无线网络)。
我的问题
LAN 客户端获取正确的 ipv6 地址,并具有 ipv6 互联网连接。然而奇怪的是我无法通过 ipv6 上的 SSH 连接到同一 LAN 中的服务器。
可能是因为服务器托管两个不同的 ipv6 地址(一个在 lagg0 上,一个在 em2 上,以便可以通过千兆以太网和 wlan 访问)?有趣的是,em2 上的 WLAN 接口的 ipv6 地址正在响应 ping,而 lagg0 千兆连接的 ipv6 地址没有响应。
我的问题
我的设置中是否存在根本错误?我觉得路由有点混乱,但我不知道如何修复它。
这是我的聚合千兆接口 lagg0(ipv6 地址伪造)的配置。
root@glacier ➜ ~ ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
ether aa:bb:cc:dd:ee
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::3285:a9ff:fea6:50bf%lagg0 prefixlen 64 scopeid 0x9
inet6 2a01:1e8:e100:821e::1 prefixlen 64
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: active
laggproto lacp lagghash l2,l3,l4
laggport: em1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: em0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
答案1
问题在于 FreeBSD 计算机的两个网络接口连接到同一个子网。这意味着无法正确路由。
解决方案是为每个接口 lagg0 和 em2 提供一个单独的 IPv6 子网,这样就可以了。