URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 90587
[ Назад ]

Исходное сообщение
"Маршрутизация OpenVPN"

Отправлено Dexterius , 21-Дек-10 14:32 
Здравсвуйте,опишу ситуацию.
На шлюзе настроена маршрутизация на двух провайдеров, маршрутизация настроена по принципу маркировки пакетов iptables и роутинга используя эти метки ip route. Далее на этом же шлюзе поднят OpenVPN клиент, клиенту выдается ip 192.168.173.6, на OpenVPn сервере настроена маршрутизация, то есть с самого шлюза я вижу IP адресс 192.168.172.100 (именно 172).
А теперь вопрос каким образом мне прописать маршрут, чтобы из внутренний сети все запросы на сеть 192.168.172.0 шли через интерфейс tun1 то есть через OpenVPN.

Содержание

Сообщения в этом обсуждении
"Маршрутизация OpenVPN"
Отправлено reader , 21-Дек-10 15:00 
> Здравсвуйте,опишу ситуацию.
> На шлюзе настроена маршрутизация на двух провайдеров, маршрутизация настроена по принципу
> маркировки пакетов iptables и роутинга используя эти метки ip route. Далее
> на этом же шлюзе поднят OpenVPN клиент, клиенту выдается ip 192.168.173.6,
> на OpenVPn сервере настроена маршрутизация, то есть с самого шлюза я
> вижу IP адресс 192.168.172.100 (именно 172).
> А теперь вопрос каким образом мне прописать маршрут, чтобы из внутренний сети
> все запросы на сеть 192.168.172.0 шли через интерфейс tun1 то есть
> через OpenVPN.

не маркируйте пакеты идущие в 192.168.172.0


"Маршрутизация OpenVPN"
Отправлено Dexterius , 21-Дек-10 18:25 
> не маркируйте пакеты идущие в 192.168.172.0

Хм. И что мне это даст. А какое правило надо сделать, чтобы не маркировать запросы на отдельный ип?


"Маршрутизация OpenVPN"
Отправлено reader , 21-Дек-10 20:40 
>> не маркируйте пакеты идущие в 192.168.172.0
> Хм. И что мне это даст. А какое правило надо сделать, чтобы
> не маркировать запросы на отдельный ип?

если vpn-клиент, он же ваш шлюз, видит 192.168.172.0 подсеть, значит маршрут у него уже есть, наверно получен от vpn-сервера, вот и не мешайте ему.

правила. либо там где маркируете укажите , что не для 192.168.172.0/24, либо перед правилами с маркировкой сделать разрешающее правило для подсети 192.168.172.0/24


"Маршрутизация OpenVPN"
Отправлено Dexterius , 22-Дек-10 05:29 
> правила. либо там где маркируете укажите , что не для 192.168.172.0/24, либо
> перед правилами с маркировкой сделать разрешающее правило для подсети 192.168.172.0/24

Ок, а не могли бы ва само правило написать например разрешающее для 192.168.172.0/24


"Маршрутизация OpenVPN"
Отправлено Dexterius , 22-Дек-10 08:25 
Неужели никто не сталкивался?



"Маршрутизация OpenVPN"
Отправлено reader , 22-Дек-10 10:15 
>> правила. либо там где маркируете укажите , что не для 192.168.172.0/24, либо
>> перед правилами с маркировкой сделать разрешающее правило для подсети 192.168.172.0/24
> Ок, а не могли бы ва само правило написать например разрешающее для
> 192.168.172.0/24

http://www.opennet.me/docs/RUS/iptables/

так как порядок следования правил имеет значения, нужно видеть что вы там нагородили

iptables-save


"Маршрутизация OpenVPN"
Отправлено Dexterius , 22-Дек-10 10:36 
> так как порядок следования правил имеет значения, нужно видеть что вы там
> нагородили
> iptables-save

# Generated by iptables-save v1.3.8 on Wed Dec 22 13:34:40 2010
*mangle
:PREROUTING ACCEPT [170218709:100936197902]
:INPUT ACCEPT [1063848:113325365]
:FORWARD ACCEPT [169074864:100808426853]
:OUTPUT ACCEPT [608149:73634355]
:POSTROUTING ACCEPT [169678261:100881647506]
-A PREROUTING -s 192.168.0.0/255.255.255.0 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xa
-A PREROUTING -s 192.168.0.63 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.57 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.58 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.59 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.60 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.61 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.64 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.71 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.72 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.73 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.74 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.75 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.76 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.77 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.92 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.93 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.94 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.95 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.96 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.101 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.102 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.132 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.133 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.111 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.113 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.121 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.122 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.123 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.124 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.142 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.143 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.151 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.172 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.173 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.174 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.175 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.176 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.177 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.178 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.179 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.180 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.181 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.182 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.183 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.184 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.185 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.186 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.187 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.188 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.189 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.190 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.191 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.192 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.193 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.197 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A PREROUTING -s 192.168.0.200 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
-A INPUT -i eth1 -j MARK --set-mark 0xa
-A INPUT -i eth2 -j MARK --set-mark 0xb
-A OUTPUT -m connmark --mark 0xa -j MARK --set-mark 0xa
-A OUTPUT -m connmark --mark 0xb -j MARK --set-mark 0xb
-A POSTROUTING -m mark --mark 0xa -j MASQUERADE
-A POSTROUTING -m mark --mark 0xb -j MASQUERADE



"Маршрутизация OpenVPN"
Отправлено reader , 22-Дек-10 10:57 
>[оверквотинг удален]
> -A PREROUTING -s 192.168.0.192 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
> -A PREROUTING -s 192.168.0.193 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
> -A PREROUTING -s 192.168.0.197 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
> -A PREROUTING -s 192.168.0.200 -d ! 192.168.0.0/255.255.255.0 -j MARK --set-mark 0xb
> -A INPUT -i eth1 -j MARK --set-mark 0xa
> -A INPUT -i eth2 -j MARK --set-mark 0xb
> -A OUTPUT -m connmark --mark 0xa -j MARK --set-mark 0xa
> -A OUTPUT -m connmark --mark 0xb -j MARK --set-mark 0xb
> -A POSTROUTING -m mark --mark 0xa -j MASQUERADE
> -A POSTROUTING -m mark --mark 0xb -j MASQUERADE

iptables -t mangle -I PREROUTING -d 192.168.172.0/24 -j ACCEPT
iptables -I FORWARD -i tun+ -j ACCEPT
iptables -I FORWARD -o tun+ -j ACCEPT

так же если на стороне vpn-сервера маршрутов к вашей локалке нет и вы не можете их там прописывать, то сделайте snat или MASQUERADE на tun-интерфейсе


"Маршрутизация OpenVPN"
Отправлено Dexterius , 22-Дек-10 12:32 
>[оверквотинг удален]
>> -A OUTPUT -m connmark --mark 0xa -j MARK --set-mark 0xa
>> -A OUTPUT -m connmark --mark 0xb -j MARK --set-mark 0xb
>> -A POSTROUTING -m mark --mark 0xa -j MASQUERADE
>> -A POSTROUTING -m mark --mark 0xb -j MASQUERADE
> iptables -t mangle -I PREROUTING -d 192.168.172.0/24 -j ACCEPT
> iptables -I FORWARD -i tun+ -j ACCEPT
> iptables -I FORWARD -o tun+ -j ACCEPT
> так же если на стороне vpn-сервера маршрутов к вашей локалке нет и
> вы не можете их там прописывать, то сделайте snat или MASQUERADE
> на tun-интерфейсе

Спасибо за ответ, прописал но ничего не изменилось. Подскажите пожалуйста как правильно прописать маскарадинг на tun?



"Маршрутизация OpenVPN"
Отправлено reader , 22-Дек-10 12:39 
>[оверквотинг удален]
>>> -A POSTROUTING -m mark --mark 0xa -j MASQUERADE
>>> -A POSTROUTING -m mark --mark 0xb -j MASQUERADE
>> iptables -t mangle -I PREROUTING -d 192.168.172.0/24 -j ACCEPT
>> iptables -I FORWARD -i tun+ -j ACCEPT
>> iptables -I FORWARD -o tun+ -j ACCEPT
>> так же если на стороне vpn-сервера маршрутов к вашей локалке нет и
>> вы не можете их там прописывать, то сделайте snat или MASQUERADE
>> на tun-интерфейсе
> Спасибо за ответ, прописал но ничего не изменилось. Подскажите пожалуйста как правильно
> прописать маскарадинг на tun?

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

если и после этого не заработает то tcpdump -n -i tun0 покажет что происходит на интерфейсе


"Маршрутизация OpenVPN"
Отправлено Dexterius , 22-Дек-10 13:06 
> если и после этого не заработает то tcpdump -n -i tun0 покажет
> что происходит на интерфейсе

Спасибо за помощь, вроде работает но задержки очень большие
Ответ от 192.168.172.1: число байт=32 время=697мс TTL=126
С чем это может быть вызвано?


"Маршрутизация OpenVPN"
Отправлено reader , 22-Дек-10 13:17 
>> если и после этого не заработает то tcpdump -n -i tun0 покажет
>> что происходит на интерфейсе
> Спасибо за помощь, вроде работает но задержки очень большие
> Ответ от 192.168.172.1: число байт=32 время=697мс TTL=126
> С чем это может быть вызвано?

а со шлюза?


"Маршрутизация OpenVPN"
Отправлено 2dfx , 03-Фев-11 17:24 
> Здравсвуйте,опишу ситуацию.
> На шлюзе настроена маршрутизация на двух провайдеров, маршрутизация настроена по принципу
> маркировки пакетов iptables и роутинга используя эти метки ip route. Далее
> на этом же шлюзе поднят OpenVPN клиент, клиенту выдается ip 192.168.173.6,
> на OpenVPn сервере настроена маршрутизация, то есть с самого шлюза я
> вижу IP адресс 192.168.172.100 (именно 172).
> А теперь вопрос каким образом мне прописать маршрут, чтобы из внутренний сети
> все запросы на сеть 192.168.172.0 шли через интерфейс tun1 то есть
> через OpenVPN.

Тут маркировать ничего не нужно.
1. Разрешите весь трафик через интерфес TUN1.
2. В конфиг openvpn на сервере добавьте строчку route 192.168.172.0 255.255.255.0, это отправит траффик в туннель.
3. Для определения, какому клиенту слать трафик - испрользуйте client-config-dir, а в файле с именем клиента укажите iroute 192.168.172.0 255.255.255.0

ЗЫ.
В п.2 должно быть несколько строчек (сеть из которой выдается IP клиентур, подсеть у клиента и т.п.)