Рейтинг:0

Сеть контейнерного моста с подсетью на Hetzner и CNI

флаг us
cpl

Я пытаюсь создать частную сеть виртуальных машин и контейнеров на Хетцнер Облако. Я протестировал эту настройку в своей локальной домашней сети, и все работает нормально.

План состоит в том, чтобы иметь частную сеть для виртуальных машин (10.0.0.0/8 просто для пробы). Для моего теста я использую 10.10.0.1 и 10.10.0.2 как виртуальные машины. И каждая виртуальная машина будет иметь мостовую сеть CNI (например: 172.20.0.0/16, для контейнера). Я хочу сделать мостовые сети доступными для любой виртуальной машины на 10.0.0.0/8 сети со статическими маршрутами.

На Hetzner я настроил статический маршрут 172.20.0.0/16 до 10.10.0.1. На 10.10.0.1 У меня есть мостовая сеть CNI для Podman, настроенная на тот же диапазон 172.20.0.0/16.

Любой контейнер, который размещается в этой сети, без проблем пингуется или обращается к: локальным, другим контейнерам, хосту или Интернету и хосту (10.10.0.1) не имеет проблем с доступом к контейнерам (172.20.0.Х).

Проблема в том, что когда я хочу пропинговать контейнер из 10.10.0.2. Я отслеживал трафик с помощью tcpdump и ифтоп, а маршрут Hetzner, кажется, работает просто отлично, так как соединения достигают виртуальной машины на 10.10.0.1 (ens10). Что заставляет меня задаться вопросом, не является ли это проблемой маршрутизации между ens10 и подман-влан мостовые интерфейсы?

Вот маршруты из 10.10.0.1

по умолчанию через 172.31.1.1 dev eth0 proto dhcp src X.Y.Z.W метрика 100 
10.0.0.0/8 через 10.0.0.1 dev ens10 
10.0.0.1 ссылка на объем dev ens10 
172.17.0.0/16 dev docker0 ссылка на область ядра proto src 172.17.0.1 
172.20.0.0/16 dev podman-vlan ссылка на область ядра proto src 172.20.0.1 
172.31.1.1 dev eth0 proto dhcp scope link src XYZW метрика 100 

На 10.10.0.2 VM, я только что сделал ip r добавить 172.20.0.0/16 через 10.0.0.1 (который, кажется, работает как).

Я ожидал получить 10.10.0.2 -> 10.0.0.1 -> 10.10.0.1 -> 172.20.0.1 -> 172.20.0.X. Вместо этого кажется, что все теряется в 10.10.0.1, в том числе, если я попытаюсь пинг -I ens10 172.20.0.X

Это конфигурация CNI:

{
  "cniVersion": "0.4.0",
  "имя": "подман",
  "плагины": [
    {
      "тип": "мост",
      "мост": "подман-влан",
      "isGateway": правда,
      "ipMasq": правда,
      "promiscMode": правда,
      "айпам": {
        "тип": "локальный хост",
        «маршруты»: [{ «dst»: «0.0.0.0/0» }],
        "диапазоны": [
          [
            {
              "подсеть": "172.20.0.0/16",
              "шлюз": "172.20.0.1"
            }
          ]
        ]
      }
    },
    {
      "тип": "карта порта",
      "возможности": {
        "portMappings": правда
      }
    },
    {
      "тип": "брандмауэр"
    },
    {
      "тип": "тюнинг"
    }
  ]
}

Заранее спасибо.

Рейтинг:0
флаг us
cpl

Это была проблема с Docker, существующим на этой виртуальной машине и iptables.

Проверка iptables -L на виртуальной машине

Цепочка FORWARD (политика DROP)
целевая защита выбор источника назначения
DOCKER-USER все -- где угодно где угодно
CNI-FORWARD все -- в любом месте в любом месте

Докер получил приоритет. Так что либо настройте правило для переадресации нужного интерфейса на CNI/Podman/Docker, либо что-то еще.

В моем случае удаление Docker было вариантом, и это все исправило.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.