如何配置 macvlan 接口获取 IP?

如何配置 macvlan 接口获取 IP?

我在 4.4 内核的 ubuntu 16.04 上。我尝试查看如何启动 macvlan 接口,但尚未成功。这些是我用来创建和启动接口的步骤。

  1. ip link add mymacvlan1 link wlan0 type macvlan mode bridge
  2. ifconfig mymacvlan1 192.168.1.56 up
  3. route add default gw 192.168.1.1 mymacvlan1

当我输入第 3 条命令时,我的 wifi 连接断开了。我不确定发生了什么。此外,在步骤 (1) 之后,如果我只是执行ifconfig mymacvlan1 up然后执行dhclient mymacvlan1,它就会冻结在那里。如何让 macvlan 接口自动从 DHCP 获取 IP?

任何帮助都感激不尽!谢谢!

答案1

Macvlan 不是为在无线接口上工作而构建的。原因是所有 AP 都会拒绝来自未通过身份验证的 MAC 地址的帧,而 macvlan 的整个目的正是为新子接口提供自己的 MAC 地址,与物理接口的 MAC 地址不同。因此,当您尝试在 macvlan 接口上启用默认网关时,您会自动拆除 wlan0 接口上的原始网关(记住规则:)one default gateway per routing table only,您将无法连接,这并不奇怪。

为了避免这个问题,你应该使用一个 ipvlan而是使用物理接口的 mac 地址。这里您将找到一个有关如何设置它的详细示例,我相信这个示例非常适合您。

假设你的 wifi 接口名为wlan0

ip link add link wlan0 ipvl0 type ipvlan mode l2
ip link set dev ipvl0 up
ip addr add 192.168.73.201/24 dev ipvl0

(我的 LAN 是 192.168.73.0/24,请根据需要进行更改以适应您的情况),您还可以将默认网关更改为可在新的虚拟接口上访问,而不是旧的物理接口:

ip route del default
ip route add default via 192.168.73.1 dev ipvl0 src 192.168.73.201 metric 1

唯一值得注意的评论是我使用了模式 L2:ipvlan 有操作模式,L2、L3、L3S(别介意一般说它们有两种模式,还有 L3S,它与 L3 类似,但允许操作iptables/conntrack)。L2 和 L3 之间的区别在于 L2 允许虚拟接口桥接与物理接口相同,这意味着它可以具有与物理接口位于同一子网中的地址L2 流量正确中继。L3 模式则相反不是中继 L2 流量,并需要配置为 IPv4 路由器:不同的子网,需要设置路由等等。大多数时候,麻烦多于价值。

顺便说一句,有一个潜在的无线的界面只是仅有的合理使用案例ipvlans代替麦克维兰斯在其他情况下,只需坚持麦克维兰斯

相关内容