Seçilen cevap yanlış / eksik. Benzer bir sorunla karşılaştım, seçilen cevap biraz yardım etti, ancak yeterli değil.
İlk olarak, aşağıdaki komut gerçekten gerekli değildir.
tc qdisc del dev eth0 kökü
Kök qdisc'i 'silecek', ancak bir pfifo_fast ile değiştirilecektir (böylece bağlantıyı kaybetmezsiniz).
İkinci komut:
tc qdisc dev eth0 kök kolu 1 ekleyin: prio
Pfifo_fast qdisc'i prio ile değiştirir. Varsayılan olarak, prio kuyruğunun her biri bir sınıf tarafından yönetilen 3 bant (0, 1, 2) vardır (1: 1, 1: 2 ve 1: 3).
Paketler, IP paketinin TOS alanı kullanılarak bu bantlardan birine gönderilir. Bu yapılandırma, yürüttüğünüzde gösterilir:
tc qdisc ls
'priomap' değerlerine bakıyoruz.
Sonra bir netem qdisc ekleyin:
tc qdisc add dev eth0 parent 1: 1 tanıtıcı 2: netem gecikmesi 500ms
Bu komutla 1: 1 bandına giden tüm trafiği geciktirirsiniz (filtre yerine oturana kadar).
Ancak iki uyarı var:
- Trafiğinizin farklı bir TOS değeri olabilir ve daha sonra başka bir banda gönderilebilir.
- Prio qdisc, trafik başka bir banda gidecek şekilde yapılandırılabilir.
Aşağıdakiler, filtre uygulanmadığında ağımdan etkilenmeme sorunumu çözdü. Yukarıdaki adımlar yerine, yaptım:
tc qdisc dev et0 kök sapı 1 ekle: prio priomap 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Bu, tüm trafiği varsayılan olarak 1: 3 bandına gönderir.
Sonra trafiği geciktirmek için kural ekledim:
tc qdisc dev et0 eklemek ebeveyn 1: 1 kolu 10: netem gecikme 100ms 10ms
Bu, bant 0'da qdisc'i oluşturur, ancak tüm trafik bant 3'e gittiğinden beni etkilemedi.
Daha sonra filtreyi ekledim:
tc filtresi dev eth0 protokolü ekle ip üst 1: 0 prio 1 u32 maç ip dst 10.0.0.1/32 maç ip dport 80 0xffff akışkan 1: 1
Şimdi filtreyle birlikte, seçilen trafiği 0 bandına yönlendirdiğimiz için yalnızca seçilen IP / bağlantı noktası etkilenecektir.
Diğer tüm trafik bant 3'e akmaya devam ettiğinden etkilenmez.