AlarikSV Posted July 22, 2009 · Report post Добрый день, столкнулся с такой проблемой: Есть сервер АСР, с адресом 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. Можно ли что нибудь сделать в таком решении? Share this post Link to post Share on other sites
Forst Posted July 22, 2009 (edited) · Report post Натить лучше также по марке 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 Edited July 22, 2009 by Forst Share this post Link to post Share on other sites
AlarikSV Posted July 22, 2009 · Report post rp_filter выключен, нат по метке ничего не дает, т.к. пакет до цепочки Nat Postrouting вообще не доходит.... Share this post Link to post Share on other sites
Forst Posted July 22, 2009 · Report post Где-то рубится 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 Share this post Link to post Share on other sites
AlarikSV Posted July 23, 2009 · Report post iptables чистый, за исключением тех настроек, которые я привел. форвард работает, т.к. пакет до получателя в интернете доходит, но с внутренним адресом, а не внешним. Share this post Link to post Share on other sites