Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > pl.comp.os.linux > #47109

Re: Pakiety IP z nadwagą

From Mateusz Viste <mateusz@xyz.invalid>
Newsgroups pl.comp.os.linux
Subject Re: Pakiety IP z nadwagą
Date 2021-09-24 15:23 +0200
Organization . . .
Message-ID <20210924152340.2d76c7e0@mateusz.lan> (permalink)
References <20210923182520.6d6d4638@mateusz.lan> <20210923225053.6b0fca21@mateusz.lan> <614cfcfb$0$24051$65785112@news.neostrada.pl> <20210924085012.56367b6f@mateusz.lan> <614dc00d$0$526$65785112@news.neostrada.pl>

Show all headers | View raw


2021-09-24 o 14:09 +0200, marrgol napisał:
> On 24/09/2021 at 08.50, Mateusz Viste wrote:
> > Tak, ale skąd karta wie, że gdzieś po drodze nie ma zmniejszonego
> > MTU?  
> 
> Negocjuje MTU.  Wysyła największą ramkę (...)

To się nazywa Path MTU discovery, pisałem już o tym. To pierwsza rzecz,
którą wyłączyłem (sycctl net.ipv4.ip_no_pmtu_disc=1).

> Daję głowę, że 'ethtool -k' raportuje, a 'ethtool -K' zmienia te
> ustawienia, ale dlaczego to nie działa nie mam pojęcia…

Tak, to było to. Głupio szukałem (grepowałem) po "tso", a opcja nazywa
się "tcp-segmentation-offload". Wyłączyłem ją zatem tak:

# ethtool -K enp0s3 tcp-segmentation-offload off

I już pakiety są "normalne" (mniejsze lub równe MTU). Ale tak naprawdę,
to były normalne cały czas, a te bezbożne wielkości były zwyczajnym
przekłamaniem tcpdumpa. Tłumaczy to brak reakcji na moje zmiany opcji
MSS - segmenty "na kablach" po prostu cały czas miały normalne
rozmiary, nie ma i nie było tu żadnych wirtualnych jumbo frames (ani
żadnego Path MTU discovery).

Teraz dwie ciekawostki:

1. tcpdump pokazuje wielkie pakiety za sprawą optymalizacji: OS
przekazuje stream TCP karcie sieciowej, i dopiero ona go sobie
segmentuje. I to jest fajne i zrozumiałe. Ale te same "wielkie" pakiety
widać też na routerach po drodze, co zupełnie mnie zmyliło w moich
poszukiwaniach. Sądziłem, że host tylko routujący (czyli nie biorący
udziału w dialogu TCP) pokaże te faktyczne, prawdziwe pakiety. A wcale
nie. Dopiero wyłączenie tso na routerze pozwala zobaczyć rzeczywiste
pakiety.

2. Łapanie pakietów za pomocą socketu "raw" ustawionego na routerze po
drodze prowadzi do łapania tych ogromnych niby-pakietów, przez co
aplikacja widzi sfałszowane nagłówki TCP/IP. Jest to poniekąd pokłosie
punktu pierwszego - router (ip_forward=1) nie tylko routuje, ale też
segmentuje/desegmentuje wszystkie przechodzące przez niego pakiety
zawierające segmenty TCP. Kupa niepotrzebnej roboty.

Mateusz

Back to pl.comp.os.linux | Previous | NextPrevious in thread | Find similar


Thread

Pakiety IP z nadwagą Mateusz Viste <mateusz@xyz.invalid> - 2021-09-23 18:25 +0200
  Re: Pakiety IP z nadwagą Mateusz Viste <mateusz@xyz.invalid> - 2021-09-23 22:50 +0200
    Re: Pakiety IP z nadwagą marrgol <marrgol@address.invalid> - 2021-09-24 00:17 +0200
      Re: Pakiety IP z nadwagą Mateusz Viste <mateusz@xyz.invalid> - 2021-09-24 08:50 +0200
        Re: Pakiety IP z nadwagą marrgol <marrgol@address.invalid> - 2021-09-24 14:09 +0200
          Re: Pakiety IP z nadwagą Mateusz Viste <mateusz@xyz.invalid> - 2021-09-24 15:23 +0200

csiph-web