W dniu 25.06.2012 15:14, Marcin napisał(a):
W dniu 25 czerwca 2012 15:11 użytkownik Sławomir Paszkiewicz <paszczus@gmail.com [8]> napisał:
W dniu 25 czerwca 2012 15:06 użytkownik Marcin <marcin@nicram.net [3]> napisał:
W dniu 25 czerwca 2012 14:59 użytkownik Sławomir Paszkiewicz <paszczus@gmail.com [1]> napisał:
Ale u Ciebie to dotyka tylko zmiany predkosci. Mi zalezy na calosci. Zewnetrzne IP ma niestety tylko czesc klientow :(
no to zrób tak jak Tomek powiedział. nie przeładowywuj iptables a jedynie ipset. ja mam taki fragmencik kodu: function blokadareload(){ echo -en "tPrzeladowywuje blokade ...t" blokadaf="blokada.ip" ipsetname="blokowani" ipsetnametmp="blokowani_tmp" if [ -a "${dir}/${blokadaf}" ]; then $ips -! -N $ipsetname hash:net $ips -N $ipsetnametmp hash:net grep "^" "${dir}/${blokadaf}" | grep -v "#"| grep [0123456789] | while read IP nazwa do $ips -A $ipsetnametmp $IP done $ips -W $ipsetnametmp $ipsetname $ips -X $ipsetnametmp fi echo "OK" }
$ipt -t nat -A PREROUTING -p tcp -m set --match-set $ipsetname src -m multiport --dport 80,8080 -j DNAT --to 1.1.1.1:80 [2]
Troche skomplikowane, ale moze cos z tego wyciagne ;)
U mnie jest tak, ze kazda podsiec z LMS ma osobnego ispet-a, np.:
$IPSET create zarejestrowani_10.10.1.0 bitmap:ip,mac range 10.10.1.0/24 [4] $IPSET create zarejestrowani_10.10.2.0 bitmap:ip,mac range 10.10.2.0/24 [5]
do nich dopisuje komputery, np
$IPSET add $ZAREJESTROWANI $1,$2 gdzie $ZAREJESTROWANI to nazwa set-a, $1 to IP i $2 to MAC komputera
a nastepnie w iptables mam:
$IPT -A FORWARD -i eth1.101 -m set --match-set zarejestrowani_10.10.1.0 src,src -j ACCEPT $IPT -A FORWARD -i eth1.102 -m set --match-set zarejestrowani_10.10.2.0 src,src -j ACCEPT
wlasciwie to musze jakos tak przerobic te skrypty, zeby przy przeladowaniu ruszaly tylko ipset-y (destroy,create lub del/add komp ) a nie cale iptables na to wychodzi.
tak, dotykasz tylko ipset, a iptables nie dotykasz :) zobaczysz jak ci serwer odpocznie :)
W ipset brakuje już tylko zestawu, który by trzymać pary adresów IP na odwzorowania, które w NAT można użyć! Ale do tego wiele nie trzeba i można w ipset taki typ zestawu szybko przygotować. Potem tylko doróbka w DNETMAP v2 i mamy jednoregułkowe natowanie wewnętrznych IP na zewnętrzne IP ;-)