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.