In the following setup, the VPN end-point running in server mode is located at a hosting provider and is using an official IP address. The VPN end-point running in client mode is located on a DSL router (linux host) which is using an official IP address.
If I do a:
Code: Select all
# ping -s 1472 -M do 172.18.18.6
Code: Select all
# ping -s 1473 -M do 172.18.18.6
Code: Select all
From 172.18.18.1 icmp_seq=1 Frag needed and DF set (mtu = 1500)
If I setup a regular (|icmp|==64) ping going from the server to the DSL connection, all pings are replied to in less than 15ms. At the same time, I run a ping (|icmp|==64) from the server to the DSL connection going over the VPN connection. Most pings are replied to in 17ms but there's periods when several pings are lost or stalled significantly while at the same time, the 'regular' ping (which is not going over the vpn connection) simply continues without any stalls or lost replies.
This is the ping which is not going over the VPN from the server to the DSL connection:
Code: Select all
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=75 ttl=61 time=12.6 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=76 ttl=61 time=12.5 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=77 ttl=61 time=12.5 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=78 ttl=61 time=12.6 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=79 ttl=61 time=12.5 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=80 ttl=61 time=12.6 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=81 ttl=61 time=12.4 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=82 ttl=61 time=12.4 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=83 ttl=61 time=12.6 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=84 ttl=61 time=12.3 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=85 ttl=61 time=12.8 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=86 ttl=61 time=12.3 ms
64 bytes from dsl.hostname (dsl.ipa.ddr.ess): icmp_seq=87 ttl=61 time=13.0 ms
This is the ping from the same server to the same DSL connectiong going over the VPN connection:
Code: Select all
64 bytes from 172.18.18.6: icmp_seq=76 ttl=64 time=14.4 ms
64 bytes from 172.18.18.6: icmp_seq=77 ttl=64 time=14.5 ms
64 bytes from 172.18.18.6: icmp_seq=78 ttl=64 time=14.5 ms
64 bytes from 172.18.18.6: icmp_seq=79 ttl=64 time=14.6 ms
64 bytes from 172.18.18.6: icmp_seq=82 ttl=64 time=1013 ms
64 bytes from 172.18.18.6: icmp_seq=80 ttl=64 time=5017 ms
64 bytes from 172.18.18.6: icmp_seq=87 ttl=64 time=1015 ms
64 bytes from 172.18.18.6: icmp_seq=86 ttl=64 time=3016 ms
64 bytes from 172.18.18.6: icmp_seq=83 ttl=64 time=9020 ms
64 bytes from 172.18.18.6: icmp_seq=92 ttl=64 time=1016 ms
64 bytes from 172.18.18.6: icmp_seq=90 ttl=64 time=4018 ms
64 bytes from 172.18.18.6: icmp_seq=96 ttl=64 time=1014 ms
Both pings were started at the same time.
This is the server config:
Code: Select all
cd /etc/openvpn/config_dir
local off.ici.al.ip
port 29302
proto udp
dev tun7
hand-window 240
ca ca.crt
cert HS.crt
key HS.key
dh dh2048.pem
; tun
server 172.18.18.0 255.255.255.0
route 172.18.17.0 255.255.255.0
push "route 172.18.21.0 255.255.255.0"
push "dhcp-option DNS 172.18.21.252"
client-config-dir ccd
keepalive 10 180
cipher AES-256-CBC
comp-lzo no
max-clients 128
persist-key
persist-tun
ifconfig-pool-persist /var/run/openvpn/HS-ipp.txt
status /var/run/openvpn/HS-openvpn-status.log
verb 3
mute 13
Code: Select all
cd /etc/openvpn/client_conf
client
dev tun5
proto udp
remote off.ici.al.ip 29302
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca ca.crt
cert DSL_1.crt
key DSL_1.key
cipher AES-256-CBC
comp-lzo
verb 3
I don't see any special messages logged. If I use "verb 6", then, on the DSL connection I see the UDP packets come in, get transferred/unpacked to ICMP, receive an ICMP response which is transferred/packed to UDP and sent back over the DSL link. Iirc, the UDP packets are 133 octets in size.
I've played with mssfix, tun-mtu and fragment but to no avail. I've run the same VPN over (non-preferable) TCP but the behaviour is more or less the same.
Should I accuse my ISP of traffic shaping of some sort?