Guest User!

You are not Sophos Staff.

This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

PPTP/PPPoA and Policy Routing, MTU issue?

I have a NIC set as a PPPoA/PPTP tunnel that connect to a PPTP VPN at my ISP (only way to get static IP from them). The MTU on it is 1500, also my WAN is Cable with MTU = 1500
The VPN "works".

To test it out I have setup a Policy Route such as:

Type: Interface route
Source network: my laptop host
Services: Any
Destination network: Internet
Target Interface: PPPoA VPN Interface

This work pretty well for ping, internet download etc, however I noticed two things:

1) Some website partially load or load forever, wireshark show a HTTP GET then a ACK back and nothing else.

2) I sometime see the message: "ICMP Fragmentation Needed"

Any ideas?

Thanks!


This thread was automatically locked due to age.
Parents
  • So, now I have to wonder what the MTU setting in the 'Advanced' section of an Interface definition does if not that.  Can anyone explain?

    Cheers - Bob
  • So, now I have to wonder what the MTU setting in the 'Advanced' section of an Interface definition does if not that.  Can anyone explain?


    The MTU setting tells Astaro to use a smaller packet size The machines behind the firewall will not know of the smaller MTU and won't adjust the MSS field in the tcp header. The MSS field instructs the remote host of the largest TCP packet that the sender can receive. The machines behind the firewall base the MSS on the MTU set on that machine. If you adjusted the MTU on all computers behind the firewall then the MSS would be set properly and everything would work.

    In theory MTU path discovery should correct for a link with a small MTU anywhere on the path between client and server. In practice it does not work. Too many firewalls drop the icmp packets needed to make MTU path discovery work. NAT can also break MTU path discovery.

    It is likely MTU path discovery worked between Astaro and the machines behind it. But the MSS was already set in the SYN packet. Also the machines behind Astaro wouldn't change the MSS as it is perfectly fine in tcp/ip land for the maximum packet size to be different for sending and receiving.
Reply
  • So, now I have to wonder what the MTU setting in the 'Advanced' section of an Interface definition does if not that.  Can anyone explain?


    The MTU setting tells Astaro to use a smaller packet size The machines behind the firewall will not know of the smaller MTU and won't adjust the MSS field in the tcp header. The MSS field instructs the remote host of the largest TCP packet that the sender can receive. The machines behind the firewall base the MSS on the MTU set on that machine. If you adjusted the MTU on all computers behind the firewall then the MSS would be set properly and everything would work.

    In theory MTU path discovery should correct for a link with a small MTU anywhere on the path between client and server. In practice it does not work. Too many firewalls drop the icmp packets needed to make MTU path discovery work. NAT can also break MTU path discovery.

    It is likely MTU path discovery worked between Astaro and the machines behind it. But the MSS was already set in the SYN packet. Also the machines behind Astaro wouldn't change the MSS as it is perfectly fine in tcp/ip land for the maximum packet size to be different for sending and receiving.
Children
  • So this is a persistant solution to my problem tested on v8.303:

    echo "iptables -I FORWARD 1 -o ppp+ -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmt" > /var/mdw/hooks/packetfilter_advanced
    chmod 400 /var/mdw/hooks/packetfilter_advanced

    Thanks Everyone!!

  • echo "iptables -I FORWARD 1 -o ppp+ -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmt" > /var/mdw/hooks/packetfilter_advanced
    chmod 400 /var/mdw/hooks/packetfilter_advanced


    According to the iptables docs this rule should be in the mangle table.

    iptables -I FORWARD -t mangle -o ppp+ -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu