0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文详解思科设备ACL与NAT技术

网络技术干货圈 来源:博客园 2023-01-16 11:25 次阅读

作者:lyshark

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

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

思科ACL访问控制

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

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

59891f60-9410-11ed-bfe3-dac502259ad0.png

标准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可以实现内部网络对外部网络的访问,也可以实现外部网络对内部网络中某个设备的访问.

599cc074-9410-11ed-bfe3-dac502259ad0.png

配置交换机: 首先配置交换机,这里开启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地址的资源短缺.

59d17aa8-9410-11ed-bfe3-dac502259ad0.png

配置交换机: 首先配置交换机,这里开启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

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 交换机
    +关注

    关注

    19

    文章

    2437

    浏览量

    95663
  • 路由器
    +关注

    关注

    22

    文章

    3500

    浏览量

    111343
  • NAT
    NAT
    +关注

    关注

    0

    文章

    109

    浏览量

    16061
  • 思科
    +关注

    关注

    0

    文章

    280

    浏览量

    31881
  • ACL
    ACL
    +关注

    关注

    0

    文章

    59

    浏览量

    11875

原文标题:思科设备ACL与NAT技术,理论结合实验!

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CYW43455带有7ACL 路的设备有什么作用吗?

    我研究了数据表,并在 CYW43455上做了些实验。 你能帮我找到答案吗? 1.作为CYW43455的数据表,它支持7个ACL链路和3个SCO链路。 我可以知道带有 7ACL 链路的设备
    发表于 03-01 09:08

    步步教你在局域网内玩转NAT命令

    步步教你在局域网内玩转NAT命令  NAT是网络管理中常用的技术命令,其使用环境多是:多个内部计算机在访问INTERNET时使用同个公网
    发表于 02-24 18:01

    三星嵌入式方案专家——思科技术

    `1.三星嵌入式方案思科技术是从事三星嵌入式方案开发的专业团队,专注于以三星ARM处理器为核心的嵌入式平台开发。 思科技术经历多年的研发和服务客户,开发出的产品方案包括平板电脑、手
    发表于 11-19 17:26

    nat的类型有哪些

    信息进行转换,有动态与静态之区分。由于现在大部分都属于另种类型,即NAPT,故这里不详细讨论基础NAT。 另外NAT叫做NAPT(Network Address/Port Tra
    发表于 11-04 09:17

    NAT网络穿越技术的研究

    本文简要介绍了NAT 技术的原理及应用,说明由于NAT 的特性造成主机无法主动与处于NAT 后方的主机通讯的问题,并就这个问题探讨主机穿越NAT
    发表于 06-29 08:18 21次下载

    基于Netfilter的NAT技术及其应用

    NAT技术是为了解决IPv4网络地址空间的不够而提出的一种过渡技术,并由于其简单、高效的特性而得到了广泛的应用。该文介绍了NAT技术及在Li
    发表于 12-29 23:53 20次下载

    SIP穿越NAT的研究

    目前广泛部署的NAT 使得SIP 穿越NAT 变得越来越困难。文章对SIP 及NAT 做了阐述,分析了几种SIP 穿越NAT 技术的不足,提
    发表于 12-30 14:19 16次下载

    什么是接入控制表(ACL)

    什么是接入控制表(ACL) 访问控制列表(Access Control List,ACL) 是路由器接口的指令列表,用来控制端口进出的数据包。ACL适用于所有的
    发表于 04-06 09:05 1152次阅读

    ACL是什么?ACL有什么用?

    常见的文件操作命令 cp 和 mv 等都支持 ACL 权限,只是 cp 命令需要加上 -p 参数。但是 tar 等常见的备份工具不会保留目录和文件的 ACL 权限信息。如果希望备份和恢复带有 ACL
    的头像 发表于 09-30 16:52 4.6w次阅读

    ACL资源不足时该如何去优化?

    很多业务都会占用ACL资源,而设备ACL资源是有限的,当ACL资源不足时,则会导致业务应用ACL失败或产生
    的头像 发表于 05-06 10:13 3052次阅读
    <b class='flag-5'>ACL</b>资源不足时该如何去优化?

    穿越NAT的SDWAN技术实现(上)

    在SDWAN网络中,为了节省IP地址资源,分支站点的用户经常会使用私网IP地址。通过NAT将私网IP地址转换为公网IP地址后,该站点的用户才能访问其他站点。CPE发出的报文在经过NAT设备后,IP
    的头像 发表于 10-11 11:35 851次阅读
    穿越<b class='flag-5'>NAT</b>的SDWAN<b class='flag-5'>技术</b>实现(上)

    穿越NAT的SDWAN技术实现(中)

    在SDWAN网络中,为了节省IP地址资源,分支站点的用户经常会使用私网IP地址。通过NAT将私网IP地址转换为公网IP地址后,该站点的用户才能访问其他站点。CPE发出的报文在经过NAT设备后,IP
    的头像 发表于 10-11 12:11 682次阅读
    穿越<b class='flag-5'>NAT</b>的SDWAN<b class='flag-5'>技术</b>实现(中)

    穿越NAT的SDWAN技术实现(下)

    在SDWAN网络中,为了节省IP地址资源,分支站点的用户经常会使用私网IP地址。通过NAT将私网IP地址转换为公网IP地址后,该站点的用户才能访问其他站点。CPE发出的报文在经过NAT设备后,IP
    的头像 发表于 10-11 12:23 901次阅读
    穿越<b class='flag-5'>NAT</b>的SDWAN<b class='flag-5'>技术</b>实现(下)

    NAT设备常用场景

    NAT设备的IP数据报的IP地址,还会改变IP数据报的TCP/UDP端口。 1.2.1锥型NAT 完全锥型(Full Cone NAT):在不同内网的主机A和B各自连接到服务器C,服务
    的头像 发表于 11-11 11:42 580次阅读
    <b class='flag-5'>NAT</b><b class='flag-5'>设备</b>常用场景

    什么是NATNAT类型有哪些?NAT是如何工作的?NAT解决了什么问题?

    的方式来连接多个设备,而不需要为每个设备都分配一个公共IP地址。通过将源IP地址和端口号映射到公共IP地址和端口号,NAT充当了一个中间人,使得设备可以通过一个公共IP地址与外部网络进
    的头像 发表于 02-04 11:03 684次阅读