我正在家庭网络上使用 ipv6。我试图了解 Linux 客户端(如果重要的话,在 ubuntu 16.04 上)如何知道与 dhcpv6 服务器通信(无论是获取 IP 地址还是获取 DNS 服务器)。似乎很多工作都是从内核完成的,就像我这样做时一样:
$ sudo ifup --verbose p2p1
我看到输出中
/sbin/sysctl -q -e -w net.ipv6.conf.p2p1.accept_ra=2
/sbin/sysctl -q -e -w net.ipv6.conf.p2p1.autoconf=1
我还在该输出中看到很多 dhcpv4 消息,但没有看到任何与 dhcpv6 相关的消息。
我还看到我的路由器正在宣传还有其他可用配置:
$ rdisc6 p2p1
Soliciting ff02::2 (ff02::2) on p2p1...
Hop limit : 64 ( 0x40)
Stateful address conf. : Yes
Stateful other conf. : Yes
Router preference : medium
Router lifetime : 1800 (0x00000708) seconds
Reachable time : unspecified (0x00000000)
Retransmit time : unspecified (0x00000000)
Prefix : 2601:xxx:xxx:xxx::/64
Valid time : 3600 (0x00000e10) seconds
Pref. time : 3600 (0x00000e10) seconds
Prefix : fd0f:e273:26d2::/64
Valid time : 3600 (0x00000e10) seconds
Pref. time : 3600 (0x00000e10) seconds
MTU : 1500 bytes (valid)
Source link-layer address: BC:AE:C5:C3:0A:55
Recursive DNS server : 2601:xxx:xxx:xxx::1
DNS server lifetime : 3600 (0x00000e10) seconds
from fe80::beae:c5ff:fec3:a55
但我显然遗漏了决定调用 dhclient -6 的那个部分。
仅供参考:
$ cat /etc/network/interfaces | tail -5
# The primary network interface
auto p2p1
iface p2p1 inet dhcp
# This is an autoconfigured IPv6 interface
iface p2p1 inet6 auto
如果我将最后一行改为:
iface p2p1 inet6 dhcp
那么对我来说一切都说得通了。但我想坚持使用自动,因为这似乎是 ipv6 应该的工作方式。
我之所以选择这条路,是因为 isc-dhcp-client 根本不发送 dhcp6 查询(已在我的 openwrt 上使用 tcpdump 验证),但 dhcpc5 会发送。但切换到 dhcp5c 会导致网络管理器被卸载,从而导致其他麻烦。一旦我开始寻找,我想我还不如学着钓鱼。我希望在知道如何实际调用 dhclient -6 后,追踪我的确切问题应该很简单。
谢谢,克雷格