我有一个开发环境设置,我有一个单独的环回地址为多个网站。
例如,我有以下几点:
127.0.0.1 www.mysite.dev 127.0.0.2 foo.mysite.dev 127.0.0.3 bar.mysite.dev 127.0.0.4 waffles.mysite.dev
我想要一个相当于ipv6的解决scheme。
我已经知道你可以使用:: 1作为一个环回地址,但:: 2,:: 3等似乎没有工作。
在ipv6中有没有其他的回送地址? 有没有办法有多个独特的环回地址?
技术上:: 2,:: 3等是:: 0.0.0.0/96,“ipv4 compatible ipv6 address”范围的一部分。 它已被弃用,但你可能不想使用该范围。
对于实验室环境,请使用唯一的本地寻址。 转到http://www.sixxs.net/tools/grh/ula/并生成一个前缀。 然后你可以从这个前缀中挑选你想要的任何地址,并将它们分配给回送接口。
你的环回地址是:: 1/128。 请注意将其限制为仅一个主机的子网的宽度。 将子网掩码更改为更宽一些,并检查您的路由表。 或者使用链接本地地址。
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ sudo ip route add local ::/104 dev lo jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ ping6 ::2 PING ::2(::2) 56 data bytes 64 bytes from ::2: icmp_seq=1 ttl=64 time=0.083 ms 64 bytes from ::2: icmp_seq=2 ttl=64 time=0.128 ms ^C --- ::2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.083/0.105/0.128/0.024 ms jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ ping6 ::3 PING ::3(::3) 56 data bytes 64 bytes from ::3: icmp_seq=1 ttl=64 time=0.148 ms 64 bytes from ::3: icmp_seq=2 ttl=64 time=0.141 ms 64 bytes from ::3: icmp_seq=3 ttl=64 time=0.142 ms
从我可以绑定一个(大)地址块到一个接口?
这是唯一对我有用的东西。 当然,特定于linux的。
使用链接本地寻址似乎是唯一有效的select。 这里大多数build议忽略的是IPv6前缀声明范围的事实,我不希望我的大概私人地址在全球范围内。
所以对于Linux:
$ sudo ip -6 address add fe80::1/64 dev lo $ sudo ip -6 address add fe80::2/64 dev lo $ sudo ip -6 address add fe80::3/64 dev lo
指定这样的地址时指定接口。 用netcattesting:
$ nc -l -p 10001 fe80::1%lo $ nc fe80::1%lo 10001
validation正确的范围:
$ ip -6 a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 inet6 fe80::1/64 scope link valid_lft forever preferred_lft forever
仍然看起来不是很优雅,不得不添加每一个IP来绑定它。 使用127.0.0.0/8,您可以绑定到任何地址,而无需事先分配它们。