Я пытаюсь направить трафик между разными сетями и следую руководству, которое нашел здесь:
https://devconnected.com/how-to-add-route-on-linux/
Вот диаграмма, которая, я надеюсь, адекватно изображает устройство, с которым я работаю:
Виндовс 10 Убунту Линукс
172.31.0.X <----------> 172.31.0.33 (eno1)
10.0.40.1 (enp2s0f0) <----------> 10.0.40.10
У меня установлен постоянный маршрут на ПК с Windows для маршрутизации любого трафика для 10.0.40.0/24 через 172.31.0.33.
Выход на печать маршрута
Машина Ubuntu настроена на маршрутизацию трафика, предназначенного для 10.0.40.0/24, через 10.0.40.1.
IP-выход
Пинг 10.0.40.10 с машины Ubuntu работает как положено.
Если я пропингую 10.0.40.10 с ПК с Windows, я увижу, что сообщения ICMP поступают на интерфейс 172.31.0.33 на машине с Ubuntu с помощью tcpdump.
Я не вижу трафика на интерфейсе 10.0.40.1 на этой машине. Похоже, что машина с Ubuntu не маршрутизирует трафик, как я ожидал.
Может ли кто-нибудь пролить свет на то, что я пропустил?
Добавление вывода:
iptables -S
для машины Ubuntu:
судо iptables -S
# Предупреждение: таблицы iptables-legacy присутствуют, используйте iptables-legacy, чтобы увидеть их
-P ВВОД ПРИНЯТЬ
-P ВПЕРЕД ПРИНЯТЬ
-P ВЫВОД ПРИНЯТЬ
-A ВПЕРЕД -i eno1 -j ПРИНЯТЬ
-A ВПЕРЕД -i enp2s0f0 -j ПРИНЯТЬ
adi@LabBuildServer:~$ sudo iptables-legacy -S
[sudo] пароль для adi:
-P ВВОД ПРИНЯТЬ
-P ПАДЕНИЕ ВПЕРЕД
-P ВЫВОД ПРИНЯТЬ
-N ДОКЕР
-N DOCKER-ИЗОЛЯЦИЯ-ЭТАП-1
-N DOCKER-ИЗОЛЯЦИЯ-СТАДИЯ-2
-N DOCKER-ПОЛЬЗОВАТЕЛЬ
-A FORWARD -j DOCKER-USER
-A ВПЕРЕД -j DOCKER-ИЗОЛЯЦИЯ-ЭТАП-1
-A FORWARD -o docker0 -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A ВПЕРЕД -o docker0 -j DOCKER
-A ВПЕРЕД -i docker0 ! -o docker0 -j ПРИНЯТЬ
-A ВПЕРЕД -i docker0 -o docker0 -j ПРИНЯТЬ
-A FORWARD -o br-e925d11be2da -m conntrack --ctstate СВЯЗАННЫЙ, УСТАНОВЛЕННЫЙ -j ПРИСОЕДИНЯЙТЕСЬ К PT
-A ВПЕРЕД -o br-e925d11be2da -j ДОКЕР
-A ВПЕРЕД -i br-e925d11be2da ! -o br-e925d11be2da -j ПРИНЯТЬ
-A ВПЕРЕД -i br-e925d11be2da -o br-e925d11be2da -j ПРИНЯТЬ
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-e925d11be2da ! -o br-e925d11be2da -j DOCKER-IS OLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j ВОЗВРАТ
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-e925d11be2da -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j ВОЗВРАТ
-A DOCKER-USER -j ВОЗВРАТ
Вывод:
IP-маршрут
на хосте Linux:
IP-маршрут
по умолчанию через 10.0.40.1 dev br-POE proto static
10.0.40.0/24 dev br-POE прото-область ядра ссылка src 10.0.40.10
Машина Убунту:
adi@LabBuildServer:~$ sudo iptables -t nat -L
[sudo] пароль для adi:
# Предупреждение: таблицы iptables-legacy присутствуют, используйте iptables-legacy, чтобы увидеть их
Цепь PREROUTING (политика ПРИНЯТЬ)
целевая защита выбор источника назначения
Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
Сеть POSTROUTING (правило ACCEPT)
целевая защита выбор источника назначения
МАСКАРАДируйте все -- где угодно и где угодно
МАСКАРАДируйте все -- где угодно и где угодно
Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения