Tải bản đầy đủ (.doc) (20 trang)

CCNA Lab - Phân Loại Dùng Mô Hình MQC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (208.01 KB, 20 trang )

LAB 2: Phân loại dùng mô hình MQC
Giới thiệu cách cấu hình mô hình MQC
Mô hình MQC là cấu trúc cấu hình dùng câu lệnh nhưng được tổ chức theo dạng khối
(module) cung cấp sự thuận tiện trong cấu hình hay xử lý sự cố. Mức độ thêm bớt các
tính năng QoS trong khi dùng mô hình MQC rất dễ dàng cung cấp độ mở rộng tối đa cho
người sử dụng khi cấu hình QoS trên Cisco router.
Có 3 câu lệnh chính được sử dụng trong mô hình MQC
Câu lệnh class-map: dùng để phân loại lưu lượng dữ liệu theo ý muốn của người sử dụng,
có thể sử dụng kết hợp với nhiều công cụ phân loại như ACL hay dùng cơ chế NBAR ...
Câu lệnh policy-map: dùng để quy định cách hành xử cho từng loại lưu lượng đã được
phân loại, cách hành xử có thể đơn giản là phân loại dữ liệu, có thể là đánh dấu hay sử
dụng trong các cơ chế QoS khác, chú ý là luôn tồn tại 1 loại cấu hình class-map tên là
class-default nhằm phân loại tất cả các lưu lượng chưa được phân loại bởi những classmap trước.
Câu lệnh service-policy: đây là câu lệnh dùng để áp dụng policy-map đã cấu hình lên một
giao tiếp tương ứng, mỗi giao tiếp/ cổng chỉ áp dụng được một policy-map theo hướng
vào và / hoặc hướng ra.


Sơ đồ:

Hình 1

Trong bài lab này, sẽ hướng dẫn cách phân loại dữ liệu dùng trong cách cấu hình QoS
dùng mô hình MQC.

Thực hiện
Cấu hình ban đầu của hệ thống:
Cấu hình R1:
R1#sh run
Building configuration...
Current configuration : 1149 bytes


!
version 12.4
!
hostname R1
!
!
ip cef
!
ip dhcp pool 10


network 10.10.20.0 255.255.255.0
default-router 10.10.20.1
dns-server 203.162.4.1 203.162.4.190 203.162.4.191
!
!
interface FastEthernet0/0
ip address 10.10.10.1 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 10.10.20.1 255.255.255.0
duplex auto
speed auto
!
interface Serial0/1/0
ip address 192.1.1.1 255.255.255.0
clock rate 2000000
!

ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 192.1.1.2
!
line con 0
exec-timeout 0 0
logging synchronous
line aux 0
line vty 0 4
privilege level 15
no login
!
end

Cấu hình R2
R2#sh run
Building configuration...
Current configuration : 1178 bytes
!
version 12.4
!
hostname R2
!
ip cef
!
interface FastEthernet0/0
ip address 20.20.20.1 255.255.255.0
ip nat inside
ip virtual-reassembly
duplex auto
speed auto



!
interface FastEthernet0/1
ip address dhcp
ip nat outside
ip virtual-reassembly
duplex auto
speed auto
!
interface Serial0/1/0
ip address 192.1.1.2 255.255.255.0
ip nat inside
ip virtual-reassembly
!
ip route 10.10.0.0 255.255.0.0 192.1.1.1
!
ip http server
no ip http secure-server
ip nat inside source list 1 interface FastEthernet0/1 overload
!
access-list 1 permit 10.10.0.0 0.0.255.255
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
line aux 0
line vty 0 4
privilege level 15

logging synchronous
no login
!
scheduler allocate 20000 1000
!
end

Cấu hình trên thiết bị C2600-1:
c2600_1#sh run
Building configuration...
Current configuration : 832 bytes
!
version 12.3
!
hostname c2600_1
!
ip subnet-zero
ip cef
!
interface Ethernet0/0
ip address 10.10.10.2 255.255.255.0
half-duplex


!
ip classless
ip route 0.0.0.0 0.0.0.0 10.10.10.1
!
voice-port 1/0/0
!

voice-port 1/0/1
!
dial-peer voice 1 pots
destination-pattern 1111
port 1/0/0
!
dial-peer voice 2 voip
destination-pattern 2222
session target ipv4:20.20.20.2
!
line con 0
exec-timeout 0 0
logging synchronous
line aux 0
line vty 0 4
privilege level 15
no login
!
!
end

Cấu hình trên thiết bị C2600_2:
c2600_2#sh run
Building configuration...
Current configuration : 854 bytes
!
version 12.3
!
hostname c2600_2
!

ip subnet-zero
ip cef
!
interface Ethernet0/0
ip address 20.20.20.2 255.255.255.0
half-duplex
!
ip classless
ip route 0.0.0.0 0.0.0.0 20.20.20.1
!
voice-port 1/0/0
!
voice-port 1/0/1
!


dial-peer voice 1 pots
destination-pattern 2222
port 1/0/0
!
dial-peer voice 2 voip
destination-pattern 1111
session target ipv4:10.10.10.2
!
line con 0
exec-timeout 0 0
logging synchronous
line aux 0
line vty 0 4
privilege level 15

logging synchronous
no login
!
!
end

Bước 1: Dùng ACL để chọn lưu lượng
Chọn lưu lượng WEB
R1(config)#access-list 100 remark *** web traffic to port 80*** <-- dòng
ghi chú dùng trong ACL
R1(config)#access-list 100 permit tcp any any eq 80
R1(config)#access-list 100 permit tcp any eq 80 any

Chọn lưu lượng TELNET
R1(config)#access-list 101 remark *** telnet ****
R1(config)#access-list 101 permit tcp any any eq 23

Chọn lưu lượng ICMP
R1(config)#access-list 102 remark *** icmp echo request ****
R1(config)#access-list 102 permit icmp any any echo?
echo echo-reply
R1(config)#access-list 102 permit icmp any any echo

Cấu hình class-map để chọn lưu lượng từ các công cụ ACL:
Chọn lưu lượng WEB
R1(config)#class-map web
R1(config-cmap)#match access-group 100
R1(config-cmap)#exit

Chọn lưu lượng TELNET

R1(config)#class-map telnet
R1(config-cmap)#match access-group 101


R1(config-cmap)#exit

Chọn lưu lượng ICMP
R1(config)#class-map icmp
R1(config-cmap)#match access-group 102
R1(config-cmap)#exit
R1(config)#

Dùng lệnh show class-map để kiểm tra thông tin cấu hình
R1#show class-map
!
class-map match-all
match access-group
class-map match-all
match access-group
class-map match-all
match access-group

telnet
101
icmp
102
web
100

Kiểm tra các thông tin cấu hình về ACL

R1# show run | include
!
access-list 100 remark
access-list 100 permit
access-list 100 permit
access-list 101 remark
access-list 101 permit
access-list 102 remark
access-list 102 permit

access-list
*** web traffic to port 80***
tcp any any eq www
tcp any eq www any
*** telnet ****
tcp any any eq telnet
*** icmp echo request ****
icmp any any echo

Kiểm tra thông tin cấu hình policy-map
R1#show policy-map
!
policy-map classify_ACL
class web
class telnet
class icmp

Áp dụng lên cổng giao tiếp
R1(config)#int s0/1/0
R1(config-if)#service-policy output classify_ACL

R1(config-if)#

Kiểm tra thông tin trạng thái khi chưa gửi lưu lượng qua hệ thống


R1#sh policy-map interface s0/1/0
Serial0/1/0
Service-policy output: classify_ACL
Class-map: web (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps
Match: access-group 100
Class-map: telnet (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps
Match: access-group 101
Class-map: icmp (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps
Match: access-group 102
Class-map: class-default (match-any) << class class-default
2009 packets, 129196 bytes
5 minute offered rate 8000 bps, drop rate 0 bps
Match: any


Tiến hành cho lưu lượng chạy qua, duyệt web:
Thực hiện telnet qua thiết bị 20.20.20.2

Hình 2


Hình 3
R1#sh policy-map interface s0/1/0
Serial0/1/0
Service-policy output: classify_ACL
Class-map: web (match-all)
5 packets, 681 bytes
5 minute offered rate 0 bps


Match: access-group 100
Class-map: telnet (match-all)
15 packets, 709 bytes << lưu lượng telnet tăng lên
5 minute offered rate 0 bps
Match: access-group 101
Class-map: icmp (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps
Match: access-group 102
Class-map: class-default (match-any)
4034 packets, 259712 bytes
5 minute offered rate 16000 bps, drop rate 0 bps
Match: any

Thực hiện ping từ PC đến thiết bị 20.20.20.2 với 5 gói

Hình 4
R1#sh policy-map interface s0/1/0
Serial0/1/0
Service-policy output: classify_ACL

Class-map: web (match-all)
15 packets, 2043 bytes
5 minute offered rate 0 bps
Match: access-group 100
Class-map: telnet (match-all)
70 packets, 3162 bytes


5 minute offered rate 0 bps
Match: access-group 101
Class-map: icmp (match-all)
5 packets, 320 bytes << lưu lượng icmp tăng lên
5 minute offered rate 0 bps
Match: access-group 102
Class-map: class-default (match-any)
9832 packets, 633316 bytes
5 minute offered rate 25000 bps, drop rate 0 bps
Match: any

R1#
Bước 2: Ta cũng có thể phân loại dựa trên giá trị DSCP của gói tin
Yêu cầu:
Xóa các cấu hình service-policy trên cổng trước đó
Thực hiện phân loại gói tin dựa trên giá trị DSCP EF
R1#conf t
R1(config)#class-map ef
R1(config-cmap)#match ip dscp ef << phân loại dựa trên giá trị dscp ef
R1(config-cmap)#exit
R1(config)#policy-map classify_DSCP
R1(config-pmap)#class ef

R1(config-pmap)#exit
R1(config)#
R1(config)#int s0/1/0
R1(config-if)#service-policy output classify_DSCP
R1(config-if)#
R1#sh policy-map
Policy-map classify_ACL
class web
class telnet
class icmp

Policy Map classify_DSCP
Class ef

Kiểm tra bằng cách ping giá trị 20.20.20.2 thiết lập dscp ef
Kiểm tra thông tin chạy qua trước khi ping gói tin
R1#sh policy-map interface s0/1/0


Serial0/1/0
Service-policy output: classify_DSCP
Class-map: ef (match-all)
0 packets, 0 bytes << thông tin ban đầu là 0
5 minute offered rate 20000 bps
Match: ip dscp ef (46)
Class-map: class-default (match-any)
1 packets, 340 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
R1#


Tiến hành ping 4 gói tin và thiết lập giá trị DSCP = EF (10111000 = 184)

Hình 5

R1#sh policy-map interface s0/1/0
Serial0/1/0
Service-policy output: classify_DSCP

Class-map: ef (match-all)
4 packets, 256 bytes << số lượng tăng lên tương ứng
5 minute offered rate 10000 bps
Match: ip dscp ef (46)
Class-map: class-default (match-any)


8 packets, 528 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any

Xóa các cấu hình service-policy trên cổng và policy-map để chuẩn bị cho phần lab tiếp
theo.
Bước 3: Dùng logic match-all và match-any
Trong trường hợp sử dụng câu lệnh class-map mặc định câu lệnh này sẽ dùng luận lý
AND (match-all) tức là nếu có nhiều điều kiện so trùng thì tất cả các điều kiện phải thỏa,
người dùng cũng có thể chỉnh lại luận lý này bằng cách thêm vào từ khóa match-any sau
câu lệnh class-map. Với trường hợp match-any, nếu có nhiều điều kiện so trùng thì classmap sẽ dùng luận lý OR để kiểm tra, tức là nếu có nhiều điều kiện so trùng thì nếu ít nhất
1 điều kiện thỏa thì sẽ lưu lượng sẽ coi như thỏa class-map.
Kiểm tra những ACL đã cấu hình
R1(config)#do sh access-list

Extended IP access list 100
10 permit tcp any any eq www (2304 matches)
20 permit tcp any eq www any
Extended IP access list 101
10 permit tcp any any eq telnet (72 matches)
Extended IP access list 102
10 permit icmp any any echo (5 matches)

Kiểm tra cách hoạt động của nguyên lý match-all bằng cách tạo một class-map
PING_AND_EF thỏa cả 2 điều kiện sau: là gói tin icmp và có giá trị DSCP=EF
R1(config)#class-map PING_AND_EF << mặc định sẽ là match-all
R1(config-cmap)#match access-group 102
R1(config-cmap)#match ip dscp ef
R1(config-cmap)#exit

Tạo policy-map tương tứng
R1(config)#policy-map classify
R1(config-pmap)#class PING_AND_EF
R1(config-pmap-c)#exit
R1(config-pmap)#end

Kiểm tra cấu hình
R1#sh policy-map
Policy Map classify


Class PING_AND_EF

Áp dụng lên cổng
R1#conf t

R1(config)#int s0/1/0
R1(config-if)#service-policy output classify
R1(config-if)#end

Kiểm tra thông tin trạng thái:
R1#sh policy-map int s0/1/0
Serial0/1/0
Service-policy output: classify
Class-map: PING_AND_EF (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps
Match: access-group 102
Match: ip dscp ef (46)
Class-map: class-default (match-any)
1 packets, 24 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any

Thực hiện ping từ pc đến 20.20.20.2 với 4 gói echo

Hình 6
R1#sh policy-map int s0/1/0


Serial0/1/0
Service-policy output: classify
Class-map: PING_AND_EF (match-all)
0 packets, 0 bytes << không tăng giá trị
5 minute offered rate 0 bps
Match: access-group 102

Match: ip dscp ef (46)
Class-map: class-default (match-any)
29 packets, 2610 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any

Thống kê không thấy tăng vì chỉ là gói icmp echo, giá trị dscp chưa thiết lập nên bằng 0,
class-map sẽ không phân loại được lưu lượng này.
Thực hiện ping từ pc đến 20.20.20.2 với 4 gói echo và thiết lập thông tin dscp bằng ef,
kiểm tra cấu hình:

Hình 7

R1#sh policy-map int s0/1/0
Serial0/1/0
Service-policy output: classify
Class-map: PING_AND_EF (match-all)
4 packets, 256 bytes << tăng lên 4 gói
5 minute offered rate 0 bps
Match: access-group 102


Match: ip dscp ef (46)
Class-map: class-default (match-any)
60 packets, 5669 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
R1#sh policy-map int s0/1/0
Serial0/1/0
Service-policy output: classify

Class-map: PING_AND_EF (match-all)
4 packets, 256 bytes
5 minute offered rate 0 bps
Match: access-group 102
Match: ip dscp ef (46)
Class-map: class-default (match-any)
60 packets, 5669 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any

Gói tin đã được đếm hay được phân loại do thỏa tất cả các điều kiện so trùng.
Bước 4: Chuyển sang logic match any
Yêu cầu:
Phân loại lưu lượng có giá trị dscp là EF HOẶC telnet sẽ được thống kê
Loại bỏ các cấu hình cũ
R1#conf t
R1(config)#int s0/1/0
R1(config-if)#no service-policy output classify

Kiểm tra ACL
R1#sh access-lists
Extended IP access list 100
10 permit tcp any any eq www (2304 matches)
20 permit tcp any eq www any
Extended IP access list 101
10 permit tcp any any eq telnet (72 matches)
Extended IP access list 102
10 permit icmp any any echo (13 matches)
R1#



R1(config)#policy-map
R1(config)#class-map match-any TELNET_OR_EF
R1(config-cmap)#match access-group 101
R1(config-cmap)#match ip dscp ef
R1(config-cmap)#end

Chỉnh lại cấu hình mới
!
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#policy-map
R1(config)#policy-map classify
R1(config-pmap)#no class PING_AND_EF
R1(config-pmap)#class TELNET_OR_EF
R1(config-pmap-c)#end
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#
R1(config)#int s0/1/0
R1(config-if)#service-policy output classify
R1(config-if)#

Kiểm tra cấu hình trứơc khi tiến hành gửi lưu lượng và xem thông số
Xóa các thông tin thống kê trước đó
R1#clear counters
Clear "show interface" counters on all interfaces [confirm]
R1#sh policy-map int s0/1/0
Serial0/1/0
Service-policy output: classify

Class-map: TELNET_OR_EF (match-any)
0 packets, 0 bytes << thông tin bẳng 0
5 minute offered rate 0 bps
Match: access-group 101
0 packets, 0 bytes
5 minute rate 0 bps
Match: ip dscp ef (46)
0 packets, 0 bytes
5 minute rate 0 bps
Class-map: class-default (match-any)
1 packets, 24 bytes
5 minute offered rate 0 bps, drop rate 0 bps


Match: any


Bắt đầu gửi traffic, tiến hành ping 4 gói có giá trị dscp EF

Hình 8
R1#sh policy-map int s0/1/0
Serial0/1/0
Service-policy output: classify
Class-map: TELNET_OR_EF (match-any)
4 packets, 256 bytes << số lượng tăng lên vì điều kiện ef thỏa
5 minute offered rate 0 bps
Match: access-group 101
0 packets, 0 bytes
5 minute rate 0 bps
Match: ip dscp ef (46)

4 packets, 256 bytes
5 minute rate 0 bps
Class-map: class-default (match-any)
11 packets, 1141 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any


Sau đó tiến hành telnet đến 20.20.20.2

R1#sh policy-map int s0/1/0
Serial0/1/0
Service-policy output: classify
Class-map: TELNET_OR_EF (match-any)
17 packets, 875 bytes << số lượng tăng lên vì điều kiện telnet
thỏa
5 minute offered rate 0 bps
Match: access-group 101
13 packets, 619 bytes
5 minute rate 0 bps
Match: ip dscp ef (46)
4 packets, 256 bytes
5 minute rate 0 bps
Class-map: class-default (match-any)
25 packets, 2354 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any




×