Добрый день.
нужно соединить две сети через vpnесть 2 шлюза на linux (slackware), оба имеют внешние ip
на первом сервере настроил vtun в качестве сервера, на втором в качестве клиента
туннель поднялся, и с обоих шлюзов любой узел пингуется
но узлы из первой сети (172.16.0.0/16) не видят узлы из второй (172.16.55.0/24), и наоборотсхема такая
172.16.55.0/24 ---10.0.1.2--------10.0.1.1---172.16.0.0/16
маршруты с 1 сервера
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 ******** 0.0.0.0 UG 1 0 0 eth0
10.0.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
******** 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
172.16.55.0 10.0.1.2 255.255.255.0 UG 0 0 0 tun0
маршруты со второго
0.0.0.0 ******** 0.0.0.0 UG 1 0 0 eth1
10.0.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
172.16.0.0 10.0.1.1 255.255.0.0 UG 0 0 0 tun0
172.16.55.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
******** 0.0.0.0 255.255.255.252 U 0 0 0 eth1
конфиг vtun (сервер)
options {
port 5001; # Listen on this port.# Syslog facility
syslog daemon;# Path to various programs
ifconfig /sbin/ifconfig;
route /sbin/route;
}# Default session options
default {
compress no; # Compression is off by default
speed 0; # By default maximum speed, NO shaping
}# TUN example. Session 'cobra'.
cobra {
passwd ******; # Password
type tun; # IP tunnel
proto tcp; # UDP protocol
compress no; # LZO compression level 9
encrypt yes; # Encryption
keepalive yes; # Keep connection aliveup { # Connection is Up
ifconfig "%% 10.0.1.1 pointopoint 10.0.1.2 mtu 1450";
route "add -net 172.16.55.0 netmask 255.255.255.0 gw 10.0.1.2";
};down { # Connection is Down # Bring routing down
route "del -net 172.16.55.0 netmask 255.255.255.0 gw 10.0.1.2";
};
}
конфиг vtun (клиент)options {
port 5001; # Connect to this port.
timeout 60; # General timeout# Path to various programs
ifconfig /sbin/ifconfig;
route /sbin/route;
ip /usr/sbin/ip;
}# TUN example. Session 'cobra'.
cobra {
passwd ******; # Password
device tun0; # Device tun1
persist yes; # Persist modeup {
# Connection is Up# Assign IP addresses.
ifconfig "%% 10.0.1.2 pointopoint 10.0.1.1 mtu 1450";
route "add -net 172.16.0.0/16 gw 10.0.1.1";
};down {
# Connection is Down# Bring routing down
route "del -net 172.16.0.0 netmask 255.255.0.0 gw 10.0.1.1";
};
}firewall открыл полностью (на обоих серверах)
если на компе из первой сети прописать
route add 172.16.55.0 mask 255.255.255.0 10.0.1.1,
то пинг с этого компа в удаленную сеть проходит, но это не дело.Можно ли сделать так чтобы не нужно было ничего настраивать на компах пользователей. (т.е. всю настройку сделать на серверах)
> Добрый день.
> нужно соединить две сети через vpn
> есть 2 шлюза на linux (slackware), оба имеют внешние ip
> на первом сервере настроил vtun в качестве сервера, на втором в качестве
> клиента
> туннель поднялся, и с обоих шлюзов любой узел пингуется
> но узлы из первой сети (172.16.0.0/16) не видят узлы из второй (172.16.55.0/24),
> и наоборот
> схема такая
> 172.16.55.0/24 ---10.0.1.2--------10.0.1.1---172.16.0.0/16#ip ro
#iptables-save
на обеих машинах пожалуйста>[оверквотинг удален]
> netmask 255.255.0.0 gw 10.0.1.1";
> };
> }
> firewall открыл полностью (на обоих серверах)
> если на компе из первой сети прописать
> route add 172.16.55.0 mask 255.255.255.0 10.0.1.1,
> то пинг с этого компа в удаленную сеть проходит, но это не
> дело.
> Можно ли сделать так чтобы не нужно было ничего настраивать на компах
> пользователей. (т.е. всю настройку сделать на серверах)почему именно vtun? greeth/ipip/gre/l2tp/l2tpv3/многоихвядре было недостаточно?
> #ip ro1 сервер (провайдер пробрасывает все порты с внешнего ip на этот 10.2.1.71)
default via 10.2.1.1 dev eth0 metric 1
10.0.1.2 dev tun0 proto kernel scope link src 10.0.1.1
10.2.1.0/24 dev eth0 proto kernel scope link src 10.2.1.71
127.0.0.0/8 dev lo scope link
172.16.0.0/16 dev eth1 proto kernel scope link src 172.16.0.1
172.16.55.0/24 via 10.0.1.2 dev tun02 сервер
default via *.*.*.25 dev eth1 metric 1
10.0.1.1 dev tun0 proto kernel scope link src 10.0.1.2
127.0.0.0/8 dev lo scope link
172.16.0.0/16 via 10.0.1.1 dev tun0
172.16.55.0/24 dev eth2 proto kernel scope link src 172.16.55.1
*.*.*.24/30 dev eth1 proto kernel scope link src *.*.*.26
> #iptables-save1 сервер
# Generated by iptables-save v1.4.14 on Thu Apr 23 00:09:08 2015
*nat
:PREROUTING ACCEPT [384494:25178967]
:INPUT ACCEPT [138287:8073103]
:OUTPUT ACCEPT [5930:438597]
:POSTROUTING ACCEPT [13569:833561]
-A POSTROUTING -s 172.16.0.0/16 -o eth0 -j SNAT --to-source 10.2.1.71
COMMIT
# Completed on Thu Apr 23 00:09:08 2015
# Generated by iptables-save v1.4.14 on Thu Apr 23 00:09:08 2015
*filter
:INPUT ACCEPT [218053:13434621]
:FORWARD ACCEPT [7887:409732]
:OUTPUT ACCEPT [72487:3171089]
-A INPUT -i lo -j ACCEPT
-A INPUT -d 10.2.1.71/32 -i eth0 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -s 172.16.0.0/16 -d 172.16.0.1/32 -i eth1 -j ACCEPT
-A INPUT -i tun+ -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -i eth0 -p gre -j ACCEPT
-A INPUT -s 10.0.0.0/24 -i ppp+ -p icmp -j ACCEPT
-A FORWARD -s 172.16.0.0/16 -i eth1 -o eth0 -j ACCEPT
-A FORWARD -d 172.16.0.0/16 -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 172.16.0.5/32 -p tcp -m tcp --sport 3389 -j ACCEPT
-A FORWARD -d 172.16.0.5/32 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -i 10.2.1.71 -o eth1 -p tcp -m tcp --dport 9000:9049 -j ACCEPT
-A FORWARD -s 10.0.0.0/24 -d 172.16.0.0/16 -i ppp+ -o eth1 -j ACCEPT
-A FORWARD -s 172.16.0.0/16 -d 10.0.0.0/24 -i eth1 -o ppp+ -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -s 10.2.1.71/32 -d *.*.*.25/32 -o eth0 -p tcp -m tcp --sport 5001 -j ACCEPT
-A OUTPUT -s 10.2.1.71/32 -o eth0 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -s 172.16.0.1/32 -d 172.16.0.0/16 -o eth1 -j ACCEPT
-A OUTPUT -o tun+ -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1723 -j ACCEPT
-A OUTPUT -o eth0 -p gre -j ACCEPT
-A OUTPUT -d 10.0.0.0/24 -o ppp+ -p icmp -j ACCEPT
COMMIT
# Completed on Thu Apr 23 00:09:08 20152 сервер
# Generated by iptables-save v1.4.20 on Thu Apr 23 00:04:20 2015
*mangle
:PREROUTING ACCEPT [1821029:1044466359]
:INPUT ACCEPT [287804:16296429]
:FORWARD ACCEPT [1532386:1028126998]
:OUTPUT ACCEPT [285530:16527322]
:POSTROUTING ACCEPT [1817916:1044654320]
COMMIT
# Completed on Thu Apr 23 00:04:20 2015
# Generated by iptables-save v1.4.20 on Thu Apr 23 00:04:20 2015
*nat
:PREROUTING ACCEPT [315054:18774547]
:INPUT ACCEPT [251536:13971113]
:OUTPUT ACCEPT [218:31703]
:POSTROUTING ACCEPT [221:31955]
-A POSTROUTING -s 172.16.55.0/24 -o eth1 -j SNAT --to-source *.*.*.26
COMMIT
# Completed on Thu Apr 23 00:04:20 2015
# Generated by iptables-save v1.4.20 on Thu Apr 23 00:04:20 2015
*filter
:INPUT ACCEPT [276473:15537761]
:FORWARD ACCEPT [155:7080]
:OUTPUT ACCEPT [204329:8361533]
-A INPUT -i eth2 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth2 -p tcp -m tcp --sport 22 -j ACCEPT
-A INPUT -s 127.0.0.0/8 -i lo -j ACCEPT
-A INPUT -i eth1 -p icmp -m limit --limit 4/sec -j ACCEPT
-A INPUT -s 172.16.55.0/24 -d 172.16.55.1/32 -i eth2 -j ACCEPT
-A INPUT -s внешний_ip_1_сервера/32 -j ACCEPT
-A FORWARD -d 172.16.55.0/24 -i eth1 -o eth2 -j ACCEPT
-A FORWARD -s 172.16.55.0/24 -i eth2 -o eth1 -j ACCEPT
-A FORWARD -s внешний_ip_1_сервера/32 -j ACCEPT
-A FORWARD -d внешний_ip_1_сервера/32 -j ACCEPT
-A OUTPUT -o eth2 -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -o eth2 -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -d 127.0.0.0/8 -o lo -j ACCEPT
-A OUTPUT -o eth1 -p icmp -j ACCEPT
-A OUTPUT -s 172.16.55.1/32 -d 172.16.55.0/24 -o eth2 -j ACCEPT
-A OUTPUT -d внешний_ip_1_сервера/32 -j ACCEPT
COMMIT
# Completed on Thu Apr 23 00:04:20 2015
> почему именно vtun? greeth/ipip/gre/l2tp/l2tpv3/многоихвядре было недостаточно?как-то давно, для тестов, настраивал vtun для точно таких же целей, все работало
никак не думал что могут возникнуть подобные проблемы
>[оверквотинг удален]
> -A INPUT -i eth2 -p tcp -m tcp --dport 22 -j ACCEPT
> -A INPUT -i eth2 -p tcp -m tcp --sport 22 -j ACCEPT
> -A INPUT -s 127.0.0.0/8 -i lo -j ACCEPT
> -A INPUT -i eth1 -p icmp -m limit --limit 4/sec -j ACCEPT
> -A INPUT -s 172.16.55.0/24 -d 172.16.55.1/32 -i eth2 -j ACCEPT
> -A INPUT -s внешний_ip_1_сервера/32 -j ACCEPT
> -A FORWARD -d 172.16.55.0/24 -i eth1 -o eth2 -j ACCEPT
> -A FORWARD -s 172.16.55.0/24 -i eth2 -o eth1 -j ACCEPT
> -A FORWARD -s внешний_ip_1_сервера/32 -j ACCEPT
> -A FORWARD -d внешний_ip_1_сервера/32 -j ACCEPTа где правила от 172.16.55.0/24 в tun+ ??? -- поди из-за этого и не ходит -- хотя с другой стороны default политики делают ACCEPT всему остальному и смысла обоим файрволам нет накакого, ну разве-что SNAT отрабатывает
>[оверквотинг удален]
> -A OUTPUT -d 127.0.0.0/8 -o lo -j ACCEPT
> -A OUTPUT -o eth1 -p icmp -j ACCEPT
> -A OUTPUT -s 172.16.55.1/32 -d 172.16.55.0/24 -o eth2 -j ACCEPT
> -A OUTPUT -d внешний_ip_1_сервера/32 -j ACCEPT
> COMMIT
> # Completed on Thu Apr 23 00:04:20 2015
>> почему именно vtun? greeth/ipip/gre/l2tp/l2tpv3/многоихвядре было недостаточно?
> как-то давно, для тестов, настраивал vtun для точно таких же целей, все
> работало
> никак не думал что могут возникнуть подобные проблемычтобы решить проблемы в целом нужно всего два инструмента
1. ping с ЛВС на хост в удалённой ЛВС
2. tcpdump последовательно на всех интерфейсах по путипопутно нужно убедится что пакеты которые дожны попадать в тунель не попадают под SNAT
> если на компе из первой сети прописать
> route add 172.16.55.0 mask 255.255.255.0 10.0.1.1,
> то пинг с этого компа в удаленную сеть проходит, но это не
> дело.
> Можно ли сделать так чтобы не нужно было ничего настраивать на компах
> пользователей. (т.е. всю настройку сделать на серверах)не использовать /16 или вместо 172.16.55.0/24 использовать то что не входит в 172.16.0.0/16
>> если на компе из первой сети прописать
>> route add 172.16.55.0 mask 255.255.255.0 10.0.1.1,
>> то пинг с этого компа в удаленную сеть проходит, но это не
>> дело.
>> Можно ли сделать так чтобы не нужно было ничего настраивать на компах
>> пользователей. (т.е. всю настройку сделать на серверах)
> не использовать /16 или вместо 172.16.55.0/24 использовать то что не входит в
> 172.16.0.0/16кто сказал? понятие о меньшем префиксе сети знакомо? выбор маршрута при статической равнозначной маршрутизации по каким критериям выполняется?
> если на компе из первой сети прописать
> route add 172.16.55.0 mask 255.255.255.0 10.0.1.1,
> то пинг с этого компа в удаленную сеть проходит, но это не
> дело.
> Можно ли сделать так чтобы не нужно было ничего настраивать на компах
> пользователей. (т.е. всю настройку сделать на серверах)аааа, вкурил, дело в том, что на хостах первой ЛВС машины имеют маску /16 и соответственно считают сеть 55.0/24 direct connect, и поэтому не отсылают пакеты на шлюз по умолчанию.
дык это, или прописать маршрут (можно по dhcp отдать) или уменьшить маску broadcast сегмента
Поменял сетку на одном из шлюзов и все заработало.
Большое спасибо за помощь.