как перенаправить весь исходящий трафик с eth0 по умолчанию на eth1 в centos 6

как перенаправить весь исходящий трафик с eth0 по умолчанию на eth1 в centos 6

На моем сервере AWS AMI Centos я развернул VPC с 2 подсетями eth0 10.0.0.1 с интернет-шлюзом и eth1 10.10.0.1 с NAT-шлюзом через публичный IP-адрес. Проблема в том, что я предоставил клиенту публичный IP-адрес моего NAT-шлюза для взаимодействия или отправки данных с этой подсетью. К одному серверу подключается несколько клиентов, и я не хочу добавлять маршрут для определения подсети, из которой этот IP-адрес будет отправлять данные. Я хочу изменить свой маршрут по умолчанию или, скажем, весь исходящий трафик из подсети eth1. До сих пор я пробовал iptables и менять шлюз в сетевом скрипте, для получения подробной информации см. ниже.

/etc/sysctl.conf
net.ipv4.ip_forward =1 

sysctl net.ipv4.ip_forward = 1

sudo iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE  

sudo iptables -A FORWARD --in-interface eth0 -j ACCEPT

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

Даже пытался изменить eth1 по умолчанию

**/etc/sysconfig/network
GATEWAY=x.x.x.x
GATEWAYDEV=eth1**

здесь весь трафик блокируется, даже входящий трафик также переключается на eth1.

Мне нужно, чтобы входящий трафик поступал из подсети eth0 10.0.0.1, а исходящий — из подсети eth1 10.10.0.1. Добавление маршрута сделает мой процесс более беспокойным, мне нужно что-то автоматизированное, например, добавить одну команду или скрипт, который делает все это...

решение1

Для меня это не имеет смысла... но...

Мне нужно, чтобы входящий трафик поступал из подсети eth0 10.0.0.1, а исходящий — из подсети eth1 10.10.0.1. Добавление маршрута сделает мой процесс более беспокойным, мне нужно что-то автоматизированное, например, добавить одну команду или скрипт, который делает все это...

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

Однако вы можете указать устройству, на какую сетевую карту отправлять трафик (при условии, что вы не отправляете трафик на TCP-соединение, установленное через другую сетевую карту)... т. е. если трафик исходит от указанного устройства...

сделать это;

/etc/sysconfig/network-scripts/route-eth0

default via 10.10.0.1 dev eth1

iptables не предназначен для перемещения трафика между сетевыми картами и использует DNAT/SNAT, а не MASQUERADE для статического IP.

пожалуйста, переформулируйте или уточните свой вопрос, поскольку он кажется неясным...

Связанный контент