DHCP VLAN 在客户端不起作用?

DHCP VLAN 在客户端不起作用?

我用Linux开发了一个服务器。该服务器是一个 DHCP VLAN 服务器,由两个 VLAN 110 和 120 组成。我试图让它在客户端工作。

我的/etc/network/interfacesVLAN 110

auto lo
iface lo inet loopback

#VLAN 110
auto enp0s9.110
iface enp0s9.110 inet static    
    address 192.168.110.1
    netmask 255.255.255.0
    network 192.168.110.0
    broadcast 192.168.110.255
    vlan_raw_device enp0s9

我的/etc/default/isc-dhcp-serverIPv4 接口

INTERFACESv5="enp0s9.110 enp0s10.120"

/etc/dhcp/dhcpd.conf的 VLAN 110 配置

subnet 192.168.110.0 netmask 255.255.255.0 {
    option domain-name testdom.local;
    option domain-name-servers ns1.testdom.local;
    range 192.168.110.60 192.168.110.100;
    option routers 192.168.110.1;
    option broadcast-address 192.168.110.255;
}

我的客户端位于 Ubuntu 终端上,用于 VLAN 110

# VLAN 110 for Ubuntu Client
auto enp0s8
iface enp0s8 inet dhcp
     gateway 192.168.110.1

重新启动客户端机器...

我跑了ip addr show enp0s8,得到了地址行

inet 169.254.9.100/16 brd 169.254.255.255 scope link enp0s8:avahi

答案1

因为,正如OP的评论中所说,客户端应该获得标记的帧,然后由客户端的系统来取消标记以进行正常操作。这意味着客户端需要一个额外的 VLAN 接口来取消帧的标记。

vlan应该安装该软件包,主要是为了它的插件vlan-interfaces为...提供ifupdown。然后可以通过将网络设置替换为以下内容来配置未标记的接口:

# VLAN 110 for Ubuntu Client
auto enp0s8.110
iface enp0s8.110 inet dhcp
     gateway 192.168.110.1

当遵循此约定(原始接口名称 + vlan id)时,该接口enp0s8将默认用作底层原始/链路接口。这个原始接口永远不应该被分配 IP,因为它没有多大意义(除非您还在线路上收到来自其他 VLAN 的未标记数据包,那就没问题)。

相关内容