2014-10-31 2 views
0

Этот аппарат имеет два интерфейса: eth0 и eth1. Существует шлюз по умолчанию на eth0:Прямой трафик по конкретному сетевому интерфейсу для конкретного хоста

Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
default   10.0.2.1  0.0.0.0   UG 0  0  0 eth0 
10.0.2.0  *    255.255.255.0 U  0  0  0 eth0 
10.0.2.0  *    255.255.255.0 U  0  0  0 eth1 

Мне нужно установить правила с iptables проксировать весь входящий трафик на eth1 к 10.0.1.1.

Обратите внимание, что eth0 связан со статическим IP-адресом 10.0.2.2, а eth1 - динамический.

Существует руководство по port forwarding with netfilter, в котором объясняется, как это сделать в несколько более простой настройке, но я не могу понять, как перейти от их примера к моему.

+2

Не вопрос программирования. Лучше подходит для [ubuntu.se] или [su]. –

ответ

0

Опираясь на the link вы указали, за исключением using the conntrack module rather than the state module:

# Activate forwarding 
echo 1 > /proc/sys/net/ipv4/ip_forward 
# Forward packets coming in from the outside 
iptables -t nat -A PREROUTING -p tcp -i eth1 -j DNAT --to-destination 10.0.1.1 
# Make responses on the internal network go through the firewall 
iptables -t nat -A POSTROUTING -p tcp -d 10.0.1.1 -j SNAT --to-source 10.0.2.2 
# Allow forwarded packets 
iptables  -A FORWARD  -p tcp -d 10.0.1.1 -j ACCEPT -m conntrack --ctstate NEW,ESTABLISHED,RELATED 

Чтобы отключить reverse path filtering в ядре, выполните действия, описанные here. Я думаю, что в вашем случае достаточно было бы изменить значение net.ipv4.conf.eth1.rp_filter на 0 через .
Обратите внимание, что это обходное решение представляет собой небольшое отверстие для безопасности. Лучшим подходом было бы изменение самой структуры сети.

+0

Я не могу заставить это работать (ни один трафик никогда не покидает машину, я получаю сообщения журнала «Марсианские источники»), но я думаю, что в моем конкретном случае использования я могу, вероятно, упростить мою установку и удалить «eth1'' , – malthe

+0

Какое полное сообщение о том, что вы получаете? Кроме того, у вас есть намеренная двойная запись для '10.0.2.0' в вашей таблице маршрутизации? Оба интерфейса фактически подключены к одной и той же внутренней сети? Можете ли вы объяснить, что здесь представляет собой большая картина, то, что именно вы пытаетесь достичь, и как вы хотите, чтобы ваша установка выглядела? – Yoel

+0

Записи таблицы маршрутизации предназначены для разных интерфейсов (только один видит трафик из Интернета). Но я понял, что могу легко сопоставлять «! 10.0.0.0/16'' и просто получать весь трафик на одном интерфейсе (это виртуализованная среда). Другими словами, я не уверен, что мой вопрос имеет такой смысл. – malthe

Смежные вопросы