[科普] 结尾为 0 或者 255 的 ip

3 天前
 maybeonly

比如说,可以有超过/24 的子网,例如 192.168.0.0/23 ,这里边的 192.168.1.0 和 192.168.0.255 就可以正常分配给主机了!

但是会有人发现,1.0.0.0 甚至都可以 ping 通!这总不可能在 0.0.0.0/7 的子网吧?所以说,实际上,

就像把大象装冰箱里一样,实际上要以某个 ip 通信,只要三个步骤:
1. 别人把到这个 ip 的数据包发给你
2. 系统能处理这些数据包(例如正确转给上层应用程序)
3. 你能以这个 ip 为源地址把返回的数据包发回去
是不是很简单?

而传统的“在以太网口上配置 ip”无非是把这几个步骤一起完成了而已。 配置正确的 ip 的话,路由器会通过 arp 协议询问对应 ip 的 mac 地址。而你的小鸡持有这个 ip ,在正常情况下,小鸡会回应对应关系。接下来,路由器就会通过 mac 地址,把送到这个 ip 的数据包发给你了。

例如,配置了 192.168.33.2 ,网卡 mac 地址是 aa:bb:cc:11:22:33 ,路由器是 192.168.33.1 。那么,他会问: arp ,谁有 192.168.33.2 ?告诉 192.168.33.1 。 这时候你的小鸡就会说,我我我,我有 192.168.33.2 ,我的 mac 地址是 aa:bb:cc:11:22:33 ! 之后路由器就会把到 192.168.33.2 的数据包发到 aa:bb:cc:11:22:33 了,而交换机会把这个数据包给你的小鸡。 这就完成了第一步。

第二步呢?小鸡上有配置 192.168.33.2 ,那么就把数据包交给上层协议栈。如果,我是说如果,万一没有呢?他会视情况转发(像路由器那样)或者直接丢弃,反正不给上层。 一旦交给应用程序,那么对应的应用程序就可以处理这个数据包。这样就完成了第二步。

至于第三步,既然你配置的 ip 和上游(商家)协商好了,他自然允许你往出发,那么就很轻松发出去了。如果他配置错了,或者你配置错了,数据包丢了,丢了就丢了,结果就是小鸡不通,然后跑去骂商家,商家说上游问题,然后给你点补偿(笑)。

到了这儿思路是不是就开阔了。 传统以太网是通过 arp 来决定数据包去哪里的,那么有没有其他办法呢? 有,当然有,那可太有了。

最简单的,可以静态,就是写死。比如说我就写死 192.168.55.8 到 192.168.33.2 ,那么路由器也会把发往 192.168.55.8 的数据包给你丢过来。至于接下来怎么处理?上面说了,转发,或者丢了,看你心情。

其他的呢?你可能听说过 bgp ,那么 bgp 其实就是宣告路由的方法。打个比方,就是我和邻居说,192.168.66.6 发到我这里哈!那么邻居就会把送到 192.168.66.6 的数据包发给你了。当然,这里省略了很多步骤,但是原理上是这样的。所以,通过 bgp 也可以实现上面的做法。

如果这么玩的话,可就好玩了。比如你可以找你的 100 个朋友,分布在全世界各地,然后到处和邻居喊:1.1.1.1 发到我这里哈!然后都自己处理发到 1.1.1.1 的数据并返回。那么对于其他人来讲,你们都是 1.1.1.1 。恭喜你,明白 anycast 了!(当然,省略了很多细节)

说道这里,感觉这些离自己都有点遥远啊?其实也简单,可以在自己家路由器上绑定个 ip 试试看,例如:ip a a 198.19.253.21/32 dev lo ,然后在这台路由器下面的机器上就可以 ping 通这个 ip 了!神奇吗?快回家试试吧! 当然,其实也不是所有 ip 都可以的。什么 ip 不可以,就交给读者自行思考实验了。

2834 次点击
所在节点    宽带症候群
22 条回复
ScotGu
3 天前
@ShinichiYao #13 宽带 PPPoE 拨号获取的掩码就是 255.255.255.255 这很正常。
只有互联网专线或者 IDC 才会分配/30 或者更大的地址段。
Silicon
2 天前
第一句话就在飞叶子了,“可以有超过/24 的子网”这句话意指是有某种规范要求子网不能超过/24 ,但 Class A/B/C/D 这种东西存在的时候,本身就没有 CIDR ,因为 CIDR 就是对应 classless subnet 的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1142140

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX