Rozwiązanie społecznościowe

Mostkowanie dwóch portów Ethernet w ZimaOS? Skrypt społeczności z 2025 roku działał, ale dotyczył mostkowania warstwy 2, a nie NAT-u

A March-May 2025 thread where a user wanted Router → ZimaOS NAS → PC networking through two Ethernet ports. They created a Linux br0 bridge by stopping NetworkManager, flushing an interface, adding eth0/eth1 to br0 and assigning a management IP. The user reported that it worked but had to be rerun after reboot. IceWhale later said built-in bridge support was not planned in the short term. The source script implements Layer-2 bridging rather than IP NAT.

Użytkownikowi udało się skonfigurować topologię, ale wynik należy opisać precyzyjnie: skrypt utworzył linuksowy most Ethernetowy br0 warstwy 2 między dwoma interfejsami fizycznymi. Nie skonfigurował klasycznego routera NAT z przekazywaniem pakietów IP i maskaradą.

Rozwiązanie było również niestabilne, co przyznał sam autor. Zatrzymywało NetworkManagera, usuwało adresy, ręcznie odtwarzało most, zależało od nazw interfejsów oraz zakodowanej na stałe bramy i adresu IP, a po ponownym uruchomieniu systemu trzeba było uruchamiać je ponownie. Później IceWhale odpowiedziało, że w najbliższym czasie nie planuje wbudowanej funkcji mostu. Należy traktować to jako eksperyment społeczności, a nie obecną oficjalną funkcję sieciową ZimaOS.

Celem była topologia router → ZimaOS → komputer osobisty

NAS miał kilka portów Ethernet. Jeden był połączony z routerem nadrzędnym, a drugi bezpośrednio z komputerem osobistym. Użytkownik chciał, aby komputer pozostał w tej samej sieci LAN za pośrednictwem urządzenia z ZimaOS.

Most nie jest tym samym co NAT

Most łączy segmenty Ethernetu na warstwie 2, dzięki czemu urządzenia mogą pozostać w tej samej podsieci IP i korzystać z DHCP oraz bramy routera nadrzędnego. NAT działałby inaczej: routowałby ruch między różnymi sieciami IP i zmieniał adresy.

W źródłowych poleceniach użyto brctl addbr i brctl addif; nie było tam reguł NAT ani maskarady.

Źródłowy skrypt tymczasowo zastępował zarządzanie siecią ZimaOS

Skrypt zatrzymywał NetworkManagera, usuwał konfigurację jednego interfejsu, tworzył br0, dodawał oba interfejsy sieciowe, przypisywał statyczny adres zarządzania i ustawiał trasę domyślną.

Może to natychmiast odciąć zdalne zarządzanie, jeśli nazwy interfejsów, brama, podsieć lub polecenia tworzące most będą nieprawidłowe.

Most nie był trwały

Użytkownik wyraźnie stwierdził, że po każdym ponownym uruchomieniu systemu skrypt trzeba było uruchamiać ponownie. Później przygotował obejście dla systemu Windows z użyciem Plink, które łączyło się przez SSH z ZimaOS i wykonywało skrypt podczas uruchamiania komputera.

Przechowywanie haseł SSH na stałe w pliku wsadowym systemu Windows nie jest obecnie dobrą praktyką bezpieczeństwa.

Późniejsze wymuszenie prędkości za pomocą ethtool dotyczyło konkretnego sprzętu

Autor dodał polecenie ethtool, aby wymusić prędkość 10 Gb/s i pełny dupleks na interfejsie 10GbE. Wymuszenie prędkości i dupleksu może zakłócać autonegocjację z niektórymi układami PHY i przełącznikami. Używaj standardowych ustawień negocjowanej prędkości, chyba że sprzęt wymaga udokumentowanego wymuszenia.

Autor usunął obejście z mostem opartym na Dockerze, ponieważ powodowało utratę dostępu do Internetu

W samym źródle napisano, że metoda wykorzystująca kontener i narzędzia sieciowe została usunięta, ponieważ host czasami tracił łączność z Internetem.

Obecne ZimaOS nie dokumentuje tego skryptu jako obsługiwanego mostu hosta

Obecna dokumentacja sieciowa IceWhale koncentruje się na interfejsach fizycznych, adresowaniu DHCP i statycznym oraz standardowym zarządzaniu siecią.

Skorzystaj z aktualnych podstaw sieciowych ZimaOS.

Jeśli potrzebujesz routingu lub NAT, użyj systemu operacyjnego albo architektury maszyn wirtualnych przeznaczonych do routingu

W przypadku zapory sieciowej, NAT, routingu VLAN, DHCP i obsługi wielu łączy pfSense lub OPNsense jest lepiej zdefiniowaną platformą routera. Włączenie NAS-a w ścieżkę sieci jako nieudokumentowanego mostu tworzy pojedynczy punkt awarii zarówno dla pamięci masowej, jak i dostępu do sieci.

Zachowaj ścieżkę awaryjnego dostępu do adresu zarządzania ZimaOS

Gdy skrypt usuwa konfigurację interfejsu i przenosi adres zarządzania na br0, sesja SSH działająca przez ten interfejs może natychmiast zostać przerwana. Pierwsze testy wykonuj z lokalnej konsoli albo zapewnij inną, sprawdzoną ścieżkę zarządzania.

Przed wprowadzeniem zmian zapisz oryginalne adresy interfejsów oraz trasę domyślną.

Most warstwy 2 może tworzyć pętle sieciowe

Jeśli oba porty mostu zostaną przypadkowo podłączone z powrotem do tej samej sieci przełączanej, konfiguracja może utworzyć pętlę Ethernet. Bez prawidłowego działania mechanizmu spanning tree ruch rozgłoszeniowy może przeciążyć sieć LAN.

Źródłowa topologia była prostym łańcuchem router → ZimaOS → komputer; nie należy uogólniać tego skryptu na dowolne układy z wieloma przełącznikami.

Router nadrzędny nadal zapewnia DHCP i bramę domyślną

Ponieważ jest to most, a nie NAT, komputer znajdujący się za nim zwykle pozostaje w podsieci routera i otrzymuje konfigurację sieciową od routera nadrzędnego. ZimaOS przekazuje ramki Ethernet, a nie staje się bramą nowej routowanej podsieci.

Skrypt mostu na poziomie hosta może przestać działać po zmianach interfejsów lub stosu sieciowego

Między wydaniami mogą zmieniać się nazwy interfejsów, działanie NetworkManagera, narzędzia mostów w jądrze oraz kolejność uruchamiania usług. Po większych aktualizacjach ZimaOS ponownie przetestuj konfigurację i nie zakładaj, że skrypt napisany dla stosu sieciowego z 2025 roku będzie zawsze kompatybilny.

Często zadawane pytania dotyczące mostu sieciowego ZimaOS

Czy źródłowy skrypt zadziałał u pierwotnego użytkownika?

Tak. Użytkownik poinformował, że komputer uzyskał łączność za pośrednictwem mostu ZimaOS.

Czy był to NAT?

Nie. Opublikowane polecenia utworzyły linuksowy most warstwy 2.

Czy IceWhale powiedziało, że wkrótce pojawi się wbudowana funkcja mostu?

Nie. Zima-Giorgio powiedział, że nie jest ona planowana w najbliższym czasie.