Tworzenie Bridge między Hostem a Macvlanem

W tym poradniku przedstawimy jak stworzyć sieć Macvlan, skonfigurować interfejs typu macvlan_host oraz ustawić reguły NAT dla WireGuard, aby umożliwić komunikację pomiędzy tymi sieciami. Proces składa się z trzech głównych kroków:

Krok 1: Tworzenie sieci Macvlan

Najpierw musimy stworzyć sieć typu Macvlan, która będzie używać interfejsu mostu (br0). Poniżej znajduje się odpowiednia komenda do jej stworzenia:


# Tworzenie sieci macvlan
echo "Tworzenie sieci macvlan..."
docker network create -d macvlan -o parent=br0 \
  --subnet 192.168.100.0/24 \
  --gateway 192.168.100.1 \
  --ip-range 192.168.100.248/29 \
  --aux-address 'host=192.168.100.248' \
  macvlan_net
echo "Sieć macvlan została utworzona."
  

Opis komend:

  • -d macvlan – Tworzy sieć typu Macvlan.
  • --subnet 192.168.100.0/24 – Definiuje zakres adresów IP.
  • --gateway 192.168.100.1 – Określa bramę domyślną dla sieci.
  • --ip-range 192.168.100.248/29 – Definiuje zakres dostępnych adresów IP.
  • --aux-address 'host=192.168.100.248' – Rezerwuje adres IP dla hosta w sieci Macvlan.

Krok 2: Konfiguracja interfejsu macvlan_host

Teraz musimy dodać interfejs typu Macvlan na hoście, przypisać mu odpowiedni adres IP oraz skonfigurować routing:


# Tworzenie interfejsu macvlan_host
echo "Tworzenie interfejsu macvlan_host..."
ip link add macvlan_host link br0 type macvlan mode bridge
ip addr add 192.168.100.248/29 dev macvlan_host
ip link set macvlan_host up
ip route add 192.168.100.0/24 dev macvlan_host
echo "Interfejs macvlan_host skonfigurowany."
  

Opis komend:

  • ip link add macvlan_host link br0 type macvlan mode bridge – Tworzy interfejs Macvlan typu bridge na hoście.
  • ip addr add 192.168.100.248/29 dev macvlan_host – Przypisuje adres IP interfejsowi macvlan_host.
  • ip link set macvlan_host up – Uruchamia interfejs.
  • ip route add 192.168.100.0/24 dev macvlan_host – Dodaje trasę do sieci Macvlan.

Krok 3: Konfiguracja WireGuard (PostUp i PostDown)

Na koniec konfigurujemy reguły NAT, które umożliwiają komunikację pomiędzy sieciami przez WireGuard. Poniżej znajdują się komendy do ustawienia:

Post Up:


# Konfiguracja PostUp
iptables -w -t nat -A POSTROUTING -o br0 -j MASQUERADE; iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -o macvlan_host -j MASQUERADE
  

Post Down:


# Konfiguracja PostDown
iptables -w -t nat -D POSTROUTING -o br0 -j MASQUERADE; iptables -t nat -D POSTROUTING -s 192.168.70.0/24 -o macvlan_host -j MASQUERADE
  

Opis komend:

  • iptables -w -t nat -A POSTROUTING – Tworzy regułę NAT, która przeprowadza maskaradę na wychodzących pakietach.
  • -o br0 -j MASQUERADE – Określa interfejs br0, przez który pakiety będą wychodziły.
  • -s 192.168.70.0/24 -o macvlan_host -j MASQUERADE – Przekierowuje ruch z sieci WireGuard przez interfejs Macvlan.

Te reguły są używane w przypadku aktywacji i dezaktywacji połączenia, dlatego warto mieć oba skrypty (PostUp i PostDown) do zarządzania ruchem sieciowym.

 

Sidebar