Powtarzana historia mówi, że demon routingu na urządzeniu VPN w EC2 nauczy VPC jego zdalnych prefiksów, gdy tylko BGP się podniesie. Połowa z tego jest prawdą. Sesja się podnosi i nic w tabeli routingu VPC się przez to nie zmienia, dlatego pierwszym objawem jest zwykle podsieć, która po cichu wyrzuca ruch do czarnej dziury.

Miesza się tu dwie różne rzeczy: peering z serwerem routingu i instalowanie tras w tabeli.

Mit: podnieś BGP, a VPC nauczy się prefiksów

BGP to rozmowa między dwoma mówcami, a w tym projekcie mówcami są demon routingu na Twoim urządzeniu i punkt końcowy VPC Route Server, który AWS umieszcza w podsieci należącej do Ciebie. Ta rozmowa przenosi prefiksy. Nie dotyka tabeli routingu podsieci obciążeniowych, ponieważ te tabele uczą się tylko przez propagację, którą trzeba włączyć na każdej z nich. Dopóki to nie nastąpi, tkanka VPC nie wie nic o tym, co wie urządzenie.

Kroki konfiguracji są rozdzielone z pewnego powodu: skojarz, utwórz punkt końcowy, zestaw peering, a następnie włącz propagację.

Route Server to płaszczyzna sterowania, a nie tunel

Route Server nie szyfruje, nie przekazuje ani nie sprawdza ani jednego pakietu. Istnieje po to, by wymieniać BGP z urządzeniem i przekazywać wynikowe prefiksy tabelom routingu skonfigurowanym do ich odbioru. Płaszczyzna danych się nie zmienia: pakiety nadal wychodzą przez interfejs sieciowy urządzenia, podróżują przez jego VPN i wracają tą samą drogą.

To oznacza, że sprawdzanie źródła i celu na instancji przekazującej nadal ma znaczenie, ponieważ instancja przekazuje teraz ruch zaadresowany do kogoś innego.

Grupy zabezpieczeń i mechanizmy kontroli podsieci nadal dotyczą przekazywanego przepływu. Route Server nie zmusi urządzenia, które odrzuca ruch, do przekazywania go, ani nie naprawi brakującej trasy powrotnej po stronie zdalnej.

Propagacja jest dla każdej tabeli routingu, a nie dla całej VPC

Skojarzenie serwera routingu z VPC i włączenie propagacji w tabeli routingu to dwie decyzje, a tylko druga zmienia to, co robi podsieć. VPC z sześcioma tabelami routingu może odebrać propagowany prefiks w jednej, a nie w pozostałych pięciu, co jest dokładnie właściwe dla podsieci koncentratora i dokładnie tym, co daje zagadkowy wynik «działa w połowie». Nawet tam, gdzie propagacja jest włączona, konkurencyjna trasa może wygrać, ponieważ wybór trasy w VPC preferuje najdłuższy prefiks, a przy równej długości preferuje trasę statyczną nad propagowaną. Ta preferencja jest stosowana po cichu.

Sprawdź efektywną tabelę dla konkretnej podsieci, a nie listę prefiksów ogłaszanych przez urządzenie. API odpowiada na to pytanie bezpośrednio: aws ec2 associate-route-server i aws ec2 enable-route-server-propagation --route-table-id <id> to dwa kroki, o których ludzie zapominają, a aws ec2 describe-route-tables --route-table-ids <id> pokazuje, czy prefiks w ogóle dotarł jako wpis route server.

Urządzenie nadal przenosi każdy pakiet

Ogłaszanie osiągalności to nie to samo, co jej posiadanie. Sesja BGP może pozostać nawiązana, gdy VPN urządzenia jest wyłączony, a statyczne ogłoszenie, które nigdy się nie zmienia, wciąż ciągnie ruch w stronę martwej ścieżki. Route Server obsługuje wykrywanie awarii, takie jak BFD, ale sprawdza ono żywotność peera, a nie kondycję wszystkiego za nim.

Powiąż ogłoszenie z prawdziwą trasą zdalną: ogłaszaj prefiks, gdy tunel i sieć zdalna działają, i wycofuj go, gdy nie działają.

Wycofaj prefiks i zobacz, co się stanie

Testuj etapami, a ostatni etap zrób usunięciem. Potwierdź, że ogłoszenie dociera, prefiks pojawia się w każdej zamierzonej tabeli, urządzenie jest następnym hopem, przekazywanie przechodzi przez aktywny tunel, a strona zdalna odpowiada. Następnie wycofaj prefiks testowy albo zamknij zatwierdzony tunel i obserwuj, czy ruch przemieszcza się tam, gdzie mówi projekt. Zapisz tabele przed i po, dopóki test jest jeszcze otwarty.

Przeniesienie trasy na drugie urządzenie nie przenosi sesji, które niosła, ponieważ stan NAT i zapory pozostaje na pierwszym urządzeniu.

Dla stałego zestawu tuzina prefiksów trasy statyczne w tabelach VPC pozostają tańszą odpowiedzią. Route Server zasługuje na swoje miejsce, gdy lista prefiksów naprawdę się zmienia, a polityka wycofywania jest czymś, co potrafisz wyjaśnić osobie dyżurującej.

Powiązane artykuły