Intermediate Queueing, IMQ – „pośrednie urządzenie kolejkujące” używane w systemie operacyjnym Linux.

Jest to wirtualny interfejs wykorzystywany do sterowania ruchem wchodzącym lub wychodzącym z routera, na przykład z pomocą pakietu iproute2. W odróżnieniu od rzeczywistych interfejsów, takich jak eth czy ppp, IMQ: nie ma adresu sprzętowego, a więc nie działają na nim protokoły ARP czy RARP, nie posiada adresu IP, cały ruch wchodzący do tego interfejsu jednocześnie go opuszcza. nie jest widoczny dla żadnych komponentów Netfilter (iptables, ip6tables, itp.)

IMQ umożliwia rozwiązanie dwóch problemów: Sterowanie ruchem wchodzącym przez rzeczywisty interfejs. Jeśli chcemy ograniczyć ruch wchodzący przez rzeczywisty interfejs, to wystarczy za pomocą iptables cały ruch z niego skierować do imq i sterować ruchem na wyjściu imq, czyli faktycznie na wejściu interfejsu rzeczywistego. Sterowanie ruchem przechodzącym przez więcej niż jeden interfejs rzeczywisty.

Przykład wydruku komendy ifconfig, obrazujący różnice pomiędzy interfejsem rzeczywistym a wirtualnym:

eth0 Link encap:Ethernet HWaddr 00:E0:4C:75:01:E7 inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2383775 errors:0 dropped:0 overruns:0 frame:0 TX packets:2583178 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:586768599 (559.5 Mb) TX bytes:1718379338 (1638.7 Mb) Interrupt:10 Base address:0x1000

imq0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 UP RUNNING NOARP MTU:1500 Metric:1 RX packets:1852185 errors:0 dropped:0 overruns:0 frame:0 TX packets:1852185 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:30 RX bytes:1605531582 (1531.1 Mb) TX bytes:1605531582 (1531.1 Mb)

Koncepcję IMQ opracował i dokonał pierwszej implementacji Martin Devera, następnie prace nad IMQ przejął Patrick McHardy, który potem zrezygnował z jego rozwijania. Obecnie IMQ sporadycznie jest dostosowywane do nowych wersji jądra systemu. Jako że koncepcja ta nie jest do końca poprawna z punktu widzenia inżynierii oprogramowania, nie została i prawdopodobnie nigdy nie zostanie włączona do głównego nurtu systemu - w zamian za to udostępniony został mechanizm Intermediate Functional Block.

Zobacz też QoS CBQ HTB HFSC

Linki zewnętrzne

Strona Patricka McHardy Strona o IMQ i HTB po polsku

Kategoria:Algorytmy w telekomunikacji Kategoria:Linux