Systemd 网络 VLAN 配置

Systemd 网络 VLAN 配置

我正在尝试在 debian 9 上使用 systemd networkd 设置以下内容:

  • 来自 DHCP 服务器的接口 eth0 IP 地址
  • eth0 上的接口 vlan5 vlan id 5,具有静态 ip 地址:172.16.0.1

这是配置:

/etc/systemd/network/20-wired.network

[Match]
Name=eth0

[Network]
DHCP=ipv4
VLAN=vlan5

/etc/systemd/network/vlan5.netdev

[NetDev]
Name=vlan5
Kind=vlan

[VLAN]
Id=5

/etc/systemd/network/vlan5.network

[Match]
Name=vlan5

[Network]
DHCP=no
Address=172.16.0.1/24

当我执行时ip addr show

4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 78:a5:04:f1:12:46 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.31/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 2854sec preferred_lft 2854sec
    inet 192.168.1.85/24 brd 192.168.1.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 2a02:a03f:8584:e200:7aa5:4ff:fef1:1246/64 scope global deprecated mngtmpaddr noprefixroute dynamic
       valid_lft 56463sec preferred_lft 0sec
    inet6 fe80::7aa5:4ff:fef1:1246/64 scope link
       valid_lft forever preferred_lft forever
5: vlan5@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 78:a5:04:f1:12:46 brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.1/24 brd 172.16.0.255 scope global vlan5
       valid_lft forever preferred_lft forever
    inet 169.254.243.53/16 brd 169.254.255.255 scope global vlan5
       valid_lft forever preferred_lft forever
    inet6 fe80::7aa5:4ff:fef1:1246/64 scope link
       valid_lft forever preferred_lft forever

这证实了 eth0 从我们的 dhcp 获得了一个 IP 地址,无论出于何种原因,他甚至有 2 个 IP 地址:192.168.1.31 和 192.168.1.85,但至少它可以工作。

Vlan5也有2个IP地址:172.16.0.1/24和169.254.243.53/16。如果我使用 IP 172.16.0.15 连接此 VLAN 上的主机,则无法访问 172.16.0.1。

如果我连接一个ip为169.254.243.55的主机,我可以通过169.254.243.53访问该主机,所以看起来vlan至少是有效的。

但我不明白为什么这个169.254.243.53地址被添加到vlan5接口以及为什么我无法访问172.16.0.1。有任何想法吗?

答案1

我自然不知道你的精确的设置,但我认为这里发生了两件事。我的设置与您的设置类似,因为我有一个本机(未标记)VLAN,其子网为 192.168.1.0/24,而 VLAN20 则在子网 192.168.2.0/24 的同一接口上运行。

首先,169.254.243.53 地址是自动分配的链路本地地址。我已经在我的设备上禁用了此功能,LinkLocalAddressing=no如下所示:

# cat eth0.network 
[Match]
Name=eth0

[Link]
RequiredForOnline=yes

[Network]
Address=192.168.1.14/24
Gateway=192.168.1.1
DHCP=no
DNS=192.168.1.7
NTP=192.168.1.7
LLDP=yes
EmitLLDP=yes
LinkLocalAddressing=no
VLAN=vlan20

我是不是在该设备上使用 DHCP 来配置接口,因此我必须配置 DNS、NTP 和默认网关等内容,这让我想到第二件事:您的路由表是什么样的,即 , 的ip route输出两个都设备?

相关内容