如何在Arch Linux和Manjaro上创建和使用网络桥梁

时间:2020-02-23 14:44:32  来源:igfitidea点击:

Bridge是将两个或者多个网络接口联合在一起的内容。
网络桥接主要用于虚拟化,以允许虚拟机访问外部网络。
不同的工具可用于在Linux World中创建和配置网络桥,但它们因我们使用的Linux发行而异。
可以在ARCH Linux和Manjaro的相关发行版上使用的最常用工具包括:BRCTL工具来自Bridge-Utils Package.NetCloilIP工具工具工具工具库。

我们将使用NetCtl工具或者直接编辑配置文件来实现结果。
在此处使用的示例中,我将创建一个名为BR10的桥梁,然后在桥中添加接口ENO1和TAP0。
然后,我将通过将带有KVM推出的虚拟机添加到桥梁的工作状态。

第1步:安装桥接工具

让我们开始。
首先是首先,让我们确保我们安装了Bridge-Utils,我们将用于查看创建的桥梁的详细信息。

sudo pacman -S bridge-utils

第2步:创建桥:

在/etc/netctl /目录中创建网桥文件。
我会命名我的桥梁KVM-Bridge,任何名字都会好的。

$sudo vim /etc/netctl/kvm-bridge

添加以下内容更改BR10使用接口桥接我们正在创建,ENO1和TAP0带有接口,我们正在添加到网桥,IP网络信息与网络详细信息:

Description="Bridge Interface br10 : eno1,tap0"
Interface=br10
Connection=bridge
BindsToInterfaces=(eno1 tap0)
IP=static
Address='192.168.1.105/24'
Gateway='192.168.1.1'
DNS='192.168.1.1'
MACAddressOf=eno1
## Ignore (R)STP and immediately activate the bridge
SkipForwardingDelay=yes

macaddressof = eno1将确保桥接界面始终使用接口ENO1的MAC地址。
如果我们希望桥接接口唯一的MAC地址,则可以删除此行。
我添加了它,因为我的网络中的MAC地址过滤,使Bribr BR10具有物理ENO1接口的MAC地址将允许我使用桥BR10具有互联网访问。

我们可以通过将其添加到"bindstointerfaces"选项行来介绍任何网络设备的组合。

如果我们想在有线接口上启用静态IP配置文件,无论是连接电缆是否已连接,请将下面的配置文件添加到个人资料中:

SkipNoCarrier=yes

如果我们使用DHCP协议配置要获取的IP地址信息,则配置将如下所示:

Description="Bridge Interface br10 : eno1,tap0"
Interface=br10
Connection=bridge
BindsToInterfaces=(eno1 tap0)
IP=dhcp
# If you want also for DHCPv6,uncomment below line
#IP6=dhcp

以下配置将使用DHCP并分配ENO1网卡的桥接MAC地址。

Description="Bridge Interface br10 : eno1,tap0"
Interface=br10
Connection=bridge
BindsToInterfaces=(eno1 tap0)
IP=no
ExecUpPost="ip link set dev br0 address $(cat /sys/class/net/eno1/address); IP=dhcp; ip_set"
ExecDownPre="IP=dhcp"

第3步:删除添加到桥梁的接口的IP; eno1.

我的主要物理以太网接口是ENO1.
由于我添加了此接口来桥接,因此我必须删除其IP地址。
我们可以通过编辑网络配置文件并添加该行来执行此操作:

set IP=no

或者,我们可以使用NetworkManager重置ENO1接口。
要通过转到所有设置>网络>网络>接口NameClick对界面的设置,我是eno1然后忘记重置

如果我们在网络管理器界面上提供的接口,请勿离开,请参阅下面的屏幕截图:

第4步:启动kvm-bridge

sudo netctl start kvm-bridge

第5步:设置配置文件以设置开机启动

sudo netctl enable kvm-bridge

如果我们对配置文件进行了更改,则重新启用它,因为配置文件文件的更改不会自动传播到服务文件:

sudo netctl reenable kvm-bridge

我们可以打开NetworkManager以查看桥接接口是否正常工作。
可以使用Bridl命令来查看系统中配置的桥接器

$sudo brctl show
bridge name bridge id STP enabled interfaces
br10 8000.a01d48fad8df no eno1
virbr0 8000.5254007baa03 yes virbr0-nic

查看桥接接口:

$sudo bridge link
2: eno1 state UP : <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 master br10 state forwarding priority 32 cost 19 
5: virbr0-nic state DOWN : <BROADCAST,MULTICAST> mtu 1500 master virbr0 state disabled priority 32 cost 100