LINUX.ORG.RU
ФорумAdmin

Как настроить NAT в linux?

 , , , ,


0

2

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

На роутере применял такие правила:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

iptables -A FORWARD -i eth1 -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT

где eth1 - интерфейс, который подключен к нету, eth2 - к локальной сети.

# sysctl -p
net.ipv4.ip_forward = 1

По локальной сети оба сервера пингуются. Но выполнить ping google.com на втором сервере не получается.

А ping 8.8.8.8? Другими словами, DNS настроен?

Kiborg ★★★ ()

С внутреннего покажи

ip a
ip r
ip r g 8.8.8.8

zolden ★★★★★ ()

iptables -t nat -A POSTROUTING -s xx.xx.xx.xx/24 ! -d nn.nn.nn.nn/24 -j MASQUERADE, xx локалка, nn ip интернет, шлюз для локальных машин на локальный адрес роутера, вроде всё, днс провайдера еще.

ilovewindows ★★★★★ ()

Я могу ошибаться, но забыли ещё одно правило

iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
т.к. RELATED,ESTABLISHED означает согласованное соединение. Для udp и ваш вариант сработает, а вот для tcp там несколько пакетов должны пройти в обе стороны перед началом конкретной передачи данных, то есть до того момента, как состояние соединения станет ESTABLISHED.

Да и в целом, имея два правила

iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
достаточно и писать правило, отслеживающее состояние соединения теряет смысл.

Если уж так важно отслеживать и пропускать по состояниям, нужно правило акцепта для NEW соединений.

Остальное - всё верно. Не забывайте DNS указывать/раздавать клиентам.

nickleiten ★★★ ()

Хватит одного правила

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

roman77 ★★★★★ ()

Ты на втором сервере маршрут по умолчанию прописал?

alex_the_v ★★★ ()

echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eht0 -j ACCEPT

на втором сервер прописываешь шлюзом, IP адрес сетевой карты (eth1 роутера) которая смотрит в локальную сеть.

route add default gw 192.168.0.1 <--ip адрес шлюза(роутера)

doctor-ua ()

купит роутер за N-количество денег.

вроде как уже эра ПК-маршрутизаторов должна была пройти.
или нет?

Deleted ()
Ответ на: комментарий от Deleted

вроде как уже эра ПК-маршрутизаторов должна была пройти.

С чего бы?

Имхо при наличии отсутствия доверия дырявым прошивкам, самое то. Разве нет?

Особенно актуально для устаревающих зоопарков железок. В самый раз им там место.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.