访问手机版  

招聘|合作 登陆|注册

网络工程师培训

当前位置:网络工程师 > 国际认证 > 思科培训 > CCNA > 热点关注 > ccna学习指南

CCNA教程详解第六课

时间:2018-02-01 12:00:32

 

  一、访问控制列表(ACL)Access List

  1.作用:控制IP流量

  2.使用ACL的原因:(1)管理网络中逐步增长的IP数据

  (2)当数据通过路由器时进行过滤

  3.ACL的应用:(1)允许或拒绝数据包通过Router

  (2)允许或拒绝Telnet会话的建立

  (3)没有设置ACL时,所有数据包都会在网络上传输

  4.分类:

  (1)标准ACL:1.检查源地址

  2.通常允许(permit)或拒绝(deny)的是完整的协议

  ACL编号:1——99 1300——1999

  (2)扩展ACL:1.检查源地址和目标地址

  2.通常允许或拒绝的是某个特定的协议,如Telnet

  ACL编号:100——199 2000——2699

  (3)命名ACL

  5.ACL的配置指南:(1)ACL的编号指明了使用何种协议的访问列表

  (2)ACL的最后有一条隐含声明:deny any—每一条正确的访问列表都至少应该有一条允许语句

  (3)每个端口,每个方向,每条协议只能对应一条访问列表

  (4)先创建访问列表,然后应用到端口上

  (5)访问列表不能过滤路由器自身产生的数据

  (6)具有严格限制语句应放在访问列表所有语句的最上面

  6.ACL配置原则:编写标准ACL是一般要靠近目的;而编写扩展ACL是一般要靠近源。

  7.实验配置:

  1.标准ACL的设置

  (1)设置访问列表测试语句的参数

  Router(config)#access-list access-list-number {permit|deny}{test-conditions}

  access-list-numbe:表示ACL的编号

  permit:允许 deny:拒绝

  test conditions:条件

  (2)在端口上应用ACL

  Router(config)#int s1/0 !打开某个端口

  Router(config-if)#access-list-number{permit|deny{test-conditions}

  应用:Protocol access-group

  Access-list-number{in|out}

  2.扩展ACL的设置

  (1)设置访问列表测试语句的参数

  Router(config)#access-list access-list-number{permit-deny} protocol

  source-address source-widcard [operator port] destination-add

  destination-widcard [operator port] [established] [log]

  其中:operator可以是lt(小于),gt(大于),eq(等于),neq(不等于)port为协议端口号

  established只适用于入站TCP访问表,它允许使用已建立的连接的TCP分组通过(如TCK

  位为1)

  3.使用访问类条目控制对vty的访问

  (1)技术原理:标准和扩展访问表禁止分组通过路由器,但不能禁止当前路由器发送

  的分组通过,出站Telnet扩展访问表不能组织当前路由器发起Telnet会话。

  配置命令:router(config)#line vty {#/vty-range} !命令line将路由器切换到线路配置模式

  router(config-line)#access-class access-list-number {in|out}

  !命令access-class将访问表应用于一条或一组终端线路

  其中:in:禁止访问表中指定地址以Telnet方式访问路由器

  out:禁止路由器的vty端口向访问表指定的地址发起Telnet连接,注意,在这种情

  况下,标准访问表中指定的源地址用作目标地址。

  (2)配置实例:

  【实验名称】允许特定网络中的设备建立到路由器的Telnet会话

  【实验步骤】router(config)#access-list 2 permit 192.168.1.0 0.0.0.255

  router(config)#line vty 0 4

  router(config-line)#access-class 2 in

  二、实验:

  实验一 【实验名称】利用标准ACL访问控制列表,控制IP流量

  【实验设备】三台CISCO 7200路由器,其中一台作为Host(主机)利用

  【实验目标】(1)在没有设置ACL时,主机IP可以Ping通R2

  (2)当在R1的in(入端口)端口或out(出端口)端口设置ACL

  后,让主机IP无法Ping通R2即无法给R2发送IP流量,从而阻止了主机发送的IP流量。在网络中的目的就是阻止某些IP发送来的流量。比如阻止某些恶意IP的攻击。

  【实验拓扑】

       
     
 
   

  【实验步骤】(一)给Host,R1,R2各个端口设置IP

  1.Host上

  Router(config)#no ip routing !关闭路由功能,即把Router设置成主机

  Router(config)#hostname host !重命名为host

  host(config)#ip default-gateway 199.99.1.1 !设置主机的默认网关

  host(config)#int s1/0

  host(config-if)#ip add 199.99.1.2 255.255.255.0

  host(config-if)#no shut

  2.R1

  rack01(config)#int s1/0

  rack01(config-if)#ip add 199.99.1.1 255.255.255.0

  rack01(config-if)#no shut

  rack01(config)#int s1/1

  rack01(config-if)#ip add 192.168.1.1 255.255.255.0

  rack01(config-if)#no shut

  3.R2

  rack02(config)#int s1/1

  rack02(config-if)#ip add 192.168.1.2 255.255.255.0

  rack02(config-if)#no shut

  注:到这里为止各链路连接成功。

  (二)在R1和R2上设置路由功能,在这里设置EIGRP协议.

  设置路由目的:让Host、R1、R2之间可以互相Ping通

  1.R1

  rack01(config)#router eigrp 100

  rack01(config-router)#network 199.1.1.0 !宣告网段

  rack01(config-router)#network 192.168.1.0

  2.R2

  rack02(config)#router eigrp 100

  rack02(config-router)#network 192.168.1.0

  注:到这里为止Host、R1、R2之间可以互相Ping通。

  host#ping 192.168.1.2

  Type escape sequence to abort.

  Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:

  !!!!!

  Success rate is 100 percent (5/5), round-trip min/avg/max=96/148/188 ms

  (三)在R1上设置ACL

  目的:让199.99.1.1 Ping不通192.168.1.2

  rack01(config)#access-list 10 deny host 199.99.1.2

  !在R1上设置ACL 其中10指ACL的编号 deny:拒绝 host+ip表示一个特定的IP地址

  上条命令还等于:rack01(config)#access-list 10 deny 199.99.1.1 0.0.0.0

  !0.0.0.0代表一台特定的主机

  rack01(config)#access-list 10 permit any

  !允许除199.99.1.1外的IP访问,如果不设置此条命令,则表示拒绝所有

  rack01(config)#int s1/1 !进入S1/1 端口

  rack01(config-if)#ip access-group 10 out !将ACL应用到R1的出端口上

  以上两条命令还等于以下两条命令:

  rack01(config)#int s1/0

  rack01(config-if)#ip access-group 10 in !将ACL应用到R1的入端口上

  测试结果:在Host Ping192.168.1.2

  host#ping 192.168.1.2

  Type escape sequence to abort.

  Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:

  U.U.U 表示线路不通

  (四)现在给Host设置第二个IP:199.99.1.3 用此IP是可以Ping通192.168.1.2

  host(config)#int s1/0

  host(config-if)#ip add 199.99.1.3 255.255.255.0 secondary

  !为S1/0端口设置第二个IP地址,其中secondary表示第二个

  host(config-if)#no shut

  测试结果:用扩展Ping来Ping192.168.1.2

  host#ping 扩展Ping

  Protocol [ip]:

  Target IP address: 192.168.1.2 目标地址

  Repeat count [5]:

  Datagram size [100]:

  Timeout in seconds [2]:

  Extended commands [n]: y

  Source address or interface: 199.99.1.3 源地址

  Type of service [0]:

  Set DF bit in IP header? [no]:

  Validate reply data? [no]:

  Data pattern [0xABCD]:

  Loose, Strict, Record, Timestamp, Verbose[none]:

  Sweep range of sizes [n]:

  Type escape sequence to abort.

  Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:

  Packet sent with a source address of 199.99.1.3

  !!!!! 此时表示199.99.1.3可以Ping通192.168.1.2

  Success rate is 100 percent (5/5), round-trip min/avg/max=120/150/176 ms

  (五)在R1上关闭ACL,此时199.99.1.1依然可以Ping通192.168.1.2

  rack01(config)#no access-list 10

  !关闭ACL,但是关闭后会将所有设置ACL设置全部擦除,不能NO掉单个ACL设置

  实验二、【实验名称】利用扩展ACL访问控制列表,控制IP流量

  【实验设备】三台CISCO 7200路由器,其中一台作为Host(主机)利用

  【实验目标】设置ACL,Host可以Ping通R2,但不可以Telnet R2。

  【实验拓扑】

 
   

  【实验步骤】(一)给Host,R1,R2各个端口设置IP

  1.Host上

  Router(config)#no ip routing !关闭路由功能,即把Router设置成主机

  Router(config)#hostname host !重命名为host

  host(config)#ip default-gateway 199.99.1.1 !设置主机的默认网关

  host(config)#int s1/0

  host(config-if)#ip add 199.99.1.2 255.255.255.0

  host(config-if)#no shut

  2.R1

  rack01(config)#int s1/0

  rack01(config-if)#ip add 199.99.1.1 255.255.255.0

  rack01(config-if)#no shut

  rack01(config)#int s1/1

  rack01(config-if)#ip add 199.99.2.1 255.255.255.0

  rack01(config-if)#no shut

  3.R2

  rack02(config)#int s1/1

  rack02(config-if)#ip add 199.99.2.2 255.255.255.0

  rack02(config-if)#no shut

  注:到这里为止各链路连接成功。

  (二)在R1和R2上设置路由功能,在这里设置EIGRP协议.

  设置路由目的:让Host、R1、R2之间可以互相Ping通

  1.R1

  rack01(config)#router eigrp 100

  rack01(config-router)#network 199.1.1.0 !宣告网段

  rack01(config-router)#network 192.168.1.0

  2.R2

  rack02(config)#router eigrp 100

  rack02(config-router)#network 192.168.1.0

  注:到这里为止Host、R1、R2之间可以互相Ping通,而且Host可以Telnet R2

  测试结果:

  host#ping 199.99.2.2

  Type escape sequence to abort.

  Sending 5, 100-byte ICMP Echos to 199.99.2.1, timeout is 2 seconds:

  !!!!! 表示能够Ping通

  host#telnet 199.99.2.2

  Trying 199.99.2.2 ... Open

  User Access Verification

  Password:

  rack02>en

  Password:

  rack02# 表示能够Telnet到R2,已进入了R2的配置

  (三)在R1上设置扩展ACL,让Host可以Ping通R2但不能Telnet R2

  1.在R1上设置扩展ACL

  rack01(config)#access-list 110 permit icmp host 199.99.1.2 host 199.99.2.2

  !110表示扩展ACL的编号,host 199.99.1.2表示源IP,host 199.99.2.2表示目的IP

  rack01(config)#access-list 110 deny tcp host 199.99.1.2 host 199.99.2.2 eq 23

  !拒绝来自199.99.1.2的Telnet,其中tcp表示telnet是tcp协议,23是Telnet协议的端口号

  rack01(config)#access-list 110 permint ip any any

  2.应用到端口上

  rack01(config)#int s1/1

  rack01(config-if)#ip access-group 110 out

  测试结果:

  host#telnet 199.99.2.2

  Trying 199.99.2.2 ...

  % Destination unreachable; gateway or host down 表示目标链路不可达

  实验三、【实验名称】利用命名ACL访问控制列表,控制IP流量

  【实验设备】三台CISCO 7200路由器,其中一台作为Host(主机)利用

  【实验目标】设置ACL,Host可以Telnet R2,但不可以Ping通R2。

  【实验拓扑】

                   
     
       
 
 
     
       
   
 
 

  【实验步骤】(一)给Host,R1,R2各个端口设置IP

  1.Host上

  Router(config)#no ip routing !关闭路由功能,即把Router设置成主机

  Router(config)#hostname host !重命名为host

  host(config)#ip default-gateway 199.99.1.1 !设置主机的默认网关

  host(config)#int s1/0

  host(config-if)#ip add 199.99.1.2 255.255.255.0

  host(config-if)#no shut

  2.R1

  rack01(config)#int s1/0

  rack01(config-if)#ip add 199.99.1.1 255.255.255.0

  rack01(config-if)#no shut

  rack01(config)#int s1/1

  rack01(config-if)#ip add 199.99.2.1 255.255.255.0

  rack01(config-if)#no shut

  3.R2

  rack02(config)#int s1/1

  rack02(config-if)#ip add 199.99.2.2 255.255.255.0

  rack02(config-if)#no shut

  注:到这里为止各链路连接成功。

  (二)在R1和R2上设置路由功能,在这里设置EIGRP协议.

  设置路由目的:让Host、R1、R2之间可以互相Ping通

  1.R1

  rack01(config)#router eigrp 100

  rack01(config-router)#network 199.1.1.0 !宣告网段

  rack01(config-router)#network 192.168.1.0

  2.R2

  rack02(config)#router eigrp 100

  rack02(config-router)#network 192.168.1.0

  注:到这里为止Host、R1、R2之间可以互相Ping通,而且Host可以Telnet R2

  (三)在R1上设置命名ACL,让Host可以Telnet R2,但Ping不通R2

  rack01(config)#ip access-list extended cisco

  !设置命名ACL,其中extended表示命名,cisco则是随意起的命令

  rack01(config-ext-nacl)#deny icmp host 199.99.1.2 host 199.99.2.2

  !拒绝来自主机199.99.1.2发送的icmp数据包,即Ping不通,其中host 199.99.2.2表示目标地址

  rack01(config-ext-nacl)#permit tcp host 199.99.1.2 host 199.99.2.2 eq 23

  !允许来自主机199.99.1.2的Telnet访问199.99.2.2,其中eq 23表示Telnet的端口号

  rack01(config-ext-nacl)#permit ip any any

  (四)应用到端口上

  rack01(config)#int s1/0

  rack01(config-if)#ip access-group cisco in !cisco是命的名称

  测试结果:

  host#ping 199.99.2.2

  Type escape sequence to abort.

  Sending 5, 100-byte ICMP Echos to 199.99.2.2, timeout is 2 seconds:

  U.U.U 表示链路不通

  Success rate is 0 percent (0/5)

  host#telnet 199.99.2.2

  Trying 199.99.2.2 ... Open

  User Access Verification

  Password:

  rack02>en

  Password:

  rack02# 表示已成功Telnet到R2

  (四)综合实验

  【实验设备】四台CISCO 7200路由器,其中一台作为Host(主机)利用

  【实验目标】设置Host S1/0端口的IP地址为192.168.1.1、192.168.1.2、192.168.1.7

  (1)不允许host的192.168.1.1、192.168.1.2 Ping R3

  (2)不允许host的192.168.1.7 Telnet到R4

  (3)不允许R2 Ping R3

  【实验拓扑】

  【实验步骤】(一)设置Host,R1,R2,R3各端口的IP

  1.Host

  host(config)#no ip routing !关闭路由功能

  host(config)#ip default-gateway 192.168.1.1 !设置默认网关

  host(config)#int s1/0

  host(config-if)#ip add 192.168.1.7 255.255.255.0

  host(config-if)#no shut

  host(config-if)#ip add 192.168.1.2 255.255.255.0 secondary

  host(config-if)#no shut

  host(config-if)#ip add 192.168.1.1 255.255.255.0 secondary

  2.R1

  rack01(config)#int s1/0

  rack01(config-if)#ip add 192.168.1.8 255.255.255.0

  rack01(config-if)#no shut

  rack01(config)#int s1/1

  rack01(config-if)#ip add 192.168.2.1 255.255.255.0

  rack01(config-if)#no shut

  rack01(config)#int s1/2

  rack01(config-if)#ip add 192.168.3.1 255.255.255.0

  rack01(config-if)#no shut

  3.R2

  rack02(config)#int s1/1

  rack02(config-if)#ip add 192.168.2.2 255.255.255.0

  rack02(config-if)#no shut

  4.R3

  rack03(config)#int s1/2

  rack03(config-if)#ip add 192.168.3.2 255.255.255.0

  rack03(config-if)#no shut

  (二)给R1,R2,R3设置路由功能

  目的:让Host,R1,R2,R3之间可以互相Ping通

  1.R1

  rack01(config)#router eigrp 100

  rack01(config-router)#network 192.168.1.0

  rack01(config-router)#network 192.168.2.0

  rack01(config-router)#network 192.168.3.0

  2.R2

  rack02(config-router)#network 192.168.2.0

  3.R3

  rack03(config-router)#network 192.168.3.0 (三)配置ACL

  1.不允许host的192.168.1.1、192.168.1.2 Ping R3

  rack01(config)#access-list 110 deny icmp 192.168.1.0 0.0.0.3 host 192.168.2.2

  !配置扩展ACL,其中192.168.1.0表示一个网段代表1.1和1.2这两太主机,0.0.0.3是它的反子网掩码,子网掩码为255.255.255.252,它是路由汇总后的掩码,这样只能包括1.1和1.2两个地址

  rack01(config)#int s1/0

  rack01(config-if)#ip access-group 110 in !将ACL应用到端口S1/1上

  测试结果:

  host#ping 192.168.3.2

  Type escape sequence to abort.

  Sending 5, 100-byte ICMP Echos to 192.168.3.2, timeout is 2 seconds:

  U.U.U

  host#ping 扩展Ping

  Protocol [ip]:

  Target IP address: 192.168.3.2 目标地址

  Extended commands [n]: y

  Source address or interface: 192.168.1.2 源地址

  Type escape sequence to abort.

  Sending 5, 100-byte ICMP Echos to 192.168.3.2, timeout is 2 seconds:

  Packet sent with a source address of 192.168.1.2

  U.U.U

  2.不允许Host的192.168.1.7 Telnet到R4

  rack01(config)# access-list 110 deny tcp host 192.168.1.7 host 192.168.3.2 eq 23

  3.不允许R2 Ping R3

  rack01(config)#access-list 111 deny icmp host 192.168.2.2 host 192.168.3.2

  !需要注意的是ACL的每个编号只能应用一次,即只能用在一个端口上。

  rack01(config)#int s1/1

  rack01(config-if)#ip access-group 111 in

  测试结果:

  rack02#ping 192.168.3.2

  Type escape sequence to abort.

  Sending 5, 100-byte ICMP Echos to 192.168.3.2, timeout is 2 seconds:

  ..... 表示不能被Ping通

  Success rate is 0 percent (0/5)