как понять таблицу маршрутизации на клиенте OpenVPN

12

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

Вопросов:

  • Есть ли у меня 2 шлюза по умолчанию, если мы рассмотрим пункты 6 и 8? (хотя может быть только 1 шлюз по умолчанию, поэтому я знаю, что ошибаюсь, но не могу обосновать) ( вероятно, ответ, см. ниже )
  • Учитывая 10.8.0.1пункты 1 и 2, все, что происходит, на самом деле не использует какой-либо шлюз через 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

Итак, 1-я строка является определяющей, 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.

Поэтому я думаю, что у меня есть ответ на мой первый вопрос:

Есть ли у меня 2 шлюза по умолчанию, если мы рассмотрим пункты 6 и 8?

НЕТ, есть только один шлюз по умолчанию, и это:

0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
slayedbylucifer
источник
2
Первый 0.0.0.0маршрут имеет Genmask, 128.0.0.0который, вероятно, не делает его маршрутом по умолчанию. Я должен сказать, что у меня нет ни малейшего представления о том, что означает эта маска и для чего нужен маршрут: /
Мартин фон Виттих
Также имейте в виду, что маршрутизация 128.0.0.0 внутри вашей сети действительно странная, потому что это публичный ip или зарезервированный я не запоминаю. Но в обоих случаях это странно.
Kiwy
Часть 128.0.0.0 идет от openvpn. это объясняется здесь
slayedbylucifer
Вы должны превратить свое «ОБНОВЛЕНИЕ» в ответ, так как именно он: ответ, который помог мне понять ту же самую проблему, с которой я
столкнулся
@slayedbylucifer объяснение 128.0.0.0, кажется, не работает, и его архив недоступен. У вас есть онлайн-ссылка по этому поводу?
SaAtomic

Ответы:

3

Есть ли у меня 2 шлюза по умолчанию, если мы рассмотрим пункты 6 и 8? (хотя может быть только 1 шлюз по умолчанию, поэтому я знаю, что ошибаюсь, но не могу обосновать) (вероятно, ответ, см. ниже)

6-я строка определяет диапазон 0.0.0.0 - 127.255.255.255, а 7-я строка определяет диапазон 128.0.0.0 - 255.255.255.255.

Есть ли у меня 2 шлюза по умолчанию, если мы рассмотрим пункты 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-й линии)

Сыпь
источник
На первый вопрос ответили сами. Я просто хотел, чтобы ответ был полным, поэтому я упомянул его.
Араш