wireshark 网络分析: 从一道面试题开始说起 相关的疑问. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
echoless

wireshark 网络分析: 从一道面试题开始说起 相关的疑问.

  •  
  •   echoless 2023 年 2 月 9 日 1442 次点击
    这是一个创建于 1171 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://tianshuang.me/2017/03/%E4%BB%8E%E4%B8%80%E9%81%93%E9%9D%A2%E8%AF%95%E9%A2%98%E5%BC%80%E5%A7%8B%E8%AF%B4%E8%B5%B7/index.html



    原作者分析了 B 可以访问 A, 但没有分析 A 是否能访问 B. 链接的作者分析的貌似是 A 可以访问 B.

    但是我做了类似的设置, 发现 A ping B 是不行的, 但是 A 可以得到 B 的 mac address.

    我的疑问是, A 能访问 B 么, 为什么 A 有了 B 的 mac address 仍然 ping 不通. 多谢
    13 条回复    2023-02-10 20:25:39 +08:00
    iBugOne
        1
    iBugOne  
       2023 年 2 月 9 日 via Android   1
    A 不能 ping 通 B 是因为收不到 B 给出的 echo-reply ,实际上 A 发出的 echo-request 是正常到达 B 的
    echoless
        2
    echoless  
    OP
       2023 年 2 月 9 日
    @iBugOne 我 wireshark 抓包确实是这样的, 为什么 B 给出的 echo reply 到不了 A 呢?

    A 10.10.15.129, 网段 (0)1-254(255)
    B 10.10.15.3, 网段 (0)1-62(63)

    B 给出的 echo reply 以为 A 是一个子网的, 直接就发包了, 但实际上要通过 gateway 才行.

    这样理解好像是通了.
    ThirdFlame
        3
    ThirdFlame  
       2023 年 2 月 9 日   1
    你说反了。 B 给出的 echo reply 以为 A 不在一个子网的,就把数据包(目的 IP 是 A ,目的 MAC 是网关)发给了网关( gateway )。
    网关( gateway )收了之后发现,说 B 你是不是傻了,你和 A 同一个网段,你自己发去。(当然也有的网关配置的可以提替转发)
    paradoxs
        4
    paradoxs  
       2023 年 2 月 9 日   1
    B 给出的 echo reply 到不了 A 是因为 A 和 B 属于不同的网段:A 的网段为 10.10.15.129 (0)1-254(255),而 B 的网段为 10.10.15.3 (0)1-62(63)。
    两个网段之间的数据传输需要通过路由器,因此,A 和 B 之间的通信需要通过路由器进行转发才能实现。另外,A 的子网掩码 255.255.255.192 也决定了它和 B 不属于同一网段,因此 B 向 A 发送的 echo reply 也不会收到响应。
    echoless
        5
    echoless  
    OP
       2023 年 2 月 9 日
    @ThirdFlame 我从 B 抓包看了一下, 大佬说的是正确的. 的确发给了 gateway, ip 是 A 的. 但是为什么 gateway 认为 B 和 A 同一个网段呢? 多谢!
    echoless
        6
    echoless  
    OP
       2023 年 2 月 9 日
    @paradoxs A, B 属于不同的子网这个理解的, 问题在于, 是 B ping A 是通的, A ping B 是不通的.
    ysc3839
        7
    ysc3839  
       2023 年 2 月 9 日 via Android   1
    @wuhaoecho
    “为什么 gateway 认为 B 和 A 同一个网段”
    要看 gateway 上面是怎么配置的
    echoless
        8
    echoless  
    OP
       2023 年 2 月 9 日 via Android
    @ysc3839 我自己弄的两台电脑 gateway 就是路由器 默认配置
    ThirdFlame
        9
    ThirdFlame  
       2023 年 2 月 10 日   1
    gateway 是根据自己的掩码判断的。 正确的网络配置中,同一个局域网络内所有设备(含网关)的掩码都是一致的,如果不一致就会出现所谓的单通故障。
    echoless
        10
    echoless  
    OP
       2023 年 2 月 10 日
    @ThirdFlame 多谢大佬. 看了一下路由器是有子网掩码的(之前忽略了)

    从 web 登陆路由器看到的路由器的信息:

    防火墙 IP 地址:192.168.0.1
    子网掩码:255.255.255.0
    LAN 口 MAC 地址:2C-61-04-3C-0F-85
    DHCP 地址池范围:192.168.0.2~192.168.0.254

    这样以来算是明白了. 我之所以没弄明白, 是因为原作者和链接的博客, 都没有提路由是怎么设置的. 而这个也是 A 和 B 怎么通的关键.
    echoless
        11
    echoless  
    OP
       2023 年 2 月 10 日
    @ThirdFlame 问题又来了, 我尝试复盘一下. 发现还是不通.

    原书解释 B ping A,

    >B 收到了 A 发出的 ARP 广播,这个广播查询的是 B 的 MAC 地址。这是因为在 A 看来,B 属于相同子网,同子网通信无需默认网关的参与,只要通过 ARP 获得对方 MAC 地址就行了。这个包也表明默认网关成功地把 B 发出的 ping 请求转发给 A 了,否则 A 不会无缘无故尝试和 B 通信。

    https://blog.csdn.net/weixin_34122548/article/details/90542241

    B ping A 的时候, 包为什么能从 B 到 A, 在 A 看来 B 事另一个子网的(超出了自己的网段), 但是对路由来讲,B 是同一个子网, 为什么给他转发了呢?
    ThirdFlame
        12
    ThirdFlame  
       2023 年 2 月 10 日   1
    @wuhaoecho #11 你已经自己把自己搞乱了。

    预设条件 gateway 10.10.15.1/24 A 10.10.15.129/24 B 10.10.15.3/26
    你里面涉及到了三层通信和二层通信两层的东西。

    gateway 和 A 认为局域网掩码是 255.255.255.0(也就是 24 位掩码),那么即使他们不主动发起 ARP 请求,通过监听到 B 发出的 ARP 请求广播,也能够了解到 B 的 MAC 地址,从而直接通过二层向 B 发送数据。

    而 B 认为局域网掩码是 255.255.255.224(也就是 26 位掩码),认为 gateway 和他一个网段,而 A 不是。 那么二层通信是发送不给 A 的,只会通过三层通信,将数据包发送个 gateway ,请 gateway 转发。
    echoless
        13
    echoless  
    OP
       2023 年 2 月 10 日
    @ThirdFlame 感觉你这个事说清楚了, 那个书主要讲 wireshark 了, 没有讲 gateway 自己的掩码 (也可能是作者默认是大家都懂的, 但是我不懂...)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2589 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 41ms UTC 10:36 PVG 18:36 LAX 03:36 JFK 06:36
    Do have faith in what you're doing.
    ubao msn 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