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.
  • 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.
  • 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
  • Does anyone know if/how this is related to the 'Enable TCP Window scaling' selection on the 'Advanced' tab of 'Firewall'?

    Cheers - Bob
    PS Thanks for your help, kernelpanic, and welcome to the User BB!
  • Does anyone know if/how this is related to the 'Enable TCP Window scaling' selection on the 'Advanced' tab of 'Firewall'?


    I don't know, but TCP Window scaling is turned on since the beginning on my ASG.

    Here is the definition from the doc:

    "Enable TCP Window Scaling: The TCP receive window (RWin) size is the amount of received data (in bytes) that can be buffered during a connection. The sending host can send only that amount of data before it must wait for an acknowledgment and window update from the receiving host. For more efficient use of high bandwidth networks, a larger TCP window size may be used. However, the TCP window size field controls the flow of data and is limited to 2 bytes, or a window size of 65535 bytes. Since the size field cannot be expanded, a scaling factor is used. TCP window scaling is a kernel option of the TCP/IP stack and can be used to increase the maximum window size from 65535 bytes to 1 Gigabyte. Window scaling is enabled by default. However, since some network devices such as routers, load balancers, gateways, and so on still do not fully support window scaling, depending on your environment it might be necessary to turn it off."