LINUX.ORG.RU

Маршрутизация Openvpn.

 , ,


0

2

Всем привет! Возникла странная, на первый взгляд, задача... Объясню суть. Имеется Openvpn сервер, имеется Openvpn-клиент. И тот и другой на Debian 8. Подсеть vpn - 10.18.0.0. На клиент пробрасывается подсеть сервера, допустим 192.168.1.0. Таблица маршрутизации на клиенте:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 внешний_ip 0.0.0.0 UG 0 0 0 eth0

10.18.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0

внешний_ip 0.0.0.0 255.255.255.248 U 0 0 0 eth0

192.16.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2

192.168.1.0 10.18.0.1 255.255.255.0 UG 0 0 0 tap0

В кое-каких целях, необходимо, чтобы последняя строка, где флаг UG, была с флагом U. Если поменять последний маршрут командой

route add -net 192.168.1.0 netmask 255.255.255.0 dev tap0

то получается, но пингов до компьютеров в сети 192.168.1.0 нет, за исключением самого сервера 192.168.1.1, где стоит openvpn-server. Вопрос: каким образом добиться одного флага U, и при этом пинговать всю подсеть 1.0, предоставляемую openvpn-сервером? Спасибо



Последнее исправление: bar0metr (всего исправлений: 2)

Вот этой командой:

route add -net 192.168.1.0 netmask 255.255.255.0 dev tap0
Ты говоришь, что через интерфейс tap0 могут проходить пакеты до сети 192.168.1.0. Но не указываешь через какой шлюз эта сеть доступна.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

да, согласен, но... Вот кусочек таблицы с сервера, который работает в данный момент: 192.168.1.0 * 255.255.255.0 U 0 0 0 tap0

Просто, суть в том, что необходимо заменить старый пк (клиент) на новый, сохранив работоспособность, и на текущем клиенте все работает, и маршрут, который относится к openvpn, именно такой... Я сам не пойму, как оно работает, но если там будет флаг G, то будут проблемы с кое-каким ПО...

bar0metr
() автор топика
Ответ на: комментарий от bar0metr

Нарисуй текущую схему сетей, со шлюзами, с учётом VPN сети.

kostik87 ★★★★★
()

гм. про утиль «route» нужно забыть. Мы не в 90-х годах. iproute2 наше все.

То, что ты хочешь «route add -net 192.168.1.0 netmask 255.255.255.0 dev tap0» была с флагом U без G - очень странно. Маршрут без G - это прямой маршрут, т.е. сеть непосредственно подключенная к этому роутеру, а это не так.

tap обычно используется с «topology subnet» т.е. это локальная сеть, а не p2p, следовательно для подключения сети клиента нужно знать его IP т.е. gateway и этим обычно рулят с сервера в его конфиге через «route 192.168.1.0 255.255.255.0 xxx.xxx.xxx.xxx» + ccd «iroute 192.168.1.0 255.255.255.0»

vel ★★★★★
()

В кое-каких целях, необходимо, чтобы последняя строка, где флаг UG, была с флагом U.

В каких же это, интересно? G говорит о том, что данная подсеть не локальная, доступ в неё через шлюз (Gateway).

tiandrey ★★★★★
()
Ответ на: комментарий от vel

гм. про утиль «route» нужно забыть. Мы не в 90-х годах. iproute2 наше все.

И что же такое страшное произойдёт, если пользоваться route и ifconfig вместо ip?

tiandrey ★★★★★
()

Вообще если ты хочешь, чтобы эта сеть у тебя была локальная, то тебе нужен бриджинг с ней, то есть OpenVPN-сервер должен подключать клиентов сразу к 192.168.1.0/24, а не к 10.18.0.0/24.

Но схему сети привести, как уже предложили, не помешает, да.

tiandrey ★★★★★
()
Последнее исправление: tiandrey (всего исправлений: 1)

Если трафик роутится, то зачем tap?

gasinvein ★★★
()
Ответ на: комментарий от tiandrey

Страшного не произойдет.Про ifconfig я ничего не говорил.

route не знает про такие параметры маршрута как: scope, tos, src, table и протокол через который был установлен маршрут. если используется policy-routing, то без table & src жить невозможно. Наличие контейнеров так же заставляет использовать «ip ro»

В отличии от ifconfig, который научили использовать /masklen в адресе, route до сих пор нужно указывать -net в случае добавления сети (а это наиболее распространенное действие) и лишнее слово netmask перед маской в старинной нотации. Для сети маска присутствует обязательно аж с 94 года!

vel ★★★★★
()
Ответ на: комментарий от vel

и лишнее слово netmask перед маской в старинной нотации.

Можно в сокращённом виде писать, зачем старинную нотацию использовать? Вот так работает:

route add -net 172.16.0.0/24 gw 192.168.1.1

tiandrey ★★★★★
()
Ответ на: комментарий от tiandrey

route не нужно использовать, а следует ip route. Во многих дистрибутивах его уже давно нет, как и остальных программ из net-tools, вроде ifconfig.

ValdikSS ★★★★★
()
Ответ на: комментарий от tiandrey

Except for the patch mass that Debian accumulated, the net-tools package has not seen any upstream development after version 1.60, released sometime about April 15 2001.

Ifconfig uses the ioctl access method to get the full address information, which limits hardware addresses to 8 bytes. Because Infiniband address has 20 bytes, only the first 8 bytes are displayed correctly. Ifconfig is obsolete! For replacement check ip.

ifconfig makes secondary addresses look like separate interfaces

People often get the impression that labeled secondary addresses are a separate interface (thanks to the dumb output of ifconfig, as a result of ioctl limitations), which in fact is not the case. You cannot use eth0:1 in iptables nor iproute2, so do not even think of eth0:1 being an interface on its own.

Similarly, you cannot set flags on these “interfaces”.

И еще много других причин — http://inai.de/2008/02/19

ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

Сосёт - это несомненно. Ты мне расскажи лучше, чем мешает его использование, если работает нормально.

tiandrey ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.