Nick Pratley

My First ISP: Juniper MX250 funsies


So uhh, what if I told you you could get a fully functional Juniper MX150 router for $400-600 AUD? 1/10th the eBay price of the MX150!

Would you believe me?

  • Facebook
  • Twitter
  • LinkedIn

Turns out, the NFX250 is the same hardware as the MX150 – and if you get the right SKU, you don’t even need to look at it funny! IT JUST BOOTS the MX code, and works.

If you are like me and order the wrong SKU because it was the cheapest on eBay – you’ll need to do some fiddling in the install environment to make it boot the Junos VM.

I ordered the NFX250-S1E, which has a board ID of “0CD0” – and has no hardware mapping in the MX image. Booooo.

If you have any of these SKUs – you can just download the install files, burn it to a USB, boot it and presto, it works!

0c87 - nfx250_10_t
0c88 - nfx250_att_s1_10_t
0c89 - nfx250_att_s2_10_t
0c98 - nfx250_s2_10_t
0c9a - nfx250_ls1_10_t
0c9b - nfx250_att_ls1_10_t

So – every board apart from the s1e is supported out of the box. Thanks, Juniper. You are such a team player 🙂

Whilst you can install it on the S1E, the Junos VM does not boot, and RIOT (the TRIO code cross-compiled and emulated on x86) does not start.

Let’s fix that.

There are two stages to the Juniper install, and we need to mangle around in the second stage before the installer kicks off.

  1. Download the installer. I am using junos-vmhost-install-usb-mx-x86-64-22.4R1.10.img.gz. I’ll leave it as an exercise for you to find the file.
  2. Burn it to a flash drive. I use macOS, so the easiest thing to do was install Balena Etcher, plug a USB drive in, select the image file and press go. You can’t dd nuke your drive this way 😉
  3. Boot the installer on the NFX250, and let the first stage go through unharmed.
  4. The box will reboot once the first stage has been completed. YOU MUST STOP THIS BOOT. You need a shell at this point. So go ahead, and use the grub menu option to boot the box in host shell mode. You know you want to fiddle.
  5. Once you’re in the root shell, we can copy the platform mappings from the nfx250_s2 (The s1e is the same, with a faster CPU and less RAM (but we can fix that, too)). We also need to recalculate the md5 hashes of the files, to keep the installer checksum programmers’ jobs justified.

    cd /var/platforms-supported
    cp -Rp 0c98 0cd0
    find -type f \( -not -name "hash.md5" \) -exec md5sum '{}' \; > hash.md5
  6. Reboot, and let the installer finish. The rescue shell doesn’t support any of these fan-dangled reboot commands – so the best bet is to just remove and reapply power.
  7. Enjoy your $600 MX150!

I know you all came here to see this!

nickp@bng01.syd> show chassis hardware
Hardware inventory:
Item             Version  Part number  Serial number     Description
Chassis                                DR4917AF0075      NFX250-S1E
Midplane         REV 05   650-074804   DR4917AF0075      NFX250-S1E
Power Supply 0
Routing Engine 0                                         RE-VMX
CB 0                                                     VMX SCB
FPC 0                     BUILTIN      BUILTIN           Virtual FPC
  CPU            Rev. 1.0 RIOT-PERF    BUILTIN
  MIC 0                                                  Virtual
    PIC 0                 BUILTIN      BUILTIN           Virtual
      Xcvr 12    1310nm   740-021309   F78WBR7           SFP+-10G-LR
      Xcvr 13    REV 01   740-031981   F175JU02925       SFP+-10G-LR
Fan Tray 0                                               fan-ctrl-0 0, Front to Back Airflow - AFO
Fan Tray 1                                               fan-ctrl-0 1, Front to Back Airflow - AFO

nickp@bng01.syd> show version
Hostname: bng01.syd
Model: MX150
Junos: 22.4R1.10

This board has 4x RAM slots, and you can just slide 64 gig of sweet DDR4 RAM right in! Just make sure you match the timings. I am using 2400MHz DDR4 ECC RAM that I just had laying around in the scrap drawer.

Next up – Juniper BNG. Let’s turn this bad boy into the most capable BNG. There’s so much misleading information and old nonrelevant configuration on the net and about 1 person in Australia that knows how to configure it! (Yes, I am looking at you, Fraser <3).


Comments 0
There are currently no comments.

Share This