zwei IPv4-LANs über IPv6 verbinden

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert