Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titlenetwork-cfg.json
"org.onosproject.artemis" : {
	"artemis" : {
    		"prefixes" : [
 
           	{
            	"prefix" : "40.0.0.0/8"    "moas": [ ],
                "paths" : [
 
                   	{
                        	"originneighbor" : 65004,[
                          "neighbor" : [{
                         	{
       "asn": 65002,
                    	"asn" : 65002,            "neighbor": [
                                "neighbor": [    65001
    ]
                            }]
                        ]
    }
                }
        ],
        ],
                "moasorigin" : [ ]65004
            }
        ],}
        "frequency" : 3000,
      ],
  "monitors" : {
        	"ripe" : [ ],
    "prefix": "40.0.0.0/8"
            }
        ]
        },
        "moas": { },
        "monitors": {
            "exabgp": [
                "192.168.1.2:5000"
            ],
            	"exabgpripe": [ "192.168.1.2:5000" ]
        }
          
	}
}

Explanation of fields

  • prefixes:List consisting of prefixes with their AS-PATH information and (optionally) legitimate MOAS ASes.

    • prefix: a CIDR representation of the prefix that is monitored/protected.

    • paths: a list of dictionaries that contain the ASN of the protected AS (origin), along with a list of dictionaries for the neighbors.

      • neighbor: list of dictionaries that contain each neighbor's ASN and a list of ASNs for the neighbor's neighbor.
        For example, in the demo topology the protected (origin) AS65004 sees the AS65002 as a first-hop neighbor, and AS65001 as a second-hop neighbor (resulting in the legitimate announced path AS65004 - AS65002 - AS65001).
        Note: While the operator can supply the origin and first-hop neighbor ASNs as ground-truth in the configuration, the N-hop (N > 1) neighbor information is planned to be generated automatically by ARTEMIS in future versions of the tool, based on the received BGP updates.

    • moas: *in-progress*

  • frequencymoas:Polling interval in milliseconds for the detection mechanism to check batches of BGP update messages (stored in the application cache). In the demo configuration file, it is set to check every 3s (3000ms). *in-progress*

  • monitorsList of the route collectors that ARTEMIS is using for monitoring. Currently it supports RIPE and ExaBGP route collectors through the socket-io interface, and is extendable to include more monitoring services/APIs.

    • RIPE Route Collectors have specific identifiers ("rrc17", "rrc18", "rrc19", "rrc20"). You can configure them following this example: "ripe" : ["rrc17", "rrc19"]

    • An ExaBGP Route Collector (RC) is implemented inside the tutorial folder (/onos/tools/tutorials/artemis/). You can host such an RC locally by running an ExaBGP instance with the exabgp.conf and server.py files provided (will require modifications in directory paths). In the demo topology we have an ExaBGP speaker running on 192.168.1.2:5000, monitoring the BGP control plane from the perspective of AS65001.

...

Code Block
languagebash
themeMidnight
$ cd onos/tools/tutorials/artemis
$ sudo ./artemis-topo.py

While having the two terminals open (ONOS instance and mininet), open a new terminal and load the network configuration with onos-netcfg. From this terminal, login to the ONOS CLI:

...