LINUX.ORG.RU
ФорумAdmin

OpenVPN: Почему серверу присваивается неверный IP-адрес?

 


2

2

Прописываю в клиентском конфиге на стороне сервера

ifconfig-push 10.8.0.6 10.8.0.5
Вижу на клиенте:
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:84 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:7056 (6.8 KiB)  TX bytes:0 (0.0 B)
Всё логично.

А на сервере:

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:1008 (1008.0 B)
Как-то странно: почему не 10.8.0.5 P-t-P: 10.8.0.6?

Ну ок, я понимаю, что клиентов может быть много, но... если на каждого клиента не создаётся отдельный tun-девайс (что логично), то как вообще это работает? Ткните в ссылку какую-то с explain'ом, иначе вывод ifconfig'а на сервере и клиенте немного вымораживает.

★★★★★

3. Расширенная конфигурация туннеля L3 (IP-туннель, aka «routed»)

В данном режиме OpenVPN-сервер эмулирует работу некоего многопортового виртуального маршрутизатора, к каждому порту которого подключен каждый клиент и сам серверный хост. При этом каждому виртуальному tun-интерфейсу хоста (и сервера в том числе) присваивается IP-адрес, также присваиваивается IP-адрес соответствующему порту этого виртуального маршрутизатора и выделяется подсеть, включающая эти 2 адреса + неожходимые 2 служебных, в итоге для каждого подключения выделяется подсеть /30 (255.255.255.252) из 4 адресов, назначение которых, например, для первой подсети 10.1.1.0/30 из OpenVPN-сети 10.1.1.0/24 таково:
10.1.1.0 - адрес подсети 10.1.1.0/30
10.1.1.1 - адрес tun-интерфейса сервера
10.1.1.2 - адрес интерфейса виртуального маршрутизатора
10.1.1.3 - адрес широковещания (broadcast)
Далее каждому подключающемуся клиенту выделяются подсеть и адрес именно блоками /30, то есть по 4 адреса. В меру художественных способностей изобразил это на рисунке - http://forum.ixbt.com/post.cgi?id=attach:14:40906:38:1
Замечу, что к самим IP-адресам виртуального маршрутизатора непосредственно обратиться никак нельзя, оне НЕ ПИНГУЮТСЯ, и в tracert не отображаются.
Указанный выше вариант распределения IP-адресов сделан для совместимости с Windows. Однако, есть возможность использовать и выделение адресов/32, то есть без подсетей, см. команду ifconfig-pool-linear. Кроме того, в версии 2.1 (на момент июня 2007 это пока 2.1.rc4) в этом вопросе тоже есть нововведения.


http://forum.ixbt.com/topic.cgi?id=14:40906#1

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

Гигантское тебе СПАСИБО! Жаль, что рейтинг нельзя повышать плюсованием к звёздочкам :) Я, собственно, и раньше удивлялся тому, что IP-шники выдешляются блоками, и на самом сервере тоже «блок», только почему-то адреса всегда 1-й и 2-й в сети. Но... оно как-то работало, и не было особого интереса копать. Наконец я хотя бы немного осознал, как это работает...

DRVTiny ★★★★★
() автор топика

там все просто. Клиентские ИП назначаются так: первые два из каждых четырех. Т.е. .5 и .6, .9 и .10.... Первый из них - непосредственно айпишник, второй - интерфейс.

bvn13 ★★★★★
()

А не указано ли в конфиге сервера(основном, тот что в /etc/openvpn/server.conf) параметра:

server 10.8.0.1

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