uRPF w ip_input.c FreeBSD

Reverse Path Filtering to mechanizm sprawdzający źródłowy adres w otrzymanym pakiecie z zawartością tablicy routingu.

Pakiet jest akceptowany do dalszej obróbki przez system jeśli:

Ten prosty test wykonany możliwie wcześnie uniemożliwia transmisję przez router pakietów ze sfałszowanym adresem IP i w przeciwieństwie do statycznych reguł zdefiniowanych w Twoim ulubionym filtrze pakietów mechanizm dostosowuje się przy zmianach w tablicy routingu.

Patch można zaaplikować do systemów:

Włączenie wykonywania testów odbywa się przez ustawienie wartości sysctl net.inet.ip.urpf na 1 lub 2 (domyślnie ustawiona jest na 0, jeśli chcesz to zmienić dodaj wpis net.inet.ip.urpf=1 do pliku /etc/sysctl.conf.

Ustawienie na 1 oznacza, że interfejs którym pakiet dotarł do systemu musi być tym, na który wskazuje wpis w tablicy routingu dla sieci z której dotarł.

Ustawienie na 2 nie sprawdza w ogóle interfejsów a jedynie fakt, czy pakiet nie pochodzi z sieci oznaczonej flagą REJECT lub BLACKHOLE.

Plik diff (do zaaplikowania w /usr/src/sys/netinet przez patch -p0 <ip_input.urpf.diff):

poprawna obsługa tras blackhole w Quagga bgpd dla FreeBSD

Patch powoduje, że trasy których next-hop ustawiony jest na Null0 (rekursywnie) są poprawnie rozwiązywane przez bgpd i instalowane w tablicy routingu FreeBSD.

Innymi słowy, potrzebujesz tego patcha jeśli chcesz skonfigurować tradycyjny BGP blackholing wskazując jako docelowy interfejs Null0. Możesz obejść problem ustawiając next-hop na adres z sieci 127/8, ale to mniej eleganckie ;)

OpenBGPd we FreeBSD

Grupa poprawek do pakietu OpenBGPd tak, by można jej było użyć na FreeBSD (i prawdopodobnie NetBSD). Obecnie w systemie portów dostępna jest już nowsza wersja tych patchy w związku z tym sugeruję zajrzenie do swojego /usr/ports/net/openbgpd.

v1.00 20/03/2005 19:15:00
Wersja PL
HTML
Wersja ENG
HTML