当前位置: 首页 > news >正文

两个vlan之间单向控制,reflexiveacl配置介绍 转

在做工程中,有时候用户要求2个vlan之间的访问是单向访问,以下内容为介绍支持单向访问的配置案例

 

  Reflexive ACLs

  反身ACL是在Cisco IOS Release 11.3引入的.它只能和扩展的命名IP ACL一起定义而不能和基于数字的或标准ACL,以及其他协议的ACL一起.语法如下:
  ip access-list extended <name> permit <protocol> any any reflect name [timeout <seconds>]
  ip access-list extended <name> evaluate <name>
  interface <interface>
  ip access-group {number|name} {in|out}
 
  做网络的单向访问其实实现的是防火墙的基本功能:我是内网,你是外网,我能访问你,但你不能访问我.
  所以现在假设RouterA的E0口所连网段为内网段,RouterA S0所连的网段为外网段,还假设我想做的是内网的PC机能ping通外网RouterB的S1口,但RouterB却ping不进我的内网.

  用ACL来实现类似的单向访问控制需要用到一种特殊的ACL,叫Reflexive ACL.Reflexive ACL的配置分为两个部分,一部分是outbound的配置,一部分是inbound的配置.

  在继续下面的说明之前,先说点题外话.在最开始想到单向访问问题时,我(也包括其它一些我的同事)自然的就这么想:那我在E0口上允许PC的流量进来,然后再在S0口上禁止RouterB的流量进来不就行了?看上去好像没什么问题,但一试就知道其实是不行的.为什么不行呢,因为很多人都忽略了这么一个问题:即绝大多数的网络流量都是有去有回的,上面的方法只解决了去的问题,但这个流量在到达RouterB后,RouterB还需要返回这个流量给PC,这个返回的流量到了RouterA的S0口,但上面的方法却在S0口上禁止了RouterB的流量进来,回来的流量被挡住了,通讯失败.

  好,下面再切回来.Reflexive ACL中outbound的部分决定了我出去的哪些内网网络流量是需要被单向访问的,inbound部分决定了这些流量在返回后能被正确的识别并送给内网发起连接的PC机.

  Reflexive ACL中outbound的部分:
  ip access-list extended outbound_filter
  permit icmp any any reflect icmp_traffic
  permit ip any any
  !---注意在Reflexive ACL中只能用named方式的ACL,不能用numbered方式的ACL.

  !---基本配置和普通ACL并没有什么太多不同,不同之处是reflect icmp_traffic,它的意思是这条ACE作为单向流量来处理,并且给了一个名称叫  icmp_traffic,icmp_traffic在inbound部分被引用.

  !---permit ip any any并不是必要的,加在这里是为了另一个测试,下面会说明.

  Reflexive ACL中inbound的部分:
  ip access-list extended inbound_filter
  evaluate icmp_traffic
  deny ip any any log
  !---inbound的配置有和普通ACL有点不同了,第一句evaluate icmp_traffic对上述outbound配置中的icmp_traffic进行了引用,也就是说,它要检查从外网进来的流量,如果这个流量确实是从内网发起的对外访问的返回流量,那么允许这个流量进来.

!---注意deny ip any any log这句,虽然这句也是不必配的,因为是默认的deny ip any any,但我加了log来对上面outbound部分的permit ip any any进行测试.

 

  Reflexive ACL中应用到接口的部分:
  interface Serial0
  ip address 192.1.1.1 255.255.255.0
  ip access-group inbound_filter in
  ip access-group outbound_filter out
  !---这里也有一些讲究,ACL outbound_filter被应用到外网口的out方向,ACL inbound_filter被应用到外网口的in方向,in和out不能搞混.

  好,现在进行测试,在10.1.1.2上ping 192.1.1.2,通了,RouterB上则ping不通10.1.1.2.

  现在还余下一个问题:路由器既然已经deny了外网进来的所有流量,那么它是怎么允许内网出去的返回流量进来呢?

  它是通过创建动态生成的ACL来允许返回流量的,下面看看show access-list的结果:
  
  ……
  Reflexive IP access list icmp_traffic
  permit icmp host 192.1.1.2 host 10.1.1.2 (24 matches) (time left 196)
  ……
  
  这些动态ACL可通过TCP的FIN/RST包来动态自动消除,对ICMP这样stateless的包来说,是通过内置的timer来消除的,这点可通过上述show   access-list结果中的(time left 196)来核实.

  最后再说说那另一个测试,也就是两个ACL中加的多余的东西:

  ip access-list extended outbound_filter
  permit ip any any

  ip access-list extended inbound_filter
  deny ip any any log
 
  我在10.1.1.2上发起一个到192.1.1.2的TELNET连接,这个流量到了S0口后由ACL outbound_filter中的permit ip any any检测后放行.到了RouterB后,RouterB进行处理然后返回流量,这个流量到了S0口后由inbound_filter检测,因为evaluate icmp_traffic中并没有包含对TCP类型  流量的检测,这个包由deny ip any any log一句处理后丢弃并生成日志:

  00:24:28: %SEC-6-IPACCESSLOGP: list inbound_filter denied tcp 192.1.1.2(23) -> 10.1.1.2(1483), 1 packet

相关文章:

  • 博为峰JavaEE技术文章 ——MyBatis Hibernate 工作原理
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • 技术的悟道之一 --认清自己
  • 【洛谷】3375 KMP字符串匹配
  • 移动无标题(边框)窗体
  • mysql创建数据表时如何判断是否已经存在?
  • c#使用多个远程桌面连接
  • [存档]名词解释
  • 单链表中一个插入操作的分析
  • js如何打印object对象
  • 使用Apache CXF创建简单Web Service
  • java中Keytool的使用总结 (加密 密钥(key)和证书(certificates))
  • 又到母亲节
  • Java学习的好群,极力推荐!
  • linux svn 客户端基本使用命令
  • hexo+github搭建个人博客
  • 2017年终总结、随想
  • CentOS7 安装JDK
  • CSS 专业技巧
  • CSS相对定位
  • JavaScript创建对象的四种方式
  • jdbc就是这么简单
  • log4j2输出到kafka
  • MYSQL 的 IF 函数
  • Python_OOP
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 关于extract.autodesk.io的一些说明
  • 京东美团研发面经
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 仓管云——企业云erp功能有哪些?
  • 交换综合实验一
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # 达梦数据库知识点
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #大学#套接字
  • (2020)Java后端开发----(面试题和笔试题)
  • (3)nginx 配置(nginx.conf)
  • (5)STL算法之复制
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (pytorch进阶之路)扩散概率模型
  • (solr系列:一)使用tomcat部署solr服务
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (七)Java对象在Hibernate持久化层的状态
  • (四)汇编语言——简单程序
  • (转)VC++中ondraw在什么时候调用的
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .Net core 6.0 升8.0
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .Net Web项目创建比较不错的参考文章
  • .NET 解决重复提交问题