I have done some further investigating with tcpdump.
Pinging the clients VPN IP from the Server:
#Server# ping 10.8.176.10
PING 10.8.176.10 (10.8.176.10): 56 data bytes
64 bytes from 10.8.176.10: seq=0 ttl=64 time=40.479 ms
64 bytes from 10.8.176.10: seq=1 ttl=64 time=36.639 ms
64 bytes from 10.8.176.10: seq=2 ttl=64 time=38.457 ms
64 bytes from 10.8.176.10: seq=3 ttl=64 time=36.942 ms
64 bytes from 10.8.176.10: seq=4 ttl=64 time=35.444 ms
^C
--- 10.8.176.10 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 35.444/37.592/40.479 ms
#Server# tcpdump -i tun0 port not 42
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
19:59:19.854100 IP 10.8.176.1 > 10.8.176.10: ICMP echo request, id 11887, seq 0, length 64
19:59:19.894164 IP 10.8.176.10 > 10.8.176.1: ICMP echo reply, id 11887, seq 0, length 64
19:59:20.857988 IP 10.8.176.1 > 10.8.176.10: ICMP echo request, id 11887, seq 1, length 64
19:59:20.894369 IP 10.8.176.10 > 10.8.176.1: ICMP echo reply, id 11887, seq 1, length 64
19:59:21.868013 IP 10.8.176.1 > 10.8.176.10: ICMP echo request, id 11887, seq 2, length 64
19:59:21.906226 IP 10.8.176.10 > 10.8.176.1: ICMP echo reply, id 11887, seq 2, length 64
19:59:22.877969 IP 10.8.176.1 > 10.8.176.10: ICMP echo request, id 11887, seq 3, length 64
19:59:22.914671 IP 10.8.176.10 > 10.8.176.1: ICMP echo reply, id 11887, seq 3, length 64
19:59:23.888117 IP 10.8.176.1 > 10.8.176.10: ICMP echo request, id 11887, seq 4, length 64
19:59:23.923322 IP 10.8.176.10 > 10.8.176.1: ICMP echo reply, id 11887, seq 4, length 64
^C
10 packets captured
11 packets received by filter
0 packets dropped by kernel
#Client# tcpdump -i tun2 port not 42
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun2, link-type NULL (BSD loopback), capture size 65535 bytes
19:59:19.873469 IP 10.8.176.1 > 10.8.176.10: ICMP echo request, id 11887, seq 0, length 64
19:59:19.873490 IP 10.8.176.10 > 10.8.176.1: ICMP echo reply, id 11887, seq 0, length 64
19:59:20.873142 IP 10.8.176.1 > 10.8.176.10: ICMP echo request, id 11887, seq 1, length 64
19:59:20.873161 IP 10.8.176.10 > 10.8.176.1: ICMP echo reply, id 11887, seq 1, length 64
19:59:21.883108 IP 10.8.176.1 > 10.8.176.10: ICMP echo request, id 11887, seq 2, length 64
19:59:21.883127 IP 10.8.176.10 > 10.8.176.1: ICMP echo reply, id 11887, seq 2, length 64
19:59:22.893108 IP 10.8.176.1 > 10.8.176.10: ICMP echo request, id 11887, seq 3, length 64
19:59:22.893128 IP 10.8.176.10 > 10.8.176.1: ICMP echo reply, id 11887, seq 3, length 64
19:59:23.903204 IP 10.8.176.1 > 10.8.176.10: ICMP echo request, id 11887, seq 4, length 64
19:59:23.903224 IP 10.8.176.10 > 10.8.176.1: ICMP echo reply, id 11887, seq 4, length 64
^C
10 packets captured
49 packets received by filter
0 packets dropped by kernel
Pinging the clients local IP from the Server:
#Server# ping 192.168.179.49
PING 192.168.179.49 (192.168.179.49): 56 data bytes
^C
--- 192.168.179.49 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
#Server# tcpdump -i tun0 port not 42
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
20:02:27.754639 IP 10.8.176.1 > 192.168.179.49: ICMP echo request, id 41071, seq 0, length 64
20:02:28.758535 IP 10.8.176.1 > 192.168.179.49: ICMP echo request, id 41071, seq 1, length 64
20:02:29.768442 IP 10.8.176.1 > 192.168.179.49: ICMP echo request, id 41071, seq 2, length 64
20:02:30.778558 IP 10.8.176.1 > 192.168.179.49: ICMP echo request, id 41071, seq 3, length 64
^C
4 packets captured
4 packets received by filter
0 packets dropped by kernel
#Client# tcpdump -i tun2 port not 42
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun2, link-type NULL (BSD loopback), capture size 65535 bytes
^C
0 packets captured
19 packets received by filter
0 packets dropped by kernel
I noticed that if i remove the following route on the server, I don't even see any packets on the servers tun0 device:
route del -net 192.168.179.0 netmask 255.255.255.0 gw 10.8.176.10 dev tun0
However I see the packets as shown above if I set either one of the following routes:
route add -net 192.168.179.0 netmask 255.255.255.0 gw 10.8.176.1 dev tun0
route add -net 192.168.179.0 netmask 255.255.255.0 gw 10.8.176.10 dev tun0
Hence I am not sure, which one is correct. Does it need to point to the client or the server?
A sucessful ping from the clients network looks like this:
#PConClientNet# ping 192.168.178.1
PING 192.168.178.1 (192.168.178.1) 56(84) bytes of data.
64 bytes from 192.168.178.1: icmp_seq=1 ttl=62 time=46.8 ms
64 bytes from 192.168.178.1: icmp_seq=2 ttl=62 time=37.7 ms
64 bytes from 192.168.178.1: icmp_seq=3 ttl=62 time=38.0 ms
64 bytes from 192.168.178.1: icmp_seq=4 ttl=62 time=37.1 ms
^C
--- 192.168.178.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 37.143/39.923/46.816/3.994 ms
#Client# tcpdump -i tun2 port not 42
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun2, link-type NULL (BSD loopback), capture size 65535 bytes
21:12:19.614323 IP 10.8.176.10 > 192.168.178.1: ICMP echo request, id 65495, seq 1, length 64
21:12:19.660698 IP 192.168.178.1 > 10.8.176.10: ICMP echo reply, id 65495, seq 1, length 64
21:12:20.616381 IP 10.8.176.10 > 192.168.178.1: ICMP echo request, id 65495, seq 2, length 64
21:12:20.653595 IP 192.168.178.1 > 10.8.176.10: ICMP echo reply, id 65495, seq 2, length 64
21:12:21.618289 IP 10.8.176.10 > 192.168.178.1: ICMP echo request, id 65495, seq 3, length 64
21:12:21.655815 IP 192.168.178.1 > 10.8.176.10: ICMP echo reply, id 65495, seq 3, length 64
21:12:22.619498 IP 10.8.176.10 > 192.168.178.1: ICMP echo request, id 65495, seq 4, length 64
21:12:22.656127 IP 192.168.178.1 > 10.8.176.10: ICMP echo reply, id 65495, seq 4, length 64
^C
8 packets captured
35 packets received by filter
0 packets dropped by kernel
#Server# tcpdump -i tun0 port not 42
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
21:12:19.637454 IP 10.8.176.10 > fritz.box: ICMP echo request, id 65495, seq 1, length 64
21:12:19.637797 IP fritz.box > 10.8.176.10: ICMP echo reply, id 65495, seq 1, length 64
21:12:20.639194 IP 10.8.176.10 > fritz.box: ICMP echo request, id 65495, seq 2, length 64
21:12:20.639530 IP fritz.box > 10.8.176.10: ICMP echo reply, id 65495, seq 2, length 64
21:12:21.641769 IP 10.8.176.10 > fritz.box: ICMP echo request, id 65495, seq 3, length 64
21:12:21.642122 IP fritz.box > 10.8.176.10: ICMP echo reply, id 65495, seq 3, length 64
21:12:22.641092 IP 10.8.176.10 > fritz.box: ICMP echo request, id 65495, seq 4, length 64
21:12:22.641430 IP fritz.box > 10.8.176.10: ICMP echo reply, id 65495, seq 4, length 64
^C
8 packets captured
9 packets received by filter
0 packets dropped by kernel