IMQ a NAT
Libor Chocholaty
libor_ml1 na mts.cz
Čtvrtek Duben 13 19:53:58 CEST 2006
Ahoj,
mam zajimavou potiz s shapovanim. Mam router, ktery na jednom rozhrani
ma pripoj do internetu a na ostatnich ruzne segmenty lokalni site. Dela
se NAT (maskarada) a pro vybrane IP na vnitrni siti delam NAT 1:1, takze
maji jakoby verejnou adresu.
# iptables -t nat -L -v
Chain PREROUTING (policy ACCEPT 103M packets, 7318M bytes)
pkts bytes target prot opt in out source
destination
929 70723 DNAT all -- eth0 any anywhere
marvin_verejna to:marvin_lokal
Chain POSTROUTING (policy ACCEPT 60M packets, 4901M bytes)
pkts bytes target prot opt in out source
destination
166 12616 SNAT all -- any eth0 wlink-heaven-marvin
anywhere to:marvin_verejna
108K 9060K SNAT all -- any eth0 olink-heaven-marvin
anywhere to:marvin_verejna
77M 5620M MASQUERADE all -- any eth0 anywhere
anywhere
pozn: linka na marvina je zalohovana (optika + wifi zaloha) - proto jsou
pro SNAT dve pravidla
Dale pouzivam IMQ pro shapovani internetoveho pripojeni (eth0), abych
dostal tri interfejsy (eth1,2,4) vedouci do lokalni site do jedne HTB tridy.
Problem je, ze tyhle kompy s "verejnou" IP ocividne nejdou shaprem.
Posilani do IMQ0 mam udelany:
# iptables -t mangle -L POSTROUTING -v
Chain POSTROUTING (policy ACCEPT 5037M packets, 3355G bytes)
pkts bytes target prot opt in out source
destination
433M 354G IMQ all -- any eth1 anywhere
anywhere IMQ: todev 0
105M 74G IMQ all -- any eth2 anywhere
anywhere IMQ: todev 0
1554M 1161G IMQ all -- any eth4 anywhere
anywhere IMQ: todev 0
shaper pouziva HTB a do trid zarazuju pomoci 'tc filter' a na co neni
pravidlo, spadne do velmi omezene default tridy.
tc qdisc del dev imq0 root
tc qdisc add dev imq0 root handle 1: htb default 5 r2q 1
tc class add dev imq0 parent 1: classid 1:1 htb rate 20mbit ceil 20mbit
quantum 125000
...
tc class add dev imq0 parent 1:1 classid 1:5 htb rate 32kbit ceil 32kbit
...
No a zaver toho celeho je, ze se traffik pro marvina vubec neshapuje.
IMQ mam nastaveny, ze postrouting je za NATem a prerouting pred NATem,
takze tam vzdy vidim neverejne adresy kompu v lokalni siti.
Vypada to, ze traffik pro kompy s "verejnou" adresou neni vubec protazen
skrz IMQ0, kde na nej marne ceka shaper.
Pro vsechny ostatni kompy, ktere nemaji "verejnou" adresu to funguje
jedna basen.
Dokazete me nekdo nakopnout co delam spatne?
Libor
Další informace o konferenci Linux