I'm trying to run the example as described in trellis/README.md
but it doesn't seem to work as described.
Apologies for the long post, but I wanted to include enough detail. Any help is appreciated. Also, if there's a better place to go for help, let me know.
Setup
ONOS
My ONOS is running in a docker container. The dockerfile is extremely simple:
FROM onosproject/onos:1.13.5
RUN apk add --no-cache openssh-client git python
ENV ONOS_APPS=drivers,openflow,segmentrouting,fpm,dhcprelay,netcfghostprovider,routeradvertisement,mcast,t3
ENV JAVA_OPTS=-Xmx8G
I start the container and map all ports to the host. I also mount a volume containing the trellis project. After the container starts, I exec in and run onos-netcfg 127.0.0.1 trellis.json
.
Mininet, etc.
I'm just running vagrant up
. Then I vagrant ssh
followed by sudo ./trellis.py --controllers <IP>
(where points to the host running the docker container).
Results
After doing all this, I can log in to the ONOS GUI and see the network in the Topology view:
I can even ping between some nodes (e.g., h1
and h3
):
mininet> h1 ping h3
*** errRun: ['stty', '-icanon', 'min', '1']
0PING 10.0.3.1 (10.0.3.1) 56(84) bytes of data.
64 bytes from 10.0.3.1: icmp_seq=1 ttl=63 time=2.65 ms
64 bytes from 10.0.3.1: icmp_seq=2 ttl=63 time=0.076 ms
64 bytes from 10.0.3.1: icmp_seq=3 ttl=63 time=0.148 ms
^CsendInt: writing chr(3)
...but not others (e.g., h1
and h2
, which are on the same leaf switch):
mininet> h1 ping h2
*** errRun: ['stty', '-icanon', 'min', '1']
0PING 10.0.2.2 (10.0.2.2) 56(84) bytes of data.
^CsendInt: writing chr(3)
--- 10.0.2.2 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
Troubleshooting
I'm new to ONOS, so my troubleshooting so far has been limited. I installed the t3 troubleshooting app. Some of the pings that fail seem like the should work, according to the troubleshooting app. For example, this snippet shows h1
to h2
:
onos> t3-troubleshoot-pingall -vv
...
-----------------------------------------------------------------------------------------------------------------------------
Source host id=00:AA:00:00:00:01/None, mac=00:AA:00:00:00:01, locations=[of:0000000000000204/3], vlan=None, ip(s)=[10.0.2.1]
Destination host id=00:AA:00:00:00:02/None, mac=00:AA:00:00:00:02, locations=[of:0000000000000204/4], vlan=None, ip(s)=[10.0.2.2]
DefaultTrafficSelector{criteria=[IN_PORT:3, ETH_DST:00:00:00:00:02:04, ETH_TYPE:ipv4, VLAN_VID:None, IPV4_SRC:10.0.2.1/32, IPV4_DST:10.0.2.2/32]}
Paths
[of:0000000000000204/3, of:0000000000000204/4]
Result:
Reached required destination Host of:0000000000000204/4
That made me thing it was an ARP problem:
onos> t3-troubleshoot -sp of:0000000000000204/3 -et ARP
Tracing packet: [IN_PORT:3, ETH_TYPE:arp, VLAN_VID:None]
Paths
[of:0000000000000204/3, of:0000000000000204/CONTROLLER]
Result:
Packet goes to the controller 172.18.0.2
That shows that it should go to the controller.
Viewing the logs (onos> log:tail
) while I do a ping between h1
and h2
(which fails) shows no output at INFO level, and if I try to turn it up to DEBUG I get a so much log spew I can't tell what's happening.
That's about all I know to do. Ideas?