我正在尝试对 Linux 桥接进行一些测试。我有一台带有两个 NIC(eth1/eth2)的服务器,我想将它们桥接在一起,使用多个 VLAN 标记并为每个 VLAN 中的虚拟接口分配一个 IP 以供我 ping。
我目前有这个:
ip link add br0 type bridge vlan_filtering 1
bridge vlan add dev br0 vid 1000 self
bridge vlan add dev br0 vid 1001 self
bridge vlan add dev eth1 vid 1000 pvid
bridge vlan add dev eth2 vid 1000 pvid
bridge vlan add dev eth1 vid 1001 pvid
bridge vlan add dev eth2 vid 1001 pvid
我觉得这座桥还不错
bash-5.0# bridge vlan
port vlan ids
eth1 1000 PVID
1001 PVID
eth2 1000 PVID
1001 PVID
br0 1000 PVID
1001 PVID
但是现在我想把可以 ping 到 vlan 1000 和 vlan1001 的东西放进去测试,试图用虚拟接口来做这件事,但似乎行不通
有什么建议吗?我认为桥接配置很好。我们希望所有内容都带有标签
答案1
我假设您的交换机端有一个中继模式,允许 VLAN 1000 和 1001 以及 LACP 端口通道?
如果您没有使用 netplan,这里有一个网络配置文件供您使用:
user@ubuntu-01:~$ cat /etc/network/interfaces
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto bond0
iface bond0 inet manual
slaves eth0 eth1
bond_mode 802.3ad
bond_miimon 100
auto vlan1000
iface vlan1000 inet manual
vlan_raw_device bond0
auto vlan1001
iface vlan1001 inet manual
vlan_raw_device bond0
auto br1000
iface br1000 inet static
bridge_ports vlan1000
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.254
dns-nameservers 8.8.8.8
auto xenbr1001
iface xenbr1001 inet manual
bridge_ports vlan1001
#IP IF NEEDED
#otherwise you may assign this bridge to the related VMs, containers etc
address 192.168.2.200
netmask 255.255.255.0
要应用,只需使用 ifup:sudo ifup bond0; sudo ifup br1000; sudo ifup br1001;
或者
重启网络服务
或者
重启机器
答案2
简单的方法是使用 netplan。
我给你举一个如何使用 Netplan 配置 VLAN 的例子,要创建 VLAN 接口,你需要遵循以下基本步骤:
- 配置桥接接口,这是因为虚拟接口存在于同一个物理接口上
- 创建子接口来链接特定的VLAN。
- 配置每个子接口并分配给虚拟接口
- 将每个虚拟接口链接到 VLAN ID 和物理接口
network:
ethernets:
# Disable DHCP to set IP address on interface enp6s0f0
enp6s0f0:
dhcp4: false
# Disable DHCP to set IP address on interface enp6s0f1
# Set Static IP Address.
enp6s0f1:
dhcp4: false
addresses: [192.168.0.10/24]
gateway4: 192.168.0.254
bridges:
# Create Bridge br0 on enp6s0f0
br0:
# Allow Bridge interface get IP address from DHCP using VLAN 0 / not tag
dhcp4: true
dhcp6: false
interfaces: [enp6s0f0]
# Create Bridge br0.10
br0.10:
# Link br0.10 to Virtual Interface vlan.10 this is a name only
interfaces: [vlan.10]
# Set static IP address on Virtual Interface
addresses: [192.168.1.10/24]
gateway4: 192.168.1.254
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
parameters:
stp: false
forward-delay: 0
# Create Bridge interface br0.20
br0.20:
# Link br0.20 to Virtual Interface vlan.20 this is a name only
interfaces: [vlan.20]
parameters:
stp: false
forward-delay: 0
#Link virtual interface to VLAN
vlans:
# Link virtual interface vlan.10 and VLAN 10
vlan.10:
link: enp6s0f0
id: 10
# Link virtual interface vlan.20 and VLAN 20
vlan.20:
link: enp6s0f0
id: 20
version: 2
在此示例中,一些虚拟接口没有 IP 地址。如果需要设置 IP 地址,则可在子接口上设置br0.X。