10.1.1.0/31这个地址到底能不能用?31位长度的掩码是怎么回事?

简介: 10.1.1.0/31这个地址到底能不能用?31位长度的掩码是怎么回事?


前面发了一篇文章(无类别域间路由 (CIDR):Internet 地址分配和聚合计划),里面有张图引起了一定争议。

争议的点主要集中在n.n.n.x/31这一条,后面备注是“点对点链路”。很多人就问了:一般点对点链路用的都是30位的掩码啊,这博主真没文化,误人子弟。

相信大家在学网络的时候,培训人员一般都会说一个地址段内可用地址的计算方式,比如正常1个C类地址段192.168.1.0/24,主机位是8位,可用地址数量为2^8 - 2 = 254个。地址池内有地址192.168.1.0 - 192.168.1.255共256个,其中192.168.1.0是网络地址(网络号),192.168.1.255是广播地址,这2个就是要从256个地址中减掉的2个地址,所以我们常见的地址范围就是192.168.1.1 - 192.168.1.254。

也正是因为上述原因,我们常用的最长掩码就是30位,这样主机位有2位,可用地址数量就是2^2 - 2 = 2 个。一般的互联链路就是这么配置的,比如192.168.1.0/30网段,大家会习惯用192.168.1.1和192.168.1.2去作为互联地址。

还按照上面的计算方法,当掩码长度是31位时,可用地址数量就是2^1 - 2 = 0 个,10.1.1.0/31对应的两个地址10.1.1.0和10.1.1.1,一个是网络号,一个是广播地址,没有可用的主机地址。

但RFC文档不能瞎写啊,厂商是要按照这个规范开发设备协议栈的,让我们来看看H3C是怎么实现的。正好MSR810又可以上场了。

我们直接在接口下配置IP地址为10.1.1.0/31,发现可以直接配置,没有任何报错。

怎么样,不吹牛的说,我相信超过90%的人都是第一次见10.1.1.0/31这样的IP地址。

那10.1.1.0/30和10.1.1.3/30的地址能不能配置呢?

好家伙,10.1.1.0/30直接配上了,10.1.1.3/30因为是广播地址不能配置。那就测试一下业务访问情况吧。

我们按照上图所示连接设备,并配置相关的接口IP地址,其中SW设备使用VLAN虚接口vlan-inf1。

先从RT2测试点对点链路的连通性。

确认连通性正常,ARP学习正常。

抓包查看通信过程,首先是二层广播查找10.1.1.1的ARP信息。

然后10.1.1.1响应请求。

后面就是正常的ICMP交互报文了。

我们再看30位掩码的这边。

虽然可以ping通,但是没有ARP表项信息。

通过抓包,我们发现,11.1.1.1发出的每一个ICMP请求报文都是二层广播报文,而且没有ARP请求报文。但是每个响应报文都是正常的单播报文。

那这样会有什么问题呢?

我们给设备增加一条路由,会发现无法通信。

此时再抓包查看,发现有ARP请求报文了,而且响应也是正常的。但是就是没有报文发出来,为什么呢?我们看一下FIB表项。

去往10.1.1.0/31的下一跳是11.1.1.0,但是11.1.1.0有一个32位掩码的主机条目,下一跳就是接口本身的11.1.1.1,而11.1.1.1/32是设备自身的接口地址,下一跳就是127.0.0.1,设备上没有ARP表项,所以转发不出去。

为什么没有ARP表项,因为设备认为11.1.1.0/30这个地址是一个网络地址号。

那我们把11.1.1.0/30换成标准的互联地址11.1.1.2/30再测试一下。

可以看到ARP表项和路由表项都正常了。那如果把SW和RT1的互联地址换一下呢?

啊哦,VLAN虚接口配不了这个地址。但是在MSR810上面就是可以的,说明设备间还是有些差别的。

同样,有些非点对点接口也是不支持配置31位掩码的。

2GFH_COR_SW_2(conf1g-1f)#ip add 1.1.1.1 255.255.255.254
% Warning: use /31 mask on non point-to-point interface cautiously
ZGFH_COR_SW_2(config-if)#ip add 1.1.1.0 255.255.255.254
% Warning: use /31 mask on non point-to-point interface cautiously

简单总结一下,30位掩码长度的互联地址还是比较规范的使用方式,部分场景下可能可以配置网络号到接口上,但通信异常。31位掩码长度仅适用于点对点链路,非点对点接口无法配置,如果能配置31位长度的掩码,那路由转发也是和正常一样的。


相关文章
|
存储 缓存 网络协议
Linux系统之ARP命令的基本使用
【7月更文挑战第2天】Linux系统之ARP命令的基本使用
463 3
|
负载均衡 数据库连接 Linux
confluence与jira部署详解
confluence与jira部署详解
confluence与jira部署详解
|
4月前
|
安全 网络安全
别慌!浏览器提示证书风险这样解决
不少朋友用 360 浏览器时遇到过这种情况,其实很多时候是电脑系统设置 “闹脾气” 啦。比如电脑时间设置错了,证书和系统时间对不上号,浏览器自然就发出警报。这时,只需简单几步,点击更改日期和时间设置,重新打开网页,说不定风险提示就消失得无影无踪。
1302 6
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
251279 0
|
负载均衡 网络协议 网络架构
|
7月前
|
运维 数据可视化 开发者
Dpanel:Star2k,短短时间就被大家称为GitHub开源神器!轻量化Docker面板,还在等什么
如今的软件开发和运维领域,Docker容器技术已经成为一种主流的解决方案,它允许开发者和系统管理员以更高效、更灵活的方式部署和管理应用程序。然而,Docker的命令行界面虽然强大,但对于某些用户来说可能不够直观。今天,我们要介绍的开源项目——dpanel,就是一个轻量化的Docker可视化管理面板,它以其简洁、高效的特点,为用户提供了一个易于操作的界面来管理Docker容器和镜像。
325 0
|
10月前
|
监控 网络协议 算法
一文带你了解OSPF重分布技术
一文带你了解OSPF重分布技术
246 0
一文带你了解OSPF重分布技术
|
10月前
|
网络协议 程序员 数据库
什么是公网IP和内网IP
【10月更文挑战第27天】公网IP与内网IP是网络通信中的两个重要概念。公网IP是互联网上的唯一标识,而内网IP仅在局域网内部有效,用于局域网内的设备通信。由于IPv4地址资源有限,通常一个公司或家庭只有一个公网IP,内部设备通过NAT(网络地址转换)技术共享该公网IP访问互联网。这样不仅节省了IP资源,还提高了网络安全性和稳定性。
830 0
|
网络协议 网络架构
【网络工程师配置篇】BGP联盟配置案例及分析(超级干货)
【网络工程师配置篇】BGP联盟配置案例及分析(超级干货)
509 2
|
运维 Linux 程序员
Linux查看log日志命令总结
Linux查看log日志命令总结
696 1