我正在尝试在桥接配置中配置 openvpn。第一步需要创建桥接接口 (br0),将物理以太网接口 (eth0) 和逻辑 tap0 接口桥接在一起。这可以通过简单的脚本完成,但我想使用不太流行的方法,完全通过 /etc/network/interfaces 文件配置桥接接口(在 Debian Linux 上)。
因此,我从 /etc/network/interfaces 中删除了所有 eth0 定义,并用以下 br0 定义替换:
auto br0
iface br0 inet static
pre-up openvpn --mktun --dev tap0
address 10.0.0.1
netmask 255.255.255.0
bridge_ports eth0 tap0
post-down openvpn --rmtun --dev tap0
这正如我预期的那样工作,但只有一个问题:接口 eth0 是桥接接口 br0 的一部分和它还从我的 DHCP 服务器(位于 eth0 所连接的同一 LAN 上)接收它自己的 IP 地址。
我的问题是:如何阻止 eth0 接口获取它自己的 IP 地址?(它应该只是 br0 桥的一部分)。
答案1
将此行添加iface eth0 inet manual
到/etc/network/interfaces
文件中。这将告诉网络管理器忽略 eth0 文件。
(编辑以包含缺失的“inet”。)
答案2
在 Debian 11 上不起作用!enp2s0 一直占用 DHCP 地址。最后我可以提出可行的解决方案了……
我不知道上述配置失败的原因,但我猜测它与 dhcpcd 服务器有关。
让我首先展示一下我的网络设置。
这是我的 /etc/network/interfaces 文件:
auto lo
iface lo inet loopback
allow-hotplug enp2s0
iface enp2s0 inet manual
pre-up ifconfig $IFACE up
pre-down ifconfig $IFACE down
allow-hotplug enp3s0
iface enp3s0 inet manual
pre-up ifconfig $IFACE up
pre-down ifconfig $IFACE down
# The bridging interface br0
source /etc/network/interfaces.d/*
现在这是我的复杂的 /etc/network/interfaces.d/br0 文件:
# I want dhcp from corporate network, static IPv4 for accessing some hardware near me and IPv6 address on the bridge
auto br0
iface br0 inet dhcp
bridge_ports enp3s0 enp2s0
bridge_stp off # disable Spanning Tree Protocol
bridge_waitport 0 # no delay before port available
bridge_brdigeprio 0
bridge_fd 0 # no forward delay
pre-up ip addr flush dev enp3s0
pre-up ip addr flush dev enp2s0
# some numbers were replaced by X, so do not copy!
iface br0 inet6 static
address fd01:XXXX:2015:XXXX:def4:12ff:XXXX:XXXX
netmask 48
iface br0 inet static
address 192.168.8.100
netmask 255.255.255.0
gateway 192.168.8.254
metric 250
最后打开 /etc/dhcpcd.conf 查找 deniedinterfaces 并相应地更改您的模式(我的如下):
denyinterfaces enp*
我认为在大多数情况下禁用 enp* 接口就足够了,但有人可能想要像我一样进行复杂的设置,这在我的 Debian 上运行了一年多。
约里奥