HTB problem running on VLAN, not working

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello.
 
I'm running linux box with Slackware 9.1 and compiled kernel 2.4.31 with "yes" to VLANs and "yes" to all QoS.
On this box i have more ethernet interfaces:
 
eth0
eth1
eth2
 
and so as more vlan interfaces:
 
eth0.100
eth1.3
eth1.4
 
This is entrace(uplink) router to our whole network and my goal is to shape users on this machine.
I want for this purpose use HTB so I write little test script, which is shaping all users as default traffic and my computer as unique class.
This script is olny for testing, if it all works well, but I caught on some problems.
Here is my test script:
 
#!/bin/bash
#
/sbin/tc qdisc del dev eth0 root
/sbin/tc qdisc add dev eth0 root handle 1: htb r2q 1
/sbin/tc qdisc del dev eth1 root
/sbin/tc qdisc add dev eth1 root handle 2: htb r2q 1
/sbin/tc qdisc del dev eth2 root
/sbin/tc qdisc add dev eth2 root handle 3: htb r2q 1
/sbin/tc qdisc del dev eth0.100 root
/sbin/tc qdisc add dev eth0.100 root handle 100: htb default 10 r2q 1
/sbin/tc qdisc del dev eth1.3 root
/sbin/tc qdisc add dev eth1.3 root handle 13: htb r2q 1
/sbin/tc qdisc del dev eth1.4 root
/sbin/tc qdisc add dev eth1.4 root handle 14: htb default 20 r2q 1
 
#classes for download
/sbin/tc class add dev eth0.100 parent 100: classid 100:1 htb rate 4000kbit quantum 6000
 
/sbin/tc class add dev eth0.100 parent 100:1 classid 100:2 htb rate 1000kbit quantum 6000
/sbin/tc qdisc add dev eth0.100 parent 100:2 handle 1002 pfifo limit 10
/sbin/tc class add dev eth0.100 parent 100:1 classid 100:3 htb rate 3000kbit quantum 6000
/sbin/tc qdisc add dev eth0.100 parent 100:3 handle 1003 pfifo limit 10
 
#classes for upload
/sbin/tc class add dev eth1.4 parent 14: classid 14:4 htb rate 4000kbit quantum 6000
 
/sbin/tc class add dev eth1.4 parent 14:4 classid 14:5 htb rate 1000kbit quantum 6000
/sbin/tc qdisc add dev eth1.4 parent 14:5 handle 145 pfifo limit 10
/sbin/tc class add dev eth1.4 parent 14:4 classid 14:6 htb rate 3000kbit quantum 6000
/sbin/tc qdisc add dev eth1.4 parent 14:6 handle 146 pfifo limit 10
 
#my pc testing class
#down
/sbin/tc class add dev eth0.100 parent 100:2 classid 100:2828 htb rate 1000kbit quantum 6000
/sbin/tc filter add dev eth0.100 parent 100: protocol ip prio 1 u32 match ip dst 217.67.28.28 classid 100:2828
/sbin/tc qdisc add dev eth0.100 parent 100:2828 handle 1002828 sfq perturb 10
#up
/sbin/tc class add dev eth1.4 parent 14:5 classid 14:2828 htb rate 1000kbit quantum 6000
/sbin/tc filter add dev eth1.4 parent 14: protocol ip prio 1 u32 match ip src 217.67.28.28 classid 14:2828
/sbin/tc qdisc add dev eth1.4 parent 14:2828 handle 142828 sfq perturb 10
 
#default classes
#down
/sbin/tc class add dev eth0.100 parent 100:1 classid 100:10 htb rate 3000kbit quantum 6000
/sbin/tc qdisc add dev eth0.100 parent 100:10 handle 10010 sfq perturb 10
#up
/sbin/tc class add dev eth1.4 parent 14:4 classid 14:20 htb rate 3000kbit quantum 6000
/sbin/tc qdisc add dev eth1.4 parent 14:20 handle 1420 sfq perturb 10
As you can see traffic goes throught eth0.100 (this is uplink interface to our ISP) and throught eth1.4 which belogns to interface to one part of our network and where my testing PC is situated. Other interfaces in this script are not used for now, this is due to simplify testing purposes.
 
When I run this script I get no errors and everything seems to be fine, but is not. My PC is served as default traffic and not as uniqe class. When I'd removed default from root classes then all traffic, including my PC was served as root class traffic.
 
Here is dump from statistics:
 
### eth0: queueing disciplines
 
qdisc htb 1: r2q 1 default 0 direct_packets_stat 9500
 Sent 4585808 bytes 9500 pkts (dropped 0, overlimits 0)
 
### eth1: queueing disciplines
 
qdisc htb 2: r2q 1 default 0 direct_packets_stat 9782
 Sent 7806825 bytes 9782 pkts (dropped 0, overlimits 0)
 backlog 3p
 
### eth2: queueing disciplines
 
qdisc htb 3: r2q 1 default 0 direct_packets_stat 1
 Sent 78 bytes 1 pkts (dropped 0, overlimits 0)
 
### eth0.100: queueing disciplines
 
qdisc htb 100: r2q 1 default 10 direct_packets_stat 122
 Sent 4685336 bytes 9630 pkts (dropped 360, overlimits 9606)
 backlog 69p
 
 qdisc pfifo 1003: parent 100:3 limit 10p
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 
 qdisc sfq 2828: parent 100:2828 quantum 1514b perturb 10sec
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 
 qdisc sfq 10: parent 100:10 quantum 1514b perturb 10sec
 Sent 4631802 bytes 9501 pkts (dropped 360, overlimits 0)
 backlog 69p
 
### eth0.100: traffic classes
 
class htb 100:2828 parent 100:2 leaf 2828: prio 0 rate 1000Kbit ceil 1000Kbit burst 2879b cburst 2879b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 18432 ctokens: 18432
class htb 100:1 root rate 4000Kbit ceil 4000Kbit burst 6719b cburst 6719b
 Sent 4570697 bytes 9445 pkts (dropped 0, overlimits 0)
 rate 9078bps 22pps
 lended: 0 borrowed: 0 giants: 0
 tokens: 423 ctokens: 423
 
class htb 100:10 parent 100:1 leaf 10: prio 0 rate 3000Kbit ceil 3000Kbit burst 5439b cburst 5439b
 Sent 4637832 bytes 9519 pkts (dropped 360, overlimits 0)
 rate 9078bps 22pps backlog 74p
 lended: 9445 borrowed: 0 giants: 0
 tokens: -11928 ctokens: -11928
 
class htb 100:2 parent 100:1 rate 1000Kbit ceil 1000Kbit burst 2879b cburst 2879b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 18432 ctokens: 18432
 
class htb 100:3 parent 100:1 leaf 1003: prio 0 rate 3000Kbit ceil 3000Kbit burst 5439b cburst 5439b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 11604 ctokens: 11604
 
### eth0.100: filtering rules
 
filter parent 100: protocol ip pref 1 u32
filter parent 100: protocol ip pref 1 u32 fh 800: ht divisor 1
filter parent 100: protocol ip pref 1 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 100:2828
  match d9431c1c/ffffffff at 16
 
### eth1.3: queueing disciplines
 
qdisc htb 13: r2q 1 default 0 direct_packets_stat 3
 Sent 218 bytes 3 pkts (dropped 0, overlimits 0)
 
### eth1.4: queueing disciplines
 
qdisc htb 14: r2q 1 default 20 direct_packets_stat 74
 Sent 4726451 bytes 5889 pkts (dropped 49, overlimits 6433)
 backlog 56p
 qdisc pfifo 146: parent 14:6 limit 10p
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 
 qdisc sfq 2828: parent 14:2828 quantum 1518b perturb 10sec
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 
 qdisc sfq 1420: parent 14:20 quantum 1518b perturb 10sec
 Sent 4654955 bytes 5813 pkts (dropped 49, overlimits 0)
 backlog 56p
 
### eth1.4: traffic classes
 
class htb 14:2828 parent 14:5 leaf 2828: prio 0 rate 1000Kbit ceil 1000Kbit burst 2879b cburst 2879b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 18432 ctokens: 18432
 
class htb 14:20 parent 14:4 leaf 1420: prio 0 rate 3000Kbit ceil 3000Kbit burst 5439b cburst 5439b
 Sent 4673585 bytes 5836 pkts (dropped 49, overlimits 0)
 rate 22696bps 26pps backlog 67p
 lended: 5769 borrowed: 0 giants: 0
 tokens: -12404 ctokens: -12404
 
class htb 14:4 root rate 4000Kbit ceil 4000Kbit burst 6719b cburst 6719b
 Sent 4623310 bytes 5769 pkts (dropped 0, overlimits 0)
 rate 46832bps 57pps
 lended: 0 borrowed: 0 giants: 0
 tokens: -928 ctokens: -928
 
class htb 14:5 parent 14:4 rate 1000Kbit ceil 1000Kbit burst 2879b cburst 2879b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 18432 ctokens: 18432
 
class htb 14:6 parent 14:4 leaf 146: prio 0 rate 3000Kbit ceil 3000Kbit burst 5439b cburst 5439b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 11604 ctokens: 11604
 
### eth1.4: filtering rules
filter parent 14: protocol ip pref 1 u32
filter parent 14: protocol ip pref 1 u32 fh 800: ht divisor 1
filter parent 14: protocol ip pref 1 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 14:2828
  match d9431c1c/ffffffff at 12
 
From this statistics you can see, that all traffic is served in default class, but why?
 
Anyone can help me or give som answers?
 
In forward to you, thanks a lot! :)
 
PS. lsmod:
 
Module                  Size  Used by    Not tainted
cls_route               4056   0  (unused)
cls_u32                 4668   2
cls_fw                  2392   0  (unused)
sch_sfq                 3392   4
sch_htb                19648   6
ipt_state                504   1  (autoclean)
ip_conntrack           29960   0  (autoclean) [ipt_state]
iptable_filter          1644   1  (autoclean)
ip_tables              14688   2  [ipt_state iptable_filter]
8021q                  14056   3  (autoclean)
ide-scsi                9296   0
scsi_mod               73832   1  [ide-scsi]
8139too                13960   2
mii                     2304   0  [8139too]
tg3                    57992   1
agpgart                37496   0  (unused)
ip ro sh:
 
217.67.31.0/30 dev eth1.3  proto kernel  scope link  src 217.67.31.1
217.67.31.4/30 via 217.67.28.250 dev eth1.4  proto zebra  metric 110 equalize
217.67.16.108/30 dev eth0.100  proto kernel  scope link  src 217.67.16.110
217.67.28.252/30 via 217.67.28.58 dev eth1  proto zebra  metric 110 equalize
217.67.28.248/30 dev eth1.4  proto kernel  scope link  src 217.67.28.249
217.67.28.88/29 via 217.67.28.58 dev eth1  proto zebra  metric 20 equalize
217.67.28.80/29 dev eth2  proto kernel  scope link  src 217.67.28.81
217.67.28.72/29 via 217.67.28.250 dev eth1.4  proto zebra  metric 20 equalize
217.67.28.64/29 via 217.67.28.250 dev eth1.4  proto zebra  metric 20 equalize
217.67.28.112/29 via 217.67.28.250 dev eth1.4  proto zebra  metric 210 equalize
217.67.28.104/29 via 217.67.28.250 dev eth1.4  proto zebra  metric 110 equalize
217.67.28.96/29 via 217.67.28.58 dev eth1  proto zebra  metric 20 equalize
217.67.28.24/29 via 217.67.28.250 dev eth1.4  proto zebra  metric 110 equalize
217.67.28.16/29 via 217.67.28.250 dev eth1.4  proto zebra  metric 110 equalize
217.67.28.8/29 via 217.67.28.250 dev eth1.4  proto zebra  metric 200 equalize
217.67.28.0/29 via 217.67.28.58 dev eth1  proto zebra  metric 20 equalize
217.67.28.56/29 dev eth1  proto kernel  scope link  src 217.67.28.57
217.67.28.48/29 via 217.67.28.58 dev eth1  proto zebra  metric 20 equalize
217.67.28.40/29 via 217.67.28.250 dev eth1.4  proto zebra  metric 210 equalize
217.67.28.32/29 via 217.67.28.250 dev eth1.4  proto zebra  metric 120 equalize
10.101.5.0/24 via 217.67.28.58 dev eth1  proto zebra  metric 110 equalize
10.101.4.0/24 via 217.67.28.250 dev eth1.4  proto zebra  metric 120 equalize
10.101.7.0/24 via 217.67.28.250 dev eth1.4  proto zebra  metric 20 equalize
10.101.6.0/24 via 217.67.28.250 dev eth1.4  proto zebra  metric 210 equalize
10.101.1.0/24 via 217.67.28.250 dev eth1.4  proto zebra  metric 110 equalize
10.101.0.0/24 via 217.67.28.58 dev eth1  proto zebra  metric 20 equalize
10.255.20.0/24 dev eth1  proto kernel  scope link  src 10.255.20.1
10.101.2.0/24 via 217.67.28.250 dev eth1.4  proto zebra  metric 110 equalize
10.255.10.0/24 dev eth0.100  proto kernel  scope link  src 10.255.10.1
10.101.8.0/24 via 217.67.28.250 dev eth1.4  proto zebra  metric 20 equalize
192.168.172.0/24 dev eth0  proto kernel  scope link  src 192.168.172.1
127.0.0.0/8 dev lo  scope link
default via 217.67.16.109 dev eth0.100
Network segment 217.67.28.24/29 where is also situated my test PC is not directly attached to this router and im using ospf as routing protocol.
 
I've also tried to set this flags to VLANs:
 
 vconfig set_flag eth0.100 1 1
 vconfig set_flag eth1.3 1 1
 vconfig set_flag eth1.4 1 1
 
VLAN Dev name    | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.100       | 100  | eth0
eth1.3         | 3  | eth1
eth1.4         | 4  | eth1
eth0.100  VID: 100       REORDER_HDR: 1  dev->priv_flags: 1
         total frames received:     38218094
          total bytes received:   3919770540
      Broadcast/Multicast Rcvd:            0
 
      total frames transmitted:     40429222
       total bytes transmitted:   1882231869
            total headroom inc:            0
           total encap on xmit:            0
Device: eth0
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
EGRESSS priority Mappings:
eth1.4  VID: 4   REORDER_HDR: 1  dev->priv_flags: 1
         total frames received:     14211699
          total bytes received:    223220948
      Broadcast/Multicast Rcvd:         8471
 
      total frames transmitted:     13202004
       total bytes transmitted:   4187683963
            total headroom inc:            0
           total encap on xmit:     13202004
Device: eth1
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
EGRESSS priority Mappings:
eof~
 
_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux