blob: f8dbf15ae58ae8226a647075d103382d9b4213b6 [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
Vince Lehmanb722b102014-08-24 16:33:49 -050054Assume that ``/ndn/edu/arizona/%C1.Router/router3`` has hostname ``router3.arizona.edu``,
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -070055``/ndn/edu/colostate/%C1.Router/router2`` has IP address ``79.123.10.145``, and that all
Vince Lehmanb722b102014-08-24 16:33:49 -050056routers in the network have agreed to sync data with name prefix ``/ndn/nlsr/sync``.
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -070057``/ndn/edu/memphis/%C1.Router/router1`` will consider FaceUri
Vince Lehmanb722b102014-08-24 16:33:49 -050058``udp4://router3.arizona.edu`` for router ``/ndn/edu/arizona/%C1.Router/router3`` and face
59uri ``udp4://79.123.10.145`` for router ``/ndn/edu/colostate/%C1.Router/router2``.
60
61Step 3: Creating configuration file
62-----------------------------------
63
64Now, assume that ``/ndn/memphis.edu/router1`` wants to advertise three name prefixes
65(``/ndn/memphis/sports/basketball/grizzlies``, ``/ndn/memphis/entertainment/blues``,
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -070066``/ndn/news/memphis/politics/lutherking``). The configuration file with the necessary
Vince Lehmanb722b102014-08-24 16:33:49 -050067configuration commands follows:
68
69::
akmhoquecc827532014-07-09 08:48:49 -050070
71 ; nlsr.conf starts here
72 ; the general section contains all the general settings for router
73
74 general
75 {
76 ; mandatory configuration command section network, site and router
akmhoquecc827532014-07-09 08:48:49 -050077 network /ndn/ ; name of the network the router belongs to in ndn URI format
78 site /edu/memphis/ ; name of the site the router belongs to in ndn URI format
79 router /%C1.Router/router1 ; name of the network the router belongs to in ndn URI format
80
81 ; lsa-refresh-time is the time in seconds, after which router will refresh its LSAs
akmhoquecc827532014-07-09 08:48:49 -050082 lsa-refresh-time 1800 ; default value 1800. Valid values 240-7200
83
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -070084 ; InterestLifetime (in seconds) for LSA fetching
85 lsa-interest-lifetime 4 ; default value 4. Valid values 1-60
akmhoquecc827532014-07-09 08:48:49 -050086
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -070087 ; log-level is to set the levels of log for NLSR
akmhoquecc827532014-07-09 08:48:49 -050088 log-level INFO ; default value INFO, valid value DEBUG, INFO
89 log-dir /var/log/nlsr/
90 seq-dir /var/lib/nlsr/
91 }
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
108 ; neighbor command is used to configure router's neighbor. Each neighbor will need
109 ; one block of neighbor command
110
111 neighbor
112 {
113 name /ndn/edu/arizona/%C1.Router/router3 ; name prefix of the neighbor router consists
114 ; of network, site-name and router-name
115
116 face-uri udp4://router3.arizona.edu ; face uri of the face connected to the neighbor
117 link-cost 25 ; cost of the connecting link to neighbor
118 }
119
120 neighbor
121 {
122 name /ndn/edu/colostate/%C1.Router/router2 ; name prefix of the neighbor router consists
123 ; of network, site-name and router-name
124
125 face-uri udp4://79.123.10.145 ; face uri of the face connected to the neighbor
126 link-cost 30 ; cost of the connecting link to neighbor
127 }
128 }
129
Vince Lehmanb722b102014-08-24 16:33:49 -0500130 ; the hyperbolic section contains the configuration settings of enabling
131 a router to calculate ; routing table using `hyperbolic routing table
132 calculation`_ method
akmhoquecc827532014-07-09 08:48:49 -0500133
134 hyperbolic
135 {
136 ; commands in this section follows a strict order
137 ; the switch is used to set hyperbolic routing calculation in NLSR
138
139 state off ; default value 'off', set value 'on' to enable hyperbolic routing table
140 ; calculation which turns link state routing 'off'. set value to 'dry-run"
141 ; to test hyperbolic routing and compare with link state routing.
142
143
144 radius 123.456 ; radius of the router in hyperbolic coordinate system
145 angle 1.45 ; angle of the router in hyperbolic coordinate system
146 }
147
148
149 ; the fib section is used to configure fib entry's type to ndn FIB updated by NLSR
150
151 fib
152 {
153 ; the max-faces-per-prefix is used to limit the number of faces for each name prefixes
154 ; by NLSR in ndn FIB
155
156 max-faces-per-prefix 3 ; default value 0. Valid value 0-60. By default (value 0) NLSR adds
157 ; all available faces for each reachable name prefixes in NDN FIB
158
159 }
160
Vince Lehmanb722b102014-08-24 16:33:49 -0500161 ; the advertising section contains the configuration settings of the
162 name prefixes ; hosted by this router
akmhoquecc827532014-07-09 08:48:49 -0500163
164 advertising
165 {
166 ; the ndnname is used to advertised name from the router. To advertise each name prefix
167 ; configure one block of ndnname configuration command for every name prefix.
168
169 prefix /ndn/memphis/sports/basketball/grizzlies
170 prefix /ndn/memphis/entertainment/blues
171 prefix /ndn/news/memphis/politics/lutherking
172 }
173
Vince Lehmanb722b102014-08-24 16:33:49 -0500174.. note::
akmhoquecc827532014-07-09 08:48:49 -0500175
Vince Lehmanb722b102014-08-24 16:33:49 -0500176 Security configuration is discussed in :doc:`SECURITY-CONFIG`, which will be also part
177 of this configuration file
178
179Step 4: Running NLSR on /ndn/memphis.edu/router1
akmhoquecc827532014-07-09 08:48:49 -0500180-------------------------------------------------
Vince Lehmanb722b102014-08-24 16:33:49 -0500181
182Assuming the configuration file is saved as ``nlsr.conf``, type the following to run nlsr:
183
184::
akmhoquecc827532014-07-09 08:48:49 -0500185
186 $ nlsr -f nlsr.conf
187
Vince Lehmanb722b102014-08-24 16:33:49 -0500188NLSR will look for nlsr.conf in the current directory. If nlsr.conf is not in the current
189directory, please provide the absolute path with the file name as the value. If
190``nlsr.conf`` resides in ``/home/ndnuser/configuration`` directory, type ``nlsr -f
191/home/ndnuser/configuration/nlsr.conf`` to run nlsr.
akmhoquecc827532014-07-09 08:48:49 -0500192
Vince Lehmanb722b102014-08-24 16:33:49 -0500193The same process needs to be followed for ``/ndn/arizona.edu/router3`` and
194``/ndn/colostate.edu/router2`` to run NLSR on these routers.
akmhoquecc827532014-07-09 08:48:49 -0500195
Vince Lehmanb722b102014-08-24 16:33:49 -0500196Expected Output
akmhoquecc827532014-07-09 08:48:49 -0500197----------------
Vince Lehmanb722b102014-08-24 16:33:49 -0500198
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -0700199Assuming that all three routers are configured correctly and routing has converged, ``nfd-status`` in
Vince Lehmanb722b102014-08-24 16:33:49 -0500200``/ndn/edu/colostate/%C1.Router/router2`` will have the following entries for the name
201advertised by ``/ndn/edu/memphis/%C1.Router/router1``:
akmhoquecc827532014-07-09 08:48:49 -0500202
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -0700203RIB:
akmhoquecc827532014-07-09 08:48:49 -0500204
Vince Lehmanb722b102014-08-24 16:33:49 -0500205::
206
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -0700207 /ndn/memphis/entertainment/blues route={faceid=17 (origin=128 cost=25 ChildInherit), faceid=7 (origin=128 cost=58 ChildInherit)}
208 /ndn/memphis/sports/basketball/grizzlies route={faceid=17 (origin=128 cost=25 ChildInherit), faceid=7 (origin=128 cost=58 ChildInherit)}
209 /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 -0500210
Alexander Afanasyev7decbbf2014-08-24 21:29:01 -0700211This output can be seen by typing ``nfd-status -r`` in the terminal. Please refer to the
Vince Lehmanb722b102014-08-24 16:33:49 -0500212network figure for face IDs.
213
214.. _hyperbolic routing table calculation: http://arxiv.org/abs/0805.1266