Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Jul 2007 15:13:12 +0300
From:      Artyom Viklenko <artem@aws-net.org.ua>
To:        Mihai Tanasescu <mihai@duras.ro>
Cc:        freebsd-net@freebsd.org
Subject:   Re: MPD and fragmentation
Message-ID:  <46A88FD8.5010200@aws-net.org.ua>
In-Reply-To: <46A85E54.5090303@duras.ro>
References:  <46A7B14B.4000603@duras.ro> <46A83A91.9090803@aws-net.org.ua> <46A85E54.5090303@duras.ro>

next in thread | previous in thread | raw e-mail | index | archive | help
Mihai Tanasescu wrote:
> Artyom Viklenko wrote:
>> If you use PF, try to add rule
>>
>> scrub in all fragment rassemble no-df
>>
>> And VERY carefully check your ruleset. May be you block icmp in some 
>> place
>> and PMTU doesn't work.
>>
>> As as last resort you can add
>>  max-mss <some-size> to scrub rule. <some-size> may be some value in
>> range of 1300-1460.
>>
>> Sometimes it helps.
>>
> 
> Tried playing with the pf options.
> 
> I have removed from mpd the iface mtu option and now I only have set 
> iface mtu 1460.
> 
> Still when trying to access www.msn.com (and similar sites) I see with 
> tcpdump:

 From my systems www.msn.com resolves in 65.54.152.126.
When I connect from my book to my freebsd router with pptp - I see mtu 1396 bytes
on ng interface:

ng5: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1396
         inet 192.168.35.254 --> 192.168.35.1 netmask 0xffffffff

I connect to Internet via ADSL/PPPoE which runs to same freebsd router with mpd.
MTU is 1496. In pf I have

scrub in all fragment reassemble no-df max-mss 1452

so, mss is notaffected by max-mss when tcp connection establishes from notebook.

But www.msn.com sends packets with mss = 1356 bytes which corresponds with ng 
interface mtu of 1396.

router runs freebsd 5.5 with mpd 3.18 - yes, have plans to upgrade :)

in mpd.conf my pptp server configured with


pptp_std:
         set bundle enable compression
         set bundle disable multilink
         set bundle enable noretry
         set bundle max-logins 0
         set bundle enable radius-auth
         set bundle enable radius-acct
         set iface disable on-demand
         set iface disable proxy-arp
         set iface idle 1800
         set iface enable tcpmssfix
         set iface mtu 1460
         set iface enable radius-idle radius-session radius-route
         set link yes acfcomp protocomp
         set link yes pap
         set link enable chap-md5 chap-msv1 chap-msv2 chap
         set link mtu 1460
         set link mru 1460
         set link keep-alive 10 60
         set link max-redial -1
         set ipcp yes vjcomp
         set ipcp dns 192.168.32.253 192.168.32.254
         set ipcp nbns 192.168.32.253
         set ipcp ranges 192.168.35.254/32 192.168.35.1/28
         set ipcp enable radius-ip
         set ccp yes mppc
         set ccp yes mpp-e40
         set ccp yes mpp-e56
         set ccp yes mpp-e128
         set ccp yes mpp-stateless
         set pptp enable incoming
         set pptp disable originate
         set pptp disable windowing
         set pptp disable delayed-ack
         set radius retries 3
         set radius timeout 3
         set radius server 192.168.32.253 XXXXXXXXXXXXXXX 1812 1813
         set radius me 192.168.32.254
         set radius acct-update 300

All works fine. :)


> 
> After lowering the MSS from pf the communication started like this:
> 
> 11:25:02.980179 IP (tos 0x0, ttl 127, id 31152, offset 0, flags [DF], 
> proto: TCP (6), length: 48) 86.105.56.134.65390 > 207.68.183.32.80: S, 
> cksum 0x977a (correct), 942644994:942644994(0) win 65535 <mss 
> 1300,nop,nop,sackOK>
> (the outgoing mss got lowered to 1300)
> 
> 86.105.56.134 = my test IP address on which I'm NAT-ing packets from ng0 
> with pf
> 
> 11:25:03.190826 IP (tos 0x0, ttl  63, id 40014, offset 0, flags [none], 
> proto: TCP (6), length: 44) 207.68.183.32.80 > 86.105.56.134.65390: S, 
> cksum 0x5fb4 (correct), 3691466834:3691466834(0) ack 942644995 win 8190 
> <mss 1400>
> 11:25:03.191677 IP (tos 0x0, ttl 127, id 31155, offset 0, flags [DF], 
> proto: TCP (6), length: 40) 86.105.56.134.65390 > 207.68.183.32.80: ., 
> cksum 0x9733 (correct), 1:1(0) ack 1 win 65535
> 11:25:03.192210 IP (tos 0x0, ttl 127, id 31157, offset 0, flags [DF], 
> proto: TCP (6), length: 804) 86.105.56.134.65390 > 207.68.183.32.80: P 
> 1:765(764) ack 1 win 65535
> 11:25:03.422363 IP (tos 0x0, ttl  63, id 40290, offset 0, flags [DF], 
> proto: TCP (6), length: 1440) 207.68.183.32.80 > 86.105.56.134.65390: P 
> 1:1401(1400) ack 765 win 8190
> 11:25:03.422417 IP (tos 0x0, ttl  64, id 58490, offset 0, flags [DF], 
> proto: ICMP (1), length: 56) 86.105.56.134 > 207.68.183.32: ICMP 
> 86.105.56.134 unreachable - need to frag (mtu 1396), length 36
>        IP (tos 0x0, ttl  63, id 40290, offset 0, flags [DF], proto: TCP 
> (6), length: 1440) 207.68.183.32.80 > 86.105.56.134.65390: [|tcp]
> 
> The is the ng0 established MTU:
> 
> ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1396
>        inet 192.168.1.129 --> 192.168.1.130 netmask 0xffffffff
> 
> I have upgraded MPD to 4.2
> 
> pkg_info | grep mpd
> mpd-4.2.2           Multi-link PPP daemon based on netgraph(4)
> 
> I have disabled windowing:
> set pptp disable windowing
> 
> I have enabled the multilink for a test:
> set bundle enable multilink
> 
> The Ethernet interface (rl0 - 86.105.56.134) that is used both as the 
> endpoint for tunnel connections and for NAT for anything not destined to 
> the local net:
> rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> 
> Also I'm upgrading the system today from 6.1 to 6.2.
> 
> I tried transferring data inside my net without going through the pf NAT 
> but unfortunately I'm not seeing any problem here that could help me 
> replicate the icmp unreachable need frag mtu 1396 problem.
> 
> 
> Have you got any more ideas on what I should try ?


-- 
            Sincerely yours,
                             Artyom Viklenko.
-------------------------------------------------------
artem@aws-net.org.ua | http://www.aws-net.org.ua/~artem
FreeBSD: The Power to Serve   -  http://www.freebsd.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46A88FD8.5010200>