Трафик не достигает сокета, когда микросегментация включена на хостах Linux с несколькими интерфейсами

Prev Next

Проблема

Для систем на базе Linux включение микросегментации не создает запись маршрута для шлюза по умолчанию, если уже существуют два маршрута по умолчанию, подключенных к двум маршрутизаторам (один для локального трафика и один для интернет-трафика).

Шаги диагностики 

Проверьте таблицу маршрутизации

Проверьте таблицу маршрутизации, выполнив команду route -n

Назначение    Шлюз        Маска           Флаги Метрика Ref Использовано Интерфейс\n0.0.0.0        10.40.0.254  0.0.0.0         UG    202    0   0   eth0\n0.0.0.0        192.168.2.1  0.0.0.0         UG    1024   0   0   eth1\n10.10.0.0      10.40.0.254  255.255.0.0     UG    0      0   0   eth0\n10.30.0.0      10.40.0.254  255.255.0.0     UG    0      0   0   eth0\n10.40.0.0      0.0.0.0      255.255.0.0     U     202    0   0   eth0\n10.52.0.0      10.40.0.254  255.255.0.0     UG    0      0   0   eth0\n10.53.0.0      10.40.0.254  255.255.0.0     UG    0      0   0   eth0\n52.214.167.240 10.40.0.254  255.255.255.255 UGH   0      0   0   eth0\n172.17.10.41   10.40.0.254  255.255.255.255 UGH   0      0   0   eth0\n192.168.2.1    0.0.0.0      255.255.255.255 UH    1024   0   0   eth1

В приведенном выше примере мы видим, что шлюз для 192.168.2.1 равен 0.0.0.0, что указывает на наличие маршрута по умолчанию через eth1 именно для этого IP. Однако, поскольку шлюз не находится в одной подсети, вместо правильного маршрута будет выбран первый маршрут по умолчанию, что приводит к отправке трафика через eth0 из-за более низкой метрики.

Решение

Добавьте вручную маршрут с отсутствующей подсетью, выполнив следующую команду

ip route add <IP/CIDR> dev <interface>

Пример: ip route add 192.168.2.0/24 dev eth1

После выполнения проверьте таблицу маршрутизации, чтобы подтвердить, что маршрут был добавлен.

Назначение    Шлюз        Маска           Флаги Метрика Ref Использовано Интерфейс\n0.0.0.0        10.40.0.254  0.0.0.0         UG    202    0    0  eth0\n0.0.0.0        192.168.2.1  0.0.0.0         UG    1024   0    0  eth1\n10.10.0.0      10.40.0.254  255.255.0.0     UG    0      0    0  eth0\n10.30.0.0      10.40.0.254  255.255.0.0     UG    0      0    0  eth0\n10.40.0.0      0.0.0.0      255.255.0.0     U     202    0    0  eth0\n10.52.0.0      10.40.0.254  255.255.0.0     UG    0      0    0  eth0\n10.53.0.0      10.40.0.254  255.255.0.0     UG    0      0    0  eth0\n52.214.167.240 10.40.0.254  255.255.255.255 UGH   0      0    0  eth0\n172.17.10.41   10.40.0.254  255.255.255.255 UGH   0      0    0  eth0\n192.168.2.0    0.0.0.0      255.255.255.0   U     0      0    0  eth1\n192.168.2.1    0.0.0.0      255.255.255.255 UH    1024   0    0  eth1