Коли IP призначений для щойно створеного інтерфейсу OpenVPN, чи створює він маршрут за замовчуванням для підмережі цього IP?


0

Я стежу за підручником, щоб вивчити OpenVPN .

виконуючи кроки частини: let's try it Я використовую OpenVPN для створення інтерфейсу tun2 та призначення йому IP-адреси

sudo OpenVPN --mktun --dev tun2
sudo ip link set tun2 up
sudo ip addr add 10.0.0.1/24 dev tun2

то я використовую tcpdump для контролю пакетів, що протікають tun2

sudo tcpdump -i tun2 

і я входжу ping 10.0.0.2на термінал, але нічого не бачу на виході tcpdump, також pingзастряг, нічого не виводячи.

у підручнику написано, оскільки інтерфейс tun2 передбачає IP 10.0.0.1/24, то пакет ping з 10.0.0.2 повинен пройти через tun2coz, там буде маршрут за замовчуванням. Але в моєму випадку це не відбувається.

#sudo route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun2
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

І також дивно, що пінг застрягає, не виводячи нічого. У підручнику результати повинні бути такими:

# ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
From 10.0.0.1 icmp_seq=2 Destination Host Unreachable
From 10.0.0.1 icmp_seq=3 Destination Host Unreachable

BTW: це через брандмауері та iptables слід додати?


Якщо ви хочете побачити пакет з tcpdump, увімкніть ipv4 переадресацію:, echo 1 > /proc/sys/net/ipv4/ip_fowardтоді спробуйте ще раз: ви побачите, що пакет покидає tunінтерфейс, щоб перейти до eth0інтерфейсу. Досі відповіді немає, тому що 10.0.0.2 не є загальнодоступною, маршрутизованою адресою, але, принаймні, ви побачите, ЯКЩО ожиють.
MariusMatutiae

Відповіді:


3

Ваш підручник має рацію про те, куди піде пакет, але не дуже зрозуміло, чому він туди йде. Ви або підручник плутаєте "маршрут за замовчуванням" з "маршрут, створений за замовчуванням".

Коли ви присвоюєте IP-адресу інтерфейсу, через нього створюється маршрут підмережі "за замовчуванням". У вашому прикладі, коли ви призначили 10.0.0.1/24 в tun2, він зробив створити відповідний 10.0.0.0/24 маршрут 1 .

Але "маршрут за замовчуванням" конкретно означає найменш конкретний можливий маршрут - тобто 0.0.0.0/0для IPv4 або ::/0для IPv6. Ви не отримуєте ці маршрути автоматично, і часто не можете, оскільки вони, як правило, потребують набору шлюзу, про що відомо лише пізніше.


Отже таблиця маршрутизації правильна. Ваші пакети не проходять через tun2, оскільки tun2 не пов'язаний ні з чим , наскільки це показує ваш приклад.

Не достатньо просто створити інтерфейс tun (так само, як недостатньо додати карту Ethernet) - ви також повинні підключити її до чогось. Для Ethernet це, очевидно, передбачає підключення кабелю, а для пристроїв tun програма повинна працювати на іншому кінці.

Тобто потрібно фактично налаштувати VPN-клієнт за допомогою OpenVPN і сказати йому використовувати tun2 як пристрій VPN. (Звичайно, вам також знадобиться сервер OpenVPN деінде.)


1 (він же 10.0.0.0 маска 255.255.255.0 - але краще використовувати ip routeінструмент замість route -n.)


Я створив tun2за допомогою, sudo OpenVPN --mktun --dev tun2 sudo ip link set tun2 upа потім написав клієнтську програму vpn paste.ubuntu.com/12700613 і запустив клієнтську програму. І це працює, як ви сказали. Але мені здається, що створено два пристрої налаштування, один із команди OpenVPN і один із клієнтської програми. так де я помиляюся? чому є два пристрої? як вони відповідають однойменному tun2?
лілія

Я не впевнений. Звідки ви знаєте, що це два окремих пристрої?
grawity

Я не знаю, це два окремі пристрої чи ні, і як механізми між цими двома, тому я запитую про це.
лілія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.