W dniu 25 czerwca 2012 15:14 użytkownik Tomasz Chiliński <tomasz.chilinski@chilan.com> napisał:
W dniu 25.06.2012 15:11, Sławomir Paszkiewicz napisał(a):
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.

Nic nie musisz przerabiać! Twórz ipsety z nowymi zestawiamy zasobów IP
jako tymczasowe, a potem ipset swap aktualny tymczasowy i ipset destroy tymczasowy.

No rozumiem tego swap-a i zaraz sie za to zabiore, ale tak czy siak w aktualnej konfiguracji podczas przeladowania *zawsze* robie te flushe ktore wczesniej pisalem wiec niezaleznie od tego czy podmienie ipset-a czy nie, to flush sie wykona i i tak rozlaczy