Hozzászólások
Sziasztok!
Van egy NAT-oló gép, mögötte egy LAN. Az egyik gép forgalmát szeretném egyszerűen korlátozni. Valószínűleg elegáns megoldás a lartc lenne, de felmerült bennem egy egyszerűbb megoldás a feladatra, viszont úgy tűnik, hogy nem működik.
Azzal próbálkozom, hogy a kérdéses gépről csak korlátozottan fogadok el csomagokat. Legalább is ezt szeretném. A következő módon:
eth0 WAN
eth1 LAN
kritikus gép: 192.168.0.10
Az "iptables config" legeleje, az érintett rész:
iptables -A INPUT -i eth1 -p tcp -s 192.168.0.10 -m limit --limit 20/min --limit-burst 4 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s 192.168.0.10 -j DROP
majd ugyanigy udp-re
stb.
majd NAT stb. ezek már a kérdés szempontjából nem lényegesek szerintem.
No most a kérdés, hogy ennek ellenére iptraffal nézve, csak úgy pörög a packet szám az eth1-en ettől a géptől sourceolva. Ennek a dolognak elvileg sem kellene működnie, vagy csak nekem nem jön össze? Mi lehet a hiba oka?
D.
- A hozzászóláshoz be kell jelentkezni
[quote:00979d9529="kpl55"]Sziasztok!
Van egy NAT-oló gép, mögötte egy LAN. Az egyik gép forgalmát szeretném egyszerűen korlátozni. Valószínűleg elegáns megoldás a lartc lenne, de felmerült bennem egy egyszerűbb megoldás a feladatra, viszont úgy tűnik, hogy nem működik.
Azzal próbálkozom, hogy a kérdéses gépről csak korlátozottan fogadok el csomagokat. Legalább is ezt szeretném. A következő módon:
eth0 WAN
eth1 LAN
kritikus gép: 192.168.0.10
Az "iptables config" legeleje, az érintett rész:
iptables -A INPUT -i eth1 -p tcp -s 192.168.0.10 -m limit --limit 20/min --limit-burst 4 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s 192.168.0.10 -j DROP
majd ugyanigy udp-re
stb.
majd NAT stb. ezek már a kérdés szempontjából nem lényegesek szerintem.
No most a kérdés, hogy ennek ellenére iptraffal nézve, csak úgy pörög a packet szám az eth1-en ettől a géptől sourceolva. Ennek a dolognak elvileg sem kellene működnie, vagy csak nekem nem jön össze? Mi lehet a hiba oka?
D.
Nekem van erre valahol egy szkriptem. Bar az akkor jo ha vegyes-szerverrol van szo, tehat samba+netmegosztas.
Arra emlexem, hogy az iptables markerjevel megjeloltem a csomagokat amik a net felol erkeznek, majd a korlatozast csak erre ervenyesitettem.
Megkeresem neked pill...
- A hozzászóláshoz be kell jelentkezni
Kösz, elvi szinten érdekes lehet, de itt samba nem játszik. Ugyan a kliensek win-esek, de a szerver csak NAT-ol, igy nincs rajta samba.
- A hozzászóláshoz be kell jelentkezni
igy nez ki a trctld:
[code:1:e1603d9695]
#!/bin/bash
#
# All Rates are in Kbits, so in order to gets Bytes divide by 8
# e.g. 25Kbps == 3.125KB/s
#
TC=/sbin/tc
DNLD=150Kbit # DOWNLOAD Limit
DWEIGHT=150Kbit # DOWNLOAD Weight Factor ~ 1/10 of DOWNLOAD Limit
UPLD=25KBit # UPLOAD Limit
UWEIGHT=2Kbit # UPLOAD Weight Factor
tc_start() {
$TC qdisc add dev eth1 root handle 11: cbq bandwidth 100Mbit avpkt 1000 mpu 64
$TC class add dev eth1 parent 11:0 classid 11:1 cbq rate $DNLD weight $DWEIGHT allot 1514 prio 1 avpkt 1000 bounded
$TC filter add dev eth1 parent 11:0 protocol ip handle 3 fw flowid 11:1
# $TC qdisc add dev eth1 root handle 11: cbq bandwidth 100Mbit avpkt 1000 mpu 64
# $TC class add dev eth1 parent 11:0 classid 11:1 cbq rate $DNLD weight $DWEIGHT allot 1514 prio 1 avpkt 1000 bounded
# $TC filter add dev eth1 parent 11:0 protocol ip handle 4 fw flowid 11:1
}
tc_stop() {
$TC qdisc del dev eth1 root
# $TC qdisc del dev eth1 root
}
tc_restart() {
tc_stop
sleep 1
tc_start
}
tc_show() {
echo "eth1:"
$TC qdisc show dev eth1
$TC class show dev eth1
$TC filter show dev eth1
echo ""
# echo ""
# echo "eth1:"
# $TC qdisc show dev eth1
# $TC class show dev eth1
# $TC filter show dev eth1
# echo ""
}
case "$1" in
start)
echo -n "Starting traffic shaping: "
tc_start
echo "done"
;;
stop)
echo -n "Stopping traffic shaping: "
tc_stop
echo "done"
;;
restart)
echo -n "Restarting bandwidth shaping: "
tc_restart
echo "done"
;;
show)
tc_show
;;
*)
echo "Usage: /etc/init.d/tc.sh {start|stop|restart|show}"
;;
esac
exit 0[/code:1:e1603d9695]
ezt tedd be a /etc/init.d -be majd a kivant runlevel-be linkeld be.
ez pedig az iptables resze:
[code:1:e1603d9695]# Mark packets to route
# Upload marking
/sbin/iptables -t mangle -A FORWARD -s 10.0.0.1/255.255.255.192 -j MARK --set-mark 3
# Download marking
/sbin/iptables -t mangle -A FORWARD -s ! 10.0.0.1/255.255.255.192 -d 10.0.0.1/255.255.255.192 -j MARK --set-mark 4
[/code:1:e1603d9695]
ez pedig mehet kozvetlen az init script utan a localba.
Nem hittem volna, hogy megtalalom. :)
Van erre persze tobb megoldas is, de pill ez volt keznel. Ha az egesz interface-t akarod korlatozni, en javaslom, hogy nezz utana a TrafficShaper-nek is :)
- A hozzászóláshoz be kell jelentkezni
kozbe mar beugrott, hogy a tc paranccsal csinaltam.
nezd meg a "man tc"-t biztos talalsz benne mast is :)
- A hozzászóláshoz be kell jelentkezni
[quote:b968e81b4f="kpl55"]Kösz, elvi szinten érdekes lehet, de itt samba nem játszik. Ugyan a kliensek win-esek, de a szerver csak NAT-ol, igy nincs rajta samba.
Tokmindegy, ez akkor is jarhato ut, csak a kulonbseg, hogy ne feltetellel jelold meg az interface-rol erkezo csomagokat, hanem az osszeset MARK-old meg.
A sambat csak peldakent emlitettem. De ez a fenti bizta, hogy muxik :)
- A hozzászóláshoz be kell jelentkezni
Utolag elgondolkoztam, talan megjobb, ha nem jelolsz csomagokat, hanem az osszeset elfogod. :)
- A hozzászóláshoz be kell jelentkezni
Kösz, ezt a tc-s ötletet. Esetleg valaki tud arról véleményt mondani, hogy ennek az eredeti limit-es dolgon alapuló ötletnek van-e létjogosultsága :?:
- A hozzászóláshoz be kell jelentkezni