默认为IPv6 Linux

我在Linux上安装了IPv6,但是默认情况下不使用IPv6,除非我指定它。 例如:

ssh -v HOSTNAME 

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

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

我在Solaris机器上使用相同的主机,IPv6工作正常。

Solaris上:

 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的Linuxconfiguration如下:

  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) 

谢谢你们的帮助

有(我希望的老版本)Linux的RFC1918 IPv4地址空间优于IPv6。 请参阅debian bug#428434 libc6:在某些情况下,parsing程序更喜欢IPv4到IPv6 。 你可能没有一个/etc/gai.conf文件来解决这个问题,只能用新版本。