No packets from MPD5

For a couple of days i've installed a brand-new FreeBSD 10.1 Release at my home server HP MicroServer N40L. Than I've installed from ports the net/mpd5 and configured a connection to an ISP, first using l2tp and than - pptp. In both cases the result was the same: the only program that is able to receive packets from the tunnel connection (interface ng0) is PF. All other programs could only send packets to the tunnel, but are unable to receive it.

Here is my mpd.conf for the l2tp connection:

Code:
startup:
set user <name> <pass>
set console self 127.0.0.1 5005
set console open
set web self 172.17.3.1 5006
set web open

default:
load l2tp_client

l2tp_client:
create bundle static INET-B
set iface enable tcpmssfix
set iface mtu 1400

# Link
create link l1 l2tp
set link action bundle INET-B
set link max-redial 0
set link mtu 1400
set link mru 1400
set l2tp peer <l2tp_server>
set auth authname <my_name>
open
For testing of a tcp connection i've used the command ftp ftp.yandex.ru. The ftp server was not connected. Follow traffic was logged at ng0:
tcpdump -i ng0 -vvv host ftp.yandex.ru
Code:
[NOPARSE]
01:24:15.376780 IP (tos 0x0, ttl 64, id 9182, offset 0, flags [DF], proto TCP (6), length 60)
X.X.X.X.18211 > mirror.yandex.ru.ftp: Flags [S], cksum 0x30ab (correct), seq 1575215393, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 51127810 ecr 0], lX.X.X.Xength 0
01:24:15.389104 IP (tos 0x0, ttl 57, id 20534, offset 0, flags [none], proto TCP (6), length 60)
mirror.yandex.ru.ftp > X.X.X.X.18211: Flags [S.], cksum 0x078d (correct), seq 2746157114, ack 1575215394, win 43338, options [mss 1300,sackOK,TS val 496809586 ecr 51127810,nop,wscale 12], length 0
01:24:16.788631 IP (tos 0x0, ttl 57, id 20535, offset 0, flags [none], proto TCP (6), length 60)
mirror.yandex.ru.ftp > X.X.X.X.18211: Flags [S.], cksum 0x062f (correct), seq 2746157114, ack 1575215394, win 43338, options [mss 1300,sackOK,TS val 496809936 ecr 51127810,nop,wscale 12], length 0
01:24:18.425590 IP (tos 0x0, ttl 64, id 9189, offset 0, flags [DF], proto TCP (6), length 60)
X.X.X.X.18211 > mirror.yandex.ru.ftp: Flags [S], cksum 0x24c1 (correct), seq 1575215393, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 51130860 ecr 0], length 0
01:24:18.437909 IP (tos 0x0, ttl 57, id 20536, offset 0, flags [none], proto TCP (6), length 60)
mirror.yandex.ru.ftp > X.X.X.X.18211: Flags [S.], cksum 0x0493 (correct), seq 2746157114, ack 1575215394, win 43338, options [mss 1300,sackOK,TS val 496810348 ecr 51127810,nop,wscale 12], length 0
01:24:18.988711 IP (tos 0x0, ttl 57, id 20537, offset 0, flags [none], proto TCP (6), length 60)
mirror.yandex.ru.ftp > X.X.X.X.18211: Flags [S.], cksum 0x0409 (correct), seq 2746157114, ack 1575215394, win 43338, options [mss 1300,sackOK,TS val 496810486 ecr 51127810,nop,wscale 12], length 0
01:24:21.644590 IP (tos 0x0, ttl 64, id 9199, offset 0, flags [DF], proto TCP (6), length 60)
X.X.X.X.18211 > mirror.yandex.ru.ftp: Flags [S], cksum 0x182e (correct), seq 1575215393, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 51134079 ecr 0], length 0
01:24:21.656910 IP (tos 0x0, ttl 57, id 20538, offset 0, flags [none], proto TCP (6), length 60)
mirror.yandex.ru.ftp > X.X.X.X.18211: Flags [S.], cksum 0x016e (correct), seq 2746157114, ack 1575215394, win 43338, options [mss 1300,sackOK,TS val 496811153 ecr 51127810,nop,wscale 12], length 0
[/NOPARSE]
For testing of udp i've used a dns request: nslookup google.com 8.8.8.8. Unfortunately the result was the same: ;; connection timed out; no servers could be reached
Follow traffic at ng0 was logged: tcpdump -i ng0 host 8.8.8.8
Code:
[NOPARSE]
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ng0, link-type NULL (BSD loopback), capture size 65535 bytes
17:17:52.575879 IP X.X.X.X.10513 > google-public-dns-a.google.com.domain: 12677+ A? google.com. (28)
17:17:52.606329 IP google-public-dns-a.google.com.domain > X.X.X.X.10513: 12677 15/0/0 A 195.98.65.185, A 195.98.65.157, A 195.98.65.155, A 195.98.65.147, A 195.98.65.181, A 195.98.65.143, A 195.98.65.170, A 195.98.65.151, A 195.98.65.173, A 195.98.65.166, A 195.98.65.162, A 195.98.65.187, A 195.98.65.177, A 195.98.65.158, A 195.98.65.172 (268)
17:17:57.577442 IP X.X.X.X.10513 > google-public-dns-a.google.com.domain: 12677+ A? google.com. (28)
17:17:57.589621 IP google-public-dns-a.google.com.domain > X.X.X.X.10513: 12677 15/0/0 A 195.98.65.185, A 195.98.65.157, A 195.98.65.155, A 195.98.65.147, A 195.98.65.181, A 195.98.65.143, A 195.98.65.170, A 195.98.65.151, A 195.98.65.173, A 195.98.65.166, A 195.98.65.162, A 195.98.65.187, A 195.98.65.177, A 195.98.65.158, A 195.98.65.172 (268)
17:18:02.594181 IP X.X.X.X.10513 > google-public-dns-a.google.com.domain: 12677+ A? google.com. (28)
17:18:02.606505 IP google-public-dns-a.google.com.domain > X.X.X.X.10513: 12677 15/0/0 A 195.98.65.185, A 195.98.65.157, A 195.98.65.155, A 195.98.65.147, A 195.98.65.181, A 195.98.65.143, A 195.98.65.170, A 195.98.65.151, A 195.98.65.173, A 195.98.65.166, A 195.98.65.162, A 195.98.65.187, A 195.98.65.177, A 195.98.65.158, A 195.98.65.172 (268)
[/NOPARSE]
But when I setup a basic NAT using PF, all other PCs from my LAN are connected to the Internet. For example, I can do ftp ftp.yandex.ru form any other PC except the server and it works perfectly.
Do you have any ideas how to make the MPD5 works?

UPDATE
I just forgot to say, it is possible to ping all hosts from the server. ICMP traffic seems to go thru ng0 in both directions.
 
...

Here is my mpd.conf for the l2tp connection:
Code:
...
l2tp_client:
create bundle static INET-B
set iface enable tcpmssfix
set iface mtu 1400
...

Did you try already enabling proxy arp? On my L2TP server, I need this for the local services are accessible via L2TP. However, I do not know if this helps for L2TP clients as well.

Code:
...
l2tp_client:
create bundle static INET-B
set iface enable proxy-arp
set iface enable tcpmssfix
set iface mtu 1400
...
 
Back
Top