як зрозуміти таблицю маршрутизації на клієнті OpenVPN


13

Я просто налаштував 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

Тож давайте розсікати його по черзі

  1. Будь-який призначений пакет 10.8.0.5не має шлюзу і буде використовуватисьtun0
  2. будь-який пакет, призначений для 10.8.0.1використання, використовуватиме 10.8.0.5як шлюз черезtun0
  3. будь-який пакет, призначений для 54.202.18.143використання, використовуватиме 10.0.2.2як шлюз черезeth0
  4. будь-який призначений пакет 10.0.2.0/24не має шлюзу і буде використовуватисьeth0
  5. Нехай ігнорує частину 169.254.0.0
  6. Усі інші пакети (призначені для 0.0.0.0) будуть нам 10.8.0.5як шлюз за замовчуванням через tun0. Так це шлюз за замовчуванням, чи не так?
  7. Будь-який пакет, призначений для 128.0.0.0/7використання, використовуватиме 10.8.0.5як шлюз за замовчуванням черезtun0
  8. Усі інші пакети ( 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

2
Перший 0.0.0.0маршрут має Genmask, 128.0.0.0що, ймовірно, не робить його за замовчуванням. Я маю сказати, хоча я не маю найменшого уявлення про те, що ця маска означає і для чого потрібний маршрут: /
Мартін фон Віттіч

Також будьте неохоронними, що маршрутизація 128.0.0.0 у вашій мережі насправді дивна, тому що це загальнодоступний ip або зарезервований, я не пам'ятаю. Але в обох випадках це дивно.
Kiwy

Частина 128.0.0.0 надходить із openvpn. це пояснюється тут
забійнийлюцифер

Ви повинні перетворити "ОНОВЛЕННЯ" у відповідь, оскільки саме це: відповідь, яка допомогла мені зрозуміти ту саму точну проблему, що і у мене :)
WoJ

@slayedbylucifer пояснення для 128.0.0.0, здається, не працює, і немає його архіву. Чи трапляється у вас онлайн-посилання про це?
SaAtomic

Відповіді:


4

Чи є у мене два шлюзи за замовчуванням, якщо ми розглянемо пункти 6 та 8? (хоча може бути лише 1 шлюз за замовчуванням, тому я знаю, що я помиляюся, але не можу виправдати) (напевно, відповів, див. нижче)

Шостий рядок визначає діапазон 0.0.0.0 - 127.255.255.255, а 7-й рядок визначає діапазон 128.0.0.0 - 255.255.255.255.

Чи є у мене два шлюзи за замовчуванням, якщо ми розглянемо пункти 6 та 8?

НІ, є лише один шлюз за замовчуванням, і це:

0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0

Зважаючи на пункти 1 і 2, все, що відбувається за 10.8.0.1, насправді не використовує жодного шлюзу через tun0. Це правильно?

Ні, що невірно, пакети, призначені для 10.8.0.1, будуть перенаправлені до 10.8.0.5 (який доступний через tun0 lan, як встановлено першим рядком).
ви мали рацію, якщо мережна маска не була 255.255.255.255

Зважаючи на пункти 3 та 4, все, що відбувається для 54.202.18.143, насправді не використовує жодного шлюзу через eth0. Це правильно?

Ні неправильно, пакети, призначені для 54.202.18.143, будуть перенаправлені до 10.0.2.2 (що є ще одним хостом на eth0 lan і доступний через 4-й рядок)


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