使用 MAC VLANs 创建 MAC 地址不同的虚拟网卡

瞳人


发布于 Feb. 25, 2016, 7:16 p.m.

0 个评论

Ubuntu


别名的虚拟网卡由于 MAC 地址与原网卡的相同。本文讲述如何使用 MAC LANs 来创建 MAC 地址不同的虚拟网卡。

需求产生

为了方便服务部署,我在一台服务器上的一张物理网卡上使用别名网卡分配了多个 IP。

1
2
em1    HWaddr 11:22:33:44:55:66  IP 192.168.1.2/24
em1:0  HWaddr 11:22:33:44:55:66  IP 192.168.1.2/24

由于核心路由上的 ARP 表,可能只针对一个 MAC 保留一个 IP 地址。

(太多了。。。以后再补充吧。。。)

解决方法

为了重启后仍然有效,所以写入配置文件 /etc/network/interface

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# The primary network interface
auto em1
iface em1 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 8.8.8.8
        dns-search answ.me

auto em1.1
iface em1.1 inet static
        address 192.168.1.3
        netmask 255.255.255.0
        pre-up ip link add link em1 em1.1 address 9a:71:87:e4:fe:50 type macvlan mode bridge
        post-down ip link del em1.1

注意要点

MAC 地址分为 universally administered addresses 和 locally administered addresses,参见 wiki 百科。 主要就是说自己编造的 MAC 地址的首个 Byte 的倒数第二位要为1。

自己编造的 MAC 地址可以使用如下代码生成:

1
python -c "import random; mac = [random.choice(range(256)) for i in range(6)]; mac[0] |= 0x02; mac[0] &= 0xfe; print ':'.join('%02x' % m for m in mac)"

还有就是 MAC VLAN 有四种模式,你得搞清楚。

我有空再补充了。。。

参考链接

  1. 鸟哥关于 IP Alias 的说明

  2. Howto configure multiple mac address over a single ethernet interface

  3. Linux Networking: MAC VLANs and Virtual Ethernets

  4. 图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN

  5. Wiki: MAC address

  6. Some notes on macvlan/macvtap

  7. Ubuntu Manual: interfaces

  8. Save ip link macvlan interfaces after reboot

  9. Multiple DHCP leases on single interface

  10. multiple MAC addresses on one physical network interface (linux)

  11. Using Docker with macvlan Interfaces


哎呦, 不错哦!

0 Comments


Leave a Comment:

博客搜索

友情链接

公告

本博客代码已经公布在 Github 上,欢迎交流指正。

QQ 邮箱对 mailgun 不太友好, 所以使用 QQ 邮箱的评论, 可能会无法及时收到邮件。我会尽快寻找其他解决方案的。

本人现在独自使用 linode vps, 20 美元/月, 感觉压力大, 如果有意一起合租, 可以联系我. 在我的任意一篇文章下面留言即可. 关于使用方式, 现在倾向于使用 docker.