Перейти к содержимому
Калькуляторы

NAT+HTB не срабатывает u32 классификатор

Доброго времени суток!

Имеется сервер под управлением CentOS 5.1 поднят NAT и тестовый шейпер на основе HTB

Правила шейпера:
#!/bin/bash
DEV="eth1"

tc qdisc del dev $DEV root    2> /dev/null > /dev/null
tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null

#Добавляю дисциплину оброботки очереди на устр-во eth1
tc qdisc add dev $DEV root handle 1: htb default 100
tc qdisc add dev $DEV handle ffff: ingress

#Корневой класс и класс куда будет попадать не классифицированный трафик
tc class add dev $DEV parent 1: classid 1:1 htb rate 1024kbit
tc class add dev $DEV parent 1: classid 1:100 htb rate 512kbit

#Краевые классы
tc class add dev $DEV parent 1:1 classid 1:10 htb rate 512kbit ceil 1024kbit
tc class add dev $DEV parent 1:1 classid 1:11 htb rate 512kbit ceil 1024kbit

#Дисциплины обработки очереди для краевых классов
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:11 handle 11: sfq perturb 10

#Фильтры классифицирующие трафик и направляющие его в классы
tc filter add dev $DEV protocol ip parent 1: prio 1 u32 match ip src 192.168.2.240 flowid 1:10
tc filter add dev $DEV protocol ip parent 1: prio 1 u32 match ip src 192.168.2.245 flowid 1:11

 

Проблема в том что эти фильтры не србатывают и весь трафик попадает в очередь для неклассифицированного трафика

 

tc -s qdisc show dev eth1
qdisc htb 1: r2q 10 default 100 direct_packets_stat 0
Sent 95179 bytes 144 pkt (dropped 0, overlimits 76 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc ingress ffff: ----------------
Sent 18544 bytes 140 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 10: parent 1:10 limit 128p quantum 1514b perturb 10sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 11: parent 1:11 limit 128p quantum 1514b perturb 10sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0

 

Подскажите плиз в чём может быть причина.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А Вы по каким адресам фильтруете? Которые до NAT или после?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

До NAT. Это адреса в моей LAN.

Поясню немного детальнее:На сервере два интерфейса eth0 и eth1. eth1 смотрит в LAN а eth0 в WAN.

[root@hydra ~]# ifconfig | less
eth0      Link encap:Ethernet  HWaddr 00:18:F3:BF:72:77
          inet addr:213.227.241.95 Bcast:213.227.241.95  Mask:255.255.255.255
          inet6 addr: fe80::218:f3ff:febf:7277/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5785225 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4666546 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2305068286 (2.1 GiB)  TX bytes:816029540 (778.2 MiB)
          Interrupt:201

eth1      Link encap:Ethernet  HWaddr 00:E0:4C:6B:00:3F
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::2e0:4cff:fe6b:3f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4542821 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5570090 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:767849205 (732.2 MiB)  TX bytes:2212890265 (2.0 GiB)
          Interrupt:209 Base address:0xec00

eth1:1    Link encap:Ethernet  HWaddr 00:E0:4C:6B:00:3F
          inet addr:192.168.1.254  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:209 Base address:0xec00

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:28582 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28582 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2992862 (2.8 MiB)  TX bytes:2992862 (2.8 MiB)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:213.227.241.95  P-t-P:195.248.176.170  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:1848971 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1398436 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:2044047058 (1.9 GiB)  TX bytes:147527518 (140.6 MiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.10.10.1  P-t-P:10.10.10.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:41284 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40116 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:25232463 (24.0 MiB)  TX bytes:8749354 (8.3 MiB)

Изменено пользователем keferoff

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почему u32 match ip src 192.168.2.240 разве не dst?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот результат с dst

Похоже что заработало :) Теперь хоть траф начал классифицироваться!

Спасибо вам большое!

 

[root@hydra ~]# tc -s qdisc show dev eth1
qdisc htb 1: r2q 10 default 100 direct_packets_stat 3
Sent 1856724 bytes 1884 pkt (dropped 0, overlimits 2533 requeues 0)
rate 0bit 0pps backlog 0b 1p requeues 0
qdisc ingress ffff: ----------------
Sent 163816 bytes 1427 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 10: parent 1:10 limit 128p quantum 1514b perturb 10sec
Sent 1425 bytes 18 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 11: parent 1:11 limit 128p quantum 1514b perturb 10sec
Sent 1372740 bytes 989 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 122b 1p requeues 0

Изменено пользователем keferoff

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, если так, то тогда интересно почему в обоих очередях

(dropped 0, overlimits 0 requeues 0) 
rate 0bit 0pps backlog 122b 1p requeues 0

Если судить по этим данным то скорость не ограничивается, иначе были бы overlimits. Или сдесь какойто нюанс?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.