为什么两个以太网接口互相取消?

为什么两个以太网接口互相取消?

我有以下设置:

  • 一台装有 Debian Jessie 且具有静态 IP 的笔记本192.168.1.2用于其以太网接口(通过 GNOME 网络管理器设置连接配置文件)
  • 一台配备 Xubuntu 16.04 两个网络接口的 PC(通过 GNOME 网络管理器设置连接配置文件):
    • 静态IP192.168.1.4- 用于连接我的笔记本或 Raspberry Pi 2(参见下一条)
    • 自动 (DHCP)- 通过 Raspberry Pi 3 上的网桥连接到互联网
  • 配备最新 Rasbian 和静态 IP 的 Raspberry Pi 2192.168.1.3

    /etc/网络/接口

    allow-hotplug eth0  
    iface eth0 inet static  
    address 192.168.1.3
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    
  • Raspberry Pi 3 最新版 Rasbian 和静态 IP 地址192.168.1.2它的 WiFi 接口和以太网接口之间有一个桥接器,这样我的 PC 就可以连接以太网端口(PC 的接口设置为自动 (DHCP))并能够访问互联网。我使用本教程用于设置。

    **/etc/wpa_supplicant/wpa_supplicant.conf*

    network={
      ... // SSID, encrypted password key etc.
    }
    

    /etc/网络/接口

    allow-hotplug eth0  
    iface eth0 inet static  
    address 192.168.1.2
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    

    /etc/dnsmasq.conf

    interface=eth0
    listen-address=192.168.1.2
    bind-interfaces
    server=8.8.8.8
    domain-needed
    bogus-priv  
    dhcp-range=192.168.1.100,192.168.1.254, 12h
    

    /etc/sysctl.conf

    取消注释该行net.ipv4.ip_forward=1

    Iptables 配置

    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE  
    iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT  
    iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT 
    

我遇到的问题是,我似乎无法使用连接到 PC 的两个 Pi,尽管它们连接到不同的网卡,并且它们的 IP 地址也不同同一网络的一部分。Pi 3 上的自动 DCHP 目前已为我的 PC(它所连接的接口)提供了 IP 地址192.168.1.119

我注意到,无论我先将哪个 Pi 连接到 PC,它都能正常工作。第二个连接的 Pi 则不能正常工作(简单的 ping 操作即可提供信息)。接下来,我毫无问题地将我的两个 Pi 连接到我的笔记本电脑 - 一个为我提供了互联网访问(正如预期的那样;为此我关闭了笔记本电脑上的 WiFi 适配器),另一个提供了“正常”的以太网连接。如果已连接,我还可以从一台机器通过 SSH 连接到另一台机器(除了出现上述问题的情况)。

我对网络不是很了解,所以如果能告诉我我哪里做错了,我会很感激。如果我能提供更多信息,请告诉我。

答案1

您不应该在两个不同的接口上使用相同的网络。最简单的设置是为两个 Pi 使用不同的网络(即使是一个小型 /30 网络)。

如果您确实想要一个网络,则有两个选择:

  • 桥接:您可以在 PC 上创建一个桥接设备,并将两个接口添加到桥接器中。现在您必须将您的 IP 添加到桥接器(DHCP 或静态)而不是原始接口。此 IP 可供两条物理线路访问。如果您愿意,您可以在单个接口上拥有多个 IP 地址。整个网络将统一起来,每个设备都可以访问其他所有设备。

  • 子网划分:您可以在路由级别解决问题,而不是使用链路层桥接。您可以在 192.168.1.0/24 下创建两个子网。例如:192.168.1.0/25 + 192.168.1.128/25。两者都有 126 个可路由地址。您可以将第一个范围中的 IP 用于 pi2(192.168.1.3),将第二个范围中的另一个 IP 用于 pi3(例如 192.168.1.130)。您的 PC 将能够访问两者(路由将起作用),从 PC 的角度来看,它几乎与一个 /24 网络相同。但是,两个 pi惯于能够互相访问(除非您特别允许在 PC 上进行 IP 转发)。

如果我误解了你的目标,请澄清一下。分享你的 PC 的路由表和两个 Pi 连接的网络配置会非常有帮助。(ip route showip addr show)。(遗憾的是我无法发表评论)。

答案2

@“后手大师”

同一网络上的重复网卡有丰富的用途!

对于现在(2021 年)发现这一点的人:

我还观察到了 Debian Buster 中的互斥行为,这完全是错误的!是的,在同一网络中添加多个 NIC 时存在潜在的陷阱,但同样的陷阱也适用于桥接或别名 NIC。

这是西南社区的世代交替引入了真正有问题的假设的情况之一,它现在正在浪费我一小时的收入。

我将以旧的 /etc/network/... 样式设置网络。这应该会覆盖我认为在桌面 GUI 中的行为。

我在接口文件中添加了以下内容:

auto enp0s3
iface enp0s3 inet dhcp

auto enp0s8
iface enp0s8 inet dhcp

...并做了#> service networking restart

瞧,它启动并运行了!重启后也是如此!

相关内容