Setting Up OneController Virtual Tenant Network

To set up OneController VTN:

  1. After deploying (EXTR-OneC-V-DA-1.0.ova), power on of OneController using the ESXi server.
  2. Start OneController.
  3. Log on to OneController as an administrator (user name = admin, password = abc123).
  4. Log on to Karaf (password = karaf).
    admin@OC.extremenetworks.com:~$ ssh karaf@127.0.0.1 -p 8101
    Password authentication
    Password: (karaf)
  5. Install the following features:
    opendaylight-user@root>feature:install odl-adsal-compatibility-all 
    odl-nsf-all odl-vtn-manager-all
  6. Verify that all features have been installed:
    opendaylight-user@root>feature:list –i
  7. After features have been installed, log on to the DLUX web GUI through a web browser (user name = admin, password = abc123):
    http://<your-ip-address-here>:8181/dlux/index.html
  8. After deploying (EXTR-VTNCoordinator-DAKit.ova), power on of the VTN Coordinator using the ESXi server.
  9. Start VTN coordinator and log on as root (user name = root, password = extreme).
  10. Start and check VTN coordinator:
    ./usr/local/vtn/bin/vtn_start
    curl -X GET -H 'content-type: application/json' -H 'username: admin' -H 
    'password: adminpass' -H 'ipaddr:127.0.0.1' 
    http://127.0.0.1:8083/vtn-webapi/api_version.json | python -mjson.tool
    Postman configuration, substitute 10.20.3.103 for the address of the VTN coordinator.
    expand icon
    Start and Check VTN Coordinator
    Graphics/VTN_Screen_1.png
  11. Add OneController to the VTN coordinator and show the configured controller:
    curl -v -X POST -H 'content-type: application/json' -H 'username: admin' -H 
    'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d '{"controller": 
    {"controller_id": "controller1", "ipaddr":"<onecontroller-ip>", "type": "odc", 
    "version": "1.0", "auditstatus":"enable"}}' http://127.0.0.1:8083/vtn-webapi/controllers.json
    expand icon
    Add OneController to VTN Coordinator
    Graphics/VTN_Screen_2.png
    curl -X GET -H 'content-type: application/json' -H 'username: admin' -H
     'password: adminpass'   -H 'ipaddr:<onecontroller-ip>' 
    http://127.0.0.1:8083/vtn-webapi/controllers/detail.json | python -mjson.tool
    expand icon
    Check OneController in VTN
    Graphics/VTN_Screen_3..png
  12. Create VTN VTN1:
    curl -v -X POST -H 'content-type: application/json' -H 'username: admin' -H
     'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d '{"vtn" : 
    {"vtn_name":"vtn1","description":"Elan VTN" }}' http://127.0.0.1:8083/vtn-webapi/vtns.json
    expand icon
    Add VTN1
    Graphics/VTN_Screen_4..png
  13. Add vbridge vBridge1:
    curl -v -X POST -H 'content-type: application/json' -H 'username: admin' -H
    'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d '{"vbridge" : 
    {"vbr_name":"vBridge1","controller_id":"controller1","domain_id":"(DEFAULT)" }}
    ' http://127.0.0.1:8083/vtn-webapi/vtns/vtn1/vbridges.json
  14. Add vInterface IF1 vBridge1:
    curl -v -X POST -H 'content-type: application/json' -H 'username: admin' -H
    'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d '{"interface": 
    {"if_name": "if1","description": "if_desc1"}}' 
    http://127.0.0.1:8083/vtn-webapi/vtns/vtn1/vbridges/vBridge1/interfaces.json
    expand icon
    Add vInterface IF1
    Graphics/VTN_Screen_6.png
  15. Add vInterface IF2 to vBridge1:
    curl -v -X POST -H 'content-type: application/json' -H
    'username: admin' -H 'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d
     '{"interface": {"if_name": "if2","description": "if_desc2"}}' 
    http://127.0.0.1:8083/vtn-webapi/vtns/vtn1/vbridges/vBridge1/interfaces.json
    expand icon
    Add vInterface IF2
    Graphics/VTN_Screen_7.png
  16. Add vInterface IF3 vBridge1:
    curl -v -X POST -H 'content-type: application/json' -H 'username: admin' -H
    'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d '{"interface": 
    {"if_name": "if3","description": "if_desc3"}}' 
    http://127.0.0.1:8083/vtn-webapi/vtns/vtn1/vbridges/vBridge1/interfaces.json
    expand icon
    Add vInterface IF3
    Graphics/VTN_Screen_8.png
  17. Map the logical port to interface IF1:
    curl -v -X PUT -H 'content-type: application/json' -H 'username: admin' -H
     'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d 
    '{"portmap":{"logical_port_id": "PP-OF:00:00:<switch-mac-address-here>-<port id here>",
    "vlan_id": "100","tagged": "true"}}' 
    http://127.0.0.1:8083/vtn-webapi/vtns/vtn1/vbridges/vBridge1/interfaces/if1/portmap.json
    expand icon
    Map Logical Port to Interface IF1
    Graphics/VTN_Screen_9.png
  18. Map the logical port to interface IF2:
    curl -v -X PUT -H 'content-type: application/json' -H
     'username: admin' -H 'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d
     '{"portmap":{"logical_port_id": 
    "PP-OF:00:00:<switch-mac-address-here>-<port id here>","vlan_id": "101","tagged": "true"}}' 
    http://127.0.0.1:8083/vtn-webapi/vtns/vtn1/vbridges/vBridge1/interfaces/if2/portmap.json
    expand icon
    Map Logical Port to Interface IF2
    Graphics/VTN_Screen_11.png
  19. Map the logical port to interface IF3:
    curl -v -X PUT -H 'content-type: application/json' -H 'username: admin' -H
     'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d 
    '{"portmap":{"logical_port_id": "PP-OF:00:00:<switch-mac-address-here>-<port id here>",
    "vlan_id": "101","tagged": "true"}}' 
    http://127.0.0.1:8083/vtn-webapi/vtns/vtn1/vbridges/vBridge1/interfaces/if3/portmap.json
    expand icon
    Map Logical Port to Interface IF3
    Graphics/VTN_Screen_12.png

    IF1 is mapped to port 1 with VLAN 100 on the Summit X440 (OF|02:77) and IF2 is mapped to port 1 with VLAN 101 on a different Summit X440 (OF|ee:7c).

  20. Create VTN VTN2:
    curl -v -X POST -H 'content-type: application/json' -H
     'username: admin' -H 'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d
     '{"vtn" : {"vtn_name":"vtn2","description":"Elan VTN 2" }}' 
    http://127.0.0.1:8083/vtn-webapi/vtns.json
    expand icon
    Add VTN2
    Graphics/VTN_Screen_13.png
  21. Add vbridge vBridge1:
    curl -v -X POST -H 'content-type: application/json' -H 'username: admin' -H
     'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d '{"vbridge" : 
    {"vbr_name":"vBridge1","controller_id":"controller1","domain_id":"(DEFAULT)" }}' 
    http://127.0.0.1:8083/vtn-webapi/vtns/vtn2/vbridges.json
    expand icon
    Add vBridge1
    Graphics/VTN_Screen_14.png
  22. Add vInterface IF1 to vBridge1:
    curl -v -X POST -H 'content-type: application/json' -H 'username: admin' -H
     'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d '{"interface": 
    {"if_name": "if1","description": "if_desc1"}}' 
    http://127.0.0.1:8083/vtn-webapi/vtns/vtn2/vbridges/vBridge1/interfaces.json
    expand icon
    Add vInterface IF1 to vBridge1
    Graphics/VTN_Screen_15.png
  23. Add vInterface IF2 to vBridge1:
    curl -v -X POST -H 'content-type: application/json' -H 'username: admin' -H
     'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d '{"interface": 
    {"if_name": "if2","description": "if_desc2"}}' 
    http://127.0.0.1:8083/vtn-webapi/vtns/vtn2/vbridges/vBridge1/interfaces.json
    expand icon
    Add vInterface IF2 to vBridge1
    Graphics/VTN_Screen_16.png
  24. Map the logical ports to the interface IF1 (same ports as VTN1)
    curl -v -X PUT -H 'content-type: application/json' -H
     'username: admin' -H 'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d
     '{"portmap":{"logical_port_id": "PP-OF:00:00:<switch-mac-address-here>-<port id here>",
    "vlan_id": "200","tagged": "true"}}' 
    http://127.0.0.1:8083/vtn-webapi/vtns/vtn2/vbridges/vBridge1/interfaces/if1/portmap.json
    expand icon
    Map logical ports to Interface IF1
    Graphics/VTN_Screen_17.png
  25. Map the logical ports to the interface IF2 (same ports as VTN1)
    curl -v -X PUT -H 'content-type: application/json' -H 'username: admin' -H
     'password: adminpass' -H 'ipaddr:<onecontroller-ip>' -d '{"portmap":{"logical_port_id": 
    " PP-OF:00:00:<switch-mac-address-here>-<port id here>","vlan_id": "201","tagged": "true"}}
    ' http://127.0.0.1:8083/vtn-webapi/vtns/vtn2/vbridges/vBridge1/interfaces/if2/portmap.json
    expand icon
    Map logical ports to Interface IF2
    Graphics/VTN_Screen_18.png

    IF1 is mapped to port 1 with VLAN 100 on the Summit X440 (OF|02:77) and IF2 is mapped to port 1 with VLAN 101 on a different Summit X440 (OF|ee:7c).

  26. Open VM Host1-dsl and open terminal. This host is connected to port 1 of the summit 440 (OF|02:77):
    sudo ping  200.1.1.101
    Ping is successful. You should see that ODL has pushed new flows on both the Summit X440 series switches, so that it can strip and add VLAN tags to get the packets to their destination.
    show openflow flows
  27. Open VM Host2-dsl and open terminal (ping VM Host1-dsl):
    sudo ping 200.1.1.100
    Ping is successful.
  28. Ping VM Host3-dsl:
    sudo ping 200.1.1.200
    Should not ping as expected as this host belongs to VTN2.
  29. Ping VM Host4-dsl:
    sudo ping 200.1.1.201
    Should not ping as expected as this host belongs to VTN2.
  30. Open VM Host3-dsl and open terminal (ping VM Host4-dsl):
    sudo ping 200.1.1.201
    Ping is successful. You should see that ODL has pushed new flows on both the Summit X440 series switches, so that it can strip and add VLAN tags to get the packets to their destination.
  31. Refresh OneController GUI. The four hosts should be visible and connected to the data ports in the Summit X440 series switches.
  32. While the pings are going, disable a port link on the Summit switch.
    telnet 100.1.1.20
    disable port 3
  33. Refresh OneController GUI. The new topology should be visible. OneController pushes new flows to the switches for the new topology.
  34. Enable port 3.
    OneController discovers topology again, and pushes new flows again.