LINUX.ORG.RU
решено ФорумAdmin

[снимите с ручника] PPPoE и port forwarding


0

1

Есть машина с внешним IP. Интернет она получает через PPPoE (настроен через pppoe-setup), IP статический (но выдается автоматически). Всё это дело на eth0. Через вторую сетевую карту (eth1) подключена вторая машина. В этой подсети первая машина имеет адрес 192.168.1.1, вторая - 192.168.1.2.

Я хочу пробросить один порт через первую машину на вторую. Делал вот так:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 55512 -j DNAT --to 192.168.1.2:8080

Никаких других правил в iptables нет.

Результат - порт вроде бы открыт, однако ничего не работает. В примере выше - на порту 8080 второй машины висит веб-сервер, однако проблема от сервиса не зависит - с ssh такая же история.

Более того, всё повторяется один в один, если пробрасывать порт через eth1.

Скан портов через nmap показывает следующее:

55512/tcp filtered unknown

Вопрос - как это заставить работать, и почему не работает описанная выше конструкция?

Сильно не пинайте, с iptables я все еще на «вы» :)

так это а где нат или маскарад

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

Спасибо, первый ступор прошел)

Теперь проблема сводится к следующему: с eth1 такое проходит, с ppp0 - не работает.

Собственно, отчего я и начал про PPPoE - задачка старая, и когда-то с eth у меня получилось, а вот с ppp0 - беда.

aix27249
() автор топика

iptables -A INPUT -p tcp --dport 55522 -j ACCEPT

iptables -t nat -I PREROUTING -p tcp --dport 55522 -j DNAT --to-destination 192.168.1.2:8080

iptables -A FORWARD -p tcp --dport 55522 -j ACCEPT

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

Ура, я таки сделал это :) Решение выглядит так:

iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 55512 -j DNAT --to 192.168.1.2:8080
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
aix27249
() автор топика
Ответ на: комментарий от aix27249
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 55512 -j DNAT --to 192.168.1.2:8080
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Если дело дошло до необходимости второго правила, то у вас таблица маршрутизации на 192.168.1.2 кривая (то есть default gateway не стоит).

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

192.168.1.2 не получает интернеты через 192.168.1.1 - поэтому default gateway там другой. Но теперь я кажется понимаю, почему раньше обходился одним правилом :)

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