After rebooting an EX4600 device, the interface configured with 100MB speed does not come up. This article explains the reason and suggests a workaround.
Note: This issue is not seen in Junos OS releases 14.1X53-D35, 14.1X53-D40, 15.1R3, and 16.1R1, and is not applicable to other EX devices.
After rebooting an EX4600 device, the interface configured with 100MB speed does not come up.
The EX4600 device has the following SFP options:
1GbE SFP: 24(40) (with 10GbE expansion modules)
10GbE SFP+: 24(40/72) (with 10GbE expansion modules/ fixed 40GbE ports using breakout cables)
40GbE QSFP+: 4(12) (with expansion modules)
To configure an interface with a speed of 100MB, auto-negotiation is not enough. The interface speed must be manually configured.
Even with interface speed configured, there are a few software images that are sensitive when it comes to a reboot, for example: Junos OS releases 14.1X53-D43, 14.1X53-D42, and 15.1R6.
The workaround is to delete the speed configuration and reconfigure it. This can be achieved automatically via the following script that will be executed upon reboot:
root@ex4600-r2008:RE:0% cat modifyspeed.sh #!bin/sh logger "STARTING sleep 120s" sleep 120 logger "AFTER 120s" sleep 120 logger "AFTER 240" /usr/sbin/cli -c "configure;delete interfaces ge-0/0/4 speed;commit" sleep 20 /usr/sbin/cli -c "configure;set interfaces ge-0/0/4 speed 100m;commit"
Sleep timers have been added to allow an interface to be detected after the device comes up. The script should be stored under /var/root .
/var/root
To make the script run upon reboot:
root@ex4600:RE:0% crontab -l @reboot /bin/sh /root/modifyspeed.sh
While waiting to pass the sleep interval, we can check that the script is still running by using the ps aux | grep sh command.
ps aux | grep sh
When the script finishes, it no longer runs.
2019-09-27: Sentence about checking that the script is still running by using the ps aux | grep sh command while waiting to pass the sleep interval added to the Solution section