V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zzgy
V2EX  ›  问与答

双网口开发板,同时只有一个从一边网口能 ping 通,想不通?

  •  
  •   zzgy · 2018-01-22 22:43:10 +08:00 · 4833 次点击
    这是一个创建于 2257 天前的主题,其中的信息可能已经有所发展或是发生改变。

    买了一块香橙派双网口开发板 R1,每个网口各配一个静态 IP,eth0: 192.168.0.98 和 eth1: 192.168.0.99 ,192.168.0.98 为主网口。

    PC1 设置静态 IP 192.168.0.102, PC2 设置静态 IP 192.168.0.103 。

    两个网口都开放了 DHCP 服务。

    PC1 直连 eth0,可以 ping 通 192.168.0.98 和 192.168.0.99 ,但 PC 直连 eth1,其它几个 IP 都 ping 不通。

    单独把 eth0 关闭,只连 eth1 是可以 ping 通 192.168.0.99 的。

    两个网口都开启,连的 PC 都能通过 DHCP 分到 IP 地址。

    白死不得其解。。。

    11 条回复    2018-01-24 13:36:27 +08:00
    iceheart
        1
    iceheart  
       2018-01-22 23:05:33 +08:00 via Android
    route 命令看一下你就明白了
    zzgy
        2
    zzgy  
    OP
       2018-01-22 23:23:55 +08:00
    zzgy
        3
    zzgy  
    OP
       2018-01-23 01:48:43 +08:00 via Android
    用 route 设置了不同 IP 用不同的网口,但是双网口直接怎么做交换呢?

    root@OrangePizero:~# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.0.55 192.168.0.98 255.255.255.255 UGH 0 0 0 eth0
    192.168.0.103 192.168.0.99 255.255.255.255 UGH 0 0 0 eth1
    root@OrangePizero:~#
    root@OrangePizero:~# ping 192.168.0.55
    PING 192.168.0.55 (192.168.0.55) 56(84) bytes of data.
    ^C
    --- 192.168.0.55 ping statistics ---
    2 packets transmitted, 0 received, 100% packet loss, time 1009ms

    root@OrangePizero:~# ping 192.168.0.103
    PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data.
    64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=1.42 ms
    msg7086
        4
    msg7086  
       2018-01-23 04:37:28 +08:00
    因为你的 ping 从另一个口出去了。
    你的内核不知道你访问某个 IP 要从一口走还是二口走,路由表上说从哪走就从哪走了。

    通常我们会用交换机连接各条线路。
    要不然的话配成点对点模式?这里其实不太明白你的使用场景。
    terra
        5
    terra  
       2018-01-23 07:03:55 +08:00 via iPhone
    要用网桥把两个口桥在以前,然后 IP 配在桥上。DHCP 能分配是因为它抓的二层包。
    twl007
        6
    twl007  
       2018-01-23 08:50:52 +08:00 via iPhone
    zzgy
        7
    zzgy  
    OP
       2018-01-24 00:40:39 +08:00 via Android
    @msg7086 应用场景是要在两个直连的设备之间做协议分析。
    @terra 香橙派的这块双网卡板子内核没开 bridge 配置,需要打开配置,重新编译内核,更麻烦。
    msg7086
        8
    msg7086  
       2018-01-24 02:14:13 +08:00   ❤️ 1
    @zzgy 可以考虑放在不同网段上。比如把这个网络分割成多个 /29,然后就没有奇怪的路由问题了。
    zzgy
        9
    zzgy  
    OP
       2018-01-24 09:48:01 +08:00 via Android
    @msg7086 单两边设备的 IP 和网关都不受控制,唯一能控制的就是开发板。
    msg7086
        10
    msg7086  
       2018-01-24 12:51:56 +08:00
    @zzgy 对啊,你都开 DHCP 了,还控制不了网段?
    zzgy
        11
    zzgy  
    OP
       2018-01-24 13:36:27 +08:00 via Android
    @msg7086 DHCP 对写死的静态 IP 没作用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1197 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:16 · PVG 07:16 · LAX 16:16 · JFK 19:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.