网桥MAC地址影响PING吗?

网桥MAC地址影响PING吗?

第一的,请看一下我使用 VirtualBox 所做的设置:

开关0设置 虚拟服务器0设置 每个适配器的接口名称如下所示:

  • 适配器 1 = enp0s3
  • 适配器 2 = enp0s8
  • 适配器 3 = enp0s9
  • 适配器 4 = enp0s10

我使用该设置来实现下图:

网络图

第二,请看一下我为每个VM所做的配置。

当前配置开关0(UbuntuServer 16.04)虚拟机是:

/etc/sysctl.conf:启用 IPv4 转发

net.ipv4.ip_forward=1

/etc/网络/接口:仅用于启动接口和到主机的静态 SSH 连接

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto enp0s3
iface enp0s3 inet manual
auto enp0s9
iface enp0s9 inet manual
auto enp0s10
iface enp0s10 inet manual

auto enp0s8
iface enp0s8 inet static
    address 10.0.0.2
    network 10.0.0.0
    broadcast 10.0.0.255
    netmask 255.255.255.0

/etc/rc.local:创建桥接接口,分配从属接口,并设置桥接接口MAC和IP地址。用于桥接的 MAC 地址是连接到路由器的设备(enp0s3)

#!/bin/sh -e

BRIDGE_IF=br0
UP_IF=enp0s3
DOWN_IF0=enp0s9
DOWN_IF1=enp0s10

ip link add name $BRIDGE_IF type bridge
ip link set dev $BRIDGE_IF up

ip link set dev $UP_IF master $BRIDGE_IF
ip link set dev $UP_IF up

ip link set dev $DOWN_IF0 master $BRIDGE_IF
ip link set dev $DOWN_IF0 up
ip link set dev $DOWN_IF1 master $BRIDGE_IF
ip link set dev $DOWN_IF1 up

UP_MAC=$( cat /sys/class/net/$UP_IF/address )
ip link set dev $BRIDGE_IF address $UP_MAC

ip link set $BRIDGE_IF arp on
ip link set $UP_IF arp on
ip link set $DOWN_IF0 arp on
ip link set $DOWN_IF1 arp on

ip address add 192.168.100.30/24 dev $BRIDGE_IF

exit 0

当前配置虚拟服务器0(UbuntuServer 16.04)虚拟机是:

/etc/网络/接口:设置与主机的 DHCP 和静态 SSH 连接的接口

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto enp0s3
iface enp0s3 inet dhcp

auto enp0s8
iface enp0s8 inet static
    address 10.0.0.3
    network 10.0.0.0
    broadcast 10.0.0.255
    netmask 255.255.255.0

现在,使用上述所有配置,我得到的结果是:

  • 开关0能够 PING 到路由器,但不能虚拟服务器0
  • 虚拟服务器0能够获取 DHCP IP,但无法 PING 到任何地方

如果我更改 br0 MAC 地址开关0到 enp0s9 的 MAC 地址(用于连接开关0虚拟服务器0),这就是我得到的:

  • 开关0虚拟服务器0能够互相 PING 通
  • 开关0无法 PING 到路由器
  • 虚拟服务器0能够获取 DHCP IP,但无法 PING 到路由器

为什么会发生这种情况?任何帮助将不胜感激。谢谢。

相关内容