Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Phân loại dùng mô hình MQC

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Phân loại dùng mô hình MQC

    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 class-map 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 76

    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 telnet
    match access-group 101
    class-map match-all icmp
    match access-group 102
    class-map match-all web
    match access-group 100

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

    R1# show run | include access-list
    !
    access-list 100 remark *** web traffic to port 80***
    access-list 100 permit tcp any any eq www
    access-list 100 permit tcp any eq www any
    access-list 101 remark *** telnet ****
    access-list 101 permit tcp any any eq telnet
    access-list 102 remark *** icmp echo request ****
    access-list 102 permit 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 77


    Hình 78

    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 79

    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 80


    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ì class-map 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 81

    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 82


    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 83

    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
    Last edited by phamminhtuan; 27-02-2011, 05:02 PM.
    Phạm Minh Tuấn

    Email : phamminhtuan@vnpro.org
    Yahoo : phamminhtuan_vnpro
    -----------------------------------------------------------------------------------------------
    Trung Tâm Tin Học VnPro
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel : (08) 35124257 (5 lines)
    Fax: (08) 35124314

    Home page: http://www.vnpro.vn
    Support Forum: http://www.vnpro.org
    - Chuyên đào tạo quản trị mạng và hạ tầng Internet
    - Phát hành sách chuyên môn
    - Tư vấn và tuyển dụng nhân sự IT
    - Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

    Network channel: http://www.dancisco.com
    Blog: http://www.vnpro.org/blog
Working...
X