Ich stelle hier eine Möglichkeit vor, zwei IPv4-Netze (z. B. Standorte) die nur über IPv6 (oder Dual Stack-lite) verbunden sind, zu verbinden.
Mit dem IPIP-Tunnel bietet Mikrotik die Möglichkeit IP-Frames in IP-Frames zu kapseln. Das geht auch mit IPIPv6, so dass man IPv4 in IPv6 kapseln kann. Zur Absicherung kann IPIP/IPIPv6 auch IPSEC. Alternativ kann man auch IPIP/IPIPv6 über Wireguard tunneln.
Lab
Ausgangssituation
Standort 1:
- öffentliche IPv6: 2001:db8::1/64
- Wireguard IPv6: fd00:1::1/64
- LAN (IPv4): 192.168.1.0/24
- ipipv6 (IPv4): 10.0.0.1/30
- ipipv6-tunnel1 (Interface) -> remote-address: fd00:1::2 -> local-address: fd00:1::1
- Route (IPv4): 192.168.2.0/24 -> Gateway: 10.0.0.2
Standort 2:
- öffentliche IPv6: 2001:db8::2/64
- Wireguard IPv6: fd00:1::2/64
- LAN (IPv4): 192.168.2.0/24
- ipipv6 (IPv4): 10.0.0.2/30
- ipipv6-tunnel1 (Interface) -> remote-address: fd00:1::1 -> local-address: fd00:1::2
- Route (IPv4): 192.168.1.0/24 -> Gateway: 10.0.0.1
Es wird angenommen, dass beide Standorte rein über IPv6 verbunden sind. In diesem Fall: 2001:db8::1/64 bzw. 2001:db8::2/64
Um die Labumgebung nicht zu groß werden zu lassen, wurde auf Router1 und Router2 je eine Bridge angelegt, die das LAN simuliert.
Standort 1 mit Ping zu Standort 2 (192.168.2.1), der über IPIPv6 und Wiregaurd getunnelt wird:
Standort 2 mit Ping zu Standort 1 (192.168.1.1), der über IPIPv6 und Wiregaurd getunnelt wird:
Paketmitschnitte
IPIPv6 OHNE IPSEC:
(hier sieht man auch die Kapselung von IPv4 innerhalb von IPv6)
IPIPv6 MIT IPSEC:
IPIPv6 OHNE IPSEC über Wireguard:
IPIPv6 MIT IPSEC über Wireguard:
Konfigurationen
Router1:
/interface bridge add name=bridge1 protocol-mode=none /interface ipipv6 add local-address=fd00:1::1 name=ipipv6-tunnel1 remote-address=fd00:1::2 /interface wireguard add listen-port=13231 mtu=1420 name=wireguard1 /interface wireguard peers add allowed-address=::/0 endpoint-address=2001:db8::2 endpoint-port=13231 \ interface=wireguard1 name=peer1 persistent-keepalive=10s public-key=\ "E29O/Dw6xK9fjSC8OBgpzP0KiewKoMMk2I0M8gI9CWU=" /ip address add address=192.168.1.1/24 interface=bridge1 network=192.168.1.0 add address=10.0.0.1/30 interface=ipipv6-tunnel1 network=10.0.0.0 /ip route add disabled=no dst-address=192.168.2.0/24 gateway=10.0.0.2 routing-table=\ main suppress-hw-offload=no /ipv6 address add address=2001:db8::1 interface=ether5 add address=fd00:1::1 interface=wireguard1
Router2:
/interface bridge add name=bridge1 protocol-mode=none /interface ipipv6 add local-address=fd00:1::2 name=ipipv6-tunnel1 remote-address=fd00:1::1 /interface wireguard add listen-port=13231 mtu=1420 name=wireguard1 /interface wireguard peers add allowed-address=::/0 endpoint-address=2001:db8::1 endpoint-port=13231 \ interface=wireguard1 name=peer1 persistent-keepalive=10s public-key=\ "gJKfCODKEH4+i+aGP02XT/w34OtP5/LtzidkbMdlM3s=" /ip address add address=192.168.2.1/24 interface=bridge1 network=192.168.2.0 add address=10.0.0.2/30 interface=ipipv6-tunnel1 network=10.0.0.0 /ip route add disabled=no dst-address=192.168.1.0/24 gateway=10.0.0.1 routing-table=\ main suppress-hw-offload=no /ipv6 address add address=2001:db8::2 interface=ether5 add address=fd00:1::2 interface=wireguard1
Delta der zwei Versionen:
Konfiguration ohne Wireguard
Wenn man Wireguard nicht nutzen möchte, sondern rein IPIPv6 (ich würde dann stark zur verschlüsselten Variante mit IPSEC raten), in den IPIPv6-Interfaces die jeweiligen lokalen und remote öffentlichen IPv6-Adressen eintragen. Der Rest bleibt gleich!
Also bei Router 1:
/interface ipipv6 add local-address=2001:db8::1 name=ipipv6-tunnel1 remote-address=2001:db8::2
und bei Router 2:
/interface ipipv6 add local-address=2001:db8::2 name=ipipv6-tunnel1 remote-address=2001:db8::1
System- und Netzwerkadministrator
Informationstechnik – Netzwerktechnik – Consulting
MCSA+M | MCSE | MTCNA