Я просто налаштував 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що, ймовірно, не робить його за замовчуванням. Я маю сказати, хоча я не маю найменшого уявлення про те, що ця маска означає і для чого потрібний маршрут: /