Я просто налаштував OpenVPN, і він працює як слід. Однак таблиця маршрутизації клієнта мене бентежить не до кінця. Ось таблиця маршруту:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
54.202.18.143 10.0.2.2 255.255.255.255 UGH 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
128.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
Тож давайте розсікати його по черзі
- Будь-який призначений пакет
10.8.0.5
не має шлюзу і буде використовуватисьtun0
- будь-який пакет, призначений для
10.8.0.1
використання, використовуватиме10.8.0.5
як шлюз черезtun0
- будь-який пакет, призначений для
54.202.18.143
використання, використовуватиме10.0.2.2
як шлюз черезeth0
- будь-який призначений пакет
10.0.2.0/24
не має шлюзу і буде використовуватисьeth0
- Нехай ігнорує частину 169.254.0.0
- Усі інші пакети (призначені для
0.0.0.0
) будуть нам10.8.0.5
як шлюз за замовчуванням черезtun0
. Так це шлюз за замовчуванням, чи не так? - Будь-який пакет, призначений для
128.0.0.0/7
використання, використовуватиме10.8.0.5
як шлюз за замовчуванням черезtun0
- Усі інші пакети (
0.0.0.0
) використовуватимуть10.0.2.2
як шлюз за замовчуванням черезeth0
Запитання:
- Чи є у мене два шлюзи за замовчуванням, якщо ми розглянемо пункти 6 та 8? (хоча може бути лише 1 шлюз за замовчуванням, тому я знаю, що я помиляюся, але не можу виправдати) ( напевно, відповів, див. нижче )
- Зважаючи на пункти 1 і 2, все, що відбувається
10.8.0.1
, насправді не використовує жодного шлюзу через tun0. Це правильно? - Зважаючи на пункти 3 та 4, все, що відбувається
54.202.18.143
, насправді не використовує жодного шлюзу черезeth0
. Це правильно?
ОНОВЛЕННЯ ...
Прочитавши це , я знайшов ще трохи інформації. Нижчі рядки для мене зараз мають багато сенсу:
0.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
128.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
Отже, перший рядок є визначальним, 0.0.0.0/128.0.0.0
а другий - визначальним 128.0.0.0/128.0.0.0
. По суті:
0.0.0.0/128.0.0.0 = 0.0.0.0/1 = 0.0.0.0 TO 127.255.255.255
128.0.0.0/128.0.0.0 = 128.0.0.0/1 = 128.0.0.0 TO 255.255.255.255
Отже, вище 2 маршруту охоплюють весь діапазон адрес IPv4 [0.0.0.0 TO 255.255.255.255]
. Це розумний спосіб OpenVPN додати маршрут за замовчуванням без заміни початкового маршруту за замовчуванням, і цей маршрут за замовчуванням буде прокладений через tun0
.
Тому я думаю, що у мене є відповідь на моє перше питання:
Чи є у мене два шлюзи за замовчуванням, якщо ми розглянемо пункти 6 та 8?
НІ, є лише один шлюз за замовчуванням, і це:
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
0.0.0.0
маршрут має Genmask,128.0.0.0
що, ймовірно, не робить його за замовчуванням. Я маю сказати, хоча я не маю найменшого уявлення про те, що ця маска означає і для чого потрібний маршрут: /