1

I've a Debian 9 server with multiple network interfaces acting as web server connected to an ISP-provided optical network terminal (ONT) @ 1Gbps. The ISP provides us with multiple dynamic IPv4 addresses and optional static addresses.

Currently we're using a single static IPv4 address set at \etc\network\interfaces as:

 iface eth0 inet static
   address 89.xxx.xxx.xxx
   gateway 89.xxx.xxx.xxx
   netmask 255.255.255.0

With IPv6 they are not proving static options yet and they dynamically assign IPv6 blocks via prefix delegation using DHCP. The prefix length is /56 .

How can get one single IPv6 address on the network interface? I believe the server has to request a block and then assign the first IP to itself (or some random IP).

I've tried a simple config \etc\network\interfaces as:

iface eth0 inet6 dhcp
  request_prefix 1
  accept_ra 2

/etc/sysctl.conf with:

net.ipv6.conf.default.disable_ipv6=0
net.ipv6.conf.default.autoconf=1
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.all.autoconf=1
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.eth0.disable_ipv6=0
net.ipv6.conf.eth0.autoconf=1
net.ipv6.conf.eth0.accept_ra=2

But it didn't work, I just got a local link IPv6. Then I tried wide-dhcpv6:

interface eth0{
  send ia-na 0;
  send rapid-commit;
  request domain-name-servers;
  script "/etc/wide-dhcpv6/dhcp6c-script";
};

id-assoc na 0 {
};

Still only getting local link. From my understanding id-assoc na 0 would request an IPv6... however how this works since the ISP only provides everything as /56 block?

I also tried this without any luck:

interface eth0 {
    send ia-na 0;
    send ia-pd 0;
    send rapid-commit;
    request domain-name-servers;
    script "/etc/wide-dhcpv6/dhcp6c-script";
};

id-assoc na 0 { 

};

id-assoc pd 0 {
    prefix ::/56 infinity;
    prefix-interface eth0 {
        sla-len 8;
        sla-id 0;
        ifid 1;
    };
};

My final questions:

  1. What should \etc\network\interfaces look like when using wide-dhcpv6?
  2. Is any of my wide-dhcpv6 configurations correct?
  3. It is possible to get the IPv6 without wide-dhcpv6, using just the Debian dhcp client?
  4. ISP uses rapid-commit how can I enable that in \etc\network\interfaces?

Note: one of my colleagues was under the impression that IPv6 was just not working, so we tried to connect a DD-WRT router to the ISP and we set its settings as:

enter image description here

After a reboot we got IPv6 on the router and on the computers connect to it, so the issue must be with the configuration of our Debian server.

enter image description here

TCB13
  • 1,066
  • 1
  • 13
  • 33
  • It's not a bug... It's a FEATURE! Try to ping your server/router over IPv6 and just omit the CIDR subnet notation (`/56`), you'll see it works (if no firewall blocks ICMP traffic). It's normal that you get a whole subnet. If your clients can't connect via IPv6 to the internet, maybe the DHCP is misconfigured or routing isn't set up. I'd suggest you read up a bit on IPv6, here is a blog post I found: https://www.jumpingbean.co.za/blogs/mark/set-up-ipv6-lan-with-linux – NoMad Feb 14 '19 at 18:31
  • @NoMad thanks for the answer, I didn't make myself clear, sorry. What we are looking for: connect the server directly to the ISP (nothing in between), ask for the `/56` prefix and assign at least ONE IP on that to our server. We don't need the server to provide DHCP to a local network nor make it a gateway. It's just a web server that needs to assign IPv6 addressees to websites. – TCB13 Feb 15 '19 at 09:42
  • 1
    Common desktop and server Linux distributions don't yet have good support for DHCPv6 prefix delegation. If possible you should continue to use the embedded router. – Michael Hampton Feb 15 '19 at 16:20

0 Answers0