Почему у моего LXC есть маршруты к подсети 192.x.x.x?

Вопрос или проблема

# route -v
Таблица маршрутизации IP ядра
Назначение     Шлюз             Маска сети       Флаги Метрика Ссылка  Использование Интерфейс
по умолчанию   RT-00904C0FF018 0.0.0.0         UG    1024   0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-55985fc83fa9
172.19.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-4a2e674be385
172.20.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-c4a5411407dd
172.21.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-7eb7fa74a326
172.22.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-3b304b8d2b9f
172.23.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-519d33f42172
172.24.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-10bfee6d9dcb
172.25.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-5f628b8f8682
172.26.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-d7fcffbb970a
172.27.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-4b57aa2459c5
172.28.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-a4759ccfc8c4
172.29.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-fa55d2bd337d
172.30.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-f7574a62a5c4
172.31.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-45084db52c51
192.168.0.0     0.0.0.0         255.255.240.0   U     0      0        0 br-65a630f9019d
192.168.16.0    0.0.0.0         255.255.240.0   U     0      0        0 br-5aa5d76d0c7a
192.168.32.0    0.0.0.0         255.255.240.0   U     0      0        0 br-e0d66f2d6753
192.168.48.0    0.0.0.0         255.255.240.0   U     0      0        0 br-beb580b505a2
192.168.214.0   0.0.0.0         255.255.255.0   U     1024   0        0 eth0
RT-00904C0FF018 0.0.0.0         255.255.255.255 UH    1024   0        0 eth0
  1. У меня есть LXC с множеством работающих контейнеров Docker
  2. Я вижу много 172.x.x.x и предполагаю, что они принадлежат некоторым контейнерам
  3. Что я не могу понять, так это почему есть 192.x.x.x тоже
  4. Почему произошёл переход от 172.x к 192.x?

Моя проблема в том, что у меня есть реальный сервер на 192.168.9.111, и я не могу до него добраться из-за этих маршрутов. Есть идеи?

Согласно https://en.wikipedia.org/wiki/Private_network, диапазон частной сети составляет 172.16.0.0 – 172.31.255.255

Я не знаю, почему нет 172.16.0.0, но, кроме этого, диапазон 172 исчерпан.

Ответ или решение

Ваша проблема связана с маршрутизацией в контейнере LXC, где запущено множество контейнеров Docker. Чтобы понять, почему в таблице маршрутов вашего контейнера присутствуют маршруты к подсетям 192.x.x.x, необходимо рассмотреть несколько аспектов.

1. Анализ текущей конфигурации маршрутов

Вы предоставили вывод команды route -v, в котором можно увидеть маршрутизацию сетевого трафика. Обратите внимание на следующие строчки:

  • Конфигурация маршрутов для 192.x.x.x: Ваш LXC контейнер имеет маршруты к подсетям 192.168.0.0, 192.168.16.0, 192.168.32.0, 192.168.48.0, и 192.168.214.0 с масками подсети, которые позволяют подключение к этим диапазонам.

2. Сетевые интерфейсы и их взаимодействие

Поскольку у вас запущены контейнеры Docker, для них создаются виртуальные мосты (bridge interfaces), например br-65a630f9019d, br-5aa5d76d0c7a и т.п. Каждый из этих мостов отвечает за свою подсеть. Если один из ваших Docker контейнеров настроен на использование диапазона 192.x.x.x, он автоматически добавит соответствующий маршрут в таблицу маршрутов LXC.

3. Причина «прыжка» от 172.x.x.x к 192.x.x.x

Сетевые диапазоны 172.16.0.0172.31.255.255 являются частными IP-адресами, которые могут использоваться для назначения внутренним контейнерам. Однако, если диапазон 172.x.x.x заканчивается или не используется в вашей сети, Docker может перейти к маршрутам 192.x.x.x, если это будет предусмотрено конфигурацией сети Docker или если ваши контейнеры настраиваются на случайные диапазоны.

4. Конфликт с вашим сервером

Ваш сервер с IP-адресом 192.168.9.111 не доступен, потому что маршруты к 192.x.x.x в конфигурации вашего LXC могут пересекаться с маршрутом к вашему серверу. Это создает неполадку в маршрутизации, так как трафик к вашему серверу может быть неверно направлен через виртуальные мосты Docker, а не напрямую к серверу.

5. Решение проблемы

Чтобы устранить возникшую проблему с маршрутизацией:

  • Проверьте конфигурации Docker: Измените диапазоны IP для контейнеров в конфигурации Docker. Это можно сделать, задав свои собственные диапазоны, которые будут исключать 192.168.x.x.
  • Настройте статические маршруты: Добавьте статические маршруты к серверу, который недоступен. Например, явное указание маршрута, указывающего на конкретный интерфейс, который должен использоваться для доступа к 192.168.9.111.
  • Проверьте настройки LXC: Убедитесь, что конфигурация сети контейнера LXC не конфликтует с сетевыми настройками Docker.

Заключение

Определение причин и решение вопросов сетевой конфигурации в контейнерах LXC и Docker требует тщательного анализа маршрутов и сетевых интерфейсов. Настройка правильных сетевых правил и маршрутов поможет вам вернуть нормальную взаимосвязь между вашим LXC и сервером 192.168.9.111.

Оцените материал
Добавить комментарий

Капча загружается...