如何阻止桥接配置中的以太网接口通过 DHCP 获取 IP 地址

如何阻止桥接配置中的以太网接口通过 DHCP 获取 IP 地址

我正在尝试在桥接配置中配置 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 上运行了一年多。

约里奥

相关内容