Description

This KB will help to bring up interface back to up state if VM NW adaptor is replaced or modified by user. 

Note: This KB article is not applicable for JunosSpace 21.x and later release. 

Symptoms

1) Once you remove a VM network adapter and add a new one, you will often find that your eth0 device is no longer present but replaced with an eth1 device (or a higher number). That’s because the MAC address of that adapter will have changed, which is what causes the OS Kernel to assign it a new device ID. If you want, you can change that back.
 

2) As interface eth0 replaced or modified under VM settings due to which JunosSpace webUI wont come up
 

3) In case if customer wanted to migrate from E1000 or Vmxnet3 NIC adaptor type. 
Note: Vmxnet3 is the way to go on newer systems without any second thoughts. The e1000/e1000e is a legacy network interface that should only be used for backward compatibility when vmxnet3 is not an option. 

Solution

The following procedure is involved to recorrect eth interface mac/hardware address on JunosSpace 20.3R1 and lower release. 

 

Step 1: To verify the hardware/mac address of interfaces , run the below command -

[root@space-005056a96186 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:56:A9:61:86  
          inet addr:10.219.87.30  Bcast:10.219.87.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6905 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2184 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1014263 (990.4 KiB)  TX bytes:1086126 (1.0 MiB)

eth0:0    Link encap:Ethernet  HWaddr 00:50:56:A9:61:86  
          inet addr:10.219.87.31  Bcast:10.219.87.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1326191 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1326191 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1762349250 (1.6 GiB)  TX bytes:1762349250 (1.6 GiB)

[root@space-005056a96186 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:a9:61:86 brd ff:ff:ff:ff:ff:ff
    inet 10.219.87.30/24 brd 10.219.87.255 scope global eth0
    inet 10.219.87.31/24 brd 10.219.87.255 scope global secondary eth0:0
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:50:56:a9:1b:ae brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:50:56:a9:44:92 brd ff:ff:ff:ff:ff:ff
5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:50:56:a9:d7:44 brd ff:ff:ff:ff:ff:ff

Step 2: Verify if your mac/hardware address are matching under 70-persistent-net.rules files

[root@space-005056a96186 ~]# cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:a9:61:86", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:a9:44:92", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:a9:d7:44", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:a9:1b:ae", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
 

Step 3: Find the following file: /etc/udev/rules.d/70-persistent-net.rules. If you have this issue, it should look like this now. Please find below snapshot for your reference. 

Pasted Graphic 1.png

Pasted Graphic.png


Step 4: Modify the file if difference exist using vi editor and also take a backup of 70-persistent-net.rules file under /home/admin in case of rollback. 

Note: That file defines four interfaces, with a unique MAC address each. If that eth4 line (the last) contains your active current uplink, you can simply copy the MAC address from there to the first line which defines your eth0. Then delete or comment your eth4 (or a higher number) line. The end could look like this. Notice how now eth0 has the MAC address which previously belonged to eth4 (or a higher number).

image.png

Note: replace eth4 with eth0 string using vi editor 

image.png

Step 5: Reboot the server 

[root@space-005056a96186 ~]# init 6

Step 6: Once the server came up, verify the mac/hardware addresses again

[root@space-005056a96186 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:56:A9:14:F7  
          inet addr:10.219.87.30  Bcast:10.219.87.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:878 errors:0 dropped:0 overruns:0 frame:0
          TX packets:158 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:55338 (54.0 KiB)  TX bytes:32789 (32.0 KiB)

eth0:0    Link encap:Ethernet  HWaddr 00:50:56:A9:14:F7  
          inet addr:10.219.87.31  Bcast:10.219.87.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1121 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1121 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:444098 (433.6 KiB)  TX bytes:444098 (433.6 KiB)

[root@space-005056a96186 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:50:56:a9:14:f7 brd ff:ff:ff:ff:ff:ff
    inet 10.219.87.30/24 brd 10.219.87.255 scope global eth0
    inet 10.219.87.31/24 brd 10.219.87.255 scope global secondary eth0:0
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:50:56:a9:1b:ae brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:50:56:a9:44:92 brd ff:ff:ff:ff:ff:ff
5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:50:56:a9:d7:44 brd ff:ff:ff:ff:ff:ff
[root@space-005056a96186 ~]# 

Step 7: Verify if the necessary services are up 

[root@space-005056a96186 ~]# service jmp-watchdog status
jmp-watchdog running
[root@space-005056a96186 ~]# service jboss status
jboss (pid 18137) is running
[root@space-005056a96186 ~]# service jboss-dc status
jboss domain controller (pid 15903) running
 

Note : If you face any issues, please contact JUNIPER JTAC Support for assistance.

Modification History

Article published: 19 Feb 2024