Вечер добрый.
Имеется ряд идиотских вопросов по настройке tc/QoS/шейпинга/etc. на роутере с OpenWRT. А именно:
- Есть ethernet-интерфейс (свитч), который разделён на несколько VLAN-ов, часть которых объединена в мост с WLAN-интерфейсом. На что из этого нужно вешать qdisc-и?
По умолчанию на wlan0 висит mq, на eth0 — fq_codel, на остальных — ничего (noqueue):
# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 14:cc:20:62:c1:ab brd ff:ff:ff:ff:ff:ff 5: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default link/ether 14:cc:20:62:c1:ab brd ff:ff:ff:ff:ff:ff 6: eth0.3@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP mode DEFAULT group default link/ether 14:cc:20:62:c1:ab brd ff:ff:ff:ff:ff:ff 7: eth0.1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default link/ether 14:cc:20:62:c1:aa brd ff:ff:ff:ff:ff:ff 8: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP mode DEFAULT group default qlen 1000 link/ether 14:cc:20:62:c1:ac brd ff:ff:ff:ff:ff:ff 170: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 100 link/none # tc qdisc qdisc fq_codel 0: dev eth0 root refcnt 2 limit 1024p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn qdisc mq 0: dev wlan0 root qdisc fq_codel 0: dev wlan0 parent :1 limit 1024p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn qdisc fq_codel 0: dev wlan0 parent :2 limit 1024p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn qdisc fq_codel 0: dev wlan0 parent :3 limit 1024p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn qdisc fq_codel 0: dev wlan0 parent :4 limit 1024p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn qdisc fq_codel 0: dev tun0 root refcnt 2 limit 1024p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
- Насколько я понял из кучи разных мануалов, шейпить ingress нельзя. Разные вики (вроде арчвики) предлагают использовать для этих целей промежуточный интерфейс и наборчик костылей для того, чтобы подружить классификацию с маскарадингом.
Но у меня роутер, и вопрос звучит так: почему вместо плясок с перенаправлением ingress'а WAN-интерфейса нельзя повесить шейпинг на egress LAN-интерфейса?
- Вообще, в какую сторону следует конфигурить tc, если особых проблем с задержками не наблюдается, а нужно исключительно заставить гостевую WLAN-сеть не мешать основной?
Какие qdisc стоит использовать? Как классифицировать трафик?
Другими словами, нужно ли делать что-то сверх банального «на корень HTB, на листья fq_codel, трафик с этих IP в один класс, с этих IP в другой», если я ещё не знаю точно, чего я хочу?
Я сейчас читаю LARTC и, честно говоря, немного охреневаю от количества вещей, которые требуется одновременно держать в голове.
Алсо, devl547. Я где-то видел тебя рассуждающим про traffic control — может, тебе есть, что сказать?