Проблему с соединением решил - Правила не трогал но написал редирекшн
rdr pass on $ext_if proto udp from any to $ext_if port 9149 -> 192.168.77.5 port 9149
и коннект удался. И это меня приободрило :)
Однако сразу же возникла другая проблема :)
Клиентом сейчас выступает уже не Уиндос ХР а ФрииБСД 7.2 Данная машина воткнута в сеть 192.168.99.0/24 с адресом 192.168.99.55 Режим гейтвея на ней включен (gateway_enable=”YES”).
после инициализации впн таблица маршрутизации выглядит так:
freebsd01# netstat -rn
Routing tablesInternet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.99.200 UGS 0 2636 rl1
10.8.0.0/24 10.8.0.5 UGS 0 0 tun0
10.8.0.5 10.8.0.6 UH 2 3 tun0
127.0.0.1 127.0.0.1 UH 0 100 lo0
192.168.33.0/24 link#3 UC 0 0 rl2
192.168.33.2 00:50:ba:cb:bc:51 UHLW 1 38 lo0
192.168.33.255 ff:ff:ff:ff:ff:ff UHLWb 1 63 rl2
192.168.77.0/24 10.8.0.5 UGS 0 434 tun0
192.168.99.0/24 link#2 UC 0 0 rl1
192.168.99.1 00:19:db:f5:ca:42 UHLW 1 113 rl1 989
…
192.168.99.255 ff:ff:ff:ff:ff:ff UHLWb 1 178 rl1
Internet6:
..
Причем мне сильно непонятно почему адреса впн туннеля 10.8.0.5 и 10.8.0.6? Ведь исходя из всех возможных конфигов они должны быть 10.8.0.1 и 10.8.0.2. Непонятно…
Теперь дальше – с самой клиентской машины на фре пинг в сеть .77.0 идет. (Сеть 192.168.77.0/24 на другом конце туннеля)
т.е.
freebsd01# ping 192.168.77.11
PING 192.168.77.11 (192.168.77.11): 56 data bytes
64 bytes from 192.168.77.11: icmp_seq=0 ttl=127 time=4.683 ms
64 bytes from 192.168.77.11: icmp_seq=1 ttl=127 time=9.935 ms
64 bytes from 192.168.77.11: icmp_seq=2 ttl=127 time=4.054 ms
64 bytes from 192.168.77.11: icmp_seq=3 ttl=127 time=4.442 ms
^C
--- 192.168.77.11 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 4.054/5.779/9.935/2.410 ms
Но с любой другой машины в сети 99 (192.168.99.0/24) не идет. В чем засада???
Хорошо – смотрим tcpdump на машине фревой
freebsd01# tcpdump -i tun0 -t -n -l
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type NULL (BSD loopback), capture size 96 bytes
IP 192.168.99.241 > 192.168.77.11: ICMP echo request, id 1792, seq 15873, length 40
…
т.е от сети 99 вроде все ушло. Т.е если я правильно понимаю фревая машина отработала как надо.
Теперь смотрим на другую сторону (как я понимаю на внешнем интерфейсе я ничего видеть не должен так как все ходит уже по туннелю после установки впн соединения). Пинг идет от машины 99.241. На данной машине прописан маршрут route add 192.168.77.0 netmask 255.255.255.0 192.168.99.55 и route add 10.8.0.0 netmask 255.255.255.0 192.168.99.55
(vr1 внутренний интерфейс машины ОпенБСД (77.5) на котором крутится ОпенВпн сервер)
# tcpdump -i vr1 -t -n -l | grep .99.241
tcpdump: listening on vr1, link-type EN10MB
icmp^C
88 packets received by filter
0 packets dropped by kernel# tcpdump -i vr1 -t -n -l | grep icmp
tcpdump: listening on vr1, link-type EN10MB
^C
113 packets received by filter
0 packets dropped by kernel
Теперь пинг идет с машины 99.55 (машины фрибсд на котором крутится клиент опенвпн)
# tcpdump -i vr1 -t -n -l | grep icmp
tcpdump: listening on vr1, link-type EN10MB
10.8.0.6 > 192.168.77.11: icmp: echo request
192.168.77.11 > 10.8.0.6: icmp: echo reply
10.8.0.6 > 192.168.77.11: icmp: echo request
192.168.77.11 > 10.8.0.6: icmp: echo reply
10.8.0.6 > 192.168.77.11: icmp: echo request
192.168.77.11 > 10.8.0.6: icmp: echo reply
10.8.0.6 > 192.168.77.11: icmp: echo request
192.168.77.11 > 10.8.0.6: icmp: echo reply
10.8.0.6 > 192.168.77.11: icmp: echo request
192.168.77.11 > 10.8.0.6: icmp: echo reply
^C
661 packets received by filter
0 packets dropped by kernel
т.е все атк бодренько работет. Хотя странно что адрес идет от 10.8.0.6! Разве так должно быть?
Вопрос – подскажите где я тут не догоняю и как в данном случае сделать так что бы обе подсетки (192.168.77.0 и 192.168.99.0) видели друг друга
Вот еще ifconfig
На машине 99.55
freebd01# ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
inet 10.8.0.6 --> 10.8.0.5 netmask 0xffffffff
Opened by PID 33036
На машине 77.5
# ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
priority: 0
groups: tun
media: Ethernet autoselect
status: active
inet 10.8.0.1 --> 10.8.0.2 netmask 0xffffffff