Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a development environment set up where I have a separate loopback address for multiple websites.

For example, I have the following:

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

I'd like an equivalent solution for ipv6.

I already know that you can use ::1 as a loopback address, but ::2, ::3, etc don't seem to work.

Are there any other loopback addresses in ipv6? Is there a way to have multiple unique loopback addresses?

share|improve this question
    
I'd recommend ::ffff:7f00:1, ::ffff:7f00:2, and so on, but no doubt someone would throw rotten fruit at me. – womble Jul 27 '11 at 10:21

Technically ::2, ::3 etc. are part of ::0.0.0.0/96, the "ipv4 compatible ipv6 address" range. It's deprecated, but you probably don't want to use that range.

For a lab environment, use unique local addressing. Go to http://www.sixxs.net/tools/grh/ula/ and generate yourself a prefix. Then you can pick whatever addresses you want out of that prefix, and assign them to the loopback interface.

share|improve this answer

Your loopback adress is ::1/128. Note the width of the subnet which restricts it to just one host. change the subnetmask to something wider and check your routing table. Or use link-local adresses.

share|improve this answer
    
This answer would be better, if you added, on either or both, of windows or linux, how to bind additional IPv6 addresses to the loopback interface. In IPv4, you get 127.0.0.1/8, and in IPv6 you get ::1/128, so is there any way to add some more for IPv6 ? – William Feb 16 at 21:15
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

from Can I bind a (large) block of addresses to an interface?

it's the only thing that worked for me. linux-specific, of course.

share|improve this answer
    
This is effectively widening the routing table into the range reserved for ipv4 compatibility as described by Ben Jencks. – korkman Feb 5 at 14:27
    
that concerns me none whatsoever. it's for testing purposes; it's on my local machine; it affects nobody but myself. – jcomeau_ictx Feb 5 at 16:10

Using link-local addressing seems to be the only valid option. What most suggestions here ignore is the fact that the IPv6 prefix declares scope, and I would not want my presumably private addressing to be in global scope.

So for 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

And specify interface when referring to such addresses. Testing with netcat:

$ nc -l -p 10001 fe80::1%lo
$ nc fe80::1%lo 10001

Verifying correct scope:

$ ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 
    inet6 fe80::1/64 scope link 
       valid_lft forever preferred_lft forever

Still it seems not very elegant having to add every single IP to be able to bind to it. With 127.0.0.0/8, you can bind to any address without prior assigning them.

share|improve this answer
    
No, ULA is a valid way to do site local addressing. It won't route by default on the Internet. You can route it locally however. Every subnet at a site can have a reasonably globally unique private prefix, independent of ISP. – John Mahowald Feb 6 at 15:02
    
And site local is NOT host local. That's my point :-) – korkman Feb 9 at 13:40

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.