My ISP is offering IPv6 through DHCP: how can I use it?

Hi,

Finally my ISP is providing me IPv6 through DHCP (the same way I obtain my IPv4 address, so it is dual-stack). I’m having a hard time figuring out how can I use it and actually browse on IPv6.

The /64 IPv6 block is fetched by DHCP client on RouterOS 6.32.1 but none of the computers in my LAN get prefixes from this block. So within the Mikrotik router I can ping IPv6 addresses but not from the computers. Here is a screenshot of my /ipv6 dhcp-client settings:

How should I proceed?

There is no NAT on ipv6, so you cannot nat that single IP you get from ISP, the ISP needs to route a /64 or better range to your router then you can configure that range to the pcs behind the router. I am not sure if there are any other way where you can connect the pc directly with ipv6.

If you take a look at the screenshot I provided, my ISP is providing me a /64. The problem is this IPv6 block is not propagating within my LAN. The devices connected on my LAN are not getting public IPv6 addresses from Neighbor Discovery, they are only getting link-local (fe80::slight_smile: addresses.

For some reason, Mikrotik is seem to be not spreading the Neighbor Discovery advertisements. Could anyone give me a hint on this?

Did you add an address to LAN interface, as described in wiki?

http://wiki.mikrotik.com/wiki/Manual:IPv6/DHCP_Client#Use_received_prefix_for_local_RA

Hi,

Thanks, now it is working. I copied the /64 I got, found a online IPv6 subnet calculator, choosed one of the IPv6 addresses from the calculator and addes it as IPv6 address to my bridge-local. Now my LAN machines are getting public IPv6 and browsing IPv6 on the web.

But is this manual process really necessary? Is there a way I can set Mikrotik to fetch IPv6 address from DHCP and populate the settings automatically so as soon as ISP deploys IPv6 it would work?

The important part is from-pool parameter. If you set it to same pool as DHCPv6 client creates, address will automatically take a prefix from that. That’s why the example sets address=::1/64 but ends up with proper 2001:db8:1::1/64.

Oh, now I get it. Thanks! :smiley:

Could someone help me understand how this is routed / delivered to the CPE? Traditionally with IPv4 I’ve always had a routed block (E.G a /28) delivered over a /30.

If you’re only allocated an IPv6 /64 from your ISP, how do you route it?

There are different ways:

  • Assign /126 or /64 for transit, route subnet to the client’s IP
  • Route the subnet to the client’s link local
  • Assign a single IPv6 to the customer and route the subnet to this ip address