Have questions? Stuck? Please check our FAQ for some common questions and answers.

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

Compare with Current View Page History

« Previous Version 9 Next »

 

When ONOS receives an IPv4 or IPv6 packet-in, it will reactively compute and install the routing path for the traffic. We call this function reactive routing. In ONOS we implemented a reactive routing application (name:  "onos-app-reactive-routing") .

The reactive routing application can handle three cases: 2, 3, and 4, while case 1 is controlled by SDN-IP application.


  1. transit traffic (traffic from one BGP peer outside local SDN network traverses local SDN network and goes to another BGP peer) are proactively installed by SDN-IP application. You can find the description hereSDN-IP.
  2. one host wants to talk to another host, both two hosts are in SDN network.
  3. one host in SDN network wants to talk to another host in Internet.
  4. one host from Internet wants to talk to another host in SDN network.

 

Note: “onos-app-reactive-routing” depends on “onos-app-sdnip”, so if you want to use the reactive routing function, you need to activate “onos-app-sdnip” first, and then active “onos-app-reactive-routing”.

 

Configuration

BGP Configuration 

In order to announce the public prefixes to other networks, we should also configure the BGP speaker in local SDN network with all the public prefixes.

Scenario 1:

Even if you only want run reactive routing for local traffic, which means case 2 above. You still need to run SDN-IP APP.

one example of the configuration file is:

 

{
    "ports" : {
        "of:00000000000000a1/4" : {
            "interfaces" : [
                {
                    "ips"  : [ "201.0.0.254/24" ],
                    "mac"  : "00:00:00:00:00:01"
                }
            ]
        },
        "of:00000000000000a2/3" : {
            "interfaces" : [
                {
                    "ips"  : [ "202.0.0.254/24" ],
                    "mac"  : "00:00:00:00:00:01"
                }
            ]
        },
        "of:00000000000000a6/3" : {
            "interfaces" : [
                {
                    "ips"  : [ "206.0.0.200/24" ],
                    "mac"  : "00:00:00:00:00:01"
                }
            ]
        },
        "of:0000000000000a13/4" : {
            "interfaces" : [
                {
                    "ips"  : [ "213.0.0.200/24" ],
                    "mac"  : "00:00:00:00:00:01"
                }
            ]
        }
    },
    "apps" : {
       "org.onosproject.reactive.routing" : {
            "reactiveRouting" : {
                "ip4LocalPrefixes" : [
                    {
                        "ipPrefix" : "201.0.0.0/24",
                        "type" : "PUBLIC",
                        "gatewayIp" : "201.0.0.254"
                    },
                    {
                        "ipPrefix" : "202.0.0.0/24",
                        "type" : "PUBLIC",
                        "gatewayIp" : "202.0.0.254"
                    },
                    {
                        "ipPrefix" : "206.0.0.0/24",
                        "type" : "PRIVATE",
                        "gatewayIp" : "206.0.0.254"
                    },
                    {
                        "ipPrefix" : "213.0.0.0/24",
                        "type" : "PRIVATE",
                        "gatewayIp" : "213.0.0.254"
                    }
                ],
                "ip6LocalPrefixes" : [
                ],
                "virtualGatewayMacAddress" : "00:00:00:00:00:01"
            }
        }
    }
}

 

Scenario 2:

If you want to make all the scenarios work, including 1. 2. 3. 4. Then you should config both SDN-IP APP and ReactiveRouting APP. One config example is:

 

{
    "ports" : {
        "of:00000000000000a8/5" : {
            "interfaces" : [
                {
                    "ips"  : [ "10.0.5.101/24" ],
                    "mac"  : "00:00:00:00:00:01"
                }
            ]
        },
        "of:0000000000000a32/4" : {
            "interfaces" : [
                {
                    "ips"  : [ "10.0.4.101/24" ],
                    "mac"  : "00:00:00:00:00:01"
                }
            ]
        },
        "of:0000000000000a28/3" : {
            "interfaces" : [
                {
                    "ips"  : [ "10.0.6.101/24" ],
                    "mac"  : "00:00:00:00:00:01"
                }
            ]
        },
        "of:00000000000000a1/4" : {
            "interfaces" : [
                {
                    "ips"  : [ "201.0.0.200/24" ],
                    "mac"  : "00:00:00:00:00:01"
                }
            ]
        },
        "of:00000000000000a2/3" : {
            "interfaces" : [
                {
                    "ips"  : [ "202.0.0.200/24" ],
                    "mac"  : "00:00:00:00:00:01"
                }
            ]
        },
        "of:00000000000000a6/3" : {
            "interfaces" : [
                {
                    "ips"  : [ "206.0.0.200/24" ],
                    "mac"  : "00:00:00:00:00:01"
                }
            ]
        },
        "of:0000000000000a13/4" : {
            "interfaces" : [
                {
                    "ips"  : [ "213.0.0.200/24" ],
                    "mac"  : "00:00:00:00:00:01"
                }
            ]
        }
    },
    "apps" : {
        "org.onosproject.router" : {
            "bgp" : {
                "bgpSpeakers" : [
                    {
                        "connectPoint" : "of:0000000000000a24/1",
                        "peers" : [
                            "10.0.4.1",
                            "10.0.5.1",
                            "10.0.6.1"
                        ]
                    }
                ]
            }
        },
       "org.onosproject.reactive.routing" : {
            "reactiveRouting" : {
                "ip4LocalPrefixes" : [
                    {
                        "ipPrefix" : "201.0.0.0/24",
                        "type" : "PUBLIC",
                        "gatewayIp" : "201.0.0.254"
                    },
                    {
                        "ipPrefix" : "202.0.0.0/24",
                        "type" : "PUBLIC",
                        "gatewayIp" : "202.0.0.254"
                    },
                    {
                        "ipPrefix" : "206.0.0.0/24",
                        "type" : "PRIVATE",
                        "gatewayIp" : "206.0.0.254"
                    },
                    {
                        "ipPrefix" : "213.0.0.0/24",
                        "type" : "PRIVATE",
                        "gatewayIp" : "213.0.0.254"
                    }
                ],
                "ip6LocalPrefixes" : [
                ],
                "virtualGatewayMacAddress" : "00:00:00:00:00:01"
            }
        }
    }
}

Since  "201.0.0.0/24" and  "202.0.0.0/24" are public IP prefixes, you should also config them inside BGP speakers inside SDN network. 

 

 

  • No labels