Oba profile zgłaszają połączenie, a jeden z nich po cichu przenosi ruch przeznaczony dla drugiego. Dwa klienty na jednym hoście to obsługiwany układ; dwa klienty bez właściciela każdego prefiksu już nie. Praca dotyczy mniej podnoszenia drugiego tunelu, a bardziej decyzji, który proces może rościć sobie prawo do której trasy. Przejdź przez kolejność poniżej, a konfiguracja wyniknie z odpowiedzi.

Zacznij od pytania, do czego służy drugi tunel

Trzy sytuacje wyglądają na pasku stanu identycznie i wymagają różnych rozwiązań. Podział według miejsc docelowych wysyła jeden prefiks przez profil biurowy, a drugi przez profil laboratoryjny, przy czym żaden nie rości sobie prawa do trasy domyślnej. Podział według aplikacji zwykle utrzymuje jeden pełny tunel i kieruje określony ruch regułami polityki. Przełączanie awaryjne utrzymuje dokładnie jeden tunel naraz, co oznacza, że drugi nie może startować automatycznie.

Zapisz przypadek, zanim otworzysz jakikolwiek plik konfiguracyjny, bo ta odpowiedź decyduje o wszystkim później.

Najczęstszym zepsutym układem są dwa pełne tunele, które oba wypchnęły trasę domyślną, gdzie wygrywa ten, kto połączył się ostatni, a pierwszy dalej udaje. Ten stan wygląda na pasku stanu na zamierzony i marnuje dzień z tabeli routingu. Nazwanie przypadku najpierw czyni go niemożliwym, a nie tylko mało prawdopodobnym.

Spójrz na pule przed trasami

Dwa serwery mogą łatwo rozdawać adresy z jednego zakresu prywatnego, a gdy to robią, klient kończy z dwoma interfejsami w obrębie jednego prefiksu. Żadnego celu nie można wtedy przypisać interfejsowi po adresie, bo oba wyglądają równie poprawnie. Przenumeruj jedną pulę, zamiast wymyślać regułę na przełamanie remisu.

Sprawdź też sieć lokalną, bo domowy lub biurowy LAN nakładający się na zakres tunelu tworzy tę samą niejednoznaczność z drugiej strony. Porównaj adresy na hoście z obiema konfiguracjami serwera, zanim obwinisz klienta. Zmiana puli na serwerze laboratoryjnym to pięciominutowa poprawka, podczas gdy obejście z routingiem polityki dla nakładającego się prefiksu jest trwałym podatkiem dla każdego, kto później czyta konfigurację. Zdecyduj, które z tych dwóch chcesz, zanim wybierzesz, gdzie interweniować.

Dwie rodziny adresów oznaczają dwie rundy tego sprawdzenia. Pule IPv6 zderzają się tak cicho jak IPv4.

Daj każdemu profilowi właściciela

Jedna instancja na profil, jeden plik konfiguracyjny na instancję i jedna nazwa identyfikująca parę. W pakowaniu w stylu Debiana nazwa po znaku @ wybiera plik, dlatego dwa profile dzielące nazwę instancji nigdy nie mogą działać oba. Potwierdź mapowanie z zainstalowanej jednostki, a nie z poradnika.

systemctl cat [email protected]
ip -4 addr show

Potem zdecyduj, kto instaluje trasy, co jest kwestią polityki, a nie składni.

Gdy dwa serwery wypychają niezgodne zestawy, albo dodaj route-nopull i wymień tylko prefiksy potrzebne każdemu profilowi, albo pozwól jednemu zachować jego trasę domyślną i kieruj resztę regułą polityki. Dwa procesy, które oba instalują trasę domyślną, kończą z jednym zwycięzcą i nikt nie potrafi powiedzieć dlaczego. Gdy dwa tunele niosą ruch różnych źródeł, odpowiedź może wyjść przez niewłaściwy, a wzorzec, który się utrzymuje, to znacznik połączenia przywracany na odpowiedziach i kierowany do własnej tabeli. Ogranicz znaczniki, aby własne zaszyfrowane pakiety tuneli nigdy z nimi nie pasowały.

Sprawdź każdy tunel, a potem zatrzymaj jeden

Gdy oba są w górze, weź trzy odczyty: adres na każdym urządzeniu tunelowym, trasę do hosta, który żyje za każdym z nich, i drogę, którą wybrałby cel poza oboma. Zwykła lista tras przestaje opisywać końcowe wyszukiwanie, gdy tylko do gry wchodzą reguły, więc zapytaj jądro, co naprawdę by wybrało. Potem zatrzymaj jedną instancję i zobacz, co znika. Jeśli zatrzymanie pierwszej zakłóca drugą, coś jest nadal wspólne: trasa, nazwa urządzenia lub reguła zapory, której nikt nie rozdzielił.

ip rule show
ip route get 203.0.113.9

Przywróć zatrzymany profil i powtórz te same sprawdzenia, bo tunel, który działa raz po restarcie i nigdy więcej, to błąd cyklu życia w kostiumie routingu.

Zapisz w notatkach wdrożeniowych, który profil posiada który prefiks, obok zakresów pul. Dwa tunele to zamierzony układ, a następny czytelnik musi widzieć granicę, zanim dotknie któregokolwiek profilu. Bez tej notatki granicę odkrywa na nowo ten, kto ma dyżur, gdy wspólny prefiks w końcu się psuje.

Powiązane artykuły