彻底澄清子网掩码、反掩码、通配符掩码以及ospf network命令误区

彻底澄清子网掩码、反掩码、通配符掩码以及ospf network命令误区1.子网掩码(IPsubnetmask)用途:标识一个IP地址的网络位,主机位网络设备判断目的IP跟自己是否同一网段的依据。特点:1和0绝对不可能间隔,1总在0的前面。网络通信角度,子网掩码只具有本地意义。跟对端没有匹配的硬性要求。误区:一条链路两端的子网掩码必须一致(是习惯不是必须)例外:ospf多路访问网络中,掩码不一致会影响ospf邻居关系建立2.通配符掩码wildcardmask用途:选出一组符合否规则的IP地址特点:0表匹配…

大家好,又见面了,我是你们的朋友全栈君。

1.子网掩码(IP subnet mask)

用途:标识一个IP地址的网络位,主机位

     网络设备判断目的IP跟自己是否同一网段的依据。

特点:1和0绝对不可能间隔,1总在0的前面。

     网络通信角度,子网掩码只具有本地意义。跟对端没有匹配的硬性要求。

误区:一条链路两端的子网掩码必须一致(是习惯不是必须)

例外:ospf 多路访问网络中,掩码不一致会影响ospf邻居关系建立

彻底澄清子网掩码、反掩码、通配符掩码以及ospf network命令误区

2.通配符掩码 wildcard mask

 用途:选出一组符合否规则的IP地址

 特点:0表匹配,1表示不需要匹配。0和1 的位置根据需求可随意穿插

 示例1:deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

      deny ip 192.168.1.2 0.0.0.255 192.168.2.2 0.0.0.255

      deny ip 192.168.1.3 0.0.0.255 192.168.2.3 0.0.0.255
 这三跳条目是完全相同的,效果都是阻止192.168.1.x 访问192.168.1.x (x表示任意数字)

 红色字体部分对应的是全1,所以是忽略的 ,写什么都无所谓了

 实例2:deny ip 192.168.1.0 255.0.0.255 192.168.2.0 255.0.0.255

       deny ip 193.168.1.0 255.0.0.255 193.168.2.0 255.0.0.255
        deny ip 194.168.1.0 255.0.0.255 194.168.2.0 255.0.0.255

这三跳条目是完全相同的,效果都是阻止x.168.1.x 访问 x.168.2.x (x表示任意数字)

红色字体部分对应的是全1,所以是忽略的 ,写什么都无所谓了

3. 反掩码(中国式教育的败笔,误人子弟的一个说法,通配符掩码的错误理解)

需求1:阻止192.168.1.0/24 访问 192.168.2.0/24

命令:deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

看起啦确实是把掩码反过来写正好满足要求,实际上逻辑关系已经变了。只是恰巧蒙对了而已。

少有求知欲的同学都有必要问一下,为什么要把掩码反过来写呢?

如果写成 deny ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0

严格解读效果是:拒绝 x.x.x.0 访问 x.x.x.0

但是很多版本故作人性化,show run的时候自己给该成了:

deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

这属于操作系统对客户错误理解的妥协

后期的思科版本不再做此修改

—————————————————————–

需求2:阻止 X.168.1.x 访问 X.168.2.x

命令:deny ip 192.168.1.0 255.0.0.255 192.168.2.0 255.0.0.255

这个需求用反掩码的逻辑恐怕就行不通了吧? 当然这个需求属于怪异需求。

4.ospf的network命令(非rfc规定,各厂家可以自行设计,以下为大部分厂家逻辑)

  正解:

  Network  +  IP  +  wild card bits   

  Network 通过 IP 和 wild card bits 筛选出一组IP地址,从而定位出需要开启OSPF的接口(谁拥有其中一个IP地址谁就开启OSPF)

    接口开启ospf 含义有二:1. 从该接口收发ospf报文

                         2.该接口所在的网络对应的路由成为ospf的资源,从其他接口发给邻居(当然ospf发的不是路由条目)

  示例:inter f0/1

        ip add 10.1.1.1 255.255.255.0

       router ospf 1

       network 10.1.1.1 0.0.0.255 area 0

  这个network命令实际上宣告了10.1.1.0-10.1.1.255 这256个地址。

  当然在这个环境下恰好有且仅有一个接口在这个范围内。

  也就是说把接口的掩码反过来写正好能且只能宣告一个接口。不会多宣告

      如果写成

       network 10.1.1.1 0.0.0.0 area 0 效果也完全一样

      或者写成

       network 10.1.1.2 0.0.0.255 area 0 红色字体部分随便写,效果也是一样的

      如果写成

       network 0.0.0.0 255.255.255.255 area 0 宣告所有的IP地址,也就是所有的接口

      如果写成

      network 0.0.0.0 0.0.0.0  area 0 也是宣告所有接口,逻辑上讲不通(这个背过吧)

  重大误区:

  1. network 宣告的是路由,影响邻居学习路由的掩码

  2. network IP 后面跟的是反掩码,必须把掩码反过来写,否则会影响路由学习

 

错误理解示例1:

   network 10.1.1.1 0.0.0.0

   会导致邻居学到 10.1.1.1/32位的路由(已经遇到好多人跟我纠结这种问题,唉,网络世界,其实难寻知己)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161553.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CentOS 7 安装MySQL 5.7 或安装指定版本MySQL「建议收藏」

    CentOS 7 安装MySQL 5.7 或安装指定版本MySQL「建议收藏」centOS7安装mysqlcentOS7安装mysql57centOS7安装mysql8.0centOS7安装指定版本mysqlMySQL的最新版本为MySQL8.0,然而很多项目中依然使用的是MySQL5.7,个人开发环境中为了和线上项目数据库保持一致,也需要安装相同版本的MySQL,即安装MySQL5.7。本文将介绍如何在CentOS7系统中安装MySQL5.7以及安装指定版本的MySQL。

    2022年5月17日
    40
  • 域渗透之Zerologon域提权漏洞

    域渗透之Zerologon域提权漏洞组件概述Netlogon远程协议是一个远程过程调用(RPC)接口,用于基于域的网络上的用户和计算机身份验证。Netlogon远程协议RPC接口还用于为备份域控制

    2021年12月13日
    62
  • 王者荣耀语音文件下载

    王者荣耀语音文件下载

    2021年9月18日
    161
  • 怎么使用nbtscan工具一条命令扫描局域网内所有的IP及MAC

    怎么使用nbtscan工具一条命令扫描局域网内所有的IP及MAC具体操作方法:1、下载nbtscan.rar文件并解压。2、然后将解压好的cygwin1.dll和nbtscan.exe两文件拷贝到C:\WINDOWS\system32根目录下(根目录下即可);3、进入cmd窗口就可以输入命令:nbtscan192.168.X.98/24(此处的ip为扫描主机地址)。请注意:nbtscan只能用于局域网 …

    2022年10月20日
    2
  • matlab单相电源在哪里,浅谈基于MATLAB的单相独立光伏逆变电源电路仿真设计

    matlab单相电源在哪里,浅谈基于MATLAB的单相独立光伏逆变电源电路仿真设计156电子技术  独立型光伏发电系统系统结构如图1所示,主要有太阳电池组件(方阵)、控制器、储能蓄电池(组)、直流/交流逆变器等部分组成。光伏阵列发出的直流电通过器将其逆变为交流电供给负载,蓄电池将光伏阵列在白天发出的电能存储起来,并在夜间和阴雨天给负载供电。浅谈基于MATLAB的单相独立光伏逆变电源电路仿真设计魏显文(武威职业学院,甘肃武威733000)摘 要:本文…

    2022年5月11日
    32
  • WebApp开发-Google官方教程

    WebApp开发-Google官方教程概览你可以使用viewport的元数据、CSS和Javascript来为不同分辨率的屏幕设置合适的页面本文档中的技术适用于Android 2.0及以上设备,针对默认的Android Browser中及在WebView中呈现的页面如果你在为Android开发Web应用或者在为移动设备重新设计一个Web应用,你需要仔细考虑在不同设备上你的页面看起来是怎样的。因为Android设备有不同款型

    2022年6月17日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号