网络

网络掩码

网络掩码,大家很熟悉。格式跟 IP 地址一样,是 32 位的二进制数,网络部分用 1 表示,主机部分用 0 表示,和 IP 地址同时使用才有意义。
反掩码和通配符 - 图1
可以发现,网络掩码是由 1 和 0 组成,而且 1 和 0 都是连续的。左边的 1 表示网络位,右边的 0 表示主机位。
如果 1 和 0 不是连续的,就是错误的网络掩码,无法正确识别网络子网。比如 255.0.255.0 和 255.170.0.0 。
反掩码和通配符 - 图2

反掩码

接口激活 OSPF 的方法之一,是在区域视图下,使用 network 命令,再加上 IP 地址和通配符掩码。关于通配符掩码,解释的比较粗略:比特位为 0 的需要匹配,比特位为 1 的不需要匹配。这里来深挖一下,查看下产品手册,network 命令说明如下:
反掩码和通配符 - 图3
再来看看设备命令行下的提示:
反掩码和通配符 - 图4
这里就发现有意思的现象,产品手册上的 wildcard mask ,而设备提示的 wild card bits ,既可以翻译为反掩码,又可以翻译为通配符。但是,反掩码和通配符,其实是两个概念,产品手册上的解释:把 IP 地址的掩码反转( 0 变 1 ,1 变 0 ),其实就是反掩码的意思。
那么这里是要填反掩码还是填通配符呢?最有效的方法,就是上设备去敲命令,分别输入反掩码和通配符,看下命令能否配置成功。
反掩码和通配符 - 图5
破案了!反掩码,配置成功。通配符,配置失败,错误提示:网络掩码无效,网络掩码必须要是连续的。
结论:激活接口 OSPF ,是使用反掩码,而非通配符。

通配符

那什么是通配符呢?通配符,格式跟网络掩码一样,要跟 IP 地址结合使用,也是由 0 和 1 组成,0 和 1 可以任意组合,不一定要连续的。0 是需要匹配,1 就不需要匹配。
反掩码和通配符 - 图6
上面的都是通配符,来查找资料和动手实操,验证一下即可。通配符,通常用于 ACL 。先来看看产品手册上的使用说明:
反掩码和通配符 - 图7
这里还特意对通配符进行了解释,以及举例说明。再看看设备命令行上的说明:
反掩码和通配符 - 图8
命令行提示说明,第一行表示源的通配符,第二行 0.0.0.0 表示主机地址,也就是 IP 地址全匹配。
对比名词解释,通配符的范围是大于反掩码的,也就是说,能使用通配符,那就一定能够使用反掩码。下面就来试试,在设备配置上面的四个通配符:
反掩码和通配符 - 图9
这时,可以发现配置命令全生效了,而且 ACL 的配置还产生了对应的变化。以 rule permit source 4.4.4.4 1.2.3.4 为例,说明下配置变化的原因:
反掩码和通配符 - 图10
通配符原则:0 必须匹配,也就是值不能变,1 无需匹配,也就是值可以变化。所以 ACL 匹配的 IP 地址变为 4.4.4.0 。也因为 1 无需匹配,就有多种可能,所以也可以表示为 5.4.4.0 或 5.6.7.4 等。
结论:配置 ACL ,使用通配符。

总结

对比掩码、反掩码、通配符:
反掩码和通配符 - 图11
常用的通配符:
反掩码和通配符 - 图12