Resolved: T-Mobile Home Internet VPN Issue

  • Not just a great download but upload speed too.
  • Great cost-saving, the monthly bill reduced to half.
  • Wireless/Cableless setup.
  • Fewer setup devices (Modem + Router > Gateway), though Cox offers this too in a newer setup.
  • Portable WiFi, take it anywhere with you.
  • No monthly device rental fee.
  • Taxes are included in the price.
  • Totally win-win :).
  • Very slow connection.
  • Many sites don’t load, and eventually time out.
  • On some sites only the page title loads.

MTU (Maximum Transmission Unit): the Culprit

Solution

ping -D -g <sweepminsize> -G <sweepmaxsize> -h <sweepincrsize> yahoo.com where:
-g
Specify the size of ICMP payload to start with when sending sweeping pings.
-G Specify the maximum size of ICMP payload when sending sweeping pings.
-h Specify the number of bytes to increment the size of ICMP payload after each sweep when sending sweeping pings
NOTE: Considering our max MTU is limited to 1400 by gpd0 adapter, this is the command we will run:ping -D -g 1300 -G 1400 -h 2 yahoo.com
1. For Mac GP client: ifconfig can change virtual adapter MTU size:sudo ifconfig gpd0 mtu 13502. For Windows GP client 5.0.x and older: MTU can be changed by modifying PANGP virtual adapter MTU setting directly as follows:a. use netsh command to change the MTU size: (<index> is the virtual interface index, use 'netsh interface ipv4 show interfaces' to list all interface indexes and names)
netsh interface ipv4 set interface <index> mtu=1350
netsh interface ipv6 set interface <index> mtu=1350

b. use powershell command to automatically find out virtual interface and set mtu
powershell -Command "Get-WmiObject win32_networkadapter | where-object ServiceName -eq PanGpd | ForEach {netsh interface ipv4 set interface $_.InterfaceIndex mtu=1350; netsh interface ipv6 set interface $_.InterfaceIndex mtu=1350}"
NOTE: You need root/admin access to be able to change it through command line.Source: https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000PPbZCAW
#!/bin/bash
# lowering vpn gp mtu limit
echo $(date) Starting with delay…
sleep 60
ifconfig | grep mtu
echo ‘Setting gpd0 mtu’
ifconfig gpd0 mtu 1350
ifconfig gpd0 | grep mtu
echo ‘gpd0 mtu set’
<?xml version=”1.0" encoding=”UTF-8"?>
<!DOCTYPE plist PUBLIC “-//Apple Computer//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version=”1.0">
<dict>
<key>Label</key>
<string>com.local.vpn.gp.mtu</string>
<key>Program</key>
<string>/Users/akumar/workspace/scripts/vpn-gp-set.sh</string>
<key>StandardErrorPath</key>
<string>/Users/akumar/workspace/scripts/vpn-gp-set.err</string>
<key>StandardOutPath</key>
<string>/Users/akumar/workspace/scripts/vpn-gp-set.log</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

Additionals:

  • If you don’t see gpd0 interface in your ifconfig and your VPN app doesn’t let you configure the MTU through the GUI, you can also limit one of theutunX interface where X can be 0, 1, 2, etc. tun (short for tunneling) interfaces are created by Mac following VPN installation. Start with utun with the lowest MTU to further lower it to optimal MTU. You will have to play around with each utun to see which fixes your issue.

Humble Request To Readers🙏

Donation😇

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store