Tags:
create new tag
view all tags
This page is to aggregate interesting information and documentation for the T2 SDN agent, which is a proof of concept of what we could potentially do using Internet2's OESS service. The idea is to keep it simple (as there is not a lot of time available for it) but still demonstrate that inter-site traffic can be re-routed through the controller, optimizing the mesh's occupancy in different points, redirecting traffic that is overloading paths, to other paths. %TOC% ---+ Concepts ---++ Algorithm The agent should be based in polling cycles. It will monitor links to site A to B, C, D, E and F. Each link A <-> B will have more than one route. The agent will analyze the multiple routes and figure out if link occupancy can be optimized to reduce load in overloaded paths and increase the load in sub-utilized paths. Paths between site A and B will at first be set by humans. The way to do it will be in a configuration file, in the INI style of [[http://search.cpan.org/~sherzodr/Config-Simple-4.59/Simple.pm][Config::Simple]]. The agent will then poll the different paths and run the algorithm to take decisions. ---++ Necessary parts * Data collection mechanism * Path usage analysis mechanism, including decision making of optimal path * Commit decisions to OESS Currently, the 2 first parts are implemented, example output : <verbatim> [samir@darkstar sdn-agent]$ perl -Ilib t/basic.t 1..2 ok 1 - we have an agent instance Ok, we have a configuration file ok 2 - it loaded the config file For path nebraska-southern , max occupancy is 25.708445109874 Gbps Threshold of 9.31322574615479 Gbps is exceeded on the default path For path nebraska-central , max occupancy is 3.40954129382968 Gbps Path nebraska-central has not exceeded the threshold and is a good option to nebraska-southern </verbatim> ---++ Link usage analysis We will assume that whatever circuit established will be bi-directional, therefore we will use this to our advantage when calculating link occupancy, so if A <-> B is : * A -> B - 10 Gbps * A <- B - 15 Gbps * Link occupancy will be considered the biggest value. Example from the testing phase : <verbatim> ok 2 - it loaded the config file in : 4880768648.32 out : 23459754131.92 Occupancy : 23459754131.92 in : 4923468309.12 out : 23343333114.4 Occupancy : 23343333114.4 in : 4923468309.12 out : 23343333114.4 Occupancy : 23343333114.4 in : 26732614349.12 out : 6674543318.08 Occupancy : 26732614349.12 in : 25724523544.64 out : 5172133386.72 Occupancy : 25724523544.64 in : 11104883426.7378 out : 5572073934.03555 Occupancy : 11104883426.7378 in : 464418907.68 out : 1221074236.24 Occupancy : 1221074236.24 in : 3608908918.24 out : 1939667358.24 Occupancy : 3608908918.24 in : 2275492791.2 out : 3712034803.36 Occupancy : 3712034803.36 </verbatim> ---+ Data collection ---++ Weathermap This [[http://atlas.grnoc.iu.edu/atlas.cgi?map_name=Internet2%20AL2S][weathermap]] shows the live status of the networks. Reverse engineering it one can find URLs that provide the data seen on the map in the [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.elpa.net.internet2.edu&interfaces=ethernet3%2F1][XML Format]]. There is a number of different nodes and it is not clear that all interfaces are "capturable". Look for the "custom.cgi" HTTP Call on the page (from JS) and you will find what appears to be all metadata of all points in the map. ---+++ Map logical link / monitoring ---++++ Caltech <-> Nebraska [1] - southern * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.losa.net.internet2.edu&interfaces=ethernet3%2F1][LOSA <-> SALT ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.losa.net.internet2.edu&interfaces=100GigabitEthernet3/2][LOSA <-> PHOE]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.phoe.net.internet2.edu&interfaces=et-4/0/0][ PHOE <-> TUCS ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.elpa.net.internet2.edu&interfaces=ethernet3%2F1][ TUCS <-> ELPA ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.houh.net.internet2.edu&interfaces=ethernet1%2F1][ ELPA <-> HOUS ]] * HOUS <-> DALLAS ? * DALLAS <-> TULS ? * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.kans.net.internet2.edu&interfaces=ethernet3%2F1][ TULS <-> KANS ]] ---++++ Caltech <-> Nebraska [2] - central * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.losa.net.internet2.edu&interfaces=ethernet3%2F1][LOSA == SALT ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.denv.net.internet2.edu&interfaces=ethernet1%2F1][SALT == DENV ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.denv.net.internet2.edu&interfaces=100GigabitEthernet3/2][DENV == KANS ]] ---++++ Generic * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.salt.net.internet2.edu&interfaces=100GigabitEthernet7/2][SALT == SEAT ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.denv.net.internet2.edu&interfaces=100GigabitEthernet3/1][DENV == ELPA ]] ---+++ Configuration file format <verbatim> # Simply, to which Point of Presence your site (Caltech) is connected to? site-pop = sdn-sw.losa.net.internet2.edu # "10 Gbps" threshold = 1073741824 [NEBRASKA] DEFAULT = nebraska-southern nebraska-southern = 'sdn-sw.losa.net.internet2.edu&interfaces=100GigabitEthernet3/2', 'sdn-sw.phoe.net.internet2.edu&interfaces=et-4/0/0', 'sdn-sw.phoe.net.internet2.edu&interfaces=et-4/0/0', 'sdn-sw.elpa.net.internet2.edu&interfaces=ethernet3%2F1', 'sdn-sw.houh.net.internet2.edu&interfaces=ethernet1%2F1', 'sdn-sw.kans.net.internet2.edu&interfaces=ethernet3%2F1' nebraska-central = 'sdn-sw.losa.net.internet2.edu&interfaces=ethernet3%2F1', 'sdn-sw.denv.net.internet2.edu&interfaces=ethernet1%2F1', 'sdn-sw.denv.net.internet2.edu&interfaces=100GigabitEthernet3/2' [WISCONSIN] path1 = 'a','b', 'c' </verbatim> ---++ PerfSONAR It looks like PerfSONAR will help in the future as you can query traceroutes to it. In the very beginning the best is to do the routing decisions ourselves, and not have any automatic mechanism, but for the future it is interesting to note this. ---+ Actions - OESS Azher deployed one OESS instance. Once the previous parts are written, a possibility is to do a small demo with the local equipment, having 2 links between 2 local servers and shifting the load between the links. -- Main.samir - 2014-08-06
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r4
<
r3
<
r2
<
r1
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r4 - 2014-08-07
-
samir
Home
Site map
Main web
Sandbox web
TWiki web
Main Web
Users
Groups
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
E
dit
A
ttach
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback