Здравейте,
опитвам се да "маркирам" трафика като локален+peer,
български и международен. след известно "мъдрене"
стигнах до следният вариант, който не работи много
адекватно (машината се товари много яко):
Примерен код |
#!/bin/bash
LOC="0x00" BUL="0x02" INT="0x04"
CAT=/usr/bin/cat IPT=/usr/local/sbin/iptables
BGPEERLST="/etc/bg.lst" VNPEERLST="/etc/peer.lst" VNPEERLSTADD="/etc/peer.lst.add"
CHN="DSCPMARK"
$IPT -t mangle -F $CHN &> /dev/null $IPT -t mangle -X $CHN &> /dev/null $IPT -t mangle -N $CHN &> /dev/null
$IPT -t mangle -A $CHN -s 192.168.0.0/16 -d 192.168.0.0/16 -j DSCP --set-dscp $LOC $IPT -t mangle -A $CHN -s 192.168.0.0/16 -d 192.168.0.0/16 -j RETURN $IPT -t mangle -A $CHN -s 192.168.0.0/16 -d XX.XX.XX.0/24 -j DSCP --set-dscp $LOC $IPT -t mangle -A $CHN -s 192.168.0.0/16 -d XX.XX.XX.0/24 -j RETURN $IPT -t mangle -A $CHN -d 192.168.0.0/16 -s XX.XX.XX.0/24 -j DSCP --set-dscp $LOC $IPT -t mangle -A $CHN -d 192.168.0.0/16 -s XX.XX.XX.0/24 -j RETURN $IPT -t mangle -A $CHN -s XX.XX.XX.0/24 -d XX.XX.XX.0/24 -j DSCP --set-dscp $LOC $IPT -t mangle -A $CHN -s XX.XX.XX.0/24 -d XX.XX.XX.0/24 -j RETURN
$IPT -t mangle -A $CHN -i ppp+ -o ppp+ -j DSCP --set-dscp $LOC $IPT -t mangle -A $CHN -i ppp+ -o ppp+ -j RETURN $IPT -t mangle -A $CHN -i ppp+ -o ethX -j DSCP --set-dscp $LOC $IPT -t mangle -A $CHN -i ppp+ -o ethX -j RETURN $IPT -t mangle -A $CHN -o ppp+ -i ethX -j DSCP --set-dscp $LOC $IPT -t mangle -A $CHN -o ppp+ -i ethX -j RETURN
for IP in `$CAT $VNPEERLSTADD | grep -v ^# && $CAT $VNPEERLST`; do $IPT -t mangle -A $CHN -d $IP -j DSCP --set-dscp $LOC $IPT -t mangle -A $CHN -d $IP -j RETURN $IPT -t mangle -A $CHN -s $IP -j DSCP --set-dscp $LOC $IPT -t mangle -A $CHN -s $IP -j RETURN done
for NET in `$CAT $BGPEERLST`; do $IPT -t mangle -A $CHN -d $NET -j DSCP --set-dscp $BUL $IPT -t mangle -A $CHN -d $NET -j RETURN $IPT -t mangle -A $CHN -s $NET -j DSCP --set-dscp $BUL $IPT -t mangle -A $CHN -s $NET -j RETURN done
$IPT -t mangle -A $CHN -j DSCP --set-dscp $INT $IPT -t mangle -A $CHN -j RETURN
###################################################### $IPT -t mangle -I FORWARD -d XX.XX.XX.0/24 -j DSCPMARK $IPT -t mangle -I FORWARD -s XX.XX.XX.0/24 -j DSCPMARK $IPT -t mangle -I FORWARD -d 192.168.0.0/16 -j DSCPMARK $IPT -t mangle -I FORWARD -s 192.168.0.0/16 -j DSCPMARK
|
и се питах дали има по-лесен (ефективен) начин
да се направи това ?