1、访问列表管理IP流量,172.16.0.0,172.17.0.0,Internet,管理网络中逐步增长的 IP 数据 当数据通过路由器时进行过滤,为什么要使用访问列表,访问列表的应用,允许、拒绝数据包通过路由器 允许、拒绝Telnet会话的建立 没有设置访问列表时,所有的数据包都会在网络上传输,虚拟会话 (IP),端口上的数据传输,访问列表的其它应用,路由表过滤,Routing Table,Queue List,优先级判断,按需拨号,基于数据包检测的特殊数据通讯应用,标准 检查源地址 通常允许、拒绝的是完整的协议 扩展 检查源地址和目的地址 通常允许、拒绝的是某个特定的协议 进方向和出方向,O
2、utgoing Packet,E0,S0,Incoming Packet,Access List Processes,Permit?,Protocol,什么是访问列表,编号范围,IP,1-99 100-199 Name (Cisco IOS 11.2 and later),800-899 900-999 1000-1099 Name (Cisco IOS 11.2. F and later),Standard Extended SAP filters Named,Standard Extended Named,访问列表类型,IPX,如何识别访问列表号,标准访问列表 (1 to 99) 检查 I
3、P 数据包的源地址 扩展访问列表 (100 to 199) 检查源地址和目的地址、具体的 TCP/IP 协议和目的端口 其它访问列表编号范围表示不同协议的访问列表,Source Address,Segment (for example, TCP header),Data,Packet (IP header),Frame Header (for example, HDLC),Deny,Permit,Use accesslist statements 1-99,用标准访问列表测试数据,Destination Address,Source Address,Protocol,Port Number,S
4、egment (for example, TCP header),Data,Packet (IP header),Frame Header (for example, HDLC),Use accesslist statements 1-99 or 100-199 to test the packet,Deny,Permit,An Example from a TCP/IP Packet,用扩展访问列表测试数据,Inbound Interface Packets,N,Y,Packet Discard Bucket,Choose Interface,N,Access List ?,Routing
5、Table Entry ?,Y,Outbound Interfaces,Packet,S0,出端口方向上的访问列表,Outbound Interfaces,Packet,N,Y,Packet Discard Bucket,Choose Interface,Routing Table Entry ?,N,Packet,Test Access List Statements,Permit ?,Y,出端口方向上的访问列表,Access List ?,Y,S0,E0,Inbound Interface Packets,Notify Sender,出端口方向上的访问列表,If no access lis
6、t statement matches then discard the packet,N,Y,Packet Discard Bucket,Choose Interface,Routing Table Entry ?,N,Y,Test Access List Statements,Permit ?,Y,Access List ?,Discard Packet,N,Outbound Interfaces,Packet,Packet,S0,E0,Inbound Interface Packets,访问列表的测试:允许和拒绝,Packets to interfaces in the access g
7、roup,Packet Discard Bucket,Y,Interface(s),Destination,Deny,Deny,Y,Match First Test ?,Permit,访问列表的测试:允许和拒绝,Packets to Interface(s) in the Access Group,Packet Discard Bucket,Y,Interface(s),Destination,Deny,Deny,Y,Match First Test ?,Permit,N,Deny,Permit,Match Next Test(s) ?,Y,Y,访问列表的测试:允许和拒绝,Packets to
8、 Interface(s) in the Access Group,Packet Discard Bucket,Y,Interface(s),Destination,Deny,Deny,Y,Match First Test ?,Permit,N,Deny,Permit,Match Next Test(s) ?,Deny,Match Last Test ?,Y,Y,N,Y,Y,Permit,访问列表的测试:允许和拒绝,Packets to Interface(s) in the Access Group,Packet Discard Bucket,Y,Interface(s),Destinati
9、on,Deny,Y,Match First Test ?,Permit,N,Deny,Permit,Match Next Test(s) ?,Deny,Match Last Test ?,Y,Y,N,Y,Y,Permit,Implicit Deny,If no match deny all,Deny,N,访问列表配置指南,访问列表的编号指明了使用何种协议的访问列表 每个端口、每个方向、每条协议只能对应于一条访问列表 访问列表的内容决定了数据的控制顺序 具有严格限制条件的语句应放在访问列表所有语句的最上面 在访问列表的最后有一条隐含声明:deny any每一条正确的访问列表都至少应该有一条允许语
10、句 先创建访问列表,然后应用到端口上 访问列表不能过滤由路由器自己产生的数据,访问列表设置命令,Step 1: 设置访问列表测试语句的参数,access-list access-list-number permit | deny test conditions ,Router(config)#,Step 1:设置访问列表测试语句的参数,Router(config)#,Step 2: 在端口上应用访问列表, protocol access-group access-list-number in | out,Router(config-if)#,访问列表设置命令,IP 访问列表的标号为 1-99
11、和 100-199,access-list access-list-number permit | deny test conditions ,0 表示检查与之对应的地址位的值 1表示忽略与之对应的地址位的值,do not check address (ignore bits in octet),=,0,0,0,0,0,0,0,0,Octet bit position and address value for bit,ignore last 6 address bits,check all address bits (match all),ignore last 4 address bits
12、,check last 2 address bits,Examples,通配符:如何检查相应的地址位,例如 172.30.16.29 0.0.0.0 检查所有的地址位 可以简写为 host (host 172.30.16.29),Test conditions: Check all the address bits (match all),172.30.16.29,0.0.0.0,(checks all bits),An IP host address, for example:,Wildcard mask:,通配符掩码指明特定的主机,所有主机: 0.0.0.0 255.255.255.255
13、 可以用 any 简写,Test conditions: Ignore all the address bits (match any),0.0.0.0,255.255.255.255,(ignore all),Any IP address,Wildcard mask:,通配符掩码指明所有主机,Check for IP subnets 172.30.16.0/24 to 172.30.31.0/24,Network .host 172.30.16.0,Wildcard mask: 0 0 0 0 1 1 1 10 0 0 1 0 0 0 0 = 160 0 0 1 0 0 0 1 = 170
14、0 0 1 0 0 1 0 = 18: :0 0 0 1 1 1 1 1 = 31,Address and wildcard mask: 172.30.16.0 0.0.15.255,通配符掩码和IP子网的 对应,标准IP访问列表的配置,access-list access-list-number permit|deny source mask,Router(config)#,为访问列表设置参数 IP 标准访问列表编号 1 到 99 缺省的通配符掩码 = 0.0.0.0 “no access-list access-list-number” 命令删除访问列表,access-list acces
15、s-list-number permit|deny source mask,Router(config)#,在端口上应用访问列表 指明是进方向还是出方向 缺省 = 出方向 “no ip access-group access-list-number” 命令在端口上删除访问列表,Router(config-if)#,ip access-group access-list- number in | out ,为访问列表设置参数 IP 标准访问列表编号 1 到 99 缺省的通配符掩码 = 0.0.0.0 “no access-list access-list-number” 命令删除访问列表,标准I
16、P访问列表的配置,172.16.3.0,172.16.4.0,172.16.4.13,E0,S0,E1,Non- 172.16.0.0,标准访问列表举例 1,access-list 1 permit 172.16.0.0 0.0.255.255 (implicit deny all - not visible in the list) (access-list 1 deny 0.0.0.0 255.255.255.255),Permit my network only,access-list 1 permit 172.16.0.0 0.0.255.255 (implicit deny all
17、- not visible in the list) (access-list 1 deny 0.0.0.0 255.255.255.255)interface ethernet 0 ip access-group 1 out interface ethernet 1 ip access-group 1 out,172.16.3.0,172.16.4.0,172.16.4.13,E0,S0,E1,Non- 172.16.0.0,标准访问列表举例 1,Deny a specific host,标准访问列表举例 2,172.16.3.0,172.16.4.0,172.16.4.13,E0,S0,E
18、1,Non- 172.16.0.0,access-list 1 deny 172.16.4.13 0.0.0.0,标准访问列表举例 2,172.16.3.0,172.16.4.0,172.16.4.13,E0,S0,E1,Non- 172.16.0.0,Deny a specific host,access-list 1 deny 172.16.4.13 0.0.0.0 access-list 1 permit 0.0.0.0 255.255.255.255 (implicit deny all) (access-list 1 deny 0.0.0.0 255.255.255.255),acc
19、ess-list 1 deny 172.16.4.13 0.0.0.0 access-list 1 permit 0.0.0.0 255.255.255.255 (implicit deny all) (access-list 1 deny 0.0.0.0 255.255.255.255)interface ethernet 0 ip access-group 1 out,标准访问列表举例 2,172.16.3.0,172.16.4.0,172.16.4.13,E0,S0,E1,Non- 172.16.0.0,Deny a specific host,Deny a specific subne
20、t,标准访问列表举例 3,172.16.3.0,172.16.4.0,172.16.4.13,E0,S0,E1,Non- 172.16.0.0,access-list 1 deny 172.16.4.0 0.0.0.255 access-list 1 permit any (implicit deny all) (access-list 1 deny 0.0.0.0 255.255.255.255),access-list 1 deny 172.16.4.0 0.0.0.255 access-list 1 permit any (implicit deny all) (access-list
21、1 deny 0.0.0.0 255.255.255.255)interface ethernet 0 ip access-group 1 out,标准访问列表举例 3,172.16.3.0,172.16.4.0,172.16.4.13,E0,S0,E1,Non- 172.16.0.0,Deny a specific subnet,在路由器上过滤vty,五个虚拟通道 (0 到 4) 路由器的vty端口可以过滤数据 在路由器上执行vty访问的控制,0,1,2,3,4,Virtual ports (vty 0 through 4),Physical port e0 (Telnet),Console
22、 port (direct connect),console,e0,如何控制vty访问,0,1,2,3,4,Virtual ports (vty 0 through 4),Physical port (e0) (Telnet),使用标准访问列表语句 用 access-class 命令应用访问列表 在所有vty通道上设置相同的限制条件,Router#,e0,虚拟通道的配置,指明vty通道的范围,在访问列表里指明方向,access-class access-list-number in|out,line vty#vty# | vty-range,Router(config)#,Router(con
23、fig-line)#,虚拟通道访问举例,只允许网络192.89.55.0 内的主机连接路由器的 vty 通道,access-list 12 permit 192.89.55.0 0.0.0.255 ! line vty 0 4access-class 12 in,Controlling Inbound Access,标准访问列表和扩展访问列表 比较,标准,扩展,基于源地址,基于源地址和目标地址,允许和拒绝完整的 TCP/IP协议,指定TCP/IP的特定协议 和端口号,编号范围 100 到 199.,编号范围 1 到 99,扩展 IP 访问列表的配置,Router(config)#,设置访问列表
24、的参数,access-list access-list-number permit | deny protocol source source-wildcard operator port destination destination-wildcard operator port established log,Router(config-if)# ip access-group access-list-number in | out ,扩展 IP 访问列表的配置,在端口上应用访问列表,设置访问列表的参数,Router(config)# access-list access-list-num
25、ber permit | deny protocol source source-wildcard operator port destination destination-wildcard operator port established log,拒绝子网172.16.4.0 的数据使用路由器e0口ftp到子网172.16.3.0 允许其它数据,172.16.3.0,172.16.4.0,172.16.4.13,E0,S0,E1,Non- 172.16.0.0,扩展访问列表应用举例 1,access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.1
26、6.3.0 0.0.0.255 eq 21 access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 20,拒绝子网172.16.4.0 的数据使用路由器e0口ftp到子网172.16.3.0 允许其它数据,扩展访问列表应用举例 1,172.16.3.0,172.16.4.0,172.16.4.13,E0,S0,E1,Non- 172.16.0.0,access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21 access-lis
27、t 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 20 access-list 101 permit ip any any (implicit deny all ) (access-list 101 deny ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255),access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21 access-list 101 deny tcp 172.16.4.0
28、 0.0.0.255 172.16.3.0 0.0.0.255 eq 20 access-list 101 permit ip any any (implicit deny all) (access-list 101 deny ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255)interface ethernet 0 ip access-group 101 out,拒绝子网172.16.4.0 的数据使用路由器e0口ftp到子网172.16.3.0 允许其它数据,扩展访问列表应用举例 1,172.16.3.0,172.16.4.0,172.1
29、6.4.13,E0,S0,E1,Non- 172.16.0.0,拒绝子网 172.16.4.0 内的主机使用路由器的 E0 端口建立Telnet会话 允许其它数据,扩展访问列表应用举例 2,172.16.3.0,172.16.4.0,172.16.4.13,E0,S0,E1,Non- 172.16.0.0,access-list 101 deny tcp 172.16.4.0 0.0.0.255 any eq 23,拒绝子网 172.16.4.0 内的主机使用路由器的 E0 端口建立Telnet会话 允许其它数据,扩展访问列表应用举例 2,172.16.3.0,172.16.4.0,172.1
30、6.4.13,E0,S0,E1,Non- 172.16.0.0,access-list 101 deny tcp 172.16.4.0 0.0.0.255 any eq 23 access-list 101 permit ip any any (implicit deny all),access-list 101 deny tcp 172.16.4.0 0.0.0.255 any eq 23 access-list 101 permit ip any any (implicit deny all)interface ethernet 0 ip access-group 101 out,拒绝子网
31、 172.16.4.0 内的主机使用路由器的 E0 端口建立Telnet会话 允许其它数据,扩展访问列表应用举例 2,172.16.3.0,172.16.4.0,172.16.4.13,E0,S0,E1,Non- 172.16.0.0,将扩展访问列表置于离源设备较近的位置 将标准访问列表置于离目的设备较近的位置,E0,E0,E1,S0,To0,S1,S0,S1,E0,E0,B,A,C,访问列表的放置原则,推荐:,D,wg_ro_a#show ip int e0 Ethernet0 is up, line protocol is upInternet address is 10.1.1.11/2
32、4Broadcast address is 255.255.255.255Address determined by setup commandMTU is 1500 bytesHelper address is not setDirected broadcast forwarding is disabledOutgoing access list is not setInbound access list is 1Proxy ARP is enabledSecurity level is defaultSplit horizon is enabledICMP redirects are al
33、ways sentICMP unreachables are always sentICMP mask replies are never sentIP fast switching is enabledIP fast switching on the same interface is disabledIP Feature Fast switching turbo vectorIP multicast fast switching is enabledIP multicast distributed fast switching is disabled,查看访问列表,查看访问列表的语句,wg
34、_ro_a#show access-lists Standard IP access list 1permit 10.2.2.1permit 10.3.3.1permit 10.4.4.1permit 10.5.5.1 Extended IP access list 101permit tcp host 10.22.22.1 any eq telnetpermit tcp host 10.33.33.1 any eq ftppermit tcp host 10.44.44.1 any eq ftp-data,wg_ro_a#show access-lists access-list numbe
35、r,端口号,TCP,端口号,F T P,传输层,T E L N E T,D N S,S N M P,T F T P,S M T P,UDP,应用层,21,23,25,53,69,161,R I P,520,使用名称访问列表,Router(config)#,ip access-list standard | extended name,适用于IOS版本号为11.2以后,所使用的名称必须一致,使用名称访问列表,Router(config)#,ip access-list standard | extended name, permit | deny ip access list test cond
36、itions permit | deny ip access list test conditions no permit | deny ip access list test conditions ,Router(config std- | ext-nacl)#,适用于IOS版本号为11.2以后,所使用的名称必须一致,允许和拒绝语句不需要访问列表编号 “no” 命令删除访问列表,使用名称访问列表,适用于IOS版本号为11.2以后,所使用的名称必须一致,允许和拒绝语句不需要访问列表编号 “no” 命令删除访问列表,在端口上应用访问列表,访问列表配置准则,访问列表中限制语句的位置是至关重要的 将
37、限制条件严格的语句放在访问列表的最上面 使用 no access-list number 命令删除完整的访问列表 例外: 名称访问列表可以删除单独的语句 隐含声明 deny all 在设置的访问列表中要有一句 permit any,应用层概述,* 路由器使用,应用层,传输层,Internet层,数据链路层,物理层,文件传输- TFTP *- FTP *- NFS E-Mail- SMTP 远程登陆- Telnet *- rlogin * 网络管理- SNMP * 名称管理- DNS*,传输层概述,Transmission Control Protocol (TCP)User Datagram
38、Protocol (UDP),应用层,传输层,Internet层,数据链路层,物理层,面向连接非面向连接,TCP 数据格式,Source port (16),Destination port (16),Sequence number (32),Header length (4),Acknowledgement number (32),Reserved (6),Code bits (6),Window (16),Checksum (16),Urgent (16),Options (0 or 32 if any),Data (varies),20 Bytes,Bit 0,Bit 15,Bit 16
39、,Bit 31,端口号,TCP,端口号,F T P,传输层,T E L N E T,D N S,S N M P,T F T P,S M T P,UDP,应用层,21,23,25,53,69,161,R I P,520,TCP 端口号,源端口,目标端口,Host A,1028,23,SP,DP,Host Z,Telnet Z,目标端口 = 23.,发送 SYN (seq=100 ctl=SYN),接收 SYN,Host A,Host B,TCP 三次握手,发送 SYN (seq=100 ctl=SYN),接收 SYN,发送 SYN, ACK (seq=300 ack=101 ctl=syn,ac
40、k),Host A,Host B,接收 SYN,TCP 三次握手,发送 SYN (seq=100 ctl=SYN),接收 SYN,发送 SYN, ACK (seq=300 ack=101 ctl=syn,ack),建立会话 (seq=101 ack=301 ctl=ack),Host A,Host B,接收 SYN,TCP 三次握手,TCP 简单确认,滑动窗口 = 1,发送方,接收方,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,TCP 简单确认,滑动窗口 =
41、1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,接收 ACK 3,发送 ACK 3,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,接收 ACK 3,发送 ACK 3,发送 3,接收 3,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,接收 ACK 3,发送 ACK 3,发送 3,
42、接收 3,接收 ACK 4,发送 ACK 4,TCP 简单确认,TCP 顺序号和确认号,源端口,目标端口,顺序号 #,确认号 #,Source,Dest.,Seq.,Ack.,1028,23,10,1,我发送 #10.,TCP 顺序号和确认号,我已收到 #10, 现在我需要 #11.,源端口,目标端口,顺序号 #,确认号 #,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq.,1,Ack.,我发送 #10.,TCP 顺序号和确认号,源端口,目标端口,顺序号 #,确认号 #,1028,23,Source,Dest.,1
43、1,Seq.,2,Ack.,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq.,1,Ack.,我已收到 #10, 现在我需要 #11.,我发送 #10.,TCP 顺序号和确认号,源端口,目标端口,顺序号 #,确认号 #,1028,23,Source,Dest.,11,Seq.,2,Ack.,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq.,1,Ack.,1028,23,Source,Dest.,12,Seq.,2,Ack.,我已收到 #1
44、1, 现在我需要 #12.,我发送 #11,TCP 窗 口,发送方,接收方,TCP 窗 口,Window size = 3 Send 2,发送方,接收方,Window size = 3 Send 1,Window size = 3 Send 3,Window size = 3 Send 2,TCP 窗 口,发送方,Window size = 3 Send 1,Window size = 3 Send 3,ACK 3 Window size = 2,数据 3 被丢弃,接收方,Window size = 3 Send 2,TCP 窗 口,发送方,Window size = 3 Send 1,Win
45、dow size = 3 Send 3,ACK 3 Window size = 2,数据 3 被丢弃,Window size = 3 Send 4,Window size = 3 Send 3,接收方,Window size = 3 Send 2,TCP 窗 口,发送方,Window size = 3 Send 1,Window size = 3 Send 3,ACK 3 Window size = 2,数据 3 被丢弃,Window size = 3 Send 4,Window size = 3 Send 3,ACK 5 Window size = 2,接收方,没有顺序号和确认号,UDP 数
46、据格式,Source port (16),Destination port (16),Length (16),Data (if any),1,Bit 0,Bit 15,Bit 16,Bit 31,Checksum (16),8 Bytes,Internet 层概述,OSI 网络层对应的是TCP/IP的internet层,Internet Protocol (IP)Internet Control Message Protocol (ICMP)Address Resolution Protocol (ARP)Reverse Address Resolution Protocol (RARP),应
47、用层,传输层,Internet层,数据链路层,物理层,IP 数据,Version (4),Destination IP Address (32),Options (0 or 32 if any),Data (varies if any),1,Bit 0,Bit 15,Bit 16,Bit 31,Header Length (4),Priority & Type of Service (8),Total Length (16),Identification (16),Flags (3),Fragment offset (13),Time to live (8),Protocol (8),Header checksum (16),Source IP Address (32),20 Bytes,决定上层协议,协议域,Transport Layer,