blob: 2e31935fb37ea682580dc8393340755a991be57e [file] [log] [blame]
Vince Lehmanb722b102014-08-24 16:33:49 -05001Router Configuration
2====================
akmhoquecc827532014-07-09 08:48:49 -05003
Vince Lehmanb722b102014-08-24 16:33:49 -05004.. toctree::
5..
6
7Example network and sample configuration
8----------------------------------------
9
10Assume that three routers in the same network, but at three different sites
11(``memphis.edu``, ``arizona.edu``, and ``colostate.edu``), are connected to each other to
akmhoquecc827532014-07-09 08:48:49 -050012construct the following topology:
13
Vince Lehmanb722b102014-08-24 16:33:49 -050014::
15
16 +-------------------------------------+
akmhoquecc827532014-07-09 08:48:49 -050017 | /ndn/edu/memphis/%C1.Router/router1 |
Vince Lehmanb722b102014-08-24 16:33:49 -050018 +-------------------------------------+
akmhoquecc827532014-07-09 08:48:49 -050019 / 11 12\
20 / \
21 route-cost = 25 / \ route-cost = 30
22 / \
23 17 / \ 13
Vince Lehmanb722b102014-08-24 16:33:49 -050024 +-----------------------------------+ 7 10 +-------------------------------------+
akmhoquecc827532014-07-09 08:48:49 -050025 |/ndn/edu/arizona/%C1.Router/router3|-------------------|/ndn/edu/colostate/%C1.Router/router2|
Vince Lehmanb722b102014-08-24 16:33:49 -050026 +-----------------------------------+ route-cost = 28 +-------------------------------------+
akmhoquecc827532014-07-09 08:48:49 -050027
28 Figure: Network Topology
29
Vince Lehmanb722b102014-08-24 16:33:49 -050030The number represents the connecting face id. For example,
31``/ndn/edu/memphis/%C1.Router/router1`` is connected to
32``/ndn/edu/arizona/%C1.Router/router3`` via face 11 and the route cost is 25. To reach
33``/ndn/edu/colostate/%C1.Router/router2`` via face 12, the route cost is 30.
akmhoquecc827532014-07-09 08:48:49 -050034
35We will walk through setting up the faces and creating the configuration file for
Vince Lehmanb722b102014-08-24 16:33:49 -050036``/ndn/edu/memphis/%C1.Router/router1``.
akmhoquecc827532014-07-09 08:48:49 -050037
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -070038Step 1. Ensuring nfd is running
Vince Lehmanb722b102014-08-24 16:33:49 -050039-------------------------------
40
akmhoquecc827532014-07-09 08:48:49 -050041Type the following in the terminal:
42
Vince Lehmanb722b102014-08-24 16:33:49 -050043::
akmhoquecc827532014-07-09 08:48:49 -050044
Vince Lehmanb722b102014-08-24 16:33:49 -050045 nfd-status -f
akmhoquecc827532014-07-09 08:48:49 -050046
Vince Lehmanb722b102014-08-24 16:33:49 -050047If you see ``ERROR: error while connecting to the forwarder (No such file or directory)``,
48``nfd`` is not running. Follow the instructions in `Getting started with NFD
49<http://named-data.net/doc/NFD/current/INSTALL.html>`_ to run nfd.
akmhoquecc827532014-07-09 08:48:49 -050050
Vince Lehmanb722b102014-08-24 16:33:49 -050051Step 2. Determining FaceUri
52---------------------------
akmhoquecc827532014-07-09 08:48:49 -050053
Junxiao Shif09e2632015-01-02 18:15:01 -070054Assume that ``/ndn/edu/arizona/%C1.Router/router3`` has hostname ``router3.arizona.edu`` and
55``/ndn/edu/colostate/%C1.Router/router2`` has IP address ``79.123.10.145``.
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -070056``/ndn/edu/memphis/%C1.Router/router1`` will consider FaceUri
Junxiao Shif09e2632015-01-02 18:15:01 -070057``udp4://router3.arizona.edu`` for router ``/ndn/edu/arizona/%C1.Router/router3`` and
58FaceUri ``udp4://79.123.10.145`` for router ``/ndn/edu/colostate/%C1.Router/router2``.
Vince Lehmanb722b102014-08-24 16:33:49 -050059
60Step 3: Creating configuration file
61-----------------------------------
62
63Now, assume that ``/ndn/memphis.edu/router1`` wants to advertise three name prefixes
64(``/ndn/memphis/sports/basketball/grizzlies``, ``/ndn/memphis/entertainment/blues``,
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -070065``/ndn/news/memphis/politics/lutherking``). The configuration file with the necessary
Vince Lehmanb722b102014-08-24 16:33:49 -050066configuration commands follows:
67
68::
akmhoquecc827532014-07-09 08:48:49 -050069
70 ; nlsr.conf starts here
71 ; the general section contains all the general settings for router
72
73 general
74 {
75 ; mandatory configuration command section network, site and router
akmhoquecc827532014-07-09 08:48:49 -050076 network /ndn/ ; name of the network the router belongs to in ndn URI format
77 site /edu/memphis/ ; name of the site the router belongs to in ndn URI format
78 router /%C1.Router/router1 ; name of the network the router belongs to in ndn URI format
79
80 ; lsa-refresh-time is the time in seconds, after which router will refresh its LSAs
akmhoquecc827532014-07-09 08:48:49 -050081 lsa-refresh-time 1800 ; default value 1800. Valid values 240-7200
82
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -070083 ; InterestLifetime (in seconds) for LSA fetching
84 lsa-interest-lifetime 4 ; default value 4. Valid values 1-60
akmhoquecc827532014-07-09 08:48:49 -050085
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -070086 ; log-level is to set the levels of log for NLSR
akmhoquecc827532014-07-09 08:48:49 -050087 log-level INFO ; default value INFO, valid value DEBUG, INFO
88 log-dir /var/log/nlsr/
89 seq-dir /var/lib/nlsr/
Muktadir R Chowdhury800833b2016-07-29 13:43:59 -050090 ; log4cxx-conf /path/to/log4cxx-conf
akmhoquecc827532014-07-09 08:48:49 -050091 }
92
93 ; the neighbors section contains the configuration for router's neighbors and hello's behavior
94
95 neighbors
96 {
97 ; in case hello interest timed out, router will try 'hello-retries' times at 'hello-time-out'
98 ; seconds interval before giving up for any neighbors (deciding link is down)
99
100 hello-retries 3 ; interest retries number in integer. Default value 3
101 ; valid values 1-10
102
103 hello-timeout 1 ; interest time out value in integer. Default value 1
104 ; Valid values 1-15
105
106 hello-interval 60 ; interest sending interval in seconds. Default value 60
107 ; valid values 30-90
Muktadir R Chowdhury800833b2016-07-29 13:43:59 -0500108
109 ; adj-lsa-build-interval is the time to wait in seconds after an Adjacency LSA build is scheduled
110 ; before actually building the Adjacency LSA
111
112 adj-lsa-build-interval 5 ; default value 5. Valid values 0-5. It is recommended that
113 ; adj-lsa-build-interval have a lower value than routing-calc-interval
114
115 ; first-hello-interval is the time to wait in seconds before sending the first Hello Interest
116
117 first-hello-interval 10 ; Default value 10. Valid values 0-10
118
akmhoquecc827532014-07-09 08:48:49 -0500119 ; neighbor command is used to configure router's neighbor. Each neighbor will need
120 ; one block of neighbor command
121
122 neighbor
123 {
124 name /ndn/edu/arizona/%C1.Router/router3 ; name prefix of the neighbor router consists
125 ; of network, site-name and router-name
126
127 face-uri udp4://router3.arizona.edu ; face uri of the face connected to the neighbor
128 link-cost 25 ; cost of the connecting link to neighbor
129 }
130
131 neighbor
132 {
133 name /ndn/edu/colostate/%C1.Router/router2 ; name prefix of the neighbor router consists
134 ; of network, site-name and router-name
135
136 face-uri udp4://79.123.10.145 ; face uri of the face connected to the neighbor
137 link-cost 30 ; cost of the connecting link to neighbor
138 }
139 }
140
Vince Lehmanb722b102014-08-24 16:33:49 -0500141 ; the hyperbolic section contains the configuration settings of enabling
142 a router to calculate ; routing table using `hyperbolic routing table
143 calculation`_ method
akmhoquecc827532014-07-09 08:48:49 -0500144
145 hyperbolic
146 {
147 ; commands in this section follows a strict order
148 ; the switch is used to set hyperbolic routing calculation in NLSR
149
150 state off ; default value 'off', set value 'on' to enable hyperbolic routing table
Junxiao Shif09e2632015-01-02 18:15:01 -0700151 ; calculation which turns link state routing 'off'. set value to 'dry-run'
akmhoquecc827532014-07-09 08:48:49 -0500152 ; to test hyperbolic routing and compare with link state routing.
153
154
155 radius 123.456 ; radius of the router in hyperbolic coordinate system
156 angle 1.45 ; angle of the router in hyperbolic coordinate system
157 }
158
159
160 ; the fib section is used to configure fib entry's type to ndn FIB updated by NLSR
161
162 fib
163 {
164 ; the max-faces-per-prefix is used to limit the number of faces for each name prefixes
165 ; by NLSR in ndn FIB
166
167 max-faces-per-prefix 3 ; default value 0. Valid value 0-60. By default (value 0) NLSR adds
168 ; all available faces for each reachable name prefixes in NDN FIB
169
170 }
171
Vince Lehmanb722b102014-08-24 16:33:49 -0500172 ; the advertising section contains the configuration settings of the
173 name prefixes ; hosted by this router
akmhoquecc827532014-07-09 08:48:49 -0500174
175 advertising
176 {
177 ; the ndnname is used to advertised name from the router. To advertise each name prefix
178 ; configure one block of ndnname configuration command for every name prefix.
179
180 prefix /ndn/memphis/sports/basketball/grizzlies
181 prefix /ndn/memphis/entertainment/blues
182 prefix /ndn/news/memphis/politics/lutherking
183 }
184
Vince Lehmanb722b102014-08-24 16:33:49 -0500185.. note::
akmhoquecc827532014-07-09 08:48:49 -0500186
Vince Lehmanb722b102014-08-24 16:33:49 -0500187 Security configuration is discussed in :doc:`SECURITY-CONFIG`, which will be also part
188 of this configuration file
189
190Step 4: Running NLSR on /ndn/memphis.edu/router1
akmhoquecc827532014-07-09 08:48:49 -0500191-------------------------------------------------
Vince Lehmanb722b102014-08-24 16:33:49 -0500192
193Assuming the configuration file is saved as ``nlsr.conf``, type the following to run nlsr:
194
195::
akmhoquecc827532014-07-09 08:48:49 -0500196
197 $ nlsr -f nlsr.conf
198
Vince Lehmanb722b102014-08-24 16:33:49 -0500199NLSR will look for nlsr.conf in the current directory. If nlsr.conf is not in the current
200directory, please provide the absolute path with the file name as the value. If
201``nlsr.conf`` resides in ``/home/ndnuser/configuration`` directory, type ``nlsr -f
202/home/ndnuser/configuration/nlsr.conf`` to run nlsr.
akmhoquecc827532014-07-09 08:48:49 -0500203
Vince Lehmanb722b102014-08-24 16:33:49 -0500204The same process needs to be followed for ``/ndn/arizona.edu/router3`` and
205``/ndn/colostate.edu/router2`` to run NLSR on these routers.
akmhoquecc827532014-07-09 08:48:49 -0500206
Vince Lehmanb722b102014-08-24 16:33:49 -0500207Expected Output
akmhoquecc827532014-07-09 08:48:49 -0500208----------------
Vince Lehmanb722b102014-08-24 16:33:49 -0500209
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -0700210Assuming that all three routers are configured correctly and routing has converged, ``nfd-status`` in
Vince Lehmanb722b102014-08-24 16:33:49 -0500211``/ndn/edu/colostate/%C1.Router/router2`` will have the following entries for the name
212advertised by ``/ndn/edu/memphis/%C1.Router/router1``:
akmhoquecc827532014-07-09 08:48:49 -0500213
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -0700214RIB:
akmhoquecc827532014-07-09 08:48:49 -0500215
Vince Lehmanb722b102014-08-24 16:33:49 -0500216::
217
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -0700218 /ndn/memphis/entertainment/blues route={faceid=17 (origin=128 cost=25 ChildInherit), faceid=7 (origin=128 cost=58 ChildInherit)}
219 /ndn/memphis/sports/basketball/grizzlies route={faceid=17 (origin=128 cost=25 ChildInherit), faceid=7 (origin=128 cost=58 ChildInherit)}
220 /ndn/news/memphis/politics/lutherking route={faceid=17 (origin=128 cost=25 ChildInherit, faceid=7 (origin=128 cost=58 ChildInherit)}
akmhoquecc827532014-07-09 08:48:49 -0500221
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -0700222This output can be seen by typing ``nfd-status -r`` in the terminal. Please refer to the
Vince Lehmanb722b102014-08-24 16:33:49 -0500223network figure for face IDs.
224
225.. _hyperbolic routing table calculation: http://arxiv.org/abs/0805.1266