Я работаю с сетью контейнеров докеров. Таблица маршрутизации C1 ниже, это шлюз по умолчанию 172.17.0.1
является мостом докеров. Его интерфейс eth1 подключен к eth2 в C2, и он направляет все назначения с префиксом 192.1 на eth2 в C2.
Dest Gateway Genmask Iface
default 172.17.0.1 0.0.0.0 eth0
192.1.0.0 0.0.0.0 255.255.0.0 eth1
Таблица маршрутизации C2 приведена ниже. Он подключен к C3 между eth3 на C2 и eth4 на C3.
Dest Gateway Genmask Iface
192.1.2.0 192.1.2.1 255.255.254.0 eth3
Я могу проверить связь с C2 с C1 с помощью ping 192.1.1.2
, однако я не могу проверить связь с C3 с C1 с помощью ping 192.1.2.2
. Когда я пытаюсь проверить связь с C3, C1 отправляет ARP-запрос, ищущий Mac-адрес C3, который получает только C2, и терпит неудачу. Я могу успешно выполнить эхо-запрос к C3, если я вручную обновлю таблицу ARP C1 и дам ей Mac-адрес eth2 в C2 для 192.1.2.2
.
Я полагаю, что я мог бы также выполнить эту работу, изменив таблицу маршрутов C1, чтобы она находилась в другой подсети, чем C3, и использовала C2 в качестве шлюза по умолчанию. Таким образом, он хочет, чтобы MAC-адрес C2 проверял связь с C3.
Dest Gateway Genmask Iface
default 192.1.1.2 0.0.0.0 eth1
192.1.2.0 0.0.0.0 255.255.254.0 eth1
Однако меня заставили поверить в то, что проверка связи с C3 от C1 должна быть возможна только путем изменения таблицы маршрутов C2. Возможно ли это?
Pudete ottene cù proxy-arp
funziunalità. Quandu u proxy-arp hè attivatu in C2, risponderà à e dumande ARP cù l'indirizzu MAC propiu in a Risposta ARP. Hè ciò chì vulete.
Per attivà l'arp proxy nantu à eth0
interfaccia di C2, avete bisognu di run
sysctl -w net.ipv4.conf.eth2.proxy_arp=1
Per attivà in tutte l'interfaccia run:
sysctl -w net.ipv4.conf.all.proxy_arp=1
Per fà sta mudificazione permanente, duvete mudificà u schedariu di paràmetri di sysctl.