默认为 IPv6 Linux

默认为 IPv6 Linux

我在 Linux 上设置了 IPv6,但除非我指定,否则它默认不使用 IPv6。例如:

ssh -v HOSTNAME

我看到 ssh 连接到 IPv4 地址。我让它使用 IPv6 的唯一方法是:

ssh -6 HOSTNAME
-or-
ssh IP::v6%INTERFACE

我在 Solaris 机器上使用完全相同的主机,并且 IPv6 运行正常。

索拉里斯:

nslookup host1
Server:         10.1.44.100
Address:        10.1.44.100#53

Name:   host1.sc.somehost.net
Address: 10.1.42.37

dig AAAA host1.sc.somehost.net

; <<>> DiG 9.6-ESV-R8 <<>> AAAA host1.sc.somehost.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4583
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 5

;; QUESTION SECTION:
;host1.sc.somehost.net.      IN      AAAA

;; ANSWER SECTION:
host1.sc.somehost.net. 3600  IN      AAAA    2600:REST_OF_PREFIX:2::37

在 Linux 上,输出完全相同。

我的 Linux 主机上没有 /etc/gai.conf。在我的 solaris 主机上,我的 /etc/nsswitch.conf 中有以下内容(我被告知默认情况下“打开”ipv6)。

 ipnodes:    files dns 

只是为了好玩,我的 IPv6 Linux 配置如下:

 bond0     Link encap:Ethernet  HWaddr NOPE 
      inet addr:10.1.44.194  Bcast:10.1.45.255  Mask:255.255.254.0
      inet6 addr: 2600:REST_OF_PREFIX:1::44:194/64 Scope:Global
      inet6 addr: 2600:REST_OF_PREFIX:AUTOCONFIG_MAC_ADDR_ADDRESS/64 Scope:Global
      inet6 addr: fe80::NOT_GETTIN_MY_MAC/64 Scope:Link
      UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
      RX packets:1197675 errors:0 dropped:569214 overruns:0 frame:0
      TX packets:878545 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:447693586 (426.9 MiB)  TX bytes:793250645 (756.5 MiB)

谢谢大家的帮助。

答案1

有一些 Linux 版本(我希望是较旧的版本)优先使用 RFC1918 IPv4 地址空间,而不是 IPv6。例如,请参阅debian 错误 #428434 libc6:解析器在某些情况下更喜欢 IPv4 而不是 IPv6。您可能没有 /etc/gai.conf 文件来修复此问题,此问题仅在较新版本中出现。

相关内容