Przekazywanie ścieżki zwrotnej
Przekazywanie ścieżki zwrotnej (RPF) to technika stosowana w nowoczesnych routerach w celu zapewnienia wolnego od pętli przekazywania pakietów multiemisji w routingu multiemisji i zapobiegania fałszowaniu adresów IP w routingu emisji pojedynczej .
W standardowym routingu IP typu unicast router przekazuje pakiet dalej od źródła, aby posuwać się naprzód w drzewie dystrybucji i zapobiegać pętlom routingu. Natomiast stan przekazywania multiemisji routera działa bardziej logicznie, organizując tabele w oparciu o ścieżkę zwrotną, od odbiornika z powrotem do korzenia drzewa dystrybucji u źródła multiemisji. Takie podejście jest znane jako przekierowanie w odwrotnej ścieżce.
Multiemisja RPF
Multicast RPF, zwykle oznaczany po prostu jako RPF, jest używany w połączeniu z protokołem routingu multiemisji, takim jak Multicast Source Discovery Protocol lub Protocol Independent Multicast, aby zapewnić bezpętlowe przekazywanie pakietów multiemisji. W routingu multiemisji decyzja o przekazywaniu ruchu jest podejmowana na podstawie adresu źródłowego, a nie adresu docelowego, jak w przypadku routingu unicast. Robi to, wykorzystując dedykowaną tablicę routingu multiemisji lub, alternatywnie, tablicę routingu emisji pojedynczej routera.
Gdy pakiet multiemisji wchodzi do interfejsu routera, router wyszukuje listę sieci dostępnych za pośrednictwem tego interfejsu (tzn. sprawdza ścieżki, którymi pakiet mógł dotrzeć). Jeśli router znajdzie pasujący wpis routingu dla źródłowego adresu IP pakietu multiemisji, sprawdzanie RPF kończy się pomyślnie i pakiet jest przekazywany do wszystkich innych interfejsów uczestniczących w tej grupie multiemisji. Jeśli sprawdzenie RPF zakończy się niepowodzeniem, pakiet zostanie odrzucony. W rezultacie o przesłaniu pakietu decyduje się na podstawie ścieżki zwrotnej pakietu, a nie ścieżki wysyłania. Przekierowując tylko pakiety, które wchodzą do interfejsu, który zawiera również wpis routingu dla źródła pakietu, zapobiega się pętlom.
Jest to niezwykle ważne w redundantnych topologiach multiemisji. Ponieważ ten sam pakiet multiemisji może dotrzeć do tego samego routera za pośrednictwem wielu interfejsów, sprawdzanie RPF jest integralną częścią decyzji o przekazywaniu pakietów. Jeśli router przekazał wszystkie pakiety przychodzące z interfejsu A do interfejsu B, a także wszystkie pakiety przychodzące z interfejsu B do interfejsu A i oba interfejsy odbierają ten sam pakiet, utworzy się pętla routingu, w której pakiety będą przekazywane w obu kierunkach do wygasają ich IP TTL . Najlepiej unikać pętli routingu, ponieważ niepotrzebnie zużywają one zasoby sieciowe.
Podstawowe założenia kontroli RPF są następujące:
- tablica routingu unicast jest poprawna i stabilna oraz,
- ścieżka używana od nadawcy do routera i ścieżka zwrotna od routera z powrotem do nadawcy są symetryczne.
Jeśli pierwsze założenie jest fałszywe, sprawdzenie RPF zakończy się niepowodzeniem, ponieważ jest zależne od tablicy routingu emisji pojedynczej routera jako rezerwy. Jeśli drugie założenie jest fałszywe, kontrola RPF odrzuciłaby ruch multiemisji na całej ścieżce od nadawcy do routera z wyjątkiem najkrótszej, co doprowadziłoby do nieoptymalnego drzewa multiemisji. W przypadkach, gdy powiązania są jednokierunkowe, podejście odwrotnej ścieżki może całkowicie zawieść.
RPF emisji pojedynczej
Unicast RPF (uRPF), zgodnie z definicją zawartą w RFC 3704, jest ewolucją koncepcji, zgodnie z którą ruch ze znanych nieprawidłowych sieci nie powinien być akceptowany na interfejsach, z których nigdy nie powinien był pochodzić. Pierwotny pomysł, jak widać w RFC 2827, polegał na blokowaniu ruchu na interfejsie, jeśli pochodzi on ze sfałszowanych adresów IP. Rozsądnym założeniem dla wielu organizacji jest po prostu zabronienie propagacji adresów prywatnych w ich sieciach, chyba że są one jawnie używane. Jest to wielka korzyść dla szkieletu Internetu, ponieważ blokowanie pakietów z oczywiście fałszywych adresów źródłowych pomaga ograniczyć fałszowanie adresów IP, które jest powszechnie stosowane w DoS , DDoS i skanowanie sieciowe w celu zaciemnienia źródła skanowania.
uRPF rozszerza tę ideę, wykorzystując wiedzę, którą wszystkie routery muszą posiadać w swojej bazie informacji o routingu (RIB) lub bazie informacji o przekazywaniu (FIB), aby wykonywać swoje podstawowe zadanie, aby jeszcze bardziej ograniczyć możliwe adresy źródłowe, które powinny być widoczne w interfejsie. Pakiety są przekazywane tylko wtedy, gdy pochodzą z najlepszej trasy routera do źródła pakietu. Pakiety przychodzące do interfejsu pochodzą z prawidłowych podsieci, jak wskazuje odpowiedni wpis w tablicy routingu, są przekazywane. Pakiety z adresami źródłowymi, które nie mogły dostępne za pośrednictwem interfejsu wejściowego można usunąć bez zakłócania normalnego użytkowania, ponieważ prawdopodobnie pochodzą one ze źle skonfigurowanego lub złośliwego źródła.
W przypadku rutowania symetrycznego, czyli rutowania, w którym pakiety przepływają w obu kierunkach tą samą ścieżką oraz sieci terminali połączonych pojedynczym łączem, jest to bezpieczne założenie i uRPF może zostać zaimplementowany bez wielu przewidywanych problemów. Używanie uRPF jak najbliżej rzeczywistego źródła ruchu zatrzymuje również sfałszowany ruch, zanim będzie miał jakąkolwiek szansę na wykorzystanie przepustowości lub dotarcie do routera, który nie jest skonfigurowany dla RPF, a zatem jest niewłaściwie przekazywany.
Niestety często zdarza się, że w przypadku większej sieci szkieletowej Internetu routing jest asymetryczny i nie można polegać na tablicach routingu, które wskazują najlepszą trasę dla źródła do routera. Tabele routingu określają najlepszą ścieżkę do przodu i tylko w przypadku symetrycznym odpowiada to najlepszej ścieżce do tyłu. Podczas wdrażania uRPF ważne jest, aby mieć świadomość potencjalnej asymetrii, aby zapobiec przypadkowemu filtrowaniu legalnego ruchu.
Dokument RFC 3704 podaje więcej szczegółów na temat rozszerzenia ścisłego przekazywania po ścieżce zwrotnej, aby objąć kilka bardziej zrelaksowanych przypadków, które nadal mogą być korzystne, dopuszczając przynajmniej pewną asymetrię.
Tryb ścisły
W trybie ścisłym każdy pakiet przychodzący jest testowany pod kątem FIB i jeśli interfejs przychodzący nie jest najlepszą ścieżką zwrotną, sprawdzenie pakietu zakończy się niepowodzeniem. Domyślnie pakiety zakończone niepowodzeniem są odrzucane.
Wykonalny tryb
W trybie wykonalnym FIB utrzymuje alternatywne trasy do danego adresu IP. Jeśli przychodzący pasuje do którejkolwiek z tras powiązanych z adresem IP, pakiet jest przekazywany dalej. W przeciwnym razie pakiet jest odrzucany.
Tryb luźny
W trybie luźnym adres źródłowy każdego przychodzącego pakietu jest testowany względem FIB. Pakiet jest odrzucany tylko wtedy, gdy adres źródłowy nie jest osiągalny przez żaden interfejs na tym routerze.
Filtrowanie a przekazywanie
filtrowanie ścieżki zwrotnej , szczególnie jeśli chodzi o routing unicast. Jest to zrozumiała alternatywna interpretacja akronimu, ponieważ gdy RPF jest używany z trasowaniem emisji pojedynczej, jak w RFC 3704, ruch jest dozwolony lub odrzucany na podstawie pomyślnego lub niepomyślnego sprawdzenia RPF. Myśl polega na tym, że ruch jest odrzucany, jeśli nie przejdzie kontroli RPF i dlatego jest filtrowany. Chociaż uRPF jest używany jako filtrowania ruchu przychodzącego, ma na niego wpływ przekazywanie ścieżki zwrotnej .
Filtry ścieżki zwrotnej są zwykle używane do wyłączania routingu asymetrycznego, gdy aplikacja IP ma inną ścieżkę routingu przychodzącego i wychodzącego. Jego celem jest zapobieżenie opuszczeniu pakietu wchodzącego do jednego interfejsu przez inne interfejsy. Filtrowanie w odwrotnej ścieżce jest funkcją jądra Linuksa .
Zobacz też
Notatki
Linki zewnętrzne
- Filtrowanie ruchu przychodzącego do sieci: pokonywanie ataków typu „odmowa usługi” wykorzystujących fałszowanie adresu źródłowego IP . RFC2827 . _
- Filtrowanie ruchu przychodzącego dla sieci wieloadresowych . RFC3704 . _