>Помогите реализовать задачку
>
>Есть три интерфейса ppp0, ppp1 и eth0.
>Eth0 ? во внутреннюю сеть.
>ррр0 и ррр1 ? на Интернет.
>
>Требуется:
>Через ррр0 (с eth0 конечно) проходили, к примеру, только порты SMTP, FTP,
>POP3.
>А через ррр1 только WWW.
>
>Как это дело промутить?
Только из того что написанно eth0 я понял что это Linux, а не BSD... хотя это вовсе не факт. Для Linux это делает пакет iproute2..
Вот примерно то что тебе нужно здалать:
bash# iptables -t mangle -I PREROUTING -p tcp -s 192.168.1.0/24 -d 200.185.61.96/28 --dport 25 -j MARK --set-mark 0x10
bash# iptables -t mangle -I PREROUTING -p tcp -s 192.168.1.0/24 -d 200.185.61.96/28 --dport 21 -j MARK --set-mark 0x10
bash# iptables -t mangle -I PREROUTING -p tcp -s 192.168.1.0/24 -d 200.185.61.96/28 --dport 110 -j MARK --set-mark 0x10
bash# iptables -t mangle -I PREROUTING -p tcp -s 192.168.1.0/24 -d 200.185.61.96/28 --dport 80 -j MARK --set-mark 0x15
Это пометит пакеты: smtp pop ftp метка - 0x10
www -- 0x15
bash# iptables -t nat -A POSTROUTING -p tcp -d 0/0 -o ppp0 -j SNAT --to-source $IP_PPP0
bash# iptables -t nat -A POSTROUTING -p tcp -d 0/0 -o ppp1 -j SNAT --to-source $IP_PPP1
Это натит пакеты
bash# echo "300 PPP0" >> /etc/iproute2/rt_tables
bash# echo "300 PPP1" >> /etc/iproute2/rt_tables
Это делается только один раз(создаются таблицы).
bash# ip route add default via $IP_PROVA0 dev ppp0 table PPP0
bash# ip route add default via $IP_PROVA1 dev ppp1 table PPP1
bash# ip flush cache
bash# ip rule add fwmark 10 table PPP0
bash# ip rule add fwmark 15 table PPP1
Это зоздает маршруты и правила маршрутизации.
$IP_PROVA -- ip на стороне прова
$IP_PPP -- ip на твоей стороне
А вообще если чего не ясно можно глянуть здесь:
http://www.atmsk.ru/index.php?option=articles&task=viewarticle&artid=27