You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

A first run of the NSA software with GTS configuration will use the following components :

  1. n NSA nodes*: Several NSA nodes, each managing the TF's in a cloud.
  2. An Aggregator*: The Central Node that talks to the cloud NSA nodes.
  3. A User Agent*: A Requester that communicate with the Aggregator

The GTS topology consists of a tree with an openNSA node acting as Aggregator at the top of the tree, and client openNSA nodes doing the real work. The './onsa' script is used as client.

All openNSA nodes run in their own Docker container using a 'dud configuration, and can be  debugged in Intellij.

A couple of conf/nrm files

The configuration of the Docker development environment mimics
the GTS configuration as closely as possible. Here are the
conf/nrm files of the two hosts that will be used in the examples.

First 'dud' config for Amsterdam:

# opennsa-ams-dud.conf
[service]
network=ams.gts.nsi.geant.net
logfile=build/logs/opennsa-ams.log

user=opennsa
host=10.50.0.2
port=9445

database=opennsa-ams
dbuser=opennsa
dbpassword=secretpassword
dbhost=dockerhost
tls=false

policy=allowhairpin

nrmmap=build/config/gts/opennsa-ams-top.nrm

[dud]


# opennsa-ams-top.nrm
ethernet corsa0-1 - vlan:10-100 10000 xe-2/1/3 -
ethernet corsa0-2 - vlan:10-100 10000 xe-2/2/0 -
ethernet corsa0-3 - vlan:10-100 10000 xe-2/2/3 -
ethernet corsa0-4 - vlan:10-100 10000 xe-2/3/0 -
ethernet server0-0 - vlan:10-100 10000 xe-9/0/2 -
ethernet server1-0 - vlan:10-100 10000 xe-9/0/3 -
ethernet server2-0 - vlan:10-100 10000 xe-9/0/6 -
ethernet server3-0 - - 10000 xe-9/0/7 -
ethernet bmsgw - vlan:10-100 1000 ge-3/2/1 -
ethernet ge-0-3-6 - vlan:3000-3099 1000 ge-0/3/6 -
ethernet prg.gts.nsi.geant.net prg.gts.nsi.geant.net:topology#ams.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-1 -
ethernet bra.gts.nsi.geant.net bra.gts.nsi.geant.net:topology#ams.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-2 -
ethernet ham.gts.nsi.geant.net ham.gts.nsi.geant.net:topology#ams.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-3 -
ethernet mad.gts.nsi.geant.net mad.gts.nsi.geant.net:topology#ams.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-4 -
ethernet lon.gts.nsi.geant.net lon.gts.nsi.geant.net:topology#ams.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-5 -
ethernet par.gts.nsi.geant.net par.gts.nsi.geant.net:topology#ams.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-6 -
ethernet mil.gts.nsi.geant.net mil.gts.nsi.geant.net:topology#ams.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-7 -

Next the configuration for Bratislave 

# opennsa-bra-dud.conf
[service]
network=bra.gts.nsi.geant.net
logfile=build/logs/opennsa-bra.log

user=opennsa
host=10.50.0.3
port=9447

database=opennsa-bra
dbuser=opennsa
dbpassword=secretpassword
dbhost=dockerhost
tls=false

policy=allowhairpin

nrmmap=build/config/gts/opennsa-bra-top.nrm

[dud]


# opennsa-bra-top.nrm
ethernet corsa0-1 - vlan:10-100 10000 xe-2/0/2 -
ethernet corsa0-2 - vlan:10-100 10000 xe-2/0/3 -
ethernet corsa0-3 - vlan:10-100 10000 xe-2/0/4 -
ethernet corsa0-4 - vlan:10-100 10000 xe-2/0/5 -
ethernet server0-0 - vlan:10-100 10000 xe-2/0/6 -
ethernet server1-0 - vlan:10-100 10000 xe-2/0/7 -
ethernet server2-0 - vlan:10-100 10000 xe-2/0/8 -
ethernet server3-0 - - 10000 xe-2/0/9 -
ethernet bmsgw - vlan:10-100 1000 ge-0/3/2 -
ethernet par.gts.nsi.geant.net par.gts.nsi.geant.net:topology#bra.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-1 -
ethernet mad.gts.nsi.geant.net mad.gts.nsi.geant.net:topology#bra.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-2 -
ethernet mil.gts.nsi.geant.net mil.gts.nsi.geant.net:topology#bra.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-3 -
ethernet ham.gts.nsi.geant.net ham.gts.nsi.geant.net:topology#bra.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-4 -
ethernet ams.gts.nsi.geant.net ams.gts.nsi.geant.net:topology#bra.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-5 -
ethernet lon.gts.nsi.geant.net lon.gts.nsi.geant.net:topology#bra.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-6 -
ethernet prg.gts.nsi.geant.net prg.gts.nsi.geant.net:topology#bra.gts.nsi.geant.net-(in|out) mpls:1-4000 10000 vmpls-7 -

A first './onsa' run



With the Docker development environment up and running, which is using the GTS configuration
(conf) and .nrm files, the following should be a valid first './onsa' command:

./onsa reserve -v -p main \
--source ams.gts.nsi.geant.net:bra.gts.nsi.geant.net \
--dest bra.gts.nsi.geant.net:ams.gts.nsi.geant.net

However, this gives as output:

Defaults:
nsa : {'main': ('gts.nsi.geant.net:2013:nsa', 'http://10.50.0.7:9443/NSI/services/CS2')}
host : 10.50.0.1
bandwidth : 200
starttime : 2017-07-03 09:29:02.181287
endtime : 2017-07-03 09:33:02.181309
port : 7080
Requester URL: http://10.50.0.1:7080/NSI/services/ConnectionService
Site starting on 7080
Reserve invocation failed: Source network ams.gts.nsi.geant.net not known, cannot create circuit
STPResolutionError from urn:ogf:network:gts.nsi.geant.net:2013:nsa
Source network ams.gts.nsi.geant.net not known, cannot create circuit
(TCP Port 7080 Closed)

It turns out both the source and the destination specifications are invalid. The following attempt uses valid source and destination specifications.

jan@thinkie:/data/opennsa$ ./onsa reserve -v -p main -s ams.gts.nsi.geant.net:topology:server2-0#vlan=12 -d bra.gts.nsi.geant.net:topology:server2-0#vlan=11
Defaults:
nsa : {'main': ('gts.nsi.geant.net:2013:nsa', 'http://10.50.0.7:9443/NSI/services/CS2')}
host : 10.50.0.1
bandwidth : 200
starttime : 2017-07-03 11:05:14.232531
endtime : 2017-07-03 11:09:14.232582
port : 7080
Requester URL: http://10.50.0.1:7080/NSI/services/ConnectionService
Site starting on 7080
Reserve invocation failed: 2/2 reservations failed:
urn:ogf:network:ams.gts.nsi.geant.net:nsa: Cannot connect STP <STP ams.gts.nsi.geant.net:topology:server2-0?vlan=12> to <STP ams.gts.nsi.geant.net:topology:bra.gts.nsi.geant.net?mpls=1-4000>.
urn:ogf:network:bra.gts.nsi.geant.net:nsa: Cannot connect STP <STP bra.gts.nsi.geant.net:topology:ams.gts.nsi.geant.net?mpls=1-4000> to <STP bra.gts.nsi.geant.net:topology:server2-0?vlan=11>.
ConnectionCreateError from urn:ogf:network:gts.nsi.geant.net:2013:nsa
2/2 reservations failed:
urn:ogf:network:ams.gts.nsi.geant.net:nsa: Cannot connect STP <STP ams.gts.nsi.geant.net:topology:server2-0?vlan=12> to <STP ams.gts.nsi.geant.net:topology:bra.gts.nsi.geant.net?mpls=1-4000>.
urn:ogf:network:bra.gts.nsi.geant.net:nsa: Cannot connect STP <STP bra.gts.nsi.geant.net:topology:ams.gts.nsi.geant.net?mpls=1-4000> to <STP bra.gts.nsi.geant.net:topology:server2-0?vlan=11>.
(TCP Port 7080 Closed)

Still no luck. This time the failure is caused by a limitation of the 'dud' backend used in the development environment (as opposed to the juniper backend used in production). In the 'nrm' files (see above) f the GTS setup the 'label' fields are'mpls', which causes the 'dud' backend problems. Just replace 'mpls:1-4000' with 'vlan:10-100' in all '.nrm' files, and you will get the following:

```
jan@thinkie:/data/opennsa$ ./onsa reserve -v -p main -s ams.gts.nsi.geant.net:topology:server2-0#vlan=12 -d bra.gts.nsi.geant.net:topology:server2-0#vlan=11
Defaults:
nsa : {'main': ('gts.nsi.geant.net:2013:nsa', 'http://10.50.0.7:9443/NSI/services/CS2')}
host : 10.50.0.1
bandwidth : 200
starttime : 2017-07-03 11:37:07.277463
endtime : 2017-07-03 11:41:07.277486
port : 7080
Requester URL: http://10.50.0.1:7080/NSI/services/ConnectionService
Site starting on 7080
Received SOAP request. Action: "http://schemas.ogf.org/nsi/2013/12/connection/service/reserveConfirmed". Length: 1637
Connection created and held. Id GT-474514cd61 at urn:ogf:network:gts.nsi.geant.net:2013:nsa
Source - Destination: <STP ams.gts.nsi.geant.net:topology:server2-0?vlan=12> - <STP bra.gts.nsi.geant.net:topology:server2-0?vlan=11>
Received SOAP request. Action: "http://schemas.ogf.org/nsi/2013/12/connection/service/reserveCommitConfirmed". Length: 789
Reservation committed at urn:ogf:network:gts.nsi.geant.net:2013:nsa
(TCP Port 7080 Closed)
```

Succes!!! (thanks Michal)

And now we can request information about our reservation (we got the ID from the output above,
look carefully):

```
jan@thinkie:/data/opennsa$ ./onsa query -p main -c GT-474514cd61
Site starting on 7080
Query results:

Connection GT-474514cd61 (urn:ogf:network:gts.nsi.geant.net:2013:nsa)
Description Test Connection
States ReserveStart, Released, Created
Dataplane Active : False, Version: 0, Consistent False
Start-End 2017-07-03 11:37:07.277463 - 2017-07-03 11:41:07.277486
Path ams.gts.nsi.geant.net:topology:server2-0?vlan=12 -- bra.gts.nsi.geant.net:topology:server2-0?vlan=11
Bandwidth 200
Direction Bidirectional

(TCP Port 7080 Closed)
```

Take a look in the PostgreSQL databases of the containers,
and you can examine the rows that have been added to the tables
of opennsa-ams, opennsa-bra and opennsa-main.

  • No labels