LAB – Triển khai CoPP
Sơ đồ:
Hình 1 – Sơ đồ bài Lab
Yêu cầu:
1. Cấu hình ban đầu:
Đặt địa chỉ IP cho các interface trên thiết bị Routers trong global configuration mode theo quy hoạch IP được chỉ ra trên hình. Cấu hình:
Trên R1:
R1(config)#hostname R1
R1(config)#no ip domain lookup
R1(config)#ip domain name CCNPv8.CoPP.Lab
R1(config)#username admin privilege 15 algorithm-type scrypt secret cisco123
R1(config)#banner motd # R1, Control Plane Policing #
R1(config)#line con 0
R1(config-line)#exec-timeout 0 0
R1(config-line)#logging synchronous
R1(config-line)#exit
R1(config)#Interface g0/0/1
R1(config-if)#ip address 10.10.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface g0/0/0
R1(config-if)#ip address 172.16.12.1 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router eigrp 123
R1(config-router)#eigrp router-id 0.0.0.1
R1(config-router)#network 172.16.12.0 0.0.0.3
R1(config-router)#network 10.10.1.0 0.0.0.255
R1(config-router)#exit
R1(config)#line vty 0 4
R1(config-line)#login local
R1(config-line)#transport input telnet ssh
R1(config-line)#exit
R1(config)#crypto key generate rsa modulus 1024
R1(config)#end
R1# copy running-config startup-config
Trên R2:
R2(config)#hostname R2
R2(config)# no ip domain lookup
R2(config)#ip domain name CCNPv8.CoPP.Lab
R2(config)#username admin privilege 15 algorithm-type scrypt secret cisco123
R2(config)#banner motd # R2, Control Plane Policing #
R2(config)#line con 0
R2(config-line)#exec-timeout 0 0
R2(config-line)#logging synchronous
R2(config-line)#exit
R2(config)#interface g0/0/0
R2(config-if)#ip address 172.16.12.2 255.255.255.252
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#router eigrp 123
R2(config-router)#eigrp router-id 0.0.02
R2(config-router)#network 172.16.12.0 0.0.0.3
R2(config-router)#exit
R2(config)#line vty 0 4
R2(config-line)#login local
R2(config-line)#transport input telnet ssh
R2(config-line)#exit
R2(config)#crypto key generate rsa modulus 1024
R2(config)#end
R2# copy running-config startup-config
Trên A1:
A1(config)#hostname A1
A1(config)#no ip domain lookup
A1(config)#username admin privilege 15 algorithm-type scrypt secret cisco123
A1(config)#ip domain name CCNPv8.CoPP.Lab
A1(config)#banner motd # A1, Control Plane Policing #
A1(config)#spanning-tree mode rapid-pvst
A1(config)#line con 0
A1(config-line)#exec-timeout 0 0
A1(config-line)#logging synchronous
A1(config-line)#exit
A1(config)#line vty 0 15
A1(config-line)#login local
A1(config-line)#transport input telnet
A1(config-line)#exit
A1(config)#interface f0/1
A1(config-if)#switchport mode access
A1(config-if)#no shutdown
A1(config-if)#exit
A1(config)#interface vlan 1
A1(config-if)#ip add 10.10.1.4 255.255.255.0
A1(config-if)#no shutdown
A1(config-if)#exit
A1(config)#ip default-gateway 10.10.1.1
A1(config)#crypto key generate rsa modulus 1024
A1(config)#end
A1# copy running-config startup-config
2. Xác minh các kết nối ban đầu:
Kiểm tra kết nối mạng và các dịch vụ trước khi áp dụng bất kỳ chính sách nào. Điều này đảm bảo rằng mạng hoạt động đầy đủ và việc mất kết nối hoặc chức năng là do chính sách được áp dụng chứ không phải là do sự cố mạng tồn tại từ trước.
Khi kiểm tra kết nối TCP, một số dịch vụ sẽ nhắc nhập tên người dùng / mật khẩu. Tên người dùng được cấu hình là admin và mật khẩu là cisco123.
Từ A1, kiểm tra kết nối telnet đến R1 và R2.
Từ A1, kiểm tra kết nối SSH đến R1 và R2.
3. Triển khai chính sách CoPP trên R1.
Cấu hình ACL để xác định các luồng lưu lượng. Sau đó, sử dụng các ACL trong class maps để phân loại lưu lượng cho CoPP. Tiếp theo, liên kết các class maps đến policy map trong CoPP. Policy map này sẽ áp dụng các chính sách và hành động cần thực thi cho mỗi class map.Cuối cùng, áp dụng policy map vào control plane.
3.1. Cấu hình ACL dạng named để xác định luồng lưu lượng.
Hiểu được những gì cần thiết để phân loại lưu lượng có thể đạt được từ phân tích network protocol. Có thể sử dụng Cisco NetFlow và Embedded Packet Capture (EPC) để phân loại lưu lượng mạng.
Sau khi lưu lượng đã được xác định, ta có thể xây dựng ACL phù hợp với lưu lượng đó. Định nghĩa về các ACL này là một trong những bước quan trọng nhất trong quy tình CoPP. Mức độ chi tiết thích hợp trong việc phân loại các giao thức này trong các ACL cho phép bảo vệ control plane CPU.
R1(config)# ip access-list extended TELNET
R1(config-ext-nacl)# permit tcp any any eq 23
R1(config-ext-nacl)# exit
R1(config)# ip access-list extended EIGRP
R1(config-ext-nacl)# permit eigrp any any
R1(config-ext-nacl)# exit
R1(config)# ip access-list extended SSH
R1(config-ext-nacl)# permit tcp any any eq 22
R1(config-ext-nacl)# exit
R1(config)# ip access-list extended ICMP
R1(config-ext-nacl)# permit icmp any any
R1(config-ext-nacl)# exit
Lưu ý: Các gói tin nào không khớp với bất kỳ câu lệnh permit nào sẽ được gửi đến control plane CPU trên R1.
3.2. Cấu hình class map cho CoPP trên R1.
Class map được sử dụng để phân loại lưu lượng cho CoPP. Các ACL được định nghĩa trước đó để chỉ định các gói tin IP nào thuộc về lớp nào. Việc ánh xạ các ACL vào class map hoàn thành quá trình phân loại lưu lượng. Class map hỗ trợ nhiều tiêu chí đối sánh; tuy nhiên, trong cấu hình này, tiêu chí đối sánh đơn sẽ đáp ứng chức năng cơ bản.
R1(config)# class-map match-all CM-TELNET
R1(config-cmap)# match access-group name TELNET
R1(config-cmap)# exit
R1(config)# class-map match-all CM-EIGRP
R1(config-cmap)# match access-group name EIGRP
R1(config-cmap)# exit
R1(config)# class-map match-all CM-SSH
R1(config-cmap)# match access-group name SSH
R1(config-cmap)# exit
R1(config)# class-map match-all CM-ICMP
R1(config-cmap)# match access-group name ICMP
R1(config-cmap)# exit
3.3. Cấu hình policy map cho CoPP trên R1.
Policy map xác định “đường cơ sở” về chính sách dịch vụ cho từng loại lưu lượng. Đối với mỗi lớp lưu lượng đã được cấu hình trước đó, policy map sẽ thực thi các hành động và tốc độ cho comtrol plane.
Việc tìm kiếm tỷ lệ kiểm soát tốc độ tối ưu mà không ảnh hưởng đến sự ổn định của mạng đồi hỏi phải hiểu về các luồng lưu lượng truy cập theo thời gian. Để đảm bảo rằng CoPP không gây ra các vấn đề về tính ổn định, các hành động vi phạm phải được thiết lập để truyền cho tất cả các lớp quan trọng. Khi chính sách CoPP được xác nhận là có hiệu quả về mặt hoạt động, đó sẽ là thời điểm để chuyển đổi các hành động truyền “ Vượt quá hành động” thích hợp thành hành động bị loại bỏ.
R1(config)# policy-map PM-COPP
R1(config-pmap)# class CM-TELNET
R1(config-pmap-c)# police 8000 conform-action drop exceed-action drop
R1(config-pmap-c-police)# exit
R1(config-pmap-c)# class CM-EIGRP
R1(config-pmap-c)# police rate 10 pps conform-action transmit exceed-action transmit
R1(config-pmap-c-police)# exit
R1(config-pmap-c)# class CM-SSH
R1(config-pmap-c)# police 50000 conform-action transmit exceed-action transmit
R1(config-pmap-c-police)# exit
R1(config-pmap-c)# class CM-ICMP
R1(config-pmap-c)# police rate 10 pps conform-action transmit exceed-action drop
R1(config-pmap-c-police)# exit
R1(config-pmap-c)# class class-default
R1(config-pmap-c)# police 12000 conform-action transmit exceed-action transmit
R1(config-pmap-c-police)# end
Lưu ý: Lớp class-default là lớp được tự động đặt ở cuối policy map. Theo bản chất của cơ chế đối sánh CoPP, một số lưu lượng nhất định sẽ luôn rơi và class-default. Điều này bao gồm lưu lượng truy cập ở lớp Layer 2 và lưu lượng truy cập không phải IP. Bởi vì các loại lưu lượng này yêu cầu để duy trì mạng control plane, thì class-default không bao giờ được kiểm soát với cả 2 hành động là conform và exceed được tthiết lập drop.
3.4. Áp dụng chính sách CoPP vào giao diện ảo control plane trên R1.
Policy map sẽ được áp dụng cho giao diện ản control plane theo chiều inbound sử dụng câu lệnh service-policy. Chính sách CoPP này chỉ ảnh hướng đến lưu lượng dành cho control plane của Router’s.
R1# conf t
R1(config)# control-plane
R1(config-cp)# service-policy input PM-COPP
R1(config-cp)# end
4. Xác minh chính sách CoPP trên R1.
4.1. Lệnh hiển thị access-list.
Lệnh hiển thị access-list xác định lưu lượng truy cập cụ thể cho từng ACL.
R1# show access-lists
Extended IP access list EIGRP
10 permit eigrp any any
Extended IP access list ICMP
10 permit icmp any any
Extended IP access list SSH
10 permit tcp any any eq 22
Extended IP access list TELNET
10 permit tcp any any eq telnet
4.2. Lệnh hiển thị class-map.
Chỉ các class map đã được cấu hình là sử dụng cho CoPP. Lưu ý câu lệnh match-any trong class map bên dưới class-default. Câu lệnh đối sánh được tự động thêm vào khi class map được đưa vào cấu hình policy map
R1# show class-map
Class Map match-all CM-TELNET (id 1)
Match access-group name TELNET
Class Map match-any class-default (id 0)
Match any
Class Map match-all CM-ICMP (id 5)
Match access-group name ICMP
Class Map match-all CM-EIGRP (id 2)
Match access-group name EIGRP
Class Map match-all CM-SSH (id 3)
Match access-group name SSH
4.3. Lệnh hiển thị policy-map.
Lưu ý rằng policy map hiển thị các tốc độ chính sách đã được cấu hình cho mỗi class map, bao gồm cả class-default.
R1#show policy-map
Policy Map PM-COPP
Class CM-TELNET
police cir 8000 bc 1500
conform-action drop
exceed-action drop
Class CM-EIGRP
police rate 10 pps
conform-action transmit
exceed-action transmit
Class CM-SSH
police cir 50000 bc 1562
conform-action transmit
exceed-action transmit
Class CM-ICMP
police rate 10 pps
conform-action transmit
exceed-action drop
Class class-default
police cir 12000 bc 1500
conform-action transmit
exceed-action transmit
4.4. Lệnh hiển thị policy-map control-plane.
Đây là câu lệnh hữu ích nhất để xác minh chức năng của CoPP. Lưu ý rằng các gói tin EIGRP tuần theo quy tắt chính sách. Bởi vì không có gói tin nào vượt quá tốc độ được xác định cho EIGRP class map, tất cả các gói tin được truyền đến control plane để xử lý. Lưu ý rằng số lượng gói tin của bạn sẽ thay đổi so với ví dụ bên dưới:
R1# show policy-map control-plane
Control Plane
Service-policy input: PM-COPP
Class-map: CM-TELNET (match-all)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name TELNET
police:
cir 8000 bps, bc 1500 bytes
conformed 0 packets, 0 bytes; actions:
drop
exceeded 0 packets, 0 bytes; actions:
drop
conformed 0000 bps, exceeded 0000 bps
Class-map: CM-EIGRP (match-all)
34 packets, 2516 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name EIGRP
police:
rate 10 pps, burst 2 packets
conformed 34 packets, 2516 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0 pps, exceeded 0 pps
Class-map: CM-SSH (match-all)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name SSH
police:
cir 50000 bps, bc 1562 bytes
conformed 0 packets, 0 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0000 bps, exceeded 0000 bps
Class-map: CM-ICMP (match-all)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name ICMP
police:
rate 10 pps, burst 2 packets
conformed 0 packets, 0 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
drop
conformed 0 pps, exceeded 0 pps
Class-map: class-default (match-any)
333 packets, 19788 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: any
police:
cir 12000 bps, bc 1500 bytes
conformed 333 packets, 19788 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0000 bps, exceeded 0000 bps
4.5. Từ R2, ping R1.
Từ R2, sử dụng lệnh ping 172.16.12.1 repeat 20 để giả lập đính kèm Dos trên control plane R1. Lưu ý tỷ lệ thành công là 70% và ping không thành công được hiển thị dấu chấm (.) trong các dấu chấm thang (thành công ). Từ kết quả ở trên, đểu này chỉ ra rằng R1 đang dropping mỗi gói tin thứ 3 của ICMP, dựa trên chính sách giới hạn tốc độ lưu lượng ICMP tới control plane trên R1.
R2# ping 172.16.12.1 repeat 20
Type escape sequence to abort.
Sending 20, 100-byte ICMP Echos to 172.16.12.1, timeout is 2 seconds:
!!.!!.!!.!!.!!.!!.!!
Success rate is 70 percent (14/20), round-trip min/avg/max = 1/1/2 ms
4.6. Từ R2, truy cập Telnet đến R1.
Từ R2 truy cập telnet 172.16.12.1. Lưu ý rằng tất cả lưu lượng telnet đến R1 không thành công. Điều này là do chính sách của mình đã loại bỏ các gói tin lưu lượng telnet trực tiếp đến control plane trên R1
R2# telnet 172.16.12.1
Trying 172.16.12.1 ...
% Connection timed out; remote host not responding
4.7. Từ R2, truy cập Telnet đến A1.
Từ R2, truy cập telnet 10.10.1.4. Khi hiển thị username / password enter admin và cisco123. Lưu ý rằng lưu lượng telnet từ R2 đi xuyên qua R1 đến A1 thì thành công
R2# telnet 10.10.1.4
Trying 10.10.1.4 ... Open
A1, Control Plane Policing
User Access Verification
Username: admin
Password:
A1# exit
[Connection to 10.10.1.4 closed by foreign host]
4.8. SSH từ R2 đến R1.
Từ R2 SSH vào trong R1 sử dụng dòng lệnh ssh –l admin 172.16.12.1. Khi hiển thị mật khẩu thì enter cisco123. Sau đó enter show running-config để phát ra các gói tin SSH.
R2# ssh -l admin 172.16.12.1
Password:
R1, Control Plane Policing
R1# show running-config
Building configuration...
(output omitted)
R1# exit
[Connection to 172.16.12.1 closed by foreign host]
4.9. Kiểm tra chính sách CoPP trên R1.
Trên R1, Lặp lại câu lệnh show policy-map control-plane để kiểm tra chính sách của ICMP, telnet, SSH, EIGRP và những gói tin khác.
Lưu ý: Số lượng gói tin của bạn sẽ thay đổi theo kết quả sau:
R1# show policy-map control-plane
Control Plane
Service-policy input: PM-COPP
Class-map: CM-TELNET (match-all)
4 packets, 232 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name TELNET
police:
cir 8000 bps, bc 1500 bytes
conformed 4 packets, 232 bytes; actions:
drop
exceeded 0 packets, 0 bytes; actions:
drop
conformed 0000 bps, exceeded 0000 bps
Class-map: CM-EIGRP (match-all)
487 packets, 36038 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name EIGRP
police:
rate 10 pps, burst 2 packets
conformed 487 packets, 36038 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0 pps, exceeded 0 pps
Class-map: CM-SSH (match-all)
68 packets, 5776 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name SSH
police:
cir 50000 bps, bc 1562 bytes
conformed 68 packets, 5776 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0000 bps, exceeded 0000 bps
Class-map: CM-ICMP (match-all)
10 packets, 1000 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name ICMP
police:
rate 10 pps, burst 2 packets
conformed 7 packets, 700 bytes; actions:
transmit
exceeded 3 packets, 300 bytes; actions:
drop
conformed 0 pps, exceeded 0 pps
Class-map: class-default (match-any)
4701 packets, 281816 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: any
police:
cir 12000 bps, bc 1500 bytes
conformed 4701 packets, 281816 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0000 bps, exceeded 0000 bps
Từ đầu ra ở trên, lưu ý những điều sau đây:
Lưu ý trong đầu ra của lệnh hiển thị policy-map control-plane rằng có một số lượng đáng kể các gói tin đang được so khớp với lớp class-default. Một giải pháp để giúp xác định nguồn gốc của các gói tin này là cấu hình “CATCH-ALL” class map. Class map mới này sẽ thu thập mọi lưu lượng truy cập còn lại không khớp với class map trước đó và được chuyển tới control plane của thiết bị. Lớp “CATCH-ALL” này sẽ ngăn các gói tin kết thúc trong lớp class-default. Ví dụ, ACL được gọi là CATCH-ALL có thể được định nghĩa như sau:
R1(config)# ip access-list extended CATCH-ALL
R1(config-ext-nacl)# permit icmp any any
R1(config-ext-nacl)# permit udp any any
R1(config-ext-nacl)# permit tcp any any
R1(config-ext-nacl)# permit ip any any
R1(config-ext-nacl)# exit
R1(config)#class-map match-all CM-CATCH-ALL
R1(config-cmap)#match access-group name CATCH-ALL
R1(config-cmap)#exit
R1(config)#policy-map PM-COPP
R1(config-pmap)#class CM-CATCH-ALL
R1(config-pmap-c)#police 50000 conform-action transmit exceed-action drop
ACL này có thể được so khớp class map được gọi là CM-CATCH-ALL có thể được kiểm soát đến 50 kbps với hành confirm là transmit và hành động vượt quá là drop.
Triển khai class map mới trong policy map của bạn và, lập lại các xác minh trong phần 4, sau đó dùng lện show policy-map control-plane để xem nơi lưu lượng truy cập mặc định này được phân loại.
Sơ đồ:
Hình 1 – Sơ đồ bài Lab
Yêu cầu:
1. Cấu hình ban đầu:
Đặt địa chỉ IP cho các interface trên thiết bị Routers trong global configuration mode theo quy hoạch IP được chỉ ra trên hình. Cấu hình:
Trên R1:
R1(config)#hostname R1
R1(config)#no ip domain lookup
R1(config)#ip domain name CCNPv8.CoPP.Lab
R1(config)#username admin privilege 15 algorithm-type scrypt secret cisco123
R1(config)#banner motd # R1, Control Plane Policing #
R1(config)#line con 0
R1(config-line)#exec-timeout 0 0
R1(config-line)#logging synchronous
R1(config-line)#exit
R1(config)#Interface g0/0/1
R1(config-if)#ip address 10.10.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface g0/0/0
R1(config-if)#ip address 172.16.12.1 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router eigrp 123
R1(config-router)#eigrp router-id 0.0.0.1
R1(config-router)#network 172.16.12.0 0.0.0.3
R1(config-router)#network 10.10.1.0 0.0.0.255
R1(config-router)#exit
R1(config)#line vty 0 4
R1(config-line)#login local
R1(config-line)#transport input telnet ssh
R1(config-line)#exit
R1(config)#crypto key generate rsa modulus 1024
R1(config)#end
R1# copy running-config startup-config
Trên R2:
R2(config)#hostname R2
R2(config)# no ip domain lookup
R2(config)#ip domain name CCNPv8.CoPP.Lab
R2(config)#username admin privilege 15 algorithm-type scrypt secret cisco123
R2(config)#banner motd # R2, Control Plane Policing #
R2(config)#line con 0
R2(config-line)#exec-timeout 0 0
R2(config-line)#logging synchronous
R2(config-line)#exit
R2(config)#interface g0/0/0
R2(config-if)#ip address 172.16.12.2 255.255.255.252
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#router eigrp 123
R2(config-router)#eigrp router-id 0.0.02
R2(config-router)#network 172.16.12.0 0.0.0.3
R2(config-router)#exit
R2(config)#line vty 0 4
R2(config-line)#login local
R2(config-line)#transport input telnet ssh
R2(config-line)#exit
R2(config)#crypto key generate rsa modulus 1024
R2(config)#end
R2# copy running-config startup-config
Trên A1:
A1(config)#hostname A1
A1(config)#no ip domain lookup
A1(config)#username admin privilege 15 algorithm-type scrypt secret cisco123
A1(config)#ip domain name CCNPv8.CoPP.Lab
A1(config)#banner motd # A1, Control Plane Policing #
A1(config)#spanning-tree mode rapid-pvst
A1(config)#line con 0
A1(config-line)#exec-timeout 0 0
A1(config-line)#logging synchronous
A1(config-line)#exit
A1(config)#line vty 0 15
A1(config-line)#login local
A1(config-line)#transport input telnet
A1(config-line)#exit
A1(config)#interface f0/1
A1(config-if)#switchport mode access
A1(config-if)#no shutdown
A1(config-if)#exit
A1(config)#interface vlan 1
A1(config-if)#ip add 10.10.1.4 255.255.255.0
A1(config-if)#no shutdown
A1(config-if)#exit
A1(config)#ip default-gateway 10.10.1.1
A1(config)#crypto key generate rsa modulus 1024
A1(config)#end
A1# copy running-config startup-config
2. Xác minh các kết nối ban đầu:
Kiểm tra kết nối mạng và các dịch vụ trước khi áp dụng bất kỳ chính sách nào. Điều này đảm bảo rằng mạng hoạt động đầy đủ và việc mất kết nối hoặc chức năng là do chính sách được áp dụng chứ không phải là do sự cố mạng tồn tại từ trước.
Khi kiểm tra kết nối TCP, một số dịch vụ sẽ nhắc nhập tên người dùng / mật khẩu. Tên người dùng được cấu hình là admin và mật khẩu là cisco123.
Từ A1, kiểm tra kết nối telnet đến R1 và R2.
Từ A1, kiểm tra kết nối SSH đến R1 và R2.
3. Triển khai chính sách CoPP trên R1.
Cấu hình ACL để xác định các luồng lưu lượng. Sau đó, sử dụng các ACL trong class maps để phân loại lưu lượng cho CoPP. Tiếp theo, liên kết các class maps đến policy map trong CoPP. Policy map này sẽ áp dụng các chính sách và hành động cần thực thi cho mỗi class map.Cuối cùng, áp dụng policy map vào control plane.
3.1. Cấu hình ACL dạng named để xác định luồng lưu lượng.
Hiểu được những gì cần thiết để phân loại lưu lượng có thể đạt được từ phân tích network protocol. Có thể sử dụng Cisco NetFlow và Embedded Packet Capture (EPC) để phân loại lưu lượng mạng.
Sau khi lưu lượng đã được xác định, ta có thể xây dựng ACL phù hợp với lưu lượng đó. Định nghĩa về các ACL này là một trong những bước quan trọng nhất trong quy tình CoPP. Mức độ chi tiết thích hợp trong việc phân loại các giao thức này trong các ACL cho phép bảo vệ control plane CPU.
- Sử dụng extended ACL dạng named TELNET để xác định lưu lượng telnet
R1(config)# ip access-list extended TELNET
R1(config-ext-nacl)# permit tcp any any eq 23
R1(config-ext-nacl)# exit
- Sử dụng extended ACL dạng named EIGRP để xác định tất cả lưu lượng EIGRP
R1(config)# ip access-list extended EIGRP
R1(config-ext-nacl)# permit eigrp any any
R1(config-ext-nacl)# exit
- Sử dụng extended ACL dạng named SSH để xác định tất cả các lưu lượng SSH
R1(config)# ip access-list extended SSH
R1(config-ext-nacl)# permit tcp any any eq 22
R1(config-ext-nacl)# exit
- Sử dụng extended ACL dạng named ICMP để xác định lưu lượng ICMP.
R1(config)# ip access-list extended ICMP
R1(config-ext-nacl)# permit icmp any any
R1(config-ext-nacl)# exit
Lưu ý: Các gói tin nào không khớp với bất kỳ câu lệnh permit nào sẽ được gửi đến control plane CPU trên R1.
3.2. Cấu hình class map cho CoPP trên R1.
Class map được sử dụng để phân loại lưu lượng cho CoPP. Các ACL được định nghĩa trước đó để chỉ định các gói tin IP nào thuộc về lớp nào. Việc ánh xạ các ACL vào class map hoàn thành quá trình phân loại lưu lượng. Class map hỗ trợ nhiều tiêu chí đối sánh; tuy nhiên, trong cấu hình này, tiêu chí đối sánh đơn sẽ đáp ứng chức năng cơ bản.
- Cấu hình class map dạng named CM-TELNET để match các IP packets sẽ bị loại bỏ và không bao giờ đến được CPU control plane
R1(config)# class-map match-all CM-TELNET
R1(config-cmap)# match access-group name TELNET
R1(config-cmap)# exit
- Cấu hình class map dạng named CM-EIGRP để match các EIGRP packets. Điều này cho phép bạn áp dụng policy cho các gói tin định tuyến này. Điều tương tự là bạn có thể thực hiện đối với OSPF hoặc BGP nếu những giao thức định tuyến đó đang hoạt động.
R1(config)# class-map match-all CM-EIGRP
R1(config-cmap)# match access-group name EIGRP
R1(config-cmap)# exit
- Cấu hình class map dạng named CM-SSH để match IP packets trong ACL named SSH. Các gói tin IP này sẽ dành cho management plane.
R1(config)# class-map match-all CM-SSH
R1(config-cmap)# match access-group name SSH
R1(config-cmap)# exit
- Cấu hình class map dạng named CM-ICMP để match IP packets trong ACL named ICMP. Các gói tin IP này là các gói tin ICMP này giành cho Router
R1(config)# class-map match-all CM-ICMP
R1(config-cmap)# match access-group name ICMP
R1(config-cmap)# exit
3.3. Cấu hình policy map cho CoPP trên R1.
Policy map xác định “đường cơ sở” về chính sách dịch vụ cho từng loại lưu lượng. Đối với mỗi lớp lưu lượng đã được cấu hình trước đó, policy map sẽ thực thi các hành động và tốc độ cho comtrol plane.
Việc tìm kiếm tỷ lệ kiểm soát tốc độ tối ưu mà không ảnh hưởng đến sự ổn định của mạng đồi hỏi phải hiểu về các luồng lưu lượng truy cập theo thời gian. Để đảm bảo rằng CoPP không gây ra các vấn đề về tính ổn định, các hành động vi phạm phải được thiết lập để truyền cho tất cả các lớp quan trọng. Khi chính sách CoPP được xác nhận là có hiệu quả về mặt hoạt động, đó sẽ là thời điểm để chuyển đổi các hành động truyền “ Vượt quá hành động” thích hợp thành hành động bị loại bỏ.
- Cấu hình policy map dạng names PM-COPP trên R1.
R1(config)# policy-map PM-COPP
- Liên kết các lưu lượng class map đến policy map và cấu hình các chính sách và hành động sau:
- Đối với các gói tin Telnet, cấu hình chính sách ở 8kbps. Sau đó đặt hành động là drop và hành động vượt quá cũng là drop. Điều này sẽ làm giảm hiệu suất tất cả các gói tin telnet phù hợp với class map.
- Đối với các gói tin EIGRP, cấu hình chính sách ở 20 gói tin per second (pps). Sau đó đặt hành động transmit và vượt quá hành động là drop.
- Đối với các gói tin SSH, cấu hình chính sách ở 50 kbps, đặt hành động là transmit và vượt quá cũng là transmit. Điều này sẽ truyền tất cả các gói tin SSH phù hợp với class map.
- Đối với các gói tin ICMP, cấu hình chính sách ở 10 pps. Sau đó đặt hành động là transmit và vượt quá hành động là drop
R1(config-pmap)# class CM-TELNET
R1(config-pmap-c)# police 8000 conform-action drop exceed-action drop
R1(config-pmap-c-police)# exit
R1(config-pmap-c)# class CM-EIGRP
R1(config-pmap-c)# police rate 10 pps conform-action transmit exceed-action transmit
R1(config-pmap-c-police)# exit
R1(config-pmap-c)# class CM-SSH
R1(config-pmap-c)# police 50000 conform-action transmit exceed-action transmit
R1(config-pmap-c-police)# exit
R1(config-pmap-c)# class CM-ICMP
R1(config-pmap-c)# police rate 10 pps conform-action transmit exceed-action drop
R1(config-pmap-c-police)# exit
- Liên kết các class map mặc định với chính sách lưu lượng. Đặt lớp đến class-default và cấu hình chính sách ở 12 kbps. Sau đó set hành động là transmit và vượt quá thì hành động vẫn là transmit.
R1(config-pmap-c)# class class-default
R1(config-pmap-c)# police 12000 conform-action transmit exceed-action transmit
R1(config-pmap-c-police)# end
Lưu ý: Lớp class-default là lớp được tự động đặt ở cuối policy map. Theo bản chất của cơ chế đối sánh CoPP, một số lưu lượng nhất định sẽ luôn rơi và class-default. Điều này bao gồm lưu lượng truy cập ở lớp Layer 2 và lưu lượng truy cập không phải IP. Bởi vì các loại lưu lượng này yêu cầu để duy trì mạng control plane, thì class-default không bao giờ được kiểm soát với cả 2 hành động là conform và exceed được tthiết lập drop.
3.4. Áp dụng chính sách CoPP vào giao diện ảo control plane trên R1.
Policy map sẽ được áp dụng cho giao diện ản control plane theo chiều inbound sử dụng câu lệnh service-policy. Chính sách CoPP này chỉ ảnh hướng đến lưu lượng dành cho control plane của Router’s.
- Vào chế độ cấu hình control plane và áp dụng chính sách CoPP.
R1# conf t
R1(config)# control-plane
- Kế tiếp, đính kèm policy map vào giao diện control plane sử dụng câu lệnh nhập vào service-policy và chỉ định policy map dạng named PM-COPP trên giao diện ảo control plane
R1(config-cp)# service-policy input PM-COPP
R1(config-cp)# end
4. Xác minh chính sách CoPP trên R1.
4.1. Lệnh hiển thị access-list.
Lệnh hiển thị access-list xác định lưu lượng truy cập cụ thể cho từng ACL.
R1# show access-lists
Extended IP access list EIGRP
10 permit eigrp any any
Extended IP access list ICMP
10 permit icmp any any
Extended IP access list SSH
10 permit tcp any any eq 22
Extended IP access list TELNET
10 permit tcp any any eq telnet
4.2. Lệnh hiển thị class-map.
Chỉ các class map đã được cấu hình là sử dụng cho CoPP. Lưu ý câu lệnh match-any trong class map bên dưới class-default. Câu lệnh đối sánh được tự động thêm vào khi class map được đưa vào cấu hình policy map
R1# show class-map
Class Map match-all CM-TELNET (id 1)
Match access-group name TELNET
Class Map match-any class-default (id 0)
Match any
Class Map match-all CM-ICMP (id 5)
Match access-group name ICMP
Class Map match-all CM-EIGRP (id 2)
Match access-group name EIGRP
Class Map match-all CM-SSH (id 3)
Match access-group name SSH
4.3. Lệnh hiển thị policy-map.
Lưu ý rằng policy map hiển thị các tốc độ chính sách đã được cấu hình cho mỗi class map, bao gồm cả class-default.
R1#show policy-map
Policy Map PM-COPP
Class CM-TELNET
police cir 8000 bc 1500
conform-action drop
exceed-action drop
Class CM-EIGRP
police rate 10 pps
conform-action transmit
exceed-action transmit
Class CM-SSH
police cir 50000 bc 1562
conform-action transmit
exceed-action transmit
Class CM-ICMP
police rate 10 pps
conform-action transmit
exceed-action drop
Class class-default
police cir 12000 bc 1500
conform-action transmit
exceed-action transmit
4.4. Lệnh hiển thị policy-map control-plane.
Đây là câu lệnh hữu ích nhất để xác minh chức năng của CoPP. Lưu ý rằng các gói tin EIGRP tuần theo quy tắt chính sách. Bởi vì không có gói tin nào vượt quá tốc độ được xác định cho EIGRP class map, tất cả các gói tin được truyền đến control plane để xử lý. Lưu ý rằng số lượng gói tin của bạn sẽ thay đổi so với ví dụ bên dưới:
R1# show policy-map control-plane
Control Plane
Service-policy input: PM-COPP
Class-map: CM-TELNET (match-all)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name TELNET
police:
cir 8000 bps, bc 1500 bytes
conformed 0 packets, 0 bytes; actions:
drop
exceeded 0 packets, 0 bytes; actions:
drop
conformed 0000 bps, exceeded 0000 bps
Class-map: CM-EIGRP (match-all)
34 packets, 2516 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name EIGRP
police:
rate 10 pps, burst 2 packets
conformed 34 packets, 2516 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0 pps, exceeded 0 pps
Class-map: CM-SSH (match-all)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name SSH
police:
cir 50000 bps, bc 1562 bytes
conformed 0 packets, 0 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0000 bps, exceeded 0000 bps
Class-map: CM-ICMP (match-all)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name ICMP
police:
rate 10 pps, burst 2 packets
conformed 0 packets, 0 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
drop
conformed 0 pps, exceeded 0 pps
Class-map: class-default (match-any)
333 packets, 19788 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: any
police:
cir 12000 bps, bc 1500 bytes
conformed 333 packets, 19788 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0000 bps, exceeded 0000 bps
4.5. Từ R2, ping R1.
Từ R2, sử dụng lệnh ping 172.16.12.1 repeat 20 để giả lập đính kèm Dos trên control plane R1. Lưu ý tỷ lệ thành công là 70% và ping không thành công được hiển thị dấu chấm (.) trong các dấu chấm thang (thành công ). Từ kết quả ở trên, đểu này chỉ ra rằng R1 đang dropping mỗi gói tin thứ 3 của ICMP, dựa trên chính sách giới hạn tốc độ lưu lượng ICMP tới control plane trên R1.
R2# ping 172.16.12.1 repeat 20
Type escape sequence to abort.
Sending 20, 100-byte ICMP Echos to 172.16.12.1, timeout is 2 seconds:
!!.!!.!!.!!.!!.!!.!!
Success rate is 70 percent (14/20), round-trip min/avg/max = 1/1/2 ms
4.6. Từ R2, truy cập Telnet đến R1.
Từ R2 truy cập telnet 172.16.12.1. Lưu ý rằng tất cả lưu lượng telnet đến R1 không thành công. Điều này là do chính sách của mình đã loại bỏ các gói tin lưu lượng telnet trực tiếp đến control plane trên R1
R2# telnet 172.16.12.1
Trying 172.16.12.1 ...
% Connection timed out; remote host not responding
4.7. Từ R2, truy cập Telnet đến A1.
Từ R2, truy cập telnet 10.10.1.4. Khi hiển thị username / password enter admin và cisco123. Lưu ý rằng lưu lượng telnet từ R2 đi xuyên qua R1 đến A1 thì thành công
R2# telnet 10.10.1.4
Trying 10.10.1.4 ... Open
A1, Control Plane Policing
User Access Verification
Username: admin
Password:
A1# exit
[Connection to 10.10.1.4 closed by foreign host]
4.8. SSH từ R2 đến R1.
Từ R2 SSH vào trong R1 sử dụng dòng lệnh ssh –l admin 172.16.12.1. Khi hiển thị mật khẩu thì enter cisco123. Sau đó enter show running-config để phát ra các gói tin SSH.
R2# ssh -l admin 172.16.12.1
Password:
R1, Control Plane Policing
R1# show running-config
Building configuration...
(output omitted)
R1# exit
[Connection to 172.16.12.1 closed by foreign host]
4.9. Kiểm tra chính sách CoPP trên R1.
Trên R1, Lặp lại câu lệnh show policy-map control-plane để kiểm tra chính sách của ICMP, telnet, SSH, EIGRP và những gói tin khác.
Lưu ý: Số lượng gói tin của bạn sẽ thay đổi theo kết quả sau:
R1# show policy-map control-plane
Control Plane
Service-policy input: PM-COPP
Class-map: CM-TELNET (match-all)
4 packets, 232 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name TELNET
police:
cir 8000 bps, bc 1500 bytes
conformed 4 packets, 232 bytes; actions:
drop
exceeded 0 packets, 0 bytes; actions:
drop
conformed 0000 bps, exceeded 0000 bps
Class-map: CM-EIGRP (match-all)
487 packets, 36038 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name EIGRP
police:
rate 10 pps, burst 2 packets
conformed 487 packets, 36038 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0 pps, exceeded 0 pps
Class-map: CM-SSH (match-all)
68 packets, 5776 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name SSH
police:
cir 50000 bps, bc 1562 bytes
conformed 68 packets, 5776 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0000 bps, exceeded 0000 bps
Class-map: CM-ICMP (match-all)
10 packets, 1000 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group name ICMP
police:
rate 10 pps, burst 2 packets
conformed 7 packets, 700 bytes; actions:
transmit
exceeded 3 packets, 300 bytes; actions:
drop
conformed 0 pps, exceeded 0 pps
Class-map: class-default (match-any)
4701 packets, 281816 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: any
police:
cir 12000 bps, bc 1500 bytes
conformed 4701 packets, 281816 bytes; actions:
transmit
exceeded 0 packets, 0 bytes; actions:
transmit
conformed 0000 bps, exceeded 0000 bps
Từ đầu ra ở trên, lưu ý những điều sau đây:
- Lưu ý rằng tất cả bốn gói tin Telnet đã bị loại bỏ.
- Tất cả các gói tin EIGRP tuần theo quy tắt chính sách và được chuyển tiếp đến control plane để xử lý.
- Tất cả các gói tin SSH cũng tuần theo quy tắt chính sách và chuyển tiếp đến control plane để xử lý.
- Các gói tin Ping được giới hạn ở tốc độ 10 pps. Điều này cho phép “Bùng nổ” hay gói tin, với mỗi gói thứ 3 sẽ bị loại bỏ.
Lưu ý trong đầu ra của lệnh hiển thị policy-map control-plane rằng có một số lượng đáng kể các gói tin đang được so khớp với lớp class-default. Một giải pháp để giúp xác định nguồn gốc của các gói tin này là cấu hình “CATCH-ALL” class map. Class map mới này sẽ thu thập mọi lưu lượng truy cập còn lại không khớp với class map trước đó và được chuyển tới control plane của thiết bị. Lớp “CATCH-ALL” này sẽ ngăn các gói tin kết thúc trong lớp class-default. Ví dụ, ACL được gọi là CATCH-ALL có thể được định nghĩa như sau:
R1(config)# ip access-list extended CATCH-ALL
R1(config-ext-nacl)# permit icmp any any
R1(config-ext-nacl)# permit udp any any
R1(config-ext-nacl)# permit tcp any any
R1(config-ext-nacl)# permit ip any any
R1(config-ext-nacl)# exit
R1(config)#class-map match-all CM-CATCH-ALL
R1(config-cmap)#match access-group name CATCH-ALL
R1(config-cmap)#exit
R1(config)#policy-map PM-COPP
R1(config-pmap)#class CM-CATCH-ALL
R1(config-pmap-c)#police 50000 conform-action transmit exceed-action drop
ACL này có thể được so khớp class map được gọi là CM-CATCH-ALL có thể được kiểm soát đến 50 kbps với hành confirm là transmit và hành động vượt quá là drop.
Triển khai class map mới trong policy map của bạn và, lập lại các xác minh trong phần 4, sau đó dùng lện show policy-map control-plane để xem nơi lưu lượng truy cập mặc định này được phân loại.