ACL 访问控制列表(Access Control Lists),是应用在路由器(或三层交换机)接口上的指令列表,用来告诉路由器哪些数据可以接收,哪些数据是需要被拒绝的,ACL的定义是基于协议的,它适用于所有的路由协议,并根据预先定义好的规则对数据包进行过滤,从而更好的控制数据的流入与流出.

NAT 网络地址转换(Network Address Translation),是一个互联网工程任务组的标准,它可以实现内部私有IP地址和公网IP地址的转换,能够起到节约公网IP地址的作用,以下将介绍NAT的三种方式,静态转换、动态转换和端口复用技术.

思科ACL访问控制

路由器接口的访问控制取决于应用在其上的ACL,数据在进出网络前,路由器会根据ACL对其进行匹配,匹配成功将对数据进行过滤或者是转发,匹配失败则丢弃数据包,目前主要有三种ACL控制,标准ACL,扩展ACL,命名ACL,我们只介绍前两种.

在路由器上应用ACL时,可以为每种协议,每个端口,每个方向,和每个接口,配置一个ACL,一般称为3p原则.

◆标准ACL配置◆

标准ALCL只能通过源地址进行访问过滤与控制,因此只能阻止/允许来自指定IP地址的访问请求.

配置交换机: 首先配置交换机,这里开启3个端口Fa0/1-3,并配置端口速率100.

Switch0> enable
Switch0># configure terminal Switch0(config)# interface range fa0/1-3
Switch0(config-if-range)# speed 100
Switch0(config-if-range)# no shutdown
Switch0(config-if-range)# exit

配置路由器: 接着配置路由器,开启路由器的Fa0/0和Fa0/1端口,并配置上网关地址.

Router0> enable
Router0# configure terminal Router0(config)# interface GigabitEthernet 0/0
Router0(config-if)# ip address 192.168.1.254 255.255.255.0
Router0(config-if)# no shutdown
Router0(config-if)# exit Router0(config)# interface GigabitEthernet 0/1
Router0(config-if)# ip address 192.168.2.254 255.255.255.0
Router0(config-if)# no shutdown
Router0(config-if)# exit

配置标准ACL: 在路由器上配置一条标准的ACL规则,禁止PC0访问Server0服务器.

Router0> enable
Router0# configure terminal Router0(config)# access-list 1 deny 192.168.1.1 0.0.0.0 // 拒绝192.168.1.1访问Server0
Router0(config)# access-list 1 permit any // 设置默认允许所有,兜底操作
Router0(config)#
Router0(config)# interface GigabitEthernet 0/0 // 选择接口Gig0/0
Router0(config-if)# ip access-group 1 in // 将以上配置条目应用到当前接口上
#Router0(config-if)# ip access-group 1 out // 控制出口流量(可省略)

测试过滤效果: 配置完规则以后,我们测试一下效果,使用PC0无法访问server服务器而是用PC1则可以访问.

PC0> ping 192.168.2.1

Pinging 192.168.2.1 with 32 bytes of data:
Reply from 192.168.1.254: Destination host unreachable. PC1> ping 192.168.2.1 Pinging 192.168.2.1 with 32 bytes of data:
Reply from 192.168.2.1: bytes=32 time=0ms TTL=127

这里需要注意一点,如果你有两个路由器相连,那么ACL规则应该设置在距离限制的目标较近的路由器上,否则可能会出现有效数据在到达目标之前就被过滤掉了.

◆拓展ACL配置◆

标准ACL只能使用源地址作为匹配条件,无法对访问进行精确的控制,为了解决这一问题,可以采用扩展ACL来对数据加以限制.

配置交换机: 首先配置交换机,这里开启4个端口Fa0/1-4,并配置端口速率为100.

Switch0> enable
Switch0># configure terminal Switch0(config)# interface range fa0/1-4
Switch0(config-if-range)# speed 100
Switch0(config-if-range)# no shutdown
Switch0(config-if-range)# exit

配置路由器: 接着配置路由器,开启路由器的Fa0/0和Fa0/1端口,并配置上网关地址.

Router0> enable
Router0# configure terminal Router0(config)# interface GigabitEthernet 0/0
Router0(config-if)# ip address 192.168.1.254 255.255.255.0
Router0(config-if)# no shutdown
Router0(config-if)# exit Router0(config)# interface GigabitEthernet 0/0
Router0(config-if)# ip address 192.168.2.254 255.255.255.0
Router0(config-if)# no shutdown
Router0(config-if)# exit

配置拓展ACL: 配置拓展ACL规则,禁止PC0访问192.168.2.1,禁止PC1访问192.168.2.1主机的80端口,允许其他所有.

Router0> enable
Router0# configure terminal Router0(config)# access-list 100 deny ip host 192.168.1.1 host 192.168.2.1 // 拒绝IP地址
Router0(config)# access-list 100 deny TCP host 192.168.1.2 eq 80 host 192.168.2.1 eq 80 // 拒绝TCP=80
Router0(config)# access-list 100 permit ip any any // 默认允许 Router0(config)# interface GigabitEthernet 0/0 // 选择接口GigabitEthernet 0/0
Router0(config-if)# ip access-group 100 in // 将以上配置条目应用到当前接口上
Router0(config-if)# ip access-group 100 out // 将以上配置条目应用到当前接口上
Router0# show access-list // 查询配置结果

测试过滤效果: 配置完规则后测试下,经测试PC0无法访问Server0,而PC1无法访问目标主机的80端口其他主机放行.

PC0> ping 192.168.2.1
Pinging 192.168.2.1 with 32 bytes of data:
Reply from 192.168.1.254: Destination host unreachable. PC1> ping 192.168.2.1
Pinging 192.168.2.1 with 32 bytes of data:
Reply from 192.168.2.1: bytes=32 time=0ms TTL=127

与标准ACL相比,扩展ACL能够更加精确的匹配和过滤数据包,因此扩展ACL的放置位置应该离源地址越近越好,这样才能够有效的提高链路的使用效率.

思科NAT地址转换

NAT 网络地址转换(Network Address Translation),是一个互联网工程任务组的标准,它可以实现内部私有IP地址和公网IP地址的转换,能够起到节约公网IP地址的作用,以下将介绍NAT的三种方式,静态转换、动态转换和端口复用技术.

NAT技术中有四种地址即,内部本地地址,内部全局地址,外部本地地址,外部全局地址.

◆配置静态NAT◆

静态NAT是指将内部本地地址与内部全局地址进行对应转换,某个本地地址只能转换为某个全局地址,通过配置静态NAT可以实现内部网络对外部网络的访问,也可以实现外部网络对内部网络中某个设备的访问.

配置交换机: 首先配置交换机,这里开启4个端口Fa0/1-4,并配置端口速率为100.

Switch0> enable
Switch0># configure terminal Switch0(config)# interface range fa0/1-4
Switch0(config-if-range)# speed 100
Switch0(config-if-range)# no shutdown
Switch0(config-if-range)# exit

配置路由器: 接着配置路由器,开启路由器的Fa0/0和Se0/0/0端口,并配置上网关地址.

Router> enable
Router# configure terminal #----在Router10上操作-------------------------
Router0(config)# interface fa0/0
Router0(config-if)# ip address 192.168.1.1 255.255.255.0
Router0(config-if)# no shutdown
Router0(config-if)# exit Router0(config)# interface se0/0/0
Router0(config-if)# ip address 10.10.10.1 255.0.0.0
Router0(config-if)# no shutdown
Router0(config-if)# exit #----在Router1上操作-------------------------
Router1(config)# interface se0/0/0
Router1(config-if)# ip address 10.10.10.2 255.0.0.0
Router1(config-if)# no shutdown
Router1(config-if)# exit

配置静态NAT: 在路由器Router0上配置静态NAT,将私有地址转为全局地址(内网地址-->外网地址).

Router> enable
Router# configure terminal Router0(config)# ip nat inside source static 192.168.1.2 10.10.10.20 // 配置NAT条目1
Router0(config)# ip nat inside source static 192.168.1.3 10.10.10.30 // 配置NAT条目2
Router0(config)# ip nat inside source static 192.168.1.4 10.10.10.40 // 配置NAT条目3 Router0(config)# interface fa0/0 // 选择内部端口
Router0(config-if)# ip nat inside // 应用到定义的内部接口
Router0(config-if)#
Router0(config-if)# interface serial0/0/0 // 选择外部接口
Router0(config-if)# ip nat outside // 应用到定义的外部接口
Router0(config-if)# exit

查询NAT配置: 配置完成后,我们可以使用show ip nat translation命令,来查询端口情况.

Router0# show ip nat translation

Pro  Inside global     Inside local       Outside local      Outside global
--- 10.10.10.20 192.168.1.2 --- ---
--- 10.10.10.30 192.168.1.3 --- ---
--- 10.10.10.40 192.168.1.4 --- ---

测试通信情况: 此时测试下通信情况,在PC0-PC2主机可Ping通Router1,同样Router1可Ping通PC0-PC2.

PC0> ping 10.10.10.2
Pinging 10.10.10.2 with 32 bytes of data:
Reply from 10.10.10.2: bytes=32 time=1ms TTL=254 Router1# ping 10.10.10.20
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.10.20, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/5/9 ms

◆配置动态NAT◆

动态NAT是指内部本地地址与内部全局地址进行转换时,内部地址可以随机转换为指定的外部全局地址,此过程是动态分配的不需要认为干预,从而减少了配置的工作量.

但需要注意的是,配置动态NAT只能实现内部网络对互联网的访问,无法实现互联网中的主机对内部网络中的主机的访问,也就是说,它是一种单向的NAT技术.

清除NAT列表: 动态NAT的配置我们同样适用上面的拓扑图,只是在NAT的配置上有些小改动.

Router0# clear ip nat translation *             // 清除动态NAT转换列表
Router0# show ip access-list // 显示ACL配置信息
Router0# show ip nat statistics // 查看NAT转换统计信息
Router0# clear ip nat statistics // 清除NAT转换统计信息

配置交换机: 首先配置交换机,这里开启4个端口Fa0/1-4,并配置端口速率为100.

Switch0> enable
Switch0># configure terminal Switch0(config)# interface range fa0/1-4
Switch0(config-if-range)# speed 100
Switch0(config-if-range)# no shutdown
Switch0(config-if-range)# exit

配置路由器: 接着配置路由器,开启路由器的Fa0/0和Se0/0/0端口,并配置上网关地址.

Router> enable
Router# configure terminal #----在Router0上操作-------------------------
Router0(config)# interface fa0/0
Router0(config-if)# ip address 192.168.1.1 255.255.255.0
Router0(config-if)# no shutdown
Router0(config-if)# exit Router0(config)# interface se0/0/0
Router0(config-if)# ip address 10.10.10.1 255.0.0.0
Router0(config-if)# no shutdown
Router0(config-if)# exit #----在Router1上操作-------------------------
Router1(config)# interface se0/0/0
Router1(config-if)# ip address 10.10.10.2 255.0.0.0
Router1(config-if)# no shutdown
Router1(config-if)# exit

配置动态NAT: 这里分配外网IP范围是10.10.10.20-40,内部地址范围是192.168.1.0/24,并绑定好接口.

Router0> enable
Router0# configure terminal Router0(config)# ip nat pool NAT 10.10.10.20 10.10.10.40 netmask 255.0.0.0 //定义内部全局IP地址池
Router0(config)# access-list 1 permit 192.168.1.0 0.0.0.255 // 定义可转换的内部本地IP地址
Router0(config)# ip nat inside source list 1 pool NAT //配置动态NAT映射,将NAT地址池与ACL关联 Router0(config)# interface fa0/0 // 配置内部端口
Router0(config-if)# ip nat inside Router0(config-if)# interface serial0/0/0 // 配置外部端口
Router0(config-if)# ip nat outside
Router0(config-if)# no shutdown

查询NAT配置: 配置完成后,我们可以使用show ip nat translation命令,来查询端口情况.

Router0# show ip nat translation

Pro  Inside global     Inside local       Outside local      Outside global
icmp 10.10.10.21:5 192.168.1.3:5 10.10.10.2:5 10.10.10.2:5
icmp 10.10.10.21:6 192.168.1.3:6 10.10.10.2:6 10.10.10.2:6
icmp 10.10.10.22:9 192.168.1.3:9 10.10.10.2:9 10.10.10.2:9
icmp 10.10.10.23:10 192.168.1.2:10 10.10.10.2:10 10.10.10.2:10

◆多路复用PAT◆

端口多路复用即端口地址转换(PAT,Port Address Translation),是指将内部本地IP地址动态的转换为单一的内部全局IP地址和端口号,内部全局IP地址只是用一个,而不是一组地址池,也就是一个IP地址绑定多个端口,从而更大的节约了IP地址的资源短缺.

配置交换机: 首先配置交换机,这里开启4个端口Fa0/1-4,并配置端口速率为100.

Switch0> enable
Switch0># configure terminal Switch0(config)# interface range fa0/1-4
Switch0(config-if-range)# speed 100
Switch0(config-if-range)# no shutdown
Switch0(config-if-range)# exit

配置路由器: 接着配置路由器,开启路由器的Fa0/0和Se0/0/0端口,并配置上网关地址.

Router> enable
Router# configure terminal #----在Router0上操作-------------------------
Router0(config)# interface fa0/0
Router0(config-if)# ip address 192.168.1.1 255.255.255.0
Router0(config-if)# no shutdown
Router0(config-if)# exit Router0(config)# interface se0/0/0
Router0(config-if)# ip address 10.10.10.1 255.0.0.0
Router0(config-if)# no shutdown
Router0(config-if)# exit #----在Router1上操作-------------------------
Router1(config)# interface se0/0/0
Router1(config-if)# ip address 10.10.10.2 255.0.0.0
Router1(config-if)# no shutdown
Router1(config-if)# exit

配置多路复用PAT: 在路由器Router0上配置PAT,多路复用.

Router> enable
Router# configure terminal Router0(config)# ip nat pool PAT 10.10.10.10 10.10.10.10 netmask 255.0.0.0 // 定义外网IP地址
Router0(config)# access-list 1 permit 192.168.1.0 0.0.0.255 // 定义ACL
Router0(config)# ip nat inside source list 1 pool PAT overload // 将地址池与ACL绑定 Router0(config)# interface fa0/0 // 定义连接内部网络的接口
Router0(config-if)# ip nat inside
Router0(config-if)# interface serial0/0/0 // 定义链接外部网络的接口
Router0(config-if)# ip nat outside

查询配置地址表: 最后可以检测一下是否能够连接到内部与外部的主机.

Router#show ip nat translations

Pro  Inside global     Inside local       Outside local      Outside global
icmp 10.10.10.10:1024 192.168.1.4:1 10.10.10.2:1 10.10.10.2:1024
icmp 10.10.10.10:1025 192.168.1.2:8 10.10.10.2:8 10.10.10.2:1025
icmp 10.10.10.10:1027 192.168.1.3:1 10.10.10.2:1 10.10.10.2:1027

思科设备ACL与NAT技术的更多相关文章

  1. 华为设备ACL与NAT技术

    ACL 访问控制列表(Access Control Lists),是应用在路由器(或三层交换机)接口上的指令列表,用来告诉路由器哪些数据可以接收,哪些数据是需要被拒绝的,ACL的定义是基于协议的,它适 ...

  2. ACL和NAT

    1 ACL 1.1 ACL的作用 1).用来对数据包做访问控制(丢弃或者放弃) 2).结合其他协议,用来匹配范围 1.2 ACL的工作原理 当数据包从接口经过时,由于接口启用了ACL,此时路由器会对报 ...

  3. NAT技术

    该文摘自百度百科"NAT"中的一部分 NAT(Network Address Translation,网络地址转换)是1994年提出的.当在专用网内部的一些主机本来已经分配到了本地 ...

  4. 常用思科设备图标(JPG+矢量图)

    常用思科设备图标 在制作网络拓扑图示时我们利用MS Visio或亿图图示等制图软件自带的网络设备绘制拓扑图感觉提供的设备图标非常有限,往往不满足我们的要求,这时就常需要找一些思科的设备图标,在网上到处 ...

  5. NAT技术基本原理与应用

    转载自:http://www.cnblogs.com/derrick/p/4052401.html?utm_source=tuicool&utm_medium=referral#undefin ...

  6. 换个角度审视NAT技术

    NAT (Network address translation,网络地址转换 )是局域网连接到互联网的一个对接工作. 首先要知道NAT是一个技术或者说软件而不是协议 后面你会知道NAT 是偏应用层但 ...

  7. 设置思科设备console密码、enable密码、vty登录密码

    思科设备各级密码:1)  console密码 SW2(config)#line console 0SW2(config-line)#password ciscoSW2(config-line)#log ...

  8. ARP 地址分类 NAT技术

    第1章 OSI回顾 1.1 TCP/IP协议族组成 应用层 主机到主机层   互联网层   网络接入层 1.2 总结应用层掌握的协议与端口号对应关系 http(80) telnet(23) ftp(2 ...

  9. 代理服务器和NAT技术

    一.代理服务器 所谓“代理”,就是代而劳之的意思.代理服务器就是代理网络用户去取得网络信息,形象的说:它是网络信息的中转站,使得一个网络终端和另一个网络终端不直接进行相连,代理网络用户去取得信息.主要 ...

随机推荐

  1. iOS中web app调试(mac)

    原文 iOS中web app调试(mac).md 目录 一.真机联调配置 二.mac上Safari配置及真机联调 三.iOS模拟器使用 四.在iOS模拟器中安装app 近期公司vue项目开发,目的是一 ...

  2. spark-submit 提交任务及参数说明

    spark-submit 可以提交任务到 spark 集群执行,也可以提交到 hadoop 的 yarn 集群执行. 1. 例子 一个最简单的例子,部署 spark standalone 模式后,提交 ...

  3. easyUI之表单

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  4. ResourceUtils 创建资源目录工具类

    package com.jcf.utilsdemo; import android.content.Context; import android.content.res.Resources; pub ...

  5. 9Patch图

    NinePatch是一种很有用的PNG图片格式,它可以在特定区域随文字大小进行缩放. - 上边线控制水平拉伸- 左边线控制竖直拉伸- 右边线和下边线控制内容区域 如下: 背景图片的中间区域会随着文字的 ...

  6. document.onselectstart=function(){return false;} 引起的拖动问题

    在网页中拖动时,会引起某些文字或一些内容被选中,导致网页中蓝蓝的一片,视觉效果很差,所以我加了个1.document.onselectstart=function(){return false;}或者 ...

  7. Cgroup与LXC简介

    原文地址: https://blog.51cto.com/speakingbaicai/1359825 一.Docker.LXC.Cgroup的结构关系 根据Docker布道师Jerome Petaz ...

  8. 手机通过fiddler调试页面

    fiddler设置 首先我们打开Fiddler->Tools->Fiddler Options在Connection面板里将Allow remote computers to connec ...

  9. Java数组(3):创建测试数据

    有时我们需要使用数组批量创建测试数据,接下来通过以下4点来举例. (1) 使用Arrays.fill()填充数据 (2) 使用Random类中JDK1.8提供的新方法用来生成随机数 (3) 一个随机数 ...

  10. Linux学习—mysql安装配置及远程连接

    安装前准备 1.检查是否已经安装过mysql 执行命令 [root@localhost /]# rpm -qa | grep mysql  从执行结果,可以看出我们已经安装了mysql-libs-5. ...