Jails and IPv6 local loopback

Roger Leigh rleigh at codelibre.net
Sat Aug 27 16:22:15 UTC 2016


Hi list,

I saw 
https://lists.freebsd.org/pipermail/freebsd-jail/2011-March/001500.html 
in the archives but didn't see anything more recent.

This is with 10.3-RELEASE

% freebsd-version
10.3-RELEASE-p6

% jls
    JID  IP Address      Hostname                      Path
[...]
      3  192.168.1.12    bfcpp.codelibre.net           /jail/bfcpp
[...]

 From jail.conf:

bfcpp {
   host.hostname = "bfcpp.codelibre.net";
   interface = "bge0";
   ip4.addr = "192.168.1.12";
   ip6.addr = "2001:8b0:860:ddbd:3aea:a7ff:feab:7002";
   allow.raw_sockets = "1";
   path = "/jail/bfcpp";
   mount.devfs;
   mount.fdescfs;
   mount.procfs;
   mount.fstab="/etc/fstab.bfcpp";
   exec.start = "/bin/sh /etc/rc";
   exec.stop = "/bin/sh /etc/rc.shutdown";
   exec.clean;
   exec.jail_user = "root";
   exec.system_jail_user;
}

amys% ping -c1 localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.046 ms

--- localhost ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.046/0.046/0.046/0.000 ms
amys% ping6 -c1 localhost
PING6(56=40+8+8 bytes) ::1 --> ::1
16 bytes from ::1, icmp_seq=0 hlim=64 time=0.252 ms

--- localhost ping6 statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.252/0.252/0.252/0.000 ms


Inside this jail:

bfcpp% ifconfig
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
 
options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE>
         ether 38:ea:a7:ab:61:53
         inet 192.168.1.12 netmask 0xffffffff broadcast 192.168.1.12
         inet6 2001:8b0:860:ddbd:3aea:a7ff:feab:7002 prefixlen 128
         nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
         media: Ethernet autoselect (100baseTX <full-duplex>)
         status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
         options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
         nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
bfcpp% ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.056 ms
^C
--- localhost ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.056/0.056/0.056/0.000 ms
bfcpp% ping6 localhost
PING6(56=40+8+8 bytes) 2001:8b0:860:ddbd:3aea:a7ff:feab:7002 --> ::1
ping6: sendmsg: Can't assign requested address
ping6: wrote localhost 16 chars, ret=-1
ping6: sendmsg: Can't assign requested address
ping6: wrote localhost 16 chars, ret=-1
ping6: sendmsg: Can't assign requested address
ping6: wrote localhost 16 chars, ret=-1
^C
--- localhost ping6 statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss


As you can see, inside the jail I have a working IPv4 loopback, but not 
a working IPv6 loopback.  Both work correctly on the host system.  This 
is inconsistent, and it's breaking stuff which needs the v6 loopback to 
be functional.

Is this a case of a bad default, a misconfiguration or a bug in the 
loopback support for jails?


Thanks,
Roger


More information about the freebsd-jail mailing list