Arista cEOS Containers Run on Apple Silicon

A few days ago, someone mentioned Arista released a cEOS EFT image running on Arm. Of course, I had to test whether it would run on Apple Silicon.

TL&DR: YES 🎉 🎉

Here’s what you have to do to make the Arista cEOS container work with netlab running on an Ubuntu VM on Apple silicon:

provider: clab
defaults.device: eos
defaults.devices.eos.clab.image: ceos:4.33.1F

nodes: [ r1,r2 ]
links: [ r1-r2 ]
module: [ ospf ]
  • Execute netlab up and have fun.

Once you verify that the Arista cEOS containers run on your Apple silicon, have fun using them in the BGP and IS-IS labs.

3 comments:

  1. Great to see that ARM-based cEOS has finally been released! I'm running it on my Mac with Apple Silicon, but it seems to have limited support for routing protocols at the moment.

    ceos01(config)#router bgp bgp not supported on this hardware platform

    ceos01(config)#router ? adaptive-virtual-topology Configure adaptive virtual topology bfd Bidirectional Forwarding Detection general Protocol independent routing configuration internet-exit Configure Internet exit kernel Routes installed by kernel l2-vpn l2-vpn configuration ospfv3 OSPF Version 3 service-insertion Configure network services inserted to data forwarding traffic-engineering Traffic-engineering global config

    ceos01(config)#show version Arista cEOSLab Hardware version: Serial number: Hardware MAC address: 0242.ac20.996c System MAC address: 0242.ac20.996c

    Software image version: 4.33.1F-39308076.liffeyceoslabarm (engineering build) Architecture: aarch64 Internal build version: 4.33.1F-39308076.liffeyceoslabarm Internal build ID: 98fc6c22-9c8e-4226-9f9f-083a36d0bcb3 Image format version: 1.0 Image optimization: None

    Kernel version: 6.10.14-linuxkit

    Uptime: 2 minutes Total memory: 8025636 kB Free memory: 6454428 kB

    Replies
    1. Interestingly, I started the lab with netlab/containerlab and BGP works just fine for me using the same engineering build (or at least "show version" claims it's the same build).

    2. I didn't use the netlab to bring up the container, I use the "docker create" command, wondering if any parameters I'm missing?

      here is the docker create command I used

      docker create --name=ceos01 --hostname=ceos01 -v /root/ceos01/startup-config:/mnt/flash/startup-config --privileged -e INTFTYPE=eth -e ETBA=4 -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e CEOS=1 -e EOS_PLATFORM=ceoslab -e container=docker -i -t ceosimage:4.33.1 /sbin/init systemd.setenv=INTFTYPE=eth systemd.setenv=ETBA=4 systemd.setenv=SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 systemd.setenv=CEOS=1 systemd.setenv=EOS_PLATFORM=ceoslab systemd.setenv=container=docker systemd.setenv=MAPETH0=1 systemd.setenv=MGMT_INTF=eth0

  2. Hi @Ivan Pepelnjak,

    On a different note, have you tried running FRR Docker on Apple Silicon? If so, have you had any success with MPLS? It seems that the label forwarding path isn't working as expected, and I'd appreciate any insights or experiences you could share.

    Thanks!

    Replies
    1. > Have you tried running FRR Docker on Apple Silicon?

      Yes. It works.

      > If so, have you had any success with MPLS?

      Yes, the simple MPLS/VPN integration test works with FRR 10.0.1 and 10.2.1, meaning that LDP, L3VPN and MPLS data plane all work correctly.

      > I'd appreciate any insights or experiences you could share.

      Use netlab? Or reverse-engineer how we configure the container ;) It's all open-source.

  3. I followed these instructions on my Apple M2 Pro, but I couldn't get netlab up to work. Error Log pasted below -


    ERRO[0000] failed deploy links for node "r2": failed to Statfs "/proc/0/ns/net": no such file or directory ERRO[0000] failed deploy links for node "r1": file exists

    ......(omitted lines) ...

    TASK [Wait for device to become ready] * included: /home/ubuntu/.local/lib/python3.12/site-packages/netsim/ansible/tasks/readiness-check/eos-clab.yml for r1, r2

    TASK [Wait for cEOS SSH daemon to start] * fatal: [r2]: FAILED! => changed=false elapsed: 60 msg: 'timed out waiting for connection port up: ssh connection failed: ssh connect failed: Failed to resolve hostname clab-lab45-r2 (Temporary failure in name resolution)' fatal: [r1]: FAILED! => changed=false elapsed: 60 msg: 'timed out waiting for connection port up: ssh connection failed: ssh connect failed: Failed to resolve hostname clab-lab45-r1 (Temporary failure in name resolution)'

    PLAY RECAP * r1 : ok=3 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0 r2 : ok=3 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

    Error executing ansible-playbook /home/ubuntu/.local/lib/python3.12/site-packages/netsim/ansible/initial-config.ansible: Command '['ansible-playbook', '/home/ubuntu/.local/lib/python3.12/site-packages/netsim/ansible/initial-config.ansible']' returned non-zero exit status 2. [FATAL] Executing Ansible playbook /home/ubuntu/.local/lib/python3.12/site-packages/netsim/ansible/initial-config.ansible failed Error executing netlab initial --no-message: Command '['netlab', 'initial', '--no-message']' returned non-zero exit status 1. [FATAL] netlab up: netlab initial failed, aborting...


    When I ran docker logs, I got the following -

    ubuntu@primary:~/lab45$ docker logs clab-lab45-r1
    exec /usr/bin/bash: exec format error
    

    Any pointers what I could be missing?

    Replies
    1. Unfortunately, I have no useful idea apart from "there's something badly wrong with your system" -- it looks like it refuses to start bash.

      I would recommend you start from scratch (create a new Ubuntu VM), follow the netlab installation instructions, and then do "netlab test clab" to check everything works (apart from the Arista containers).

      After you get that working, download the Arista container (make sure you're downloading the ARM image) and retry.

    2. "netlab test clab" passed. Also using FRR instead of the cEOS worked fine.

      I think I know what I missed. I didn't use the Arista cEOS ARM image. Looks like the only ARM image is under folder cEOS Lab/4.33 on Arista site, which I missed.

      I will give that a go. Thanks Ivan.

Add comment
Sidebar