znaczacy > comp.os.* > comp.os.linux.sieci

Sławomir Wysocki (25.10.2010, 13:40)
Witam.

Przy połączeniu zza NAT (gdy robię to z serwera, na którym jest NATto
problem nie występuje) z niektórymi stronami (np. )
mam bardzo dziwną sesję TCP i efekt w postaci zerwanego połączenia.

Na wyjściu do Internetu mam:

12:27:24.130677 IP 91.200.36.50.1522 > 212.77.100.193.http: S
3864377736:3864377736(0) win 65535 <mss 1452,nop,nop,sackOK>
12:27:24.294491 IP 212.77.100.193.http > 91.200.36.50.1522: S
2600825279:2600825279(0) ack 3864377737 win 49368 <mss
1460,nop,nop,sackOK>
12:27:24.294514 IP 212.77.100.193.http > 91.200.36.50.1522: . ack 1
win 49368
12:27:24.294535 IP 91.200.36.50.1522 > 212.77.100.193.http: R
3864377737:3864377737(0) win 0
12:27:24.294849 IP 91.200.36.50.1522 > 212.77.100.193.http: . ack 1
win 65535
12:27:24.295015 IP 91.200.36.50.1522 > 212.77.100.193.http: P
1:605(604) ack 1 win 65535
12:27:27.165164 IP 91.200.36.50.1522 > 212.77.100.193.http: P
1:605(604) ack 1 win 65535
12:27:27.295748 IP 212.77.100.193.http > 91.200.36.50.1522: R 1:1(0)
ack 605 win 0
12:27:27.295758 IP 212.77.100.193.http > 91.200.36.50.1522: R 1:1(0)
ack 605 win 0

W loklanej sieci mam:

12:27:24.130677 IP 91.200.36.50.1522 > 212.77.100.193.http: S
3864377736:3864377736(0) win 65535 <mss 1452,nop,nop,sackOK>
12:27:24.294491 IP 212.77.100.193.http > 91.200.36.50.1522: S
2600825279:2600825279(0) ack 3864377737 win 49368 <mss
1460,nop,nop,sackOK>
12:27:24.294514 IP 212.77.100.193.http > 91.200.36.50.1522: . ack 1
win 49368
12:27:24.294535 IP 91.200.36.50.1522 > 212.77.100.193.http: R
3864377737:3864377737(0) win 0
12:27:24.294849 IP 91.200.36.50.1522 > 212.77.100.193.http: . ack 1
win 65535
12:27:24.295015 IP 91.200.36.50.1522 > 212.77.100.193.http: P
1:605(604) ack 1 win 65535
12:27:27.165164 IP 91.200.36.50.1522 > 212.77.100.193.http: P
1:605(604) ack 1 win 65535
12:27:27.295748 IP 212.77.100.193.http > 91.200.36.50.1522: R 1:1(0)
ack 605 win 0
12:27:27.295758 IP 212.77.100.193.http > 91.200.36.50.1522: R 1:1(0)
ack 605 win 0

Zastanawia mnie ten fragment:

12:27:24.294514 IP 212.77.100.193.http > 91.200.36.50.1522: . ack 1
win 49368
12:27:24.294535 IP 91.200.36.50.1522 > 212.77.100.193.http: R
3864377737:3864377737(0) win 0

Dlaczego serwer, z którym się łączę wysyła ACK, przecież sesja powinna
wyglądać:

Klient -SYN-> Serwer
Klient <-SYN-ACK- Serwer
Klient -ACK-> Serwer

A w tym błędnym przypadku mamy:

Klient -SYN-> Serwer
Klient <-SYN-ACK- Serwer
Klient <-ACK- Serwer

Czyli serwer wysyła ACK, a nie powinien. Spotkał się ktoś z czymś
takim? Co dziwne jak łączę się z serwera linksem, to problem nie
występuje.
Piotr \Charvel\ Majka (25.10.2010, 14:02)
W dniu 2010-10-25 13:40, Sławomir Wysocki pisze:
> Witam.
> Przy połączeniu zza NAT (gdy robię to z serwera, na którym jest NAT to
> problem nie występuje) z niektórymi stronami (np. )
> mam bardzo dziwną sesję TCP i efekt w postaci zerwanego połączenia.


[cut]

Masz włączone window scaling? (sysctl -a | grep window_scaling)
Jak tak, to wyłącz i spróbuj ponownie
Sławomir Wysocki (25.10.2010, 14:17)
On 25 Paź, 14:02, "Piotr \"Charvel\" Majka"
<char> wrote:
> Masz włączone window scaling? (sysctl -a | grep window_scaling)
> Jak tak, to wyłącz i spróbuj ponownie


Wyłączyłem, mam teraz:

net.ipv4.tcp_window_scaling = 0

No ale dalej mam kichę:

14:12:45.207444 IP 91.200.36.50.2639 > 212.77.100.193.http: S
176590887:176590887(0) win 65535 <mss 1452,nop,nop,sackOK>
14:12:45.357743 IP 212.77.100.193.http > 91.200.36.50.2639: S
1685370985:1685370985(0) ack 176590888 win 49368 <mss
1460,nop,nop,sackOK>
14:12:45.357756 IP 212.77.100.193.http > 91.200.36.50.2639: . ack 1
win 49368
14:12:45.357771 IP 91.200.36.50.2639 > 212.77.100.193.http: R
176590888:176590888(0) win 0

Ma może ktoś jeszcze jakieś pomysły?
Sławomir Wysocki (26.10.2010, 08:41)
Pomogła podmiana kernela na nowszy. Dalej nic nie rozumiem (skąd ta
dziwna sesja TCP), ale najważniejsze, że teraz (przynajmniej na razie)
działa.
Podobne wątki