# Configuring a User-defined VLAN (SUSE Linux Enterprise Server 12)

The network segment of the user-defined VLAN cannot overlap the network information configured on the BMS.

This section uses SUSE Linux Enterprise Server 12 SP1 (x86_64) as an example to describe how to configure a user-defined VLAN for BMSs.

1. Use a key or password to log in to the BMS as user root.
2. On the BMS CLI, run the following command to check the NIC information:

   ip link

   Information similar to the following is displayed.

       1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
           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:3d:1c:e0 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:3d:1c:e0 brd ff:ff:ff:ff:ff:ff
       4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
           link/ether 38:4c:4f:89:55:8d brd ff:ff:ff:ff:ff:ff
       5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
           link/ether 38:4c:4f:89:55:8e 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
           link/ether fa:16:3e:3d:1c:e0 brd ff:ff:ff:ff:ff:ff
       7: bond0.3133@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8888 qdisc noqueue state UP mode DEFAULT group default
           link/ether fa:16:3e:57:87:6e brd ff:ff:ff:ff:ff:ff

   Among the devices, eth0 and eth1 bear the VPC, and eth2 and eth3 bear the user-defined VLAN.

3. Configure the udev rules:

   Run the following command to create the 80-persistent-net.rules file:

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

   Write the NIC MAC address and name that are queried in 2 and that are not displayed in 80-persistent-net.rules to the file. In this way, after the BMS is restarted, the NIC name and sequence will not change.

   Ensure that the NIC MAC address and name are lowercase letters.

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

   The modification result is as follows:

       SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="38:4c:4f:29:0b:e0", NAME="eth0"
       SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="38:4c:4f:29:0b:e1", NAME="eth1"
       SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="38:4c:4f:89:55:8d", NAME="eth2"
       SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="38:4c:4f:89:55:8e", NAME="eth3"

   After the modification, save the change and exit.

4. Run the following command to check the NIC IP address:

   ifconfig

   Information similar to the following is displayed, where bond0 and bond0.313 show the NIC IP addresses automatically allocated by the system when you apply for the BMS:

       bond0     Link encap:Ethernet  HWaddr FA:16:3E:3D:1C:E0
                 inet addr:10.0.1.2  Bcast:10.0.1.255  Mask:255.255.255.0
                 inet6 addr: fe80::f816:3eff:fe3d:1ce0/64 Scope:Link
                 UP BROADCAST RUNNING MASTER MULTICAST  MTU:8888  Metric:1
                 RX packets:852 errors:0 dropped:160 overruns:0 frame:0
                 TX packets:1121 errors:0 dropped:0 overruns:0 carrier:0
                 collisions:0 txqueuelen:0
                 RX bytes:125429 (122.4 Kb)  TX bytes:107221 (104.7 Kb)

       bond0.313 Link encap:Ethernet  HWaddr FA:16:3E:57:87:6E
                 inet addr:10.0.3.2  Bcast:10.0.3.255  Mask:255.255.255.0
                 inet6 addr: fe80::f816:3eff:fe57:876e/64 Scope:Link
                 UP BROADCAST RUNNING MULTICAST  MTU:8888  Metric:1
                 RX packets:169 errors:0 dropped:0 overruns:0 frame:0
                 TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
                 collisions:0 txqueuelen:0
                 RX bytes:8684 (8.4 Kb)  TX bytes:1696 (1.6 Kb)

       eth0      Link encap:Ethernet  HWaddr FA:16:3E:3D:1C:E0
                 UP BROADCAST RUNNING SLAVE MULTICAST  MTU:8888  Metric:1
                 RX packets:428 errors:0 dropped:10 overruns:0 frame:0
                 TX packets:547 errors:0 dropped:0 overruns:0 carrier:0
                 collisions:0 txqueuelen:1000
                 RX bytes:64670 (63.1 Kb)  TX bytes:50132 (48.9 Kb)

       eth1      Link encap:Ethernet  HWaddr FA:16:3E:3D:1C:E0
                 UP BROADCAST RUNNING SLAVE MULTICAST  MTU:8888  Metric:1
                 RX packets:424 errors:0 dropped:7 overruns:0 frame:0
                 TX packets:574 errors:0 dropped:0 overruns:0 carrier:0
                 collisions:0 txqueuelen:1000
                 RX bytes:60759 (59.3 Kb)  TX bytes:57089 (55.7 Kb)

       lo        Link encap:Local Loopback
                 inet addr:127.0.0.1  Mask:255.0.0.0
                 inet6 addr: ::1/128 Scope:Host
                 UP LOOPBACK RUNNING  MTU:65536  Metric:1
                 RX packets:8 errors:0 dropped:0 overruns:0 frame:0
                 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
                 collisions:0 txqueuelen:0
                 RX bytes:520 (520.0 b)  TX bytes:520 (520.0 b)

5. Run the following commands to check the names of bonded NICs:

   The in-service bonded NICs cannot be used on the internal communication plane. Therefore, you must obtain them by name.

   cd /etc/sysconfig/network

   vi ifcfg-bond0

   Information similar to the following is displayed, where bond0 is composed of NICs eth0 and eth1:

       BONDING_MASTER=yes
       TYPE=Bond
       STARTMODE=auto
       BONDING_MODULE_OPTS="mode=4 xmit_hash_policy=layer3+4 miimon=100"
       NM_CONTROLLED=no
       BOOTPROTO=dhcp
       DEVICE=bond0
       USERCONTRL=no
       LLADDR=fa:16:3e:3d:1c:e0
       BONDING_SLAVE1=eth1
       BONDING_SLAVE0=eth0

   After the query, exit.

6. Run the following commands to check the statuses of all NICs:

   ip link

   Information similar to the following is displayed.

       1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
           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:3d:1c:e0 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:3d:1c:e0 brd ff:ff:ff:ff:ff:ff
       4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
           link/ether 38:4c:4f:89:55:8d brd ff:ff:ff:ff:ff:ff
       5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
           link/ether 38:4c:4f:89:55:8e 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
           link/ether fa:16:3e:3d:1c:e0 brd ff:ff:ff:ff:ff:ff
       7: bond0.3133@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8888 qdisc noqueue state UP mode DEFAULT group default
           link/ether fa:16:3e:57:87:6e brd ff:ff:ff:ff:ff:ff

7. Run the following commands to change the NIC status qdisc mq state DOWN to qdisc mq state UP. The following commands use NICs eth2 and eth3 as examples.

   ip link set eth2 up

   ip link set eth3 up

8. Run the following commands to check the statuses of all NICs:

   ip link

   Information similar to the following is displayed.

       1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
           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:3d:1c:e0 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:3d:1c:e0 brd ff:ff:ff:ff:ff:ff
       4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
           link/ether 38:4c:4f:89:55:8d brd ff:ff:ff:ff:ff:ff
       5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
           link/ether 38:4c:4f:89:55:8e 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
           link/ether fa:16:3e:3d:1c:e0 brd ff:ff:ff:ff:ff:ff
       7: bond0.3133@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8888 qdisc noqueue state UP mode DEFAULT group default
           link/ether fa:16:3e:57:87:6e brd ff:ff:ff:ff:ff:ff

9. Check the statuses of the NICs in 8 and obtain the names of the NICs in qdisc mq state UP state.

   Only the NICs that are in qdisc mq state UP state and have not been used can be bonded. In this example, such NICs are eth2 and eth3.

   The LLADR values of NICs eth2 and eth3 are 38:4c:4f:89:55:8d and 38:4c:4f:89:55:8e, respectively.

10. Run the following commands to create the configuration files of NICs eth2 and eth3:

    You can copy an existing NIC configuration file and modify it to improve the creation efficiency.

    cp ifcfg-eth0 ifcfg-eth2

    cp ifcfg-eth1 ifcfg-eth3

11. Run the following commands to modify the configuration files of NICs eth2 and eth3:

    vi ifcfg-eth2

    vi ifcfg-eth3

    Modified configuration file of NIC eth2 is as follows.

    In this configuration file, set MTU to 8888, BOOTPROTO to STATIC, and configure DEVICE and LLADDR as required.

        STARTMODE=auto
        MTU=8888
        NM_CONTROLLED=no
        BOOTPROTO=STATIC
        DEVICE=eth2
        USERCONTRL=no
        LLADDR=38:4c:4f:89:55:8d
        TYPE=Ethernet

    Modified configuration file of NIC eth3 is as follows:

        STARTMODE=auto
        MTU=8888
        NM_CONTROLLED=no
        BOOTPROTO=STATIC
        DEVICE=eth3
        USERCONTRL=no
        LLADDR=38:4c:4f:89:55:8e
        TYPE=Ethernet

    After the modification, save the change and exit.

12. Run the following command to bond NICs eth2 and eth3 to a NIC, for example, bond1:

    Run the following commands to create the ifcfg-bond1 file and modify the configuration file:

    cp ifcfg-bond0 ifcfg-bond1

    vi ifcfg-bond1

    Modified configuration file of NIC bond1 is as follows.

    In this configuration file, MTU is set to 8888, BONDING_MODULE_OPTS is set to mode=1 miimon=100, BOOTPROTO is set to STATIC. DEVICE, BONDING_SLAVE1, BONDING_SLAVE0, IPADDR, NETMASK, and NETWORK are configured as required. LLADDR is set to the LLADDR value of the BONDING_SLAVE1 NIC.

        BONDING_MASTER=yes
        TYPE=Bond
        MTU=8888
        STARTMODE=auto
        BONDING_MODULE_OPTS="mode=1 miimon=100"
        NM_CONTROLLED=no
        BOOTPROTO=STATIC
        DEVICE=bond1
        USERCONTRL=no
        LLADDR=38:4c:4f:89:55:8d
        BONDING_SLAVE1=eth2
        BONDING_SLAVE0=eth3
        IPADDR=10.0.2.2
        NETMASK=255.255.255.0
        NETWORK=10.0.2.0

    After the modification, save the change and exit.

13. Make the configuration file take effect.

    1. Run the following commands to create a temporary directory and copy the NIC configuration file to this directory:

       mkdir /opt/tmp/

       mkdir /opt/tmp/xml

       cp /etc/sysconfig/network/ifcfg* /opt/tmp/

       cp /etc/sysconfig/network/config /opt/tmp/

       cp /etc/sysconfig/network/dhcp /opt/tmp/

    2. Run the following commands to stop NICs to form bond1:

       ip link set eth2 down

       ip link set eth3 down

    3. Run the following command to convert the NIC configuration file to a configuration file that can be recognized by the OS:

       /usr/sbin/wicked --log-target=stderr --log-level=debug3 --debug all convert --output /opt/tmp/xml /opt/tmp/

    4. Run the following commands to restart the NICs to form bond1:

       ip link set eth2 up

       /usr/sbin/wicked --log-target=stderr --log-level=debug3 --debug all ifup --ifconfig /opt/tmp/xml/eth2.xml eth2

       ip link set eth3 up

       /usr/sbin/wicked --log-target=stderr --log-level=debug3 --debug all ifup --ifconfig /opt/tmp/xml/eth3.xml eth3

       /usr/sbin/wicked --log-target=stderr --log-level=debug3 --debug all ifup --ifconfig /opt/tmp/xml/bond1.xml bond1

14. Run the following command to query IP addresses:

    ip addr show

    An example is provided as follows:

        1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
            link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
            inet 127.0.0.1/8 scope host lo
               valid_lft forever preferred_lft forever
            inet6 ::1/128 scope host
               valid_lft forever preferred_lft forever
        2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 8888 qdisc mq master bond0 state UP group default qlen 1000
            link/ether fa:16:3e:3d:1c:e0 brd ff:ff:ff:ff:ff:ff
        3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 8888 qdisc mq master bond0 state UP group default qlen 1000
            link/ether fa:16:3e:3d:1c:e0 brd ff:ff:ff:ff:ff:ff
        4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 8888 qdisc mq master bond1 state UP group default qlen 1000
            link/ether 38:4c:4f:89:55:8d brd ff:ff:ff:ff:ff:ff
        5: eth3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 8888 qdisc mq master bond1 state UP group default qlen 1000
            link/ether 38:4c:4f:89:55:8d brd ff:ff:ff:ff:ff:ff
        6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 8888 qdisc noqueue state UP group default
            link/ether fa:16:3e:3d:1c:e0 brd ff:ff:ff:ff:ff:ff
            inet 10.0.1.2/24 brd 10.0.1.255 scope global bond0
               valid_lft forever preferred_lft forever
            inet6 fe80::f816:3eff:fe3d:1ce0/64 scope link
               valid_lft forever preferred_lft forever
        7: bond0.3133@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8888 qdisc noqueue state UP group default
            link/ether fa:16:3e:57:87:6e brd ff:ff:ff:ff:ff:ff
            inet 10.0.3.2/24 brd 10.0.2.255 scope global bond0.3133
               valid_lft forever preferred_lft forever
            inet6 fe80::f816:3eff:fe57:876e/64 scope link
               valid_lft forever preferred_lft forever
        8: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 8888 qdisc noqueue state UP group default
            link/ether 38:4c:4f:89:55:8d brd ff:ff:ff:ff:ff:ff
            inet 10.0.2.2/24 brd 10.0.2.255 scope global bond1
               valid_lft forever preferred_lft forever
            inet6 fe80::3a4c:4fff:fe29:b36/64 scope link
               valid_lft forever preferred_lft forever

15. Run the following commands to delete the temporary directory:

    cd /opt

    rm -rf tmp/

16. Repeat the preceding operations to configure other BMSs.

Parent topic: User-defined VLAN