zoukankan      html  css  js  c++  java
  • ACL中通配符的灵活运用

    ACL中通配符的灵活运用

     

    在路由器里我们经常使用access-list来做些地址过滤,达到某些安全策略的目的,一般常用的方法是对某个地址段进行permit或者deny,

    access-list permit 1 192.168.1.0 .3

    access-list permit 1 192.168.1.16 .15

    初学者对于wildcard mask的定义可能不是非常清晰,都会认为在ACL中的wildcard mask只能使用网络中已使用的地址段的子网掩码的反掩码来作为ACL的wildcard mask,

    例一:某网络上存在一IP地址段192.168.1.0/29,如果是要允许这个网段所有的机子上网就可以用access-list permit 1 192.168.1.0 .7来做策略,但是如果要求只允许网络内192.168.1.1、192.168.1.5这两个地址上网的话,我们通常会这样写ACL:

    Access-list permit 1 192.168.1.1 .0

    Access-list permit 1 192.168.1.5 .0

    Access-list deny any any

    ACL中的wildcard mask由32个0和1组成,如果该位为0那么被匹配的地址的对应位就必需与ACL中的地址对应位匹配,

    被匹配地址:    192.168.1.1   1100 0000.1010 1000.0000 0001.0000 0001

    Wildcard mask: .7       0000 0000.0000 0000.0000 0000.0000 0111

    ACL中的地址: 192.168.1.0   1100 0000.1010 1000.0000 0001.0000 0000

    红色粗体部分就是被匹配地址与ACL中的地址需要完全匹配的部分,因为wildcard mask的前29位为0,而后三位为1,所以被匹配地址的后三位被忽略,也就是所谓的don’t care,因此后三位可以是0和1的任意组合

    Access-list permit 1 192.168.1..4(192.168.1.1为ACL的匹配条件地址)

    ACL的wildcard mask定义,.4中只有第30位为1,所以与该位的匹配可以忽略(蓝色部分);而其它位必需与ACL中的条件匹配地址192.168.1.1的对应位相同,因此我们看上面红色字体,条件地址的末两位是01,和条件地址末两位相同的只有地址192.168.1.1、192.168.1.5,也就是说在地址段192.168.1.0/29中,只有1和5这两个地址能够通过ACL匹配。

    我们上面例1中的ACL:

    Access-list permit 1 192.168.1.1 .0

    Access-list permit 1 192.168.1.5 .0

    Access-list deny any any

    可以写为:

    Access-list permit 1 192.168.1..4

    通过以上例子,我们看出ACL中的wildcard mask和在动态路由协议里的反码是不同定义的

  • 相关阅读:
    重写Nacos服务发现逻辑动态修改远程服务IP地址
    手撸一个SpringBoot配置中心实现配置动态刷新
    使用CompletableFuture实现多个异步任务并行完成后合并结果
    SpringBoot实现Flyway的Callback回调钩子
    Java实现相似结构表算法
    使用Druid解析SQL实现血缘关系计算
    记一次解决RestTemplate和HttpClient请求结果乱码的问题
    double转json格式化添加自定义注解
    了解23种设计模式
    BigDecimal四舍五入
  • 原文地址:https://www.cnblogs.com/jjsunxing/p/13825046.html
Copyright © 2011-2022 走看看