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

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

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


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

вот результат с 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. Или сдесь какойто нюанс?

 

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


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас