Als klant van Tweak heb ik de beschikking over IPv6 6RD, maar ik kon weinig vinden hoe ik dit netjes met firewall in te stellen op een Edgerouter. Na wat zoek en probeerwerk heb ik nu een werkende setup die ik graag met jullie wil delen.
1. Bereken je "Customer prefix"
http://silmor.de/ipaddrcalc.html#ip6
Klik op "IPv4 to IPv6 Transitional" en ga naar de volgende invoervelden:
"Provider prefix IPv6:" Voer hier de provider prefix in, in het geval van Tweak is dit: 2a02:58:c0::/42
"Customer IPv4:" Voer hier je externe IPv4 IP-adres in en gebruik 14 bits (In mijn geval 84.245.0.0/18, 32-18=14).
"IPv6 Customer prefix:" Deze wordt berekend door te klikken op de knop "ISP -> Customer" onder de invoervelden.
2. We gaan nu de tunnel aanmaken, het makkelijkste in om via ssh op je router in te loggen via een terminal client.
Je start het configureren van de router met het "configure" commando, vul de gegevens in die berekend zijn in stap 1. De tekst tussen de /* en */ is informatief en dient niet ingevoerd te worden.
NB: De regels dienen in per stuk ingevoerd te worden, dus niet alles in één keer kopiëren.
Tunnel setup:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| set interfaces tunnel tun0 address '2a02:58:ac:b600::/56' /* Vul hier de berekende Customer prefix in uit stap 1. */
set interfaces tunnel tun0 description 'IPv6 6RD Tunnel'
set interfaces tunnel tun0 encapsulation sit
set interfaces tunnel tun0 local-ip xxx.xxx.xxx.xxx /* Vul hier je externe IPv4 IP-adres in */
set interfaces tunnel tun0 multicast disable
set interfaces tunnel tun0 remote-ip 217.19.16.16 /* Vul hier het tunnel-adres van je provider in, het voorbeeldadres is van toepassingen voor klanten van Tweak */
set interfaces tunnel tun0 ttl 255
set protocols static interface-route6 '::/0' next-hop-interface tun0
commit
save |
3. Op dit moment kan je testen of de tunnel vanaf de router correct werkt met het commando "ping6
www.google.com". Werkt dit correct dan kunnen we verder met de configuratie van het lokale gedeelte.
4. Voor het configureren van lokale netwerk maken we gebruik van een /64 netwerk segment, je vult hier wederom de berekende Customer prefix uit stap 1 met als wijziging dus het /64 segment in plaats van de /56. In mijn geval is eth0 de WAN-poort en vallen eth1 t/m eth4 onder switch0, uiteraard kan dit per configuratie verschillen. Waar in de regels nu "switch switch0" staat kan dit voor een ander "ethernet ethX" zijn.
LAN setup:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| set interfaces switch switch0 address '2a02:58:ac:b600::/64' /* Vul hier de berekende Customer prefix uit stap 1 in en vervang de /56 door een /64 */
set interfaces switch switch0 ipv6 dup-addr-detect-transmits 1
set interfaces switch switch0 ipv6 router-advert cur-hop-limit 64
set interfaces switch switch0 ipv6 router-advert link-mtu 1480
set interfaces switch switch0 ipv6 router-advert managed-flag false
set interfaces switch switch0 ipv6 router-advert max-interval 300
set interfaces switch switch0 ipv6 router-advert other-config-flag false
set interfaces switch switch0 ipv6 router-advert prefix '2a02:58:ac:b600::/64' autonomous-flag true /* Vul hier de berekende Customer prefix uit stap 1 in en vervang de /56 door een /64 */
set interfaces switch switch0 ipv6 router-advert prefix '2a02:58:ac:b600::/64' on-link-flag true /* Vul hier de berekende Customer prefix uit stap 1 in en vervang de /56 door een /64 */
set interfaces switch switch0 ipv6 router-advert prefix '2a02:58:ac:b600::/64' valid-lifetime 2592000 /* Vul hier de berekende Customer prefix uit stap 1 in en vervang de /56 door een /64 */
set interfaces switch switch0 ipv6 router-advert reachable-time 0
set interfaces switch switch0 ipv6 router-advert retrans-timer 0
set interfaces switch switch0 ipv6 router-advert send-advert true
commit
save |
5. Nu zijn we aangekomen bij het configureren van de firewall voor IPv6-verkeer.
Firewall setup:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| set firewall ipv6-name Internet-To-LAN default-action drop
set firewall ipv6-name Internet-To-LAN description 'Internet to LAN'
set firewall ipv6-name Internet-To-LAN rule 1 action accept
set firewall ipv6-name Internet-To-LAN rule 1 description 'Allow Incoming IPv6 established or related connections'
set firewall ipv6-name Internet-To-LAN rule 1 state established enable
set firewall ipv6-name Internet-To-LAN rule 1 state related enable
set firewall ipv6-name Internet-To-LAN rule 2 action drop
set firewall ipv6-name Internet-To-LAN rule 2 state invalid enable
set firewall ipv6-name Internet-To-LAN rule 3 action accept
set firewall ipv6-name Internet-To-LAN rule 3 description "Allow ICMPv6 packets"
set firewall ipv6-name Internet-To-LAN rule 3 protocol icmpv6
set firewall ipv6-name LAN-To-Internet default-action accept
set firewall ipv6-name LAN-To-Internet description 'LAN to Internet'
set firewall ipv6-name LAN-To-Internet rule 1 action accept
set firewall ipv6-name LAN-To-Internet rule 1 state established enable
set firewall ipv6-name LAN-To-Internet rule 1 state related enable
set firewall ipv6-name LAN-To-Internet rule 2 action drop
set firewall ipv6-name LAN-To-Internet rule 2 state invalid enable
set firewall ipv6-name LAN-To-Internet rule 3 action accept
set firewall ipv6-name LAN-To-Internet rule 3 description "Allow ICMPv6 packets"
set firewall ipv6-name LAN-To-Internet rule 3 protocol icmpv6
set interfaces switch switch0 firewall in ipv6-name LAN-To-Internet
set interfaces tunnel tun0 firewall in ipv6-name Internet-To-LAN
commit
save |
Deze firewall regels moeten het prima doen, maar mocht iemand hier nog suggesties hebben dan hoor ik het graag.
Tot slot, mocht je een externe IP-adres wijzigen dan werkt de tunnel ook niet meer. Het is dan zaak om het berekenen van de de Customer prefix uit stap 1 opnieuw uit te voeren en deze aan te passen in de configuratie van de router. Ik hoop hiermee het configureren van IPv6 6RD op de Edgerouter wat makkelijker te maken. Mocht je opmerkingen hebben dan hoor ik het graag!
It takes one to know one...