/ Linux Reviews / Networking / Kształtowanie Ruchu i Zaawansowany Routing HOWTO - en - pl Rozdział 13. Parametry sieciowe kernelaKernel ma wiele parametrów, które mogą być dopasowane stosowanie do potrzeb. Ponieważ domyślne wartości w 99% instalacji sprawdzają się dobrze, nie nazywamy tego HOWTO Zaawansowanym dla samej radości! W podkatalogu /proc/sys/net znajduje się wiele interesujących rzeczy i warto tam zajrzeć. Nie wszystko zostanie udokumentowane od razu, ale pracujemy nad tym. W międzyczasie, możesz rzucić okiem na źródła jądra i zapoznać się z plikiem Documentation/filesystems/proc.txt. Większość opcji opisano właśnie tam. (FIXME) 13.1. Filtrowanie trasy powrotnejDomyślnie, routery routują wszystko, nawet pakiety w oczywisty sposób nie należące do twojej sieci. Przykładem może być prywatna przestrzeń adresowa IP wyciekająca do Internetu. Jeśli masz interfejs z ustawioną trasą 195.96.96.0/24, nie spodziewasz się na nim raczej pakietów z adresami 212.64.94.1. Wielu ludzi chciałoby taką opcję wyłączyć, więc hakerzy kernela sprawili by było to proste. W katalogu /proc znajdują się pliki, w których możesz poinstruować kernel by zrobił to dla ciebie. Metoda nazywa się właśnie `Filtrowaniem trasy powrotnej' (ang. "Reverse Path Filtering"). W skrócie, jeśli pakiety odpowiedzi nie docierają interfejsem którym wyszło zapytanie, uznajemy pakiet za zagadkowy i powinniśmy go zignorować. Poniższy fragment włącza to filtrowanie dla wszystkich obecnych i przyszłych interfejsów:
# for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do > echo 2 > $i > done Kontynuując przykład z powyżej, jeśli pakiet dotarłby do rutera Linuksowego interfejsem eth1 twierdząc, że pochodzi z podsieci ISP+Biurowej, zostałby odrzucony. Podobnie, pakiet z podsieci Biura utrzymujący, że pochodzi zza ściany ogniowej również zostałby odrzucony. Powyżej opisano pełen filtr trasy powrotnej. Domyślnie, filtruje się tylko na podstawie adresów IP i bezpośrednio podłączonych sieci. Dzieje się tak dlatego, że filtrowanie nie działa dobrze przy routingu asymetrycznym (w którym pakiety przychodzą innym interfejsem a wychodzą innym, jak dzieje się na przykład w połączeniach satelitarnych lub używających routingu dynamicznego - BGP, OSPF lub RIP). Dane przychodzą łączem satelitarnym a odpowiedzi wychodzą jakimś rodzajem połączenia naziemnego. Jeśli taka sytuacja ma miejsce u ciebie (i prawdopodobnie wiesz o tym, jeśli tak jest) możesz wyłączyć rp_filter na interfejsie, którym odbierasz dane z łącza satelitarnego. Jeśli chcesz sprawdzić czy jakieś pakiety są odrzucane, w tym samym katalogu znajduje się plik log_martians, którym możesz spowodować logowanie takich pakietów za pomocą sysloga.
# echo 1 >/proc/sys/net/ipv4/conf/<interfacename>/log_martians FIXME: czy ustawienie plików conf/{default,all}/* wystarcza? - martijn
/ Linux Reviews / Networking / Kształtowanie Ruchu i Zaawansowany Routing HOWTO |