子网掩码、反掩码以及ospf network命令误区

网络 网络管理
本文为大家彻底澄清子网掩码、反掩码、通配符掩码以及ospf network命令误区。

在学习过程中,难免会有些误区,本文为大家彻底澄清子网掩码、反掩码、通配符掩码以及ospf network命令误区,并介绍一些正确的示例:

1.子网掩码(IP subnet mask)

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

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

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

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

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

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

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位的路由(已经遇到好多人跟我纠结这种问题,唉,网络世界,其实难寻知己)

原文博客:http://blog.sina.com.cn/s/blog_bf5ae9030101cy25.html

责任编辑:张存 来源: 新浪微博
相关推荐

2023-09-13 10:41:24

子网掩码网络

2015-03-25 12:02:29

VLSM可变长子网掩码子网划分

2009-09-27 10:54:06

CCNA基础IP地址

2020-07-02 16:14:37

IP地址子网掩码计算

2020-07-03 09:16:13

OSPF邻居子网掩码

2010-08-24 13:14:43

网络IP地址配置

2011-05-31 13:15:00

子网

2011-05-31 13:14:57

子网掩码

2018-07-12 09:56:39

DNS服务器端口

2019-07-30 09:27:38

子网子网掩码 IP

2014-08-29 09:39:59

路由掩码

2010-01-15 14:38:27

交换机子网掩码故障

2019-09-29 00:04:57

网络VLAN三层交换机

2019-07-01 05:02:34

IP地址子网掩码 网关

2021-07-02 09:05:16

网络技术网络协议网络

2009-12-22 17:46:56

Fedora 9嵌入式

2019-01-28 09:43:21

IP地址子网掩码

2011-04-08 10:10:26

CIDR路由

2019-09-26 05:03:28

vlan三层交换机网关

2011-04-08 14:53:55

ACL
点赞
收藏

51CTO技术栈公众号