Co to jest tabela z maglami w iptables?

28

Używam iptable reguł do filtrowania i manipulowania pakietami na moim serwerze Ubuntu. ale nie rozumiem tabeli maglów.

Cytując z tego samouczka iptables :

Ta tabela powinna, jak już zauważyliśmy, być używana głównie do zniekształcania pakietów. Innymi słowy, możesz swobodnie używać dopasowań mangle itp., Których można używać do zmiany pól TOS (Type of Service) i tak dalej.

Zdecydowanie odradzamy korzystanie z tej tabeli do filtrowania; w tej tabeli nie będą również działać DNAT, SNAT ani Maskarada.

Czy ktoś może mi opisać tabelę maglową i podać przykłady, aby zrozumieć, kiedy powinienem z niej skorzystać?

pylover
źródło
6
iptables(8)Strona człowiek ma wszystkich potrzebnych informacji, w tym kilka przykładów miłe z przekształceń użytkowania stołu.
Michael Hampton

Odpowiedzi:

23

Oprócz innych dobrych odpowiedzi, ostatnio musiałem użyć tabeli maglowania, aby skorygować rozbieżności MTU (maksymalna jednostka nadawcza) spowodowane ruchem przychodzącym przez PPPoE, PPP i ATM, z których każde powoduje dodatkowe obciążenie, które zmniejsza ładowność dostępną dla IP ze zwykłych 1500 bajtów ramki Ethernet.

Systemy na każdym końcu potoku, co jest normalne, miałyby MTU o wartości domyślnej 1500, więc próbowałyby wysłać tak duże ramki IP. Ponieważ rzeczywisty dostępny rozmiar ładunku był mniejszy, spowodowałoby to fragmentację pakietów, z tym wyjątkiem, że często nadawca zażąda, aby pakiety nie były pofragmentowane, i w rezultacie zostaną całkowicie odrzucone.

W idealnym świecie odkrycie ścieżki MTU pozwoliłoby punktom końcowym na dostosowanie ich MTU w dół w razie potrzeby, ale to odkrycie zależy od ICMP, a sieci poza moją kontrolą były często skonfigurowane do usuwania ICMP ze względów bezpieczeństwa.

Jedynym wyborem było użycie manglingu pakietów w moim routerze w celu zmodyfikowania pakietów TCP SYN w celu zmniejszenia maksymalnego rozmiaru segmentu w warstwie transportowej:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452

Tego rodzaju rzeczy są niechlujne i idealnie należy ich unikać, ale nie miałem innych opcji i to rozwiązało problem.

Mam nadzieję, że te przykłady pomogą, podobnie jak strona podręcznika.

Kevin
źródło
23

Niedawno znalazłem dobre wyjaśnienie tutaj . Zasadniczo służy do ustawiania określonych nagłówków dla pakietów IP, aby wpływać na decyzję o routingu podjętą dalej. Jeśli tak, opcja TTL jest prawdopodobnie najciekawsza:

Cel TTL służy do zmiany pola TTL (Time To Live) pakietu. Możemy powiedzieć pakietom, aby miały tylko określony czas TTL i tak dalej. Jednym z dobrych powodów może być to, że nie chcemy zdradzać wścibskich dostawców usług internetowych. Niektórzy dostawcy usług internetowych nie lubią użytkowników obsługujących wiele komputerów na jednym połączeniu, a niektórzy dostawcy usług internetowych wiedzą, że szukają jednego hosta generującego różne wartości TTL i traktują to jako jeden z wielu znaków wielu komputerów podłączonych do jednego połączenie.

Pozostałe cele to TOS, MARK, SECMARK, CONNSECMARK.

BubuIIC
źródło
4
Mangle jest także używany w QOS do obsługi oznaczania pakietów lub dystrybucji obciążenia danych w celu dystrybucji pakietów na różne trasy.
TomTom,
8

Jako noob iptables powiedziałbym: tablica mangle pozwala modyfikować niektóre specjalne wpisy w nagłówku pakietów. (takie jak: rodzaj usługi, czas wygaśnięcia) (pozwala także ustawić znaki specjalne i znaki kontekstu bezpieczeństwa)

iptablesnoob
źródło
2

Jest dobry głęboko nurkować, ale nie zbyt trudne do zrozumienia tutorial iptables tutaj .

Tabela mangle służy do zmiany nagłówków IP pakietu na różne sposoby. Na przykład możesz dostosować wartość TTL (Time to Live) pakietu, wydłużając lub skracając liczbę prawidłowych przeskoków sieciowych, które pakiet może wytrzymać. Inne nagłówki IP można zmieniać w podobny sposób.

Ta tabela może również umieszczać wewnętrzny „znak” jądra na pakiecie w celu dalszego przetwarzania w innych tabelach i za pomocą innych narzędzi sieciowych. Ten znak nie dotyka rzeczywistego pakietu, ale dodaje znak do reprezentacji pakietu przez jądro.

Bardzo mi pomogło, ponieważ wyjaśnia również, w jaki sposób wszystkie części pasują do siebie i przeszkadzają sobie.

rbennell
źródło