iptables+CONNMARK [solved]
gmurik 21 Августа, 2009 - 16:21
Есть трабла пакеты не хотят маркироваться...
Ядро пересобрал в соответсвии с мануалом.
Модуль подгружен
lsmod | grep conn xt_connmark 1884 9 nf_conntrack_ipv4 11524 18 iptable_nat,nf_nat nf_conntrack 58908 7 ipt_MASQUERADE,xt_connmark,xt_CONNMARK,xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4 nf_defrag_ipv4 1636 1 nf_conntrack_ipv4 x_tables 13816 8 ipt_MASQUERADE,xt_connmark,xt_CONNMARK,xt_state,xt_multiport,xt_tcpudp,iptable_nat,ip_tables
Код скрипта.
#!/bin/bash IPT=/sbin/iptables IPTS=/sbin/iptables-save IPTR=/sbin/iptables-restore LOC="eth1" # lolal net PR1="eth0" # пров 1 PR2="eth2" # пров 2 $IPT -F $IPT -t nat -F $IPT -t mangle -F #$IPTR -c /etc/iptables # ICMP $IPT -A INPUT -p icmp -j ACCEPT # ssh $IPT -A INPUT -p tcp --dport 22 -j ACCEPT #IPSEC $IPT -A INPUT -p esp -j ACCEPT $IPT -A INPUT -p ah -j ACCEPT $IPT -A INPUT -p gre # NTP Network Time $IPT -A INPUT -p udp -i eth1 --dport 123 -j ACCEPT # Squid $IPT -A INPUT -p tcp -i eth1 --dport 3128 -j ACCEPT # DNS $IPT -A INPUT -p tcp -i eth1 --dport 53 -j ACCEPT $IPT -A INPUT -p udp -i eth1 --dport 53 -j ACCEPT $IPT -A INPUT -i eth1 -p tcp -m tcp --dport 3128 -j ACCEPT $IPT -A INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT $IPT -A INPUT -p udp -m udp --dport 631 -j ACCEPT $IPT -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT $IPT -A INPUT -p udp -m udp -m multiport --ports 500,4500 -j ACCEPT $IPT -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT $IPT -A INPUT -p tcp -m tcp --dport 10000 -m state --state NEW -j ACCEPT $IPT -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT $IPT -A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT $IPT -A INPUT -p tcp -m tcp --sport 25 -m state --state NEW -j DROP $IPT -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT $IPT -A INPUT -s 10.0.0.240 -j ACCEPT $IPT -A INPUT -d 10.0.0.240 -j ACCEPT # Bootstrap Protocol Server $IPT -A INPUT -p udp -m udp -m multiport --ports 67 -j ACCEPT $IPT -A INPUT -p udp -m udp -m multiport --ports 68 -j ACCEPT # Mark $IPT -t mangle -A PREROUTING -s 10.0.0.0/24 -d $IP_ADDR -j MARK --set-mark 1 $IPT -t mangle -A PREROUTING -s 10.0.0.0/24 -d $IP_ADDR -j CONNMARK --save-mark # $IPT -A FORWARD -s 192.168.0.0/24 -d 10.0.0.0/24 -j ACCEPT $IPT -A FORWARD -s 192.168.1.0/24 -d 10.0.0.0/24 -j ACCEPT $IPT -A FORWARD -s 192.168.2.0/24 -d 10.0.0.0/24 -j ACCEPT $IPT -A FORWARD -s 192.168.3.0/24 -d 10.0.0.0/24 -j ACCEPT $IPT -A FORWARD -s 192.168.4.0/24 -d 10.0.0.0/24 -j ACCEPT $IPT -A FORWARD -s 192.168.5.0/24 -d 10.0.0.0/24 -j ACCEPT $IPT -A FORWARD -s 192.168.6.0/24 -d 10.0.0.0/24 -j ACCEPT $IPT -t mangle -A OUTPUT -s 10.0.0.0/24 -j CONNMARK --restore-mark $IPT -A FORWARD -i eth1 -o eth0 -m connmark --mark 1 -j ACCEPT $IPT -A FORWARD -i eth1 -o eth2 -j ACCEPT # # $IPT -t nat -A POSTROUTING -s 10.0.0.0/24 -d 192.168.0.0/24 -m connmark --mark 1 -j SNAT --to-source 10.0.0.200 $IPT -t nat -A POSTROUTING -s 10.0.0.0/24 -d 192.168.1.0/24 -m connmark --mark 1 -j SNAT --to-source 10.0.0.200 $IPT -t nat -A POSTROUTING -s 10.0.0.0/24 -d 192.168.2.0/24 -m connmark --mark 1 -j SNAT --to-source 10.0.0.200 $IPT -t nat -A POSTROUTING -s 10.0.0.0/24 -d 192.168.3.0/24 -m connmark --mark 1 -j SNAT --to-source 10.0.0.200 $IPT -t nat -A POSTROUTING -s 10.0.0.0/24 -d 192.168.4.0/24 -m connmark --mark 1 -j SNAT --to-source 10.0.0.200 $IPT -t nat -A POSTROUTING -s 10.0.0.0/24 -d 192.168.5.0/24 -m connmark --mark 1 -j SNAT --to-source 10.0.0.200 $IPT -t nat -A POSTROUTING -s 10.0.0.0/24 -d 192.168.6.0/24 -m connmark --mark 1 -j SNAT --to-source 10.0.0.200 $IPT -t nat -A POSTROUTING -m connmark --mark 1 -j MASQUERADE $IPT -t nat -A POSTROUTING -o eth2 -j MASQUERADE # #
Все лыжи были решены, косяк в переменной $IP_ADDR
Кста готовый скрипт разделения трафика
по мотивам....
http://forum.interzet.ru/index.php?showtopic=24998&mode=threaded
»
- Для комментирования войдите или зарегистрируйтесь