Назад | Перейти на главную страницу

Сетевой мост между разными подсетями (Docker / Kubernetes)

Меня немного смущает использование сетевых мостов в настройках docker / k8s.

Насколько я понимаю, сетевой мост работает исключительно на уровне 2 и используется для объединения двух сетевых сегментов в один широковещательный домен.

Читая о docker / K8s, я вижу сетевые мосты, используемые для связывания сетевой карты хоста (например, eth0) с внутренней сетевой картой docker / pod (veth0), например, в пределах одного хоста:

eth0 [192.168.1.100] <----> docker0(bridge)[172.17.0.1] <----> veth0 [172.17.0.2]

Моя первая путаница заключается в том, что кажется странным связывать две отдельные подсети с устройством уровня 2, разве нам не нужно маршрутизировать из сети 192 ... в сеть 172 ... или это не имеет значения из-за моста работает только на уровне 2? Например. ему не важны фактические IP-адреса

Моя вторая мысль заключается в том, что, судя по таблице маршрутизации на моем хосте докеров, определен маршрут для достижения сети 172.17.0.0:

 172.17.0.0/16 dev docker0

Итак, зачем нам мостовое устройство, не может ли хост просто маршрутизировать пакеты от eth0 непосредственно на сетевые адаптеры контейнера докеров?

Мне здесь явно чего-то не хватает, поэтому заранее извиняюсь. Любая помощь приветствуется.