AlarikSV Опубликовано 22 июля, 2009 · Жалоба Добрый день, столкнулся с такой проблемой: Есть сервер АСР, с адресом 192.168.1.2, который производит подсчет трафика и контроль доступа. Есть маршрутизатор (Linux 2.6.29) с тремя интерфейсами, eth0 - x.x.x.x - подключен интернет eth1 - 192.168.1.1 - подключена система учета трафика (АСР) eth2 - 10.0.0.1/8 - подключены клиенты Требуется трафик между клиентами и интернетом пропустить через АСР. Настройки: iptables -t mangle -A PREROUTING -s 10.0.0.0/8 -i eth2 -j MARK --set-mark 200 #Трафик от клиента в инет iptables -t mangle -A PREROUTING -d 10.0.0.0/8 -i eth0 -j MARK --set-mark 100 #Трафик из инета к клиенту ip route add default via 192.168.1.2 table 200 ip rule add fwmark 100 lookup 200 ip rule add fwmark 200 lookup 200 iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to x.x.x.x Проблема в том - что нат не работает. При снятии дампа с внешнего интерфейса маршрутника я вижу локальный адрес 10.0.0.2. Если убрать fwmark - нат работает, но трафик не проходит через АСР. Если запустить пинг с клиента в инет (1 пакет) и посмотреть счетчики пакетов, прошедших через цепочки, то видно, что через таблицы filter и mangle прошло 2 пакета, а через nat - только 1. Можно ли что нибудь сделать в таком решении? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Forst Опубликовано 22 июля, 2009 (изменено) · Жалоба Натить лучше также по марке iptables -t nat -A POSTROUTING -m mark --mark XXX -j SNAT --to-source x.x.x.x и ещё надо выключить rp_filter for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo '0' >$f; done Изменено 22 июля, 2009 пользователем Forst Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlarikSV Опубликовано 22 июля, 2009 · Жалоба rp_filter выключен, нат по метке ничего не дает, т.к. пакет до цепочки Nat Postrouting вообще не доходит.... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Forst Опубликовано 22 июля, 2009 · Жалоба Где-то рубится echo 1 >/proc/sys/net/ipv4/ip_forward iptables -t mangle -I FORWARD -j ACCEPT iptables -I FORWARD -j ACCEPT iptables -t mangle -I POSTROUTING -j ACCEPT Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlarikSV Опубликовано 23 июля, 2009 · Жалоба iptables чистый, за исключением тех настроек, которые я привел. форвард работает, т.к. пакет до получателя в интернете доходит, но с внутренним адресом, а не внешним. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...