在 Linux 中,macvlan 是一种网络虚拟化技术,可以为网络接口创建多个子接口,每个子接口都有自己的 MAC 地址
确保内核支持 macvlan:
首先,你需要确保你的 Linux 内核支持 macvlan。你可以通过查看 /proc/config.gz
(如果存在)或者查看内核源码中的 CONFIG_MACVLAN
选项来检查这一点。如果没有这个选项,你可能需要重新编译内核并启用它。
加载 macvlan 模块:
使用以下命令加载 macvlan 模块:
sudo modprobe macvlan
创建 macvlan 子接口:
使用以下命令创建一个名为 eth0.1
的 macvlan 子接口,其中 eth0
是物理接口,1
是子接口的 VID(VLAN ID):
sudo ip link add link eth0 name eth0.1 type macvlan mode bridge
这里,我们使用了 bridge
模式,这意味着子接口将与物理接口共享同一个 MAC 地址。你还可以使用 private
、vepa
或 passthru
模式,具体取决于你的需求。
配置子接口 IP 地址和路由:
为子接口分配 IP 地址和子网掩码:
sudo ip addr add 192.168.1.10/24 dev eth0.1
设置默认路由(如果需要):
sudo ip route add default via 192.168.1.1 dev eth0.1
启用子接口:
使用以下命令启用子接口:
sudo ip link set eth0.1 up
测试连接:
现在,你应该可以使用新的子接口进行网络通信。你可以使用 ping
或其他网络工具来测试连接。
使子接口在系统启动时自动启用:
要使子接口在系统启动时自动启用,你需要将相关命令添加到 /etc/rc.local
文件中(如果存在)或者创建一个 systemd 服务单元。
如果你遇到任何问题,请检查系统日志(如 /var/log/syslog
或 /var/log/messages
)以获取更多信息。此外,你还可以使用 ip
和 ifconfig
等工具来检查网络接口的状态。