|
[Lug-bg] CentOS ip masquerade
- Subject: [Lug-bg] CentOS ip masquerade
- From: Kristian Kirilov <kristian.kirilov@xxxxxxxxx>
- Date: Thu, 1 Nov 2012 12:22:43 +0200
Здравейте,
ще се опитам да бъда максимално кратък, но същевременно максимално ясен. Идеята ми е да ползвам машина от вътрешната мрежа като маршрутизатор за вече създаден от нея VPN.
Машината на която е пуснат VPN-a е с адрес 192.168.0.9. VPN-a раздава адреси от мрежа 172.16.22.0/24 от другата страна на VPN-a пък има адреси от мрежа 10.139.0.0/16 и мрежа 192.168.96.0/21.
Има още една машина с адрес 192.168.0.8 през която се опитвам да достъпа адрес от мрежата зад VPN-a. На тази машина съм конфигурирал статичен рут към мрежата зад VPN-a като гейтуей към тази мрежа съм задал вътрешния адрес на машината където е стартиран VPN-a, т.е. 192.168.0.9
Малко дебъг инфо за да не говориме само празни приказки:
[root@gideon vpnc]# ifconfig eth0 Link encap:Ethernet HWaddr 52:54:00:14:40:69 inet addr:192.168.0.9 Bcast:192.168.0.255 Mask:255.255.255.0
......skip....... tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:172.16.22.1 P-t-P:172.16.22.1 Mask:255.255.255.255 ......skip.......
[root@gideon vpnc]# route -n
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.22.0 0.0.0.0 255.255.255.128 U 0 0 0 tun0 192.168.96.0 0.0.0.0 255.255.248.0 U 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 10.139.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tun0 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Тук имам пуснат ipv4 fowarding и IP Masquerade на тунелния интерфейс..
[root@gideon vpnc]# sysctl -a |grep ipv4 |grep forwarding net.ipv4.conf.all.forwarding = 1 .....skip....
[root@gideon vpnc]# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT) target prot opt source destination
Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT) target prot opt source destination [root@gideon vpnc]#
Ип адрес 192.168.101.93 ще бъде адеса който се опитваме да достъпим оттатък VPN-a.
[root@gideon vpnc]# ping 192.168.101.93
PING 192.168.101.93 (192.168.101.93) 56(84) bytes of data. 64 bytes from 192.168.101.93: icmp_seq=1 ttl=63 time=4.37 ms 64 bytes from 192.168.101.93: icmp_seq=2 ttl=63 time=4.47 ms
От машината на която е пуснат VPN-a такъв проблем няма. Малко инфо за другата машина която се явява нещо като клиент ;-)
root@guffi:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:fa:13:83:52:23 inet addr:192.168.0.8 Bcast:192.168.0.255 Mask:255.255.255.0
......skip.......
root@guffi:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
10.139.0.0 192.168.0.9 255.255.0.0 UG 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.96.0 192.168.0.9 255.255.248.0 UG 0 0 0 eth0
root@guffi:~#
Следва и самия тест.
root@guffi:~# ping 192.168.101.93 PING 192.168.101.93 (192.168.101.93): 48 data bytes ^C--- 192.168.101.93 ping statistics --- 4 packets transmitted, 0 packets received, 100% packet loss
root@guffi:~#
На машината на която е пуснат VPN-a пуснах един tcpdump за да гледам какво става.. [root@gideon ~]# tcpdump -i tun0 -vvv -nn tcpdump: listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
09:16:07.903074 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 76) 172.16.22.1 > 192.168.101.93: ICMP echo request, id 43561, seq 0, length 56 09:16:07.907601 IP (tos 0x0, ttl 63, id 62947, offset 0, flags [none], proto ICMP (1), length 76)
192.168.101.93 > 172.16.22.1: ICMP echo reply, id 43561, seq 0, length 56 09:16:08.904292 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 76) 172.16.22.1 > 192.168.101.93: ICMP echo request, id 43561, seq 256, length 56
09:16:08.908268 IP (tos 0x0, ttl 63, id 62948, offset 0, flags [none], proto ICMP (1), length 76) 192.168.101.93 > 172.16.22.1: ICMP echo reply, id 43561, seq 256, length 56 09:16:09.905512 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 76)
172.16.22.1 > 192.168.101.93: ICMP echo request, id 43561, seq 512, length 56 09:16:09.909488 IP (tos 0x0, ttl 63, id 62949, offset 0, flags [none], proto ICMP (1), length 76)
192.168.101.93 > 172.16.22.1: ICMP echo reply, id 43561, seq 512, length 56 09:16:10.906600 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 76) 172.16.22.1 > 192.168.101.93: ICMP echo request, id 43561, seq 768, length 56
09:16:10.911044 IP (tos 0x0, ttl 63, id 62950, offset 0, flags [none], proto ICMP (1), length 76) 192.168.101.93 > 172.16.22.1: ICMP echo reply, id 43561, seq 768, length 56
От полученото си мисля, че маскирането сработва щото се вижда, че източника на пакета а ип адреса на VPN-a а не 192.168.0.8. Виждам също и че 192.168.101.93 го праща направилното място, т.е. адреса на VPN-a. Не знам защо обаче след като пакета се върне 192.168.0.9 не знае къде да го прати, вместо да го върне към 192.168.0.8
Сигурно грешката ми е тъпа.. ама не се сещам що става така. Мерси предварително за помоща.
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|
|
|