CBWFQ
CBWFQ là công cụ hàng đợi cho phép phân loại traffic vào những lớp riêng biệt, mỗi lớp sẽ được thiết lập cho những giá trị bandwidth khác nhau, do đó rất linh động khi cho phép người quản trị áp đặt bandwith trên những lớp traffic khác nhau.
Đối với hàng đợi CBWFQ, khi một có lượng traffic lớn nếu như vượt quá giá trị bandwidth được cấu hình thì sẽ drop gói trên lớp đó, nhưng không drop trên những lớp khác.
Trong bài thực hành chúng ta sẽ tạo những loại traffic khác nhau, sau đó đặt mỗi loại traffic vào mỗi lớp và thiết lập giá trị bandwidth trên những lớp tương ứng.
Yêu cầu:
Cấu hình CBWFQ trên cổng serial s0/1 của R2 đáp ứng các nhu cầu sau:
Thực hiện
Cấu hình ban đầu:
Cấu hình ban đầu trên R1:
R1#sh run
Building configuration...
Current configuration:
!
version 12.0
!
hostname R1
!
ip subnet-zero
!
voice-port 1/1/0
!
voice-port 1/1/1
!
!
dial-peer voice 1 pots
destination-pattern 101
port 1/1/0
!
dial-peer voice 2 voip
destination-pattern 201
session target ipv4:192.168.2.2
!
!
interface Ethernet0/0
ip address 192.168.0.1 255.255.255.0
no ip directed-broadcast
!
interface Serial0/0
ip address 192.168.1.1 255.255.255.0
no ip directed-broadcast
!
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.1.2
no ip http server
!
!
line con 0
transport input none
line aux 0
line vty 0 4
privilege level 15
no login
!
no scheduler allocate
end
R1#
Cấu hình ban đầu trên R2:
R2#sh run
Building configuration...
Current configuration : 1517 bytes
!
version 12.2
!
hostname R2
!
logging queue-limit 100
!
ip subnet-zero
!
no ip domain lookup
ip host R1 192.168.1.1
ip host R3 192.168.2.2
!
ip cef
!
no voice hpi capture buffer
no voice hpi capture destination
!
!
mta receive maximum-recipients 0
!
interface Ethernet0/0
ip address 172.16.1.1 255.255.255.0
half-duplex
!
interface Serial0/0
ip address 192.168.1.2 255.255.255.0
clockrate 2000000
fair-queue
!
interface Serial0/1
ip address 192.168.2.1 255.255.255.0
load-interval 30
fair-queue
hold-queue 1000 out
!
ip http server
ip classless
ip route 100.1.1.0 255.255.255.0 192.168.2.2
ip route 192.168.0.0 255.255.255.0 192.168.1.1
!
!
call rsvp-sync
!
mgcp profile default
!
dial-peer cor custom
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
!
end
Building configuration...
Current configuration : 932 bytes
!
version 12.2
hostname R3
!
logging queue-limit 100
!
ip subnet-zero
!
!
interface Loopback0
ip address 100.1.1.1 255.255.255.0
!
interface Ethernet0/0
no ip address
shutdown
half-duplex
!
interface Serial0/0
ip address 192.168.2.2 255.255.255.0
clockrate 2000000
!
ip http server
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.2.1
!
!
call rsvp-sync
!
voice-port 1/0/0
!
voice-port 1/0/1
!
!
mgcp profile default
!
dial-peer cor custom
!
!
dial-peer voice 1 pots
destination-pattern 201
port 1/0/0
!
dial-peer voice 2 voip
destination-pattern 101
session target ipv4:192.168.1.1
!
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
!
end
Cấu hình trên R2 các thông số sau:
Cấu hình access-list chọn các loại lưu lượng web, ftp, telnet:
access-list 100 permit tcp any any eq telnet
access-list 100 permit tcp any any range ftp-data ftp
access-list 101 permit tcp any any eq www
access-list 102 permit tcp any any range ftp-data ftp
Cấu hình class-map chọn các lưu lượng này
class-map match-all TELNET
match access-group 100
class-map match-all HTTP
match access-group 101
class-map match-all FTP
match access-group 102
class-map match-all VoIP
match ip rtp 16384 16383 << dùng câu lệnh này để chọn gói tin RTP
Cấu hình policy map thiết lập các thông số cần thiết cho cơ chế hàng đợi CBWFQ:
policy-map TRAFFIC
class VoIP
bandwidth 80 // Bandwidth dành cho lớp VoIP là 80 Kb
class TELNET
bandwidth 64 // Bandwidth dành cho lớp TELNET là 64 Kb
class HTTP
bandwidth 128 // Bandwidth dành cho lớp HTTP là 128 Kb
class FTP
bandwidth 512 // Bandwidth dành cho lớp FTP là 512 Kb
Áp dụng lên cổng:
R2(config)#int s0/1
R2(config-if)#service-policy output TRAFFIC
Kiểm tra
R2#show policy-map
Policy Map TRAFFIC
Class VoIP
Bandwidth 80 (kbps) Max Threshold 64 (packets)
Class TELNET
Bandwidth 64 (kbps) Max Threshold 64 (packets)
Class HTTP
Bandwidth 128 (kbps) Max Threshold 64 (packets)
Class FTP
Bandwidth 512 (kbps) Max Threshold 64 (packets)
Giá trị bandwidth dựa trên bandwidth được cấu hình trên cổng, do đó tổng số bandwidth dành cho mỗi lớp cộng với bandwidth dành cho lớp default( 25% bandwidth cấu hình trên cổng) phải nhỏ hơn giá trị bandwidth được cấu hình trên cống
R2#show class-map
Class Map match-all TELNET (id 2)
Match access-group 100
Class Map match-all HTTP (id 3)
Match access-group 101
Class Map match-all VoIP (id 1)
Match ip rtp 16384 16383
Class Map match-any class-default (id 0)
Match any
Class Map match-all FTP (id 4)
Match access-group 102
R2#sh policy-map interface s0/1
Serial0/1
Service-policy output: TRAFFIC
Class-map: VoIP (match-all)
0 packets, 0 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: ip rtp 16384 16383
Queueing
Output Queue: Conversation 265
Bandwidth 80 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: TELNET (match-all)
0 packets, 0 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 100
Queueing
Output Queue: Conversation 266
Bandwidth 64 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: HTTP (match-all)
0 packets, 0 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 101
Queueing
Output Queue: Conversation 267
Bandwidth 128 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: FTP (match-all)
0 packets, 0 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 102
Queueing
Output Queue: Conversation 268
Bandwidth 512 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: class-default (match-any)
5 packets, 444 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: any
Tạo ra những loại traffic tương ứng và kiểm tra thông số của mỗi lớp.
R2#sh policy-map interface s0/1
Serial0/1
Service-policy output: TRAFFIC
Class-map: VoIP (match-all)
297 packets, 18951 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: ip rtp 16384 16383
Queueing
Output Queue: Conversation 265
Bandwidth 80 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 2/128
(depth/total drops/no-buffer drops) 0/0/0
Class-map: TELNET (match-all)
143 packets, 6588 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 100
Queueing
Output Queue: Conversation 266
Bandwidth 64 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 128/5839
(depth/total drops/no-buffer drops) 0/0/0
Class-map: HTTP (match-all)
7 packets, 669 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 101
Queueing
Output Queue: Conversation 267
Bandwidth 128 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: FTP (match-all)
3 packets, 156 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 102
Queueing
Output Queue: Conversation 268
Bandwidth 512 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: class-default (match-any)
344 packets, 27337 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: any
R2#
Khi gửi dữ liệu đáng kể, có thể cảm nhận chất lượng thoại vẫn không đáp ứng nhu cầu mong muốn, chính bởi cơ chế hàng đợi này vẫn đáp ứng công bằng dựa trên giá trị bandwidth tính toán chứ không ưu tiên triệt để cho 1 loại lưu lượng nào.
Cấu hình cuối cùng của R2:
R2#sh run
Building configuration...
Current configuration : 1517 bytes
!
version 12.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
logging queue-limit 100
!
ip subnet-zero
!
!
no ip domain lookup
ip host R1 192.168.1.1
ip host R3 192.168.2.2
!
ip cef
mpls ldp logging neighbor-changes
!
!
!
no voice hpi capture buffer
no voice hpi capture destination
!
!
mta receive maximum-recipients 0
!
!
class-map match-all TELNET
match access-group 100
class-map match-all HTTP
match access-group 101
class-map match-all VoIP
match ip rtp 16384 16383
class-map match-all FTP
match access-group 102
!
!
policy-map TRAFFIC
class VoIP
bandwidth 80
class TELNET
bandwidth 64
class HTTP
bandwidth 128
class FTP
bandwidth 512
!
!
!
!
interface Ethernet0/0
ip address 172.16.1.1 255.255.255.0
half-duplex
!
interface Serial0/0
ip address 192.168.1.2 255.255.255.0
clockrate 2000000
fair-queue
!
interface Serial0/1
ip address 192.168.2.1 255.255.255.0
load-interval 30
service-policy output TRAFFIC
!
ip http server
ip classless
ip route 100.1.1.0 255.255.255.0 192.168.2.2
ip route 192.168.0.0 255.255.255.0 192.168.1.1
!
!
!
access-list 100 permit tcp any any eq telnet
access-list 100 permit tcp any any range ftp-data ftp
access-list 101 permit tcp any any eq www
access-list 102 permit tcp any any range ftp-data ftp
!
!
call rsvp-sync
!
!
mgcp profile default
!
dial-peer cor custom
!
!
!
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
!
end
Mô tả
CBWFQ là công cụ hàng đợi cho phép phân loại traffic vào những lớp riêng biệt, mỗi lớp sẽ được thiết lập cho những giá trị bandwidth khác nhau, do đó rất linh động khi cho phép người quản trị áp đặt bandwith trên những lớp traffic khác nhau.
Đối với hàng đợi CBWFQ, khi một có lượng traffic lớn nếu như vượt quá giá trị bandwidth được cấu hình thì sẽ drop gói trên lớp đó, nhưng không drop trên những lớp khác.
Trong bài thực hành chúng ta sẽ tạo những loại traffic khác nhau, sau đó đặt mỗi loại traffic vào mỗi lớp và thiết lập giá trị bandwidth trên những lớp tương ứng.
Yêu cầu:
Cấu hình CBWFQ trên cổng serial s0/1 của R2 đáp ứng các nhu cầu sau:
- Lưu lượng voip sẽ được cấp 80 kbps
- Lưu lượng telnet sẽ được cấp 64 kbps
- Lưu lượng web/http sẽ được cấp 128 kbps
- Lưu lượng ftp sẽ được cấp 512 kbps
Thực hiện
Cấu hình ban đầu:
Cấu hình ban đầu trên R1:
R1#sh run
Building configuration...
Current configuration:
!
version 12.0
!
hostname R1
!
ip subnet-zero
!
voice-port 1/1/0
!
voice-port 1/1/1
!
!
dial-peer voice 1 pots
destination-pattern 101
port 1/1/0
!
dial-peer voice 2 voip
destination-pattern 201
session target ipv4:192.168.2.2
!
!
interface Ethernet0/0
ip address 192.168.0.1 255.255.255.0
no ip directed-broadcast
!
interface Serial0/0
ip address 192.168.1.1 255.255.255.0
no ip directed-broadcast
!
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.1.2
no ip http server
!
!
line con 0
transport input none
line aux 0
line vty 0 4
privilege level 15
no login
!
no scheduler allocate
end
R1#
Cấu hình ban đầu trên R2:
R2#sh run
Building configuration...
Current configuration : 1517 bytes
!
version 12.2
!
hostname R2
!
logging queue-limit 100
!
ip subnet-zero
!
no ip domain lookup
ip host R1 192.168.1.1
ip host R3 192.168.2.2
!
ip cef
!
no voice hpi capture buffer
no voice hpi capture destination
!
!
mta receive maximum-recipients 0
!
interface Ethernet0/0
ip address 172.16.1.1 255.255.255.0
half-duplex
!
interface Serial0/0
ip address 192.168.1.2 255.255.255.0
clockrate 2000000
fair-queue
!
interface Serial0/1
ip address 192.168.2.1 255.255.255.0
load-interval 30
fair-queue
hold-queue 1000 out
!
ip http server
ip classless
ip route 100.1.1.0 255.255.255.0 192.168.2.2
ip route 192.168.0.0 255.255.255.0 192.168.1.1
!
!
call rsvp-sync
!
mgcp profile default
!
dial-peer cor custom
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
!
end
Cấu hình ban đầu trên R3:
R3#sh run
R3#sh run
Current configuration : 932 bytes
!
version 12.2
hostname R3
!
logging queue-limit 100
!
ip subnet-zero
!
!
interface Loopback0
ip address 100.1.1.1 255.255.255.0
!
interface Ethernet0/0
no ip address
shutdown
half-duplex
!
interface Serial0/0
ip address 192.168.2.2 255.255.255.0
clockrate 2000000
!
ip http server
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.2.1
!
!
call rsvp-sync
!
voice-port 1/0/0
!
voice-port 1/0/1
!
!
mgcp profile default
!
dial-peer cor custom
!
!
dial-peer voice 1 pots
destination-pattern 201
port 1/0/0
!
dial-peer voice 2 voip
destination-pattern 101
session target ipv4:192.168.1.1
!
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
!
end
Cấu hình trên R2 các thông số sau:
Cấu hình access-list chọn các loại lưu lượng web, ftp, telnet:
access-list 100 permit tcp any any eq telnet
access-list 100 permit tcp any any range ftp-data ftp
access-list 101 permit tcp any any eq www
access-list 102 permit tcp any any range ftp-data ftp
Cấu hình class-map chọn các lưu lượng này
class-map match-all TELNET
match access-group 100
class-map match-all HTTP
match access-group 101
class-map match-all FTP
match access-group 102
class-map match-all VoIP
match ip rtp 16384 16383 << dùng câu lệnh này để chọn gói tin RTP
Cấu hình policy map thiết lập các thông số cần thiết cho cơ chế hàng đợi CBWFQ:
policy-map TRAFFIC
class VoIP
bandwidth 80 // Bandwidth dành cho lớp VoIP là 80 Kb
class TELNET
bandwidth 64 // Bandwidth dành cho lớp TELNET là 64 Kb
class HTTP
bandwidth 128 // Bandwidth dành cho lớp HTTP là 128 Kb
class FTP
bandwidth 512 // Bandwidth dành cho lớp FTP là 512 Kb
Áp dụng lên cổng:
R2(config)#int s0/1
R2(config-if)#service-policy output TRAFFIC
Kiểm tra
R2#show policy-map
Policy Map TRAFFIC
Class VoIP
Bandwidth 80 (kbps) Max Threshold 64 (packets)
Class TELNET
Bandwidth 64 (kbps) Max Threshold 64 (packets)
Class HTTP
Bandwidth 128 (kbps) Max Threshold 64 (packets)
Class FTP
Bandwidth 512 (kbps) Max Threshold 64 (packets)
Giá trị bandwidth dựa trên bandwidth được cấu hình trên cổng, do đó tổng số bandwidth dành cho mỗi lớp cộng với bandwidth dành cho lớp default( 25% bandwidth cấu hình trên cổng) phải nhỏ hơn giá trị bandwidth được cấu hình trên cống
R2#show class-map
Class Map match-all TELNET (id 2)
Match access-group 100
Class Map match-all HTTP (id 3)
Match access-group 101
Class Map match-all VoIP (id 1)
Match ip rtp 16384 16383
Class Map match-any class-default (id 0)
Match any
Class Map match-all FTP (id 4)
Match access-group 102
R2#sh policy-map interface s0/1
Serial0/1
Service-policy output: TRAFFIC
Class-map: VoIP (match-all)
0 packets, 0 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: ip rtp 16384 16383
Queueing
Output Queue: Conversation 265
Bandwidth 80 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: TELNET (match-all)
0 packets, 0 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 100
Queueing
Output Queue: Conversation 266
Bandwidth 64 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: HTTP (match-all)
0 packets, 0 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 101
Queueing
Output Queue: Conversation 267
Bandwidth 128 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: FTP (match-all)
0 packets, 0 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 102
Queueing
Output Queue: Conversation 268
Bandwidth 512 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: class-default (match-any)
5 packets, 444 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: any
Tạo ra những loại traffic tương ứng và kiểm tra thông số của mỗi lớp.
R2#sh policy-map interface s0/1
Serial0/1
Service-policy output: TRAFFIC
Class-map: VoIP (match-all)
297 packets, 18951 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: ip rtp 16384 16383
Queueing
Output Queue: Conversation 265
Bandwidth 80 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 2/128
(depth/total drops/no-buffer drops) 0/0/0
Class-map: TELNET (match-all)
143 packets, 6588 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 100
Queueing
Output Queue: Conversation 266
Bandwidth 64 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 128/5839
(depth/total drops/no-buffer drops) 0/0/0
Class-map: HTTP (match-all)
7 packets, 669 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 101
Queueing
Output Queue: Conversation 267
Bandwidth 128 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: FTP (match-all)
3 packets, 156 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: access-group 102
Queueing
Output Queue: Conversation 268
Bandwidth 512 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: class-default (match-any)
344 packets, 27337 bytes
30 second offered rate 0 bps, drop rate 0 bps
Match: any
R2#
Khi gửi dữ liệu đáng kể, có thể cảm nhận chất lượng thoại vẫn không đáp ứng nhu cầu mong muốn, chính bởi cơ chế hàng đợi này vẫn đáp ứng công bằng dựa trên giá trị bandwidth tính toán chứ không ưu tiên triệt để cho 1 loại lưu lượng nào.
Cấu hình cuối cùng của R2:
R2#sh run
Building configuration...
Current configuration : 1517 bytes
!
version 12.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
logging queue-limit 100
!
ip subnet-zero
!
!
no ip domain lookup
ip host R1 192.168.1.1
ip host R3 192.168.2.2
!
ip cef
mpls ldp logging neighbor-changes
!
!
!
no voice hpi capture buffer
no voice hpi capture destination
!
!
mta receive maximum-recipients 0
!
!
class-map match-all TELNET
match access-group 100
class-map match-all HTTP
match access-group 101
class-map match-all VoIP
match ip rtp 16384 16383
class-map match-all FTP
match access-group 102
!
!
policy-map TRAFFIC
class VoIP
bandwidth 80
class TELNET
bandwidth 64
class HTTP
bandwidth 128
class FTP
bandwidth 512
!
!
!
!
interface Ethernet0/0
ip address 172.16.1.1 255.255.255.0
half-duplex
!
interface Serial0/0
ip address 192.168.1.2 255.255.255.0
clockrate 2000000
fair-queue
!
interface Serial0/1
ip address 192.168.2.1 255.255.255.0
load-interval 30
service-policy output TRAFFIC
!
ip http server
ip classless
ip route 100.1.1.0 255.255.255.0 192.168.2.2
ip route 192.168.0.0 255.255.255.0 192.168.1.1
!
!
!
access-list 100 permit tcp any any eq telnet
access-list 100 permit tcp any any range ftp-data ftp
access-list 101 permit tcp any any eq www
access-list 102 permit tcp any any range ftp-data ftp
!
!
call rsvp-sync
!
!
mgcp profile default
!
dial-peer cor custom
!
!
!
!
line con 0
line aux 0
line vty 0 4
privilege level 15
no login
!
!
end
Comment