Junos vMX Router on VMWare Fusion

I have successfully installed vMX and used it in my labs following the procedure describer into Day One: vMX Up and Running book. But I am curious to see if the installing procedure used for IOS XRv can be used also for the new Nested vMX router from Juniper Networks.

I am still having some trouble with some errors. Maybe it is a resource limitation. I will update the article if I find a solution to make it up and running.

Software

  • MacOS Sierra 10.12.6
  • VMWare Fusion 10.0.1 Pro
  • Juniper Networks Nested vMX router package vmx-nested-17.2R2.8.vmdk

Installation

1. Create VM into VMWare Fusion

  • Select the Create a custom virtual machine option.
  • Click the Continue button.
  • Select FreeBSD Other (Other -> FreeBSD Other) as the operating system (maybe this is where I’ve been wrong)
  • Click the Continue button.
  • Select Use an existing virtual disk.
  • Click the Choose virtual disk… button.
  • Navigate to and select vmx-nested-17.2R2.8.vmdk.
  • Select Make a separate copy of the virtual disk.
  • Click the Choose button.
  • Click the Continue button.
  • Click the Customize Settings button to modify the virtual appliance settings.
  • Save As: Nested vMX
  • Click the Save button.
2. Modify/Verify the following attributes in the Nested VMX Settings
Component Value
Processors 4 processor cores
Memory 12288 MB (12G)
Network Adapter Share with my Mac
Network Adapter 2 Private to my Mac
Network Adapter 3 Private to my Mac
Network Adapter 4 Private to my Mac
Hard Disk (IDE) vmx-nested-17.2R2.8.vmdk
CD/DVD (IDE) Remove CD/DVD Drive
Sound Card Remove Sound Card
USB & Bluetooth Remove USB Controller
3. Edit .vmx file

Click on Option+right-mouse click on VM > Open Config file in the editor and add the configuration.

ethernet0.virtualDEV = "vmxnet3"
ethernet1.virtualDEV = "vmxnet3"
ethernet2.virtualDEV = "vmxnet3"
ethernet3.virtualDEV = "vmxnet3"
serial0.present = "TRUE"
serial0.fileType = "network"
serial0.fileName = "telnet://127.0.0.1:7001"
serial0.startConnected = "TRUE"
serial0.yieldOnMsrRead = "TRUE"

Note: Option e1000 is not supported as it is getting error: “EAL: Error reading from file descriptor 23: Input/output error

4. Log into VFP from new Terminal window
Murgescus-MacBook-Pro:~ silvia$ telnet 127.0.0.1 7001

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.


localhost login: jnpr
Password: jnpr123

localhost:~$ sudo -i
5. Log into VCP from VFP
root@localhost:~# telnet localhost 8601

Entering character mode

Escape character is '^]'.

login: root


--- JUNOS 17.2R2.8 Kernel 64-bit  JNPR-10.3-20170919.355547_build

root@:~ #

Problems

  • No GE interfaces
root# run show interfaces terse 

Interface               Admin Link Proto    Local                 Remote

cbp0                    up    up

demux0                  up    up

dsc                     up    up

em1                     up    up

em1.0                   up    up   inet     10.0.0.4/8      

                                            128.0.0.1/2     

                                            128.0.0.4/2     

                                   inet6    fe80::5254:ff:fe12:bdfe/64

                                            fec0::a:0:0:4/64

                                   tnp      0x4             

esi                     up    up

fxp0                    up    up

fxp0.0                  up    up  

gre                     up    up

ipip                    up    up

irb                     up    up

jsrv                    up    up

jsrv.1                  up    up   inet     128.0.0.127/2   

lo0                     up    up

lo0.16384               up    up   inet     127.0.0.1           --> 0/0

lo0.16385               up    up   inet    

lsi                     up    up

mtun                    up    up        

pimd                    up    up        

pime                    up    up

pip0                    up    up

pp0                     up    up

rbeb                    up    up

tap                     up    up

vtep                    up    up
  • No CPU installed
root# run show chassis hardware 

Hardware inventory:

Item             Version  Part number  Serial number     Description

Chassis                                VM5A0C66F112      VMX

Midplane        

Routing Engine 0                                         RE-VMX

CB 0                                                     VMX SCB

CB 1                                                     VMX SCB

FPC 0                                                    Virtual FPC

  CPU
  • Error coming up
[edit]

root# mpc : 

            cat: can't open '/var/jnx/card/local/type': No such file or directory

                                                                                 tx_hello_tx: Failed to get card type defaulting to 0

                                                                                                                                     cat: can't open '/var/jnx/card/local/slot': No such file or directory

                                       tx_hello_tx: Failed to get card slot defaulting to 0

                                                                                           tnp_hello_tx: Board type 0

                                                                                                                     tnp_hello_tx: Board slot 0

                                                                                                                                               tnp_hello_tx: found interface int

             Linux VMX-FPC0 3.10.62-ltsi-rt55-WR6.0.0.21_preempt-rt #1 SMP PREEMPT RT Tue Sep 26 18:14:49 PDT 2017 x86_64 GNU/Linux

                                                                                                                                   cat: can't open '/var/jnx/card/local/type': No such file or directory

                                     cat: can't open '/var/jnx/card/local/type': No such file or directory

                                                                                                          0x0BAA

                                                                                                                                                                                               

                                /home/pfe/riot/build/app/riot <EAL PARAMS> -- <APP PARAMS>                                            

                                                                                                                                                                                                                     

                                                  Application manadatory parameters:                                             

                                                                                                                                     --rx "(PORT, QUEUE, IXPORT, LCORE), ..." : List of NIC RX ports and      

                                                      queues handled by the I/O RX lcores                                 

                                                                                                                              --tx "(PORT, LCORE), ..." : List of NIC TX ports handled by the I/O TX   

                                               lcores                                                              

                                                                                                                       --w "LCORE, ..." : List of the worker lcores                             

                                 --f "LCORE, ..." : Flow manager lcore                                    

                                                                                                                                                                                         

                      Application optional parameters:                                               

                                                                                                         --rsz "A, B, C, D" : Ring sizes                                          

                          A = Size (in number of buffer descriptors) of each of the NIC RX    

                                                                                                             rings read by the I/O RX lcores (default value is 2048)           

                       B = Size (in number of elements) of each of the SW rings used by the

                                                                                                          I/O RX lcores to send packets to worker lcores (default value is

                      2048)                                                             

                                                                                                   C = Size (in number of elements) of each of the SW rings used by the

                   worker lcores to send packets to I/O TX lcores (default value is

                                                                                                  2048)                                                             

            D = Size (in number of buffer descriptors) of each of the NIC TX    

                                                                                               rings written by I/O TX lcores (default value is 1024)            

                                                                                                                                                                     --bsz "(A, B), (C, D), (E, F)" :  Burst sizes                            

                                                                                      A = I/O RX lcore read burst size from NIC RX (default value is 144)  

                                                                                                                                                                      B = I/O RX lcore write burst size to output SW rings (default value 

                                                                                      is 144)                                                          

                                                                                                                                                                  C = Worker lcore read burst size from input SW rings (default value 

                                                                                  is 144)                                                          

                                                                                                                                                              D = Worker lcore write burst size to output SW rings (default value 

                                                                              is 144)                                                          

                                                                                                                                                          E = I/O TX lcore read burst size from input SW rings (default value 

                                                                          is 144)                                                          

                                                                                                                                                      F = I/O TX lcore write burst size to NIC TX (default value is 144)   

                                                            --rpio "A, B, C" :  RPIO server ports                                    

                                                                                                                                                A = Protocol family                                                 

                                                                local : UNIX domain sockets                                     

                                                                                                                                               inet  : TCP sockets                                             

                                                       B = Command port                                                    

                                                                                                                                      C = Event port                                                      

                                           --hostif "A, B" :  HOST server port                                      

                                                                                                                               A = Protocol family

[...]
  • If I install using FreeBSD 10 option into VMWare, I see the GE interfaces into show interfaces terse command but, but they are not accessible from MacBook and I still get the error
cat: can't open '/var/jnx/card/local/type': No such file or directory

0x0BAA

config file /etc/riot/init.conf

config file /etc/riot/runtime.conf

Disabled QOS 

Disabled AlternatePriorityMode 

Unable to open config file /etc/riot/shadow

rte_eth_dev_config_restore: port 0: MAC address array not supported

rte_eth_stats_reset: Function not supported

rte_eth_dev_config_restore: port 1: MAC address array not supported

rte_eth_stats_reset: Function not supported

rte_eth_dev_config_restore: port 2: MAC address array not supported

rte_eth_stats_reset: Function not supported

rte_eth_dev_config_restore: port 3: MAC address array not supported

rte_eth_stats_reset: Function not supported

rte_eth_dev_mac_addr_add: Function not supported

rte_eth_dev_set_mc_addr_list: Function not supported

rte_eth_dev_mac_addr_add: Function not supported

rte_eth_dev_set_mc_addr_list: Function not supported

rte_eth_dev_mac_addr_add: Function not supported

rte_eth_dev_set_mc_addr_list: Function not supported

rte_eth_dev_mac_addr_add: Function not supported

rte_eth_dev_set_mc_addr_list: Function not supported

br-ext: port 2(tap0) entered disabled state

br-ext: port 2(tap0) entered forwarding state

br-ext: port 2(tap0) entered forwarding state

br-ext: port 2(tap0) entered forwarding state

What is wrong??  😐

2 thoughts on “Junos vMX Router on VMWare Fusion

  1. Pingback: vMX Initial Configuration – Silvique Tech Notes

Leave a Reply

Your email address will not be published. Required fields are marked *