Приветствую всех !
Помогите настроить pptp.
На тачке в локальной сети с FreeBSD 6.0 настраиваю pptpclient для
подключения к MS VPN серверу в инете, через NAT настроеный на Gentoo
Linux. Имею один внешний айпишник. Чтоб неигратся с пробрасованием
портов, я искуственно вывел тачку с Фрей в инет. Для этого на Линуксовом
роутере выполняю:
ifconfig eth0:2 212.82.XXX.XXX
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A PREROUTING -d 212.82.XXX.XXX -j DNAT --to-destination 192.168.0.251
iptables -t nat -A POSTROUTING -s 192.168.0.251 -d ! 192.168.0.0/24 -j SNAT --to-source 212.82.XXX.XXX
212.82.XXX.XXX - свободный внешний айпишник.
192.168.0.251 - такчка с Фрей.
Настраиваю pptpclient на Фре:
root@freebsd# cat /etc/ppp/ppp.conf
default:
set log Phase Chat LCP IPCP CCP tun command
set timeout 0
set authname <нескажу>
set authkey <нескажу>
add 192.1.0.0/16 HISADDR #сетка там 192.1.0.0/16
enable MPPE
disable ipv6cp
accept MPPE
Звоню:
root@freebsd# pptp 62.64.XXX.XXX default
Появляется интерфейс tun0:
root@freebsd# ifconfig
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=9<RXCSUM,VLAN_MTU>
inet6 fe80::201:2ff:fe02:e275%xl0 prefixlen 64 scopeid 0x1
inet 192.168.0.251 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:01:02:02:e2:75
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
lo0: flags=8008<LOOPBACK,MULTICAST> mtu 16384
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1498
inet 192.1.1.203 --> 192.1.1.199 netmask 0xffffffff
Opened by PID 6863
Как видно тунель поднемается нормально, но при попытке пингануть шлюз, пакеты неприходят:
root@freebsd# ping 192.1.1.199
PING 192.1.1.199 (192.1.1.199): 56 data bytes
^C
--- 192.1.1.199 ping statistics ---
5769 packets transmitted, 0 packets received, 100% packet loss
При пинге 192.1.1.199 в /var/log/ppp.log появляется:
Jan 10 22:02:12 freebsd ppp[6863]: tun0: LCP: deflink: -- Protocol 0x5a6f (unrecognised protocol) was rejected!
Jan 10 22:02:14 freebsd ppp[6863]: tun0: LCP: deflink: RecvProtocolRej(67) state = Opened
Jan 10 22:02:14 freebsd ppp[6863]: tun0: LCP: deflink: -- Protocol 0x00bf (unrecognised protocol) was rejected!
Jan 10 22:02:15 freebsd ppp[6863]: tun0: LCP: deflink: RecvProtocolRej(68) state = Opened
Jan 10 22:02:15 freebsd ppp[6863]: tun0: LCP: deflink: -- Protocol 0xaa8b (unrecognised protocol) was rejected!
Jan 10 22:02:16 freebsd ppp[6863]: tun0: LCP: deflink: RecvProtocolRej(69) state = Opened
Jan 10 22:02:16 freebsd ppp[6863]: tun0: LCP: deflink: -- Protocol 0x001b (reserved (transparency inefficient)) was rejected!
Jan 10 22:02:17 freebsd ppp[6863]: tun0: LCP: deflink: RecvProtocolRej(70) state = Opened
Jan 10 22:02:17 freebsd ppp[6863]: tun0: LCP: deflink: -- Protocol 0x9a6f (unrecognised protocol) was rejected!
Jan 10 22:02:18 freebsd ppp[6863]: tun0: LCP: deflink: RecvProtocolRej(71) state = Opened
Jan 10 22:02:18 freebsd ppp[6863]: tun0: LCP: deflink: -- Protocol 0xb035 (unrecognised protocol) was rejected!
Если посмотреть трафик, то видим:
root@freebsd# tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type NULL (BSD loopback), capture size 96 bytes
22:05:13.474605 IP 192.1.1.203 > 192.1.1.199: ICMP echo request, id 58138, seq 11, length 64
22:05:14.475442 IP 192.1.1.203 > 192.1.1.199: ICMP echo request, id 58138, seq 12, length 64
22:05:15.476287 IP 192.1.1.203 > 192.1.1.199: ICMP echo request, id 58138, seq 13, length 64
Т.е. по тунелю ICMP пакеты уходят, но ответ не возвращается.
Смотрим трафик на сетевой карте:
root@freebsd# tcpdump -i xl0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on xl0, link-type EN10MB (Ethernet), capture size 96 bytes
22:07:08.572345 IP 192.168.0.251 > 62.64.XXX.XXX: GREv1, call 27986, seq 342, length 101: compressed PPP data
22:07:08.620437 IP 62.64.XXX.XXX > 192.168.0.251: GREv1, call 0, seq 298, ack 342, length 111: LCP, Prot-Reject (0x08), id 211, length 93
22:07:09.120993 IP 192.168.0.251 > 62.64.XXX.XXX: GREv1, call 27986, ack 298, no-payload, length 12
22:07:09.573142 IP 192.168.0.251 > 62.64.XXX.XXX: GREv1, call 27986, seq 343, length 101: compressed PPP data
22:07:09.621502 IP 62.64.XXX.XXX > 192.168.0.251: GREv1, call 0, seq 299, ack 343, length 111: LCP, Prot-Reject (0x08), id 212, length 93
22:07:10.121840 IP 192.168.0.251 > 62.64.XXX.XXX: GREv1, call 27986, ack 299, no-payload, length 12
22:07:10.573998 IP 192.168.0.251 > 62.64.XXX.XXX: GREv1, call 27986, seq 344, length 101: compressed PPP data
22:07:10.622327 IP 62.64.XXX.XXX > 192.168.0.251: GREv1, call 0, seq 300, ack 344, length 110: LCP, Prot-Reject (0x08), id 213, length 92
22:07:11.122718 IP 192.168.0.251 > 62.64.XXX.XXX: GREv1, call 27986, ack 300, no-payload, length 12
62.64.XXX.XXX - адрес VPN сервера.
Видно что GRE пакеты нормально доходят через роутер к тачке. Но почему от 192.1.1.199 нету ответа ?
Кстати подключение не рвется, так и висит.