Mam takiego skrypta - podłączonego do interfejsów pppX (net przez pppoe), do eth0 po prostu zmieniasz parametr
$1 na odpowiedni interfejs, i pakujesz skrypta do
/etc/network/if-up.d/ zamiast
/etc/ppp/ip-up.d/:
Kod: Zaznacz cały
#!/bin/sh
INTERFACE="$1"
#UPLOAD - ifb0
tc qdisc del dev $INTERFACE root
ip link set ifb0 up
tc qdisc add dev $INTERFACE root handle 1: htb default 11
tc filter add dev $INTERFACE parent 1:0 protocol ip prio 10 u32 match ip dst 0.0.0.0/0 flowid 1:1 action mirred egress redirect dev ifb0
tc qdisc add dev ifb0 root handle 1: sfq 2>/dev/null
#DONWLOAD - ifb1
tc qdisc del dev $INTERFACE handle ffff: ingress
ip link set ifb1 up
tc qdisc add dev $INTERFACE handle ffff: ingress
tc filter add dev $INTERFACE parent ffff: protocol ip prio 10 u32 match ip src 0.0.0.0/0 flowid 1:1 action mirred egress redirect dev ifb1
tc qdisc add dev ifb1 root handle 1: sfq
Cały net tutaj idzie przez urządzenia wirtualne kolejkujące
ifb0 i
ifb1, pasmo dla programów równoważy moduł
SFQ, też w jaju (prosty moduł do "sprawiedliwego" podziału pasma między programy).
Oprócz tego jest potrzebny moduł
HTB, w tym przypadku odpowiada za dostarczenie pakietów do interfejsów IFB, chociaż sam
HTB służy do profesjonalnego zarządzania pasmem na routerach.
Moduł
IFB masz w każdym standardowym kernelu, opcje ładowania modułu (ilość interfejsów) sprawdź w wyniku:
Interfejsy IFB u mnie wyglądają tak:
Kod: Zaznacz cały
ifconfig ifb0
ifb0: flags=195<UP,BROADCAST,RUNNING,NOARP> mtu 1500
inet6 fe80::f842:21ff:fe4e:610e prefixlen 64 scopeid 0x20<link>
ether fa:42:21:4e:61:0e txqueuelen 32 (Ethernet)
RX packets 7619 bytes 646632 (631.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7619 bytes 646632 (631.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Kod: Zaznacz cały
ifconfig ifb1
ifb1: flags=195<UP,BROADCAST,RUNNING,NOARP> mtu 1500
inet6 fe80::f07f:23ff:feb8:41a prefixlen 64 scopeid 0x20<link>
ether f2:7f:23:b8:04:1a txqueuelen 32 (Ethernet)
RX packets 7496 bytes 5124414 (4.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7496 bytes 5124414 (4.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
A tu w działaniu:
SOA#1
Pozdro
