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: