[科普] 结尾为 0 或者 255 的 ip - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maybeonly
V2EX    宽带症候群

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

  •  
  •   maybeonly 100 天前 3595 次点击
    这是一个创建于 100 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如说,可以有超过/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 不可以,就交给读者自行思考实验了。

    22 条回复    2025-07-02 22:51:37 +08:00
    churchmice
        1
    churchmice  
       100 天前   2
    arp 和 bgp/routing table 啥的完全不是一个东西啊
    LoliconInside
        2
    LoliconInside  
       100 天前
    怎么二三层混着说的。。。建议先自己学好了再出来科普
    CloudyKumori
        3
    CloudyKumori  
       100 天前   1
    这是 AI 写的吗
    maybeonly
        4
    maybeonly  
    OP
       100 天前
    @churchmice 当然不是一个东西,但是这里的场景是 arp 引导某个 ip 去某个主机,类似路由的功能。

    @CloudyKumori 怎么可能,ai 写不出这种和主流不同的容易挨骂的东西(笑)

    这个内容是在正经讲台上面向 100+观众讲过的。
    dsx826
        5
    dsx826  
       100 天前 via Android
    好的我用 ipv6
    goodryb
        6
    goodryb  
       100 天前
    有点东西,但混在一起说了, 标题和开头说结尾是 0 、255 IP 的事情,马上又转到 ARP ,然后又是 route
    kuokuoa
        7
    kuokuoa  
       100 天前
    不知所云
    luoyide2010
        8
    luoyide2010  
       100 天前
    不建议为了讲解 A 知识点而引入 B 知识点
    dorothyREN
        9
    dorothyREN  
       100 天前
    这总不可能在 0.0.0.0/7 的子网吧? 为什么不能
    likeflower
        10
    likeflower  
       100 天前
    其实很简单,分为两种场景。
    IPv4 早期有定义网络号和广播地址,场景 1 )是末端接入网络。
    后来公网地址太缺了,场景 2 )互联链路地址调整为/31 ,两端各 1 个,路由器操作系统能认就行。
    这个跟 IPv6 /127 是类似的逻辑
    wy315700
        11
    wy315700  
       100 天前
    @likeflower
    确实浪费 IP 的现象很普遍,找移动申请一个 IP 地址,给的/30 为了给我一个 IP 地址,他们要浪费掉 3 个地址。
    ScotGu
        12
    ScotGu  
       100 天前
    有些设备真不让你用.0 和.255 的 IP 哪怕是/23 的也不行。
    ShinichiYao
        13
    ShinichiYao  
       100 天前
    电信 pppoe 拨号有得到过 255 结尾的 IP ,但是各种奇怪的问题,一大半网站无法访问
    likeflower
        14
    likeflower  
       100 天前
    @wy315700 改为其他掩码(例如/24 )给每个客户的 IP 连续分配也可以,L2 隔离,
    但客户要移机可能要改地址,/30 独立网段没有这个问题
    TossPig
        15
    TossPig  
       100 天前
    嗯,活到老学到老,感谢分享
    cqu1980
        16
    cqu1980  
       100 天前
    如果子网掩码是 23 的话,是存在的,比如 192.168.0.0/23 ( 255.255.254.0 ),192.168.0.255 和 192.168.1.0 就都是一个合法的 ip 。
    thereone
        17
    thereone  
       100 天前
    写的很混乱,看的出来很想说为什么能用 0 或者 255 但是几种没有太大关系技术混在一起说了。
    真想写可以很简单写出来
    1 、在路由器上面接口要使用 0 或者 255 的只能使用/31 的掩码才能使用这两个地址,仅能使用在点对点链路上面,广播或者多路访问使用会导致无法和其他地址通信
    2 、在 loopback 口可以使用/32 的掩码来使用 0 或者 255 表示单一主机地址,通过静态路由或者动态路由可以让其它设备学到路由既可访问该地址
    3 、在采用 PPPOE 的链路环境下会分配 32 位的主机地址所以也可以使用该 0 或者 255 的地址
    4 、在一对一 NAT 环境下也可以使用 0 或者 255 地址
    5 、在 CIDR 超网环境下可以使用已包含的 0 和 255 地址,但 cidr 的网络号和广播地址无法使用
    所以总结以上的就两大类
    1 、点对点的/31 位和点对点的/32 位
    2 、CIDR 超网包含的 0 和 255 算是可用地址非网络号和广播地址
    hwdq0012
        18
    hwdq0012  
       100 天前
    TL;DR
    dcsuibian
        19
    dcsuibian  
       100 天前
    “1.0.0.0 甚至都可以 ping 通!这总不可能在 0.0.0.0/7 的子网吧”

    我感觉这句话读起来有点怪。
    你可能想说的是对于 1.0.0.0 这个地址,无论掩码位是多少都不合法:
    1 、如果<8 ,那么会把 0.0.0.0/8 也包括进去导致不合法
    2 、如果>=8 ,那么掩码无论怎么取 1.0.0.0 也会是某个网段起始地址
    所以 APNIC 那边没法划分。(事实上他应该也做了特殊处理)

    但是我觉得更准确的说法是你不应该关心别人的网段是怎么划分的。

    举个例子,对于 182.255.32.12 这个 IP 来说,如果 IP 地址的持有方将掩码位设为 30 ,那这个地址对他来说是不可用的。因为他是 182.255.32.12/30 这个网段的起始地址。
    但是他一眼看上去就很像个可以正常使用的 IP 地址吧。
    而且 IP 包的首部并不存在网段信息,只有 IP 信息。所以对于发出的机器来说,他并不判断这个 IP 地址最终在哪个网段(有些特殊的比如换回除外)。
    所以对于发出方来说,并不关心也没法关心他最终在哪个网段,有没有可能被用于起始或终止地址。他说是可用的,那就是可用的。
    bao3
        20
    bao3  
       100 天前
    你可
    是想表达啥? arp proxy ?
    ScotGu
        21
    ScotGu  
       100 天前
    @ShinichiYao #13 宽带 PPPoE 拨号获取的掩码就是 255.255.255.255 这很正常。
    只有互联网专线或者 IDC 才会分配/30 或者更大的地址段。
    Silicon
        22
    Silicon  
       99 天前
    第一句话就在飞叶子了,“可以有超过/24 的子网”这句话意指是有某种规范要求子网不能超过/24 ,但 Class A/B/C/D 这种东西存在的时候,本身就没有 CIDR ,因为 CIDR 就是对应 classless subnet 的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1008 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 18:15 PVG 02:15 LAX 11:15 JFK 14:15
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86