That doesnât look like correct IPv6 config. Whole /48 should be yours to use in your network. And there should be another connecting subnet between you and ISP.
Trouble with IPv6 is that itâs too new. Not really, itâs from last century, but if someone manages to ignore it for long enough, then itâs suddenly new for them. And as with other new things, people just love to explore dead endsâŚ
But itâs the same as with IPv4, thereâs no need to invent something new. Letâs say you would get public routed subnet 1.1.1.0/24. There would be another connecting subnet between you and ISP. They would have e.g. 2.2.2.1/30 on their router, you would have 2.2.2.2/30 on yours, and they would add route to 1.1.1.0/24 with gateway being your 2.2.2.2. And you could then add 1.1.1.1/24 on your LAN as whole, or you could split it into smaller networks, put e.g. 1.1.1.1/29 on LAN, connect other routers and route other parts of /24 further to them. And thatâs exactly what you want for IPv6.
What they gave you (if xxxx:yyyy are same in both) is equivalent of them having 1.1.1.1/24 on their router and you being allowed to use 1.1.1.2-245 for directly connected devices. Itâs too limited, because if youâd need to route some addresses further, itâs not possible without some tricks. In IPv4 world itâs proxy ARP. IPv6 too has something, thereâs ND proxy, but itâs again just ugly trick and not everything supports it (RouterOS doesnât).
Maybe thereâs a hope and it could be this, which is a little non-standard, but it would be fine:
In that case, youâd put 2a00:xxxx:yyyy::2/64 on WAN and then you could use the rest of /48 in LAN, e.g. 2a00:xxxx:yyyy:1::1/64 on main LAN, 2a00:xxxx:yyyy:2::1/64 for guest LAN, etc.
Assuming of course, i put all the info in the correct places, which in all honesty, i probably havenât.
Admittedly, i did use the quick set up feature, which after reading on here, i shouldnt have done, so i am just getting to grips with the fact i will have to reset the config and start again properly.
I thought i had cracked it but it appears i still cannot get out on the ipv6 web, although clients are getting ipv6 addresses, but looking at the neighbor table, they are all stale from the start.
Also, looking at the DNS cache, it appears there are some AAAA IPV6 entries from somewhere!
Turns out i had the wrong details from the isp and it was a /64.
maybe you could have a quick look at my config and see what you think!
add admin-mac=C4:AD:34:55:CB:73 auto-mac=no comment=defconf name=bridge
/interface ethernet switch port
set 0 default-vlan-id=0
set 1 default-vlan-id=0
set 2 default-vlan-id=0
set 3 default-vlan-id=0
set 4 default-vlan-id=0
set 5 default-vlan-id=0
set 6 default-vlan-id=0
set 7 default-vlan-id=0
set 8 default-vlan-id=0
set 9 default-vlan-id=0
set 10 default-vlan-id=0
set 11 default-vlan-id=0
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip pool
add name=dhcp ranges=192.168.88.10-192.168.88.254
/ip dhcp-server
add address-pool=dhcp disabled=no interface=bridge name=defconf
/ipv6 dhcp-server
add address-pool=pool1 interface=bridge name=server1-ipv6
/ipv6 pool
add name=pool1 prefix=::/64 prefix-length=64
/interface bridge port
add bridge=bridge comment=defconf interface=ether2
add bridge=bridge comment=defconf interface=ether3
add bridge=bridge comment=defconf interface=ether4
add bridge=bridge comment=defconf interface=ether5
add bridge=bridge comment=defconf interface=ether6
add bridge=bridge comment=defconf interface=ether7
add bridge=bridge comment=defconf interface=ether8
add bridge=bridge comment=defconf interface=ether9
add bridge=bridge comment=defconf interface=ether10
add bridge=bridge comment=defconf interface=sfp-sfpplus1
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
/ip address
add address=192.168.88.1/24 comment=defconf interface=bridge network=
192.168.88.0
add address=...166/22 interface=ether1 network=...0
/ip dhcp-client
add comment=defconf interface=ether1
/ip dhcp-server network
add address=192.168.88.0/24 comment=defconf gateway=192.168.88.1
/ip dns
set allow-remote-requests=yes servers=1.1.1.1,1.0.0.1
/ip dns static
add address=192.168.88.1 comment=defconf name=router.lan
/ip firewall filter
add action=accept chain=input comment=
âdefconf: accept established,related,untrackedâ connection-state=
established,related,untracked
add action=drop chain=input comment=âdefconf: drop invalidâ connection-state=
invalid
add action=accept chain=input comment=âdefconf: accept ICMPâ protocol=icmp
add action=accept chain=input comment=
âdefconf: accept to local loopback (for CAPsMAN)â dst-address=127.0.0.1
add action=drop chain=input comment=âdefconf: drop all not coming from LANâ
in-interface-list=!LAN
add action=accept chain=forward comment=âdefconf: accept in ipsec policyâ
ipsec-policy=in,ipsec
add action=accept chain=forward comment=âdefconf: accept out ipsec policyâ
ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment=âdefconf: fasttrackâ
connection-state=established,related
add action=accept chain=forward comment=
âdefconf: accept established,related, untrackedâ connection-state=
established,related,untracked
add action=drop chain=forward comment=âdefconf: drop invalidâ
connection-state=invalid
add action=drop chain=forward comment=
âdefconf: drop all from WAN not DSTNATedâ connection-nat-state=!dstnat
connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment=âdefconf: masqueradeâ
ipsec-policy=out,none out-interface-list=WAN
/ip route
add distance=1 gateway=..***.165
/ipv6 address
add address=2a00:xxxx:yyyy::2 advertise=no interface=ether1
add address=2a00:xxxx:yyyy:1::1 interface=bridge
/ipv6 firewall address-list
add address=::/128 comment=âdefconf: unspecified addressâ list=bad_ipv6
add address=::1/128 comment=âdefconf: loâ list=bad_ipv6
add address=fec0::/10 comment=âdefconf: site-localâ list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment=âdefconf: ipv4-mappedâ list=bad_ipv6
add address=::/96 comment=âdefconf: ipv4 compatâ list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment=âdefconf: documentationâ list=bad_ipv6
add address=2001:10::/28 comment=âdefconf: ORCHIDâ list=bad_ipv6
add address=3ffe::/16 comment=âdefconf: 6boneâ list=bad_ipv6
add address=::224.0.0.0/100 comment=âdefconf: otherâ list=bad_ipv6
add address=::127.0.0.0/104 comment=âdefconf: otherâ list=bad_ipv6
add address=::/104 comment=âdefconf: otherâ list=bad_ipv6
add address=::255.0.0.0/104 comment=âdefconf: otherâ list=bad_ipv6
/ipv6 firewall filter
add action=accept chain=input comment=
âdefconf: accept established,related,untrackedâ connection-state=
established,related,untracked
add action=drop chain=input comment=âdefconf: drop invalidâ connection-state=
invalid
add action=accept chain=input comment=âdefconf: accept ICMPv6â protocol=
icmpv6
add action=accept chain=input comment=âdefconf: accept UDP tracerouteâ port=
33434-33534 protocol=udp
add action=accept chain=input comment=
âdefconf: accept DHCPv6-Client prefix delegation.â dst-port=546 protocol=
udp src-address=fe80::/10
add action=accept chain=input comment=âdefconf: accept IKEâ dst-port=500,4500
protocol=udp
add action=accept chain=input comment=âdefconf: accept ipsec AHâ protocol=
ipsec-ah
add action=accept chain=input comment=âdefconf: accept ipsec ESPâ protocol=
ipsec-esp
add action=accept chain=input comment=
âdefconf: accept all that matches ipsec policyâ ipsec-policy=in,ipsec
add action=drop chain=input comment=
âdefconf: drop everything else not coming from LANâ in-interface-list=
!LAN
add action=accept chain=forward comment=
âdefconf: accept established,related,untrackedâ connection-state=
established,related,untracked
add action=drop chain=forward comment=âdefconf: drop invalidâ
connection-state=invalid
add action=drop chain=forward comment=
âdefconf: drop packets with bad src ipv6â src-address-list=bad_ipv6
add action=drop chain=forward comment=
âdefconf: drop packets with bad dst ipv6â dst-address-list=bad_ipv6
add action=drop chain=forward comment=âdefconf: rfc4890 drop hop-limit=1â
hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment=âdefconf: accept ICMPv6â protocol=
icmpv6
add action=accept chain=forward comment=âdefconf: accept HIPâ protocol=139
add action=accept chain=forward comment=âdefconf: accept IKEâ dst-port=
500,4500 protocol=udp
add action=accept chain=forward comment=âdefconf: accept ipsec AHâ protocol=
ipsec-ah
add action=accept chain=forward comment=âdefconf: accept ipsec ESPâ protocol=
ipsec-esp
add action=accept chain=forward comment=
âdefconf: accept all that matches ipsec policyâ ipsec-policy=in,ipsec
add action=drop chain=forward comment=
âdefconf: drop everything else not coming from LANâ in-interface-list=
!LAN
/ipv6 nd
set [ find default=yes ] interface=bridge managed-address-configuration=yes
other-configuration=yes
/ipv6 nd prefix
add autonomous=no interface=bridge
/system clock
set time-zone-name=Europe/London
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
I put an address in the pool, however, clients are getting an address anyway and the other one seems to have the /64 but doesnât seem to show up in this config for some reason..
IPv6 is not difficult, but you must understand it. Basic knowledge is:
a) address is 128 bits long, half of it is network (aka prefix), other half is for device
b) Service Provider gives you prefix and length of it show you how many subnets can you create inside it. /48 gives you 64-48=16bits=65536 networks. If you need multi-level networks then you decide if split it into 102464, 1616*256 or any other ways, so create network plan before starting splitting. If you don't plan, you get 2^N sub-prefixes and that's it.
c) one character in address is 4 bits
d) lots of zeroes can be omitted in markup, there are rules how to write shorter v6 addresses
e) usable addresses start from zero and end with f, there's no reserved network and broadcast addresses in every network
Steps to start using IPv6 in Mikrotik:
Enable IPv6 package, it's disabled by default
/system package enable ipv6
Reset configuration gives you good default rules for IPv6 firewall. Remember, there are TWO firewalls now. Default IPv6 firewall rules are the same: ports closed by default.
/system reset-configuration
ask prefix from ISP and create pool from it. pool-prefix-length sets size for sub-prefixes. You can ask for specific prefix using prefix-hint=
add IPv6 aadress to the bridge. Bridge takes first sub-prefix from the pool you got, creates prefix+::1 address and starts advertising of it, so other devices in the network will also know about it and get addresses by SLAAC.
There's no need for special service to share addresses, it's done automatically. Set specific addresses manually if you need it (yourprefix::1), DHCPv6 server in MT is not for sharing specific addresses, but for prefix sharing and supporting older operating systems.
Thanks for taking the time to post, however, i think i have mine set up that way, although my IPV6 is supplied static from my ISP so i cannot request any information via the DHCP client as it just keeps displaying âsearchingâ.
And clients are getting IPV6 addresses from the router.
And ping result from router to ipv6 google.
invalid value for argument address:
invalid value of mac-address, mac address required
invalid value for argument ipv6-address
failure: dns name exists, but no appropriate record
ETA: i know the service is working from my ISP as my previous router was connected and using it no problem, however i would really like to get it working on the MT as A - it is a very good product and B- i dont want to go back to my previous router!
Does my supplied IPV6 gateway go on the bridge and the ::2/64 address on the gateway as i have these the other way around.
If itâs only /64, and ISP has gateway from that subnet, itâs not good at all. It works only for directly connected devices, and if you want to have something behind your router, it needs ND proxy. Current RouterOS doesnât support it. And itâs not really good way of doing it anyway.
The only positive is that you can check with your previous router, how exactly it works. Can you show some config from there? Is there really same subnet on both LAN and WAN?
Itâs not just one /64. You have 2a00:xxxx:yyyy::2/64 on WAN (eth9) with gateway 2a00:xxxx:yyyy::1, and 2a00:xxxx:yyyy:1::1/64 on LAN (switch0). You can have this with RouterOS, no problem.
But looking at your previously posted config, you can forget about DHCPv6 server giving addresses to clients, RouterOS doesnât support that yet, itâs only manual config or SLAAC (autoconfiguration) for now. So you need:
You could have other-configuration=yes and use DHCPv6 do give out IPv6 DNS resolvers, but thatâs currently a little unfinished too, so it can be either what you have in routerâs â/ip dnsâ, or you have to create DHCP option manually. But it doesnât really matter if clients resolve DNS over IPv6 or IPv4, both support all record types.