MA-NLSR is an intra-domain routing protocol supporting multi-area for Named Data Networking(NDN).
MA-NLSR based on NLSR is an application level protocol simular to many IP routing protocol,
but MA-NLSR uses NDN's Interest/Data packets to dissemminate rotuing updates inside a single Area.
NLSR is the first intra-domin routing protocol in most NDN researches, but doesn't support multi-Area concept.
We extend NLSR to have Multi-Area which keeps the NLSR's design patterns.
MA-NLSR is designed to accomplish three key tasks:
- discover adjacent neighbors in specific area
- disseminate and synchronize topology, name prefix in specific area
- calculate a routing table and populate NFD's FIB in specific area
MA-NLSR modifies the following modules to support "multiple areas" like OSPF.
The LSA format is show below.
Each LSA has the name /<network>/NLSR/<Area-ID>/LSA/<site>/<router>/<lsa-type>/<version>,
where <lsa-type> can be NAME, ADJACENCY, IA-NAME, Ext-NAME, Ext-Net-NAME.
IA-NAME, Ext-NAME, Ext-Net-NAME are a newly added LSAs to support multi-area.
- NAME Lsa: to carry Name Prefixes within the area.
- ADJACENCY Lsa: to carry Adjacency Prefiexes within the area.
- IA-NAME Lsa: to carry Name Prefiexes to which another Area belongs.
- Ext-NAME Lsa: to advertise the Name prefixes originated static configuration by an operator.
- Ext-Net-NAME Lsa: to redistribute the Name prefixes from EGP like BGP.
The <Area-ID> component identifies the Area to which the router belongs.
Below figure shows the list of Tables that were modified (yellow) to support Multi-Area.
The key design goals of MA-NLSR is to provide the following principles:
- internet scalibility via multi-area
- compatibility with NFD and existing NLSR, and
- maintaining NLSR's routing architecture to inherit its advantages of midularity and extensibility.
Execute the following commands to build PSync:
$ cd PSync
$ ./waf configure
$ ./waf
$ sudo ./waf install
Execute the following commands to build MA-NLSR:
$ ./waf configure
$ ./waf
$ sudo ./waf install
After installing MA-NLSR from source, you need to create a configuration file for MA-NLSR. Please take a look at nlsr.conf for a sample configuration.
Please refer to Configuration
Run dcn-nlsr with the follwing command:
$ nlsr
-
Based on NLSR 0.7.1 & ndn-cxx 0.7.1
-
Added Features :
- Anycast Name Prefix
- External Name LSA for Static by operator
- Inter-Area Name LSA among Areas
- External NetName LSA for BGP Redistribution
-
Not Supported Yet :
- Stub Area
- Mac OS Platform
MA-NLSRD has been tested on the following platforms:
- Ubuntu 18.04 (amd64, armhf)
Mac OS shall be supported in the future releases.
MA-NLSR is designed and developed by:
- Sung Hyuk Byun ([email protected])
- Jong Seok Lee ([email protected])
This work is one of research results of the project "Hyper-connected Intelligent Infrastructure Technology Development" conducted by ETRI, Korea. The project leaders are:
- Namseok Ko ([email protected])
- Sun Me Kim ([email protected])