Встала максимально тривиальная задача. Есть Desktop под Debian (рабочая домашняя машина) и ноутбук под WinXP (из-за аппаратной неисправности проца Linux там падает). Нужно вывести ноут в Интернет через Десктоп используя NAT. На десктопе сетевые интерфейсы: eth0 - локалка с провайдером 10.22.0.0/16, адрес 10.22.117.155; ppp0 - тунель через локалку провайдера, через который выход в Интернет, адрес 79.98.xxx.yyy, IP белый, прямой; eth1 - локалка с ноутом 192.168.1.0/24, адреса 192.168.1.16 у десктопа и 192.168.1.5 у ноута.
Задача проще некуда: либо так:
Код:
iptables -t nat -A POSTROUTING -s 192.168.1.5 -j MASQUERADEлибо так (адреса хоть и выдаются провайдером по DHCP, но уже год как не менялись):
Код:
iptables -t nat -A POSTROUTING -s 192.168.1.5 -d 10.22.0.0/16 -c 0 0 -j SNAT --to-source 10.22.117.155
iptables -t nat -A POSTROUTING -s 192.168.1.5 -d ! 10.22.0.0/16 -c 0 0 -j SNAT --to-source 79.98.xxx.yyyНа ноуте, понятно, прописываем 192.168.1.16 шлюзом и DNS-ы провайдера.
Поднимаю я такую систему, пингую с ноута хоть провайдерскую локалку, хоть внешние адреса (и по имени, и по адресу) - ответа нет. Пинг до десктопа идёт отлично. На десктопе смотрел tcpdump'ом - пакеты с ноута с ICMP или DNS запросом приходят - с правильными адресами получателя, всё правильно. Дальше смотрел по счётчикам iptables - пакеты с ноута iptables как будто просто не видит. Пробовал выдавать другим товарищам с локалки провайдера Инет через себя - iptables их пакеты так же игнорирует, хотя критериям они соответствуют. То есть проблема не в ноуте. Смотрел все таблицы iptables - все девственно чисты:
Код:
lilovip:/home/lilovip# iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 74187 packets, 7556K bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 5031 packets, 342K bytes)
pkts bytes target prot opt in out source destination
0 0 SNAT all -- * * 192.168.1.5 10.22.0.0/16 to:10.22.117.155
0 0 SNAT all -- * * 192.168.1.5 !10.22.0.0/16 to:79.98.15.175
Chain OUTPUT (policy ACCEPT 5034 packets, 342K bytes)
pkts bytes target prot opt in out source destination так же ACCEPT везде - и в mangle и в filter и в raw.
Пробовал указывать -s и всю сетку 192.168.1.0/24 и просто без -s - чтобы все пакеты удовлетворяли критерию - iptables игнорит.
Всё, больше способов протестить в чём проблема не могу измыслить.
Есть ли какой-то специфичный софт/настройки которые могут сбить iptables с толку? Может есть какие-то способы протестить что не так?
Маны по iptables исчитал вдоль и поперёк - уже третий день с этой проблемой сижу.
Заранее спасибо за помощь.