更新时间:2022-02-22 GMT+08:00

配置自定义VLAN网络(Ubuntu系列)

下面以Ubuntu 16.04 LTS (Xenial Xerus x86_64)操作系统为例,举例介绍裸金属服务器的自定义VLAN网络配置方法:

Ubuntu系列其他操作系统的配置方法与Ubuntu 16.04 LTS (Xenial Xerus x86_64)类似。

  1. 以“root”用户,使用密钥或密码登录裸金属服务器。
  2. 进入裸金属服务器的命令行界面,查询网卡信息。

    ip link

    返回信息示例如下:

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 8888 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
        link/ether fa:16:3e:1c:35:37 brd ff:ff:ff:ff:ff:ff
    3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 8888 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
        link/ether fa:16:3e:1c:35:37 brd ff:ff:ff:ff:ff:ff
    4: enp129s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
        link/ether f4:4c:7f:3f:da:07 brd ff:ff:ff:ff:ff:ff
    5: enp129s0f1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
        link/ether f4:4c:7f:3f:da:08 brd ff:ff:ff:ff:ff:ff
    6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 8888 qdisc noqueue state UP mode DEFAULT group default qlen 1000
        link/ether fa:16:3e:1c:35:37 brd ff:ff:ff:ff:ff:ff

    其中,“eth0”和“eth1”为承载VPC网络的网络设备,“enp129s0f0”和“enp129s0f1”为承载自定义VLAN网络的网络设备。下面步骤将使用“enp129s0f0”和“enp129s0f1”配置自定义VLAN网络。

  3. 执行以下命令,查看“/etc/udev/rules.d/”目录下是否有“80-persistent-net.rules”配置文件。

    ll /etc/udev/rules.d/ | grep 80-persistent-net.rules

    • 如果存在“80-persistent-net.rules”,且该配置文件中已存在2中查询到的除“bond0”和“lo”以外的其它所有网卡和对应的MAC地址,请执行6
    • 否则,继续执行4

  4. 执行以下命令,将“/etc/udev/rules.d/70-persistent-net.rules”文件拷贝一份(文件名为“/etc/udev/rules.d/80-persistent-net.rules”)。

    cp -p /etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/80-persistent-net.rules

  5. 设置udev规则。

    2中查询到的除“lo”、“eth0”、“eth1”和“bond0”以外的网卡和MAC对应关系添加到“/etc/udev/rules.d/80-persistent-net.rules”文件中,使得裸金属服务器重启复位后,网卡名称和顺序不会发生改变。

    网卡的MAC地址和名称中的字母,请使用小写字母。

    vim /etc/udev/rules.d/80-persistent-net.rules

    修改后的示例如下:

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="e8:4d:d0:c8:99:5b", NAME="eth0"
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="e8:4d:d0:c8:99:5c", NAME="eth1"
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="f4:4c:7f:3f:da:07", NAME="enp129s0f0"
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="f4:4c:7f:3f:da:08", NAME="enp129s0f1"

    修改完成后,按“Esc”,输入:wq保存并退出。

  6. 执行以下命令,将网卡配置文件“/etc/network/interfaces.d/50-cloud-init.cfg”拷贝为“/etc/network/interfaces.d/60-cloud-init.cfg”。

    cp -p /etc/network/interfaces.d/50-cloud-init.cfg /etc/network/interfaces.d/60-cloud-init.cfg

    如果没有“/etc/network/interfaces.d/50-cloud-init.cfg”文件,请拷贝“/etc/network/interfaces”文件,依次执行以下命令:

    mkdir /etc/network/interfaces.d

    cp -p /etc/network/interfaces /etc/network/interfaces.d/60-cloud-init.cfg

  7. 执行以下命令,编辑“/etc/network/interfaces.d/60-cloud-init.cfg”,配置“enp129s0f0”设备和“enp129s0f1”设备的网络配置文件“/etc/network/interfaces.d/60-cloud-init.cfg”。

    vim /etc/network/interfaces.d/60-cloud-init.cfg

    按如下格式编辑:

    auto enp129s0f0
    iface enp129s0f0 inet manual
    bond_mode 1
    bond-master bond1
    bond_miimon 100
    mtu 8888
    auto enp129s0f1
    iface enp129s0f1 inet manual
    bond_mode 1
    bond-master bond1
    bond_miimon 100
    mtu 8888
    auto bond1
    iface bond1 inet static
    bond_miimon 100
    bond-slaves none
    bond_mode 1
    address 10.10.10.3
    netmask 255.255.255.0
    hwaddress f4:4c:7f:3f:da:07
    mtu 8888

    其中,

    • “enp129s0f0”和“enp129s0f1”为承载自定义VLAN网络配置的网卡名称。
    • “hwaddress”为“enp129s0f0”设备对应的MAC地址。
    • “address”的取值为给自定义VLAN网络“bond1”配置的IP(给自定义VLAN网络规划的IP地址在没有与VPC网段冲突的情况下可任意规划,需要通过自定义VLAN网络通信的裸金属服务器须将自定义VLAN网络配置在同一个网段)。
    • “netmask”的取值为给自定义VLAN网络“bond1”配置的IP的掩码。

    各个设备的其他参数可参考如上信息进行配置,如“mtu”配置为“8888”,“bond_miimon”配置为“100”,“bond_mode”配置为“1”等。

    修改完成后,按“Esc”,输入:wq保存并退出。

  8. 执行以下命令,重启网络。

    ifup enp129s0f0

    ifup enp129s0f1

    其中,“enp129s0f0”和“enp129s0f1”分别为承载自定义VLAN网络的网卡。

  9. 执行以下命令,查看网卡设备的状态和“bond1”配置文件是否生效。

    ip link

    ifconfig

  10. 参见上述步骤,完成其他裸金属服务器的配置。
  11. 待其他裸金属服务器配置完成后,互相ping对端自定义VLAN网络配置的同网段IP,检查是否可以ping通。