LINUX.ORG.RU

OpenVPN. Вопрос про tun интерфейс.

 ,


0

1

Есть уже давно настроенный и работающий OpenVPN сервер для удаленного доступа remote юзеров. 10.8.0.0/24 - это сетка для юзеров. Из этого диапазона начиная с .3 выдаются адреса. Вот маршруты на сервере:

Internet:
Destination        Gateway            Flags      Netif Expire
default           192.168.100.1      UGS         re0
10.8.0.0/24       10.8.0.2           UGS        tun0
10.8.0.1          link#4             UHS         lo0
10.8.0.2          link#4             UH         tun0
127.0.0.1         link#3             UH          lo0
192.168.1.0/24    link#2             U           re1
192.168.1.5       link#2             UHS         lo0
192.168.10.0/24   link#1             U           re0
192.168.10.5      link#1             UHS         lo0

Вот ifconfig для tun:

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 10.8.0.1 --> 10.8.0.2 netmask 0xffffff00
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        Opened by PID 1291

Вопрос такой: почему tun0 это POINTOPOINT и зачем нужен адрес 10.8.0.2? Это как то связано с тем что написано в man tun? Типа 10.8.0.1 - это локалхост, а 10.8.0.2 - интерфейс подконтрольный OpenVPN?


Дык у нас всего 2 типа интерфейсов: lan и P2P. tun - это хитрый вариант P2P.

Не знаю как в bsd, но теоретически P2P вообще может работать без IP адресов (у него даже аппаратных адесов обычно нет). Это труба. С одной стороны пихнули пакет, с другой стороны он вылез ( или потерялся).

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

Р2Р позволяет экономить адреса, ведь на стороне сервера можно использовать существующий ip-адрес, а клиентам раздавать любые адреса, даже из разных подсетей. С классическим lan такой номер не проходит.

В онтопике есть возможность указать маршрут через устройство типа Р2Р без указания шлюза.

«man tun» от *bsd не читал.

у Р2Р есть 2 адреса: локальный и удаленный, маска интерфейса обычно /32, но может быть короче. Локальный адрес это адрес нашего хоста и при обращении к нему пакеты идут через lo, а через удаленный адрес происходи передача данных через этот Р2Р интерфейс.

Вот в лютом оффтопике все сделано через Ж. Там для того, чтобы пакет был передан через этот интерфейс его нужно посылать на локальный адрес! Это 3.14ц как неудобно.

vel ★★★★★
()

начиная с .3 выдаются

Мсье, видимо, не читатель. Мсье писатель. А потому документацию или Google не осилил.

Венда не умеет Ethernet устройства point-to-point. А потому минимальная сеть должна быть /30 (255.255.255.252): номер подсети, 1-й хост, 2-й хост, броадкаст.

Для совместимости настроек, лучше /30 подсети делать для всех клиентов OpenVPN, независимо от ОС. Поскольку сервер OpenVPN берёт себе .1, то клиентские сети должы быть кратны /30:

.4 номер подсети ; .5 1-й клиент ; .6 роутер ; .7 броадкаст

.8 номер подсети ; .9 2-й клиент ; .10 роутер ; .11 броадкаст

.12 номер подсети ; .13 3-й клиент ; .14 роутер ; .15 броадкаст

.16 номер подсети ; .17 4-й клиент ; .18 роутер ; .19 броадкаст

и так далее.

Ну и задавать это всё через CCD. При поднятии OpenVPN сервера на Mikrotik'ах это вызывает известные проблемы (там нет CCD), но есть статьи, как это обходится.

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

POINTOPOINT

topology subnet

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

Моя проблема была в том что я не до конца понимал что из себя представляет tun интерфейс и как он устроен чтобы работать только с L3 трафиком. Теперь понял.

Вечерком попробую понять как это все в винде работает. Ниже slamd64 тоже пишет об этом. Всем спасибо большое.

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