Как дать возможность дозвонившемуся пользоваться всеми сервисами Инета?
Столкнулся с проблемой "отваливания" коннекта. Суть такова.
К роутеру присоединен USB-модем, он опознан и настроен на прием входящих соединений (используются pppd и chat). При вх. звонке с др. модема образуется соединение на интерфейсе ppp1. В св-х соединения указано, что адрес интерфейса ppp1 - 192.168.2.1, а адрес звонящего - 192.168.2.2 (т.е. адрес - фиксированный, хотя есть задумка каждому звонящему выдавать свой IP, но это "на потом"). Звонящему сообщаются 2 адреса DNS. Гейт для него - 192.168.2.1 (хотя, если на клиенте (WinXP) смотреть вывод ipconfig /all, то гейтом значится 192.168.2.2).
Одним словом, интерфейсу ppp1 выделен диапазон IP 192.168.2.0/24
У роутера внут. адрес - 192.168.1.1 и инт-с br0, а внеш. адрес - "белый" на интерфейсе ppp0. Провайдер предоставляет коннект по PPPoE.
Задача такова: для начала дать возможность дозвонившемуся пользоваться всеми сервисами Инета (как будто это хост из моей дом. локалки). Для решения задачи, я так понял, необходимо лишь безусловно пробрасывать трафик между ppp1 и ppp0.
Но... При установлении dial-in соединения со стороны клиента поначалу пингуется адрес gw (гейта), но не пингуются ни один из двух адресов DNS, которые передаются клиенту при установлении соединения. Причем в команде, например, ping www.ru FQDN разрешается в IP-адрес, но пинга нет. Получается, что ответ от DNS-ов клиент получает, но ICMP-трафик "режется" iptables.
Через несколько минут перестает пинговаться гейт и перестают разрешаться FQDN. Кто бы сказал, в чем причина этого явления и как решить возникающую проблему?
В post-firewall для этого направления прописаны такие правила:
iptabels -t -I FORWARD -i $1 -o ppp1 -j ACCEPT
iptabels -t -I FORWARD -i ppp1 -o $1 -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE
Подозреваю, что пропущено правило на предмет PREROUTING. Как оно должно выглядеть? И что еще не дописано, чтобы решить задачу?