Setting Up OneController Virtual Tenant Network
To set up OneController VTN:
- After deploying (EXTR-OneC-V-DA-1.0.ova), power on of OneController using the ESXi server.
- Start OneController.
- Log on to OneController as an administrator (user name = admin, password = abc123).
-
Log on to Karaf (password = karaf).
admin@OC.extremenetworks.com:~$ ssh karaf@127.0.0.1 -p 8101 Password authentication Password: (karaf)
-
Install the following features:
opendaylight-user@root>feature:install odl-adsal-compatibility-all odl-nsf-all odl-vtn-manager-all
-
Verify that all features have been installed:
opendaylight-user@root>feature:list –i
-
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
- After deploying (EXTR-VTNCoordinator-DAKit.ova), power on of the VTN Coordinator using the ESXi server.
- Start VTN coordinator and log on as root (user name = root, password = extreme).
-
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.Start and Check VTN Coordinator -
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
Add OneController to VTN Coordinatorcurl -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
Check OneController in VTN -
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
Add VTN1 -
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
-
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
Add vInterface IF1 -
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
Add vInterface IF2 -
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
Add vInterface IF3 -
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
Map Logical Port to Interface IF1 -
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
Map Logical Port to Interface IF2 -
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
Map Logical Port to Interface IF3IF1 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).
-
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
Add VTN2 -
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
Add vBridge1 -
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
Add vInterface IF1 to vBridge1 -
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
Add vInterface IF2 to vBridge1 -
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
Map logical ports to Interface IF1 -
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
Map logical ports to Interface IF2IF1 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).
-
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
-
Open VM Host2-dsl and open terminal (ping VM Host1-dsl):
sudo ping 200.1.1.100
Ping is successful. -
Ping VM Host3-dsl:
sudo ping 200.1.1.200
Should not ping as expected as this host belongs to VTN2. -
Ping VM Host4-dsl:
sudo ping 200.1.1.201
Should not ping as expected as this host belongs to VTN2. -
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. - Refresh OneController GUI. The four hosts should be visible and connected to the data ports in the Summit X440 series switches.
-
While the pings are going, disable a port link on the Summit switch.
telnet 100.1.1.20 disable port 3
- Refresh OneController GUI. The new topology should be visible. OneController pushes new flows to the switches for the new topology.
-
Enable port 3.
OneController discovers topology again, and pushes new flows again.