使用提供的网关2001:4ba0:fffd:1:beef :: 1/128而不是fe80 :: 1。

我试图在FreeBSD 11服务器上设置一些IPV6地址,我被告知使用这个IP作为网关:

2001:4ba0:fffd:1:beef::1 /128 

我的地址是:

 2001:4ba0:fffd:0063::0 /64 

我试过这个:

 ipv6_activate_all_interfaces="YES" ipv6_defaultrouter="2001:4ba0:fffd:1:beef::1" ifconfig_bge0_ipv6="inet6 2001:4ba0:fffd:0063::1 prefixlen 64" 

但是我收到这个消息:

 route: writing to routing socket: Network is unreachable add net default: gateway 2001:4ba0:fffd:1:beef::1 fib 0: Network is unreachable 

通过做一个npd -a我得到了这个:

 > ndp -a Neighbor Linklayer Address Netif Expire S Flags 2001:4ba0:fffd:63::1 2c:44:fd:9a:3f:90 bge0 permanent R fe80::1%bge0 28:92:4a:cd:08:18 bge0 22h8m42s SR fe80::2a92:4aff:fecd:818%bge0 28:92:4a:cd:08:18 bge0 23h27m31s SR fe80::2e44:fdff:fe9a:3f90%bge0 2c:44:fd:9a:3f:90 bge0 permanent R 

然后我尝试使用默认路由器fe80::1.

 ipv6_activate_all_interfaces="YES" ipv6_defaultrouter="fe80::1%bge0" ifconfig_bge0_ipv6="inet6 2001:4ba0:fffd:0063::1 prefixlen 64" 

当使用链路本地 fe80::1地址作为网关时,IPV6工作。

我想知道使用链接本地地址作为网关的优点/缺点,以及如何使用provied网关或使用相同的?

你得到的IPv6网关地址( 2001:4ba0:fffd:1:beef::1 )不在你获得的子网内( 2001:4ba0:fffd:0063::/64 ),所以你的方框是正确的,抱怨networking是无法达到的。

只要网关的链路本地地址不变,使用链路本地地址作为默认网关通常是一个好的解决scheme。 地址fe80::1看起来像一个手动configuration的地址,表明它是有意提供的,因此可能是稳定的。

网关使用的地址并不重要。 地址唯一使用的是确定网关的第二层(MAC)地址,以便在那里发送数据包。 MAC地址是通过查找全局地址还是通过使用链路本地地址find的,对于正在路由的实际数据包没有任何影响。