]>
Commit | Line | Data |
---|---|---|
11ab5329 | 1 | .. _vnc-and-vnc-gw: |
42fc5d26 QY |
2 | |
3 | ************** | |
4 | VNC and VNC-GW | |
5 | ************** | |
6 | ||
a5a48dbf QY |
7 | This chapter describes how to use :abbr:`VNC (Virtual Network Control)` |
8 | services, including :abbr:`NVA (Network Virtualization Authority)` and | |
9 | :abbr:`VNC-GW (VNC Gateway)` functions. Background information on NVAs, | |
10 | :abbr:`NVE (Network Virtualization Edge)` s, :abbr:`UN (Underlay Network)` s, | |
11 | and :abbr:`VN (Virtual Network)` is available from the | |
12 | `IETF <https://datatracker.ietf.org/wg/nvo3>`_. :abbr:`VNC-GW (VNC Gateway)` s | |
13 | support the import/export of routing information between VNC and :abbr:`CE | |
14 | (customer edge)` routers operating within a VN. Both IP/Layer 3 (L3) VNs, and | |
15 | IP with Ethernet/Layer 2 (L2) VNs are supported. | |
42fc5d26 QY |
16 | |
17 | BGP, with IP VPNs and Tunnel Encapsulation, is used to distribute VN | |
c1a54c05 | 18 | information between NVAs. BGP based IP VPN support is defined in :rfc:`4364`, |
d38549c9 QY |
19 | and :rfc:`4659`. Encapsulation information is provided via the Tunnel |
20 | Encapsulation Attribute, :rfc:`5512`. | |
42fc5d26 | 21 | |
c1a54c05 QY |
22 | The protocol that is used to communicate routing and Ethernet / Layer 2 (L2) |
23 | forwarding information between NVAs and NVEs is referred to as the Remote | |
24 | Forwarder Protocol (RFP). `OpenFlow` is an example RFP. Specific RFP | |
25 | implementations may choose to implement either a `hard-state` or `soft-state` | |
26 | prefix and address registration model. To support a `soft-state` refresh model, | |
27 | a `lifetime` in seconds is associated with all registrations and responses. | |
42fc5d26 QY |
28 | |
29 | The chapter also provides sample configurations for basic example scenarios. | |
30 | ||
c1a54c05 | 31 | .. _configuring-vnc: |
42fc5d26 QY |
32 | |
33 | Configuring VNC | |
34 | =============== | |
35 | ||
c1a54c05 QY |
36 | Virtual Network Control (:abbr:`VNC`) service configuration commands appear in |
37 | the `router bgp` section of the BGPD configuration file | |
38 | (:ref:`bgp-configuration-examples`). The commands are broken down into the | |
39 | following areas: | |
42fc5d26 | 40 | |
c1a54c05 QY |
41 | - :dfn:`General VNC` configuration applies to general VNC operation and is |
42 | primarily used to control the method used to advertise tunnel information. | |
42fc5d26 | 43 | |
d38549c9 QY |
44 | - :dfn:`Remote Forwarder Protocol (RFP)` configuration relates to the protocol |
45 | used between NVAs and NVEs. | |
42fc5d26 | 46 | |
d38549c9 | 47 | - :dfn:`VNC Defaults` provides default parameters for registered NVEs. |
42fc5d26 | 48 | |
d38549c9 QY |
49 | - :dfn:`VNC NVE Group` provides for configuration of a specific set of |
50 | registered NVEs and overrides default parameters. | |
42fc5d26 | 51 | |
d38549c9 QY |
52 | - :dfn:`Redistribution` and :dfn:`Export` control VNC-GW operation, i.e., the |
53 | import/export of routing information between VNC and customer edge routers | |
54 | (:abbr:`CE` s) operating within a VN. | |
42fc5d26 | 55 | |
42fc5d26 | 56 | |
0efdf0fe | 57 | .. _general-vnc-configuration: |
d38549c9 | 58 | |
6ee602cd QY |
59 | General VNC Configuration |
60 | ------------------------- | |
d38549c9 | 61 | |
0efdf0fe | 62 | .. _rfp-related-configuration: |
42fc5d26 QY |
63 | |
64 | RFP Related Configuration | |
65 | ------------------------- | |
66 | ||
c1a54c05 QY |
67 | The protocol that is used to communicate routing and Ethernet / L2 forwarding |
68 | information between NVAs and NVEs is referred to as the Remote Forwarder | |
69 | Protocol (RFP). Currently, only a simple example RFP is included in FRR. | |
70 | Developers may use this example as a starting point to integrate FRR with an | |
71 | RFP of their choosing, e.g., `OpenFlow`. The example code includes the | |
72 | following sample configuration: | |
42fc5d26 | 73 | |
c1a54c05 | 74 | .. clicmd:: rfp example-config-value VALUE |
42fc5d26 | 75 | |
c1a54c05 QY |
76 | This is a simple example configuration parameter included as part of the RFP |
77 | example code. VALUE must be in the range of 0 to 4294967295. | |
42fc5d26 | 78 | |
0efdf0fe | 79 | .. _vnc-defaults-configuration: |
42fc5d26 QY |
80 | |
81 | VNC Defaults Configuration | |
82 | -------------------------- | |
83 | ||
84 | The VNC Defaults section allows the user to specify default values for | |
85 | configuration parameters for all registered NVEs. | |
0efdf0fe | 86 | Default values are overridden by :ref:`vnc-nve-group-configuration`. |
42fc5d26 | 87 | |
c1a54c05 | 88 | .. clicmd:: vnc defaults |
42fc5d26 | 89 | |
c1a54c05 QY |
90 | Enter VNC configuration mode for specifying VNC default behaviors. Use |
91 | `exit-vnc` to leave VNC configuration mode. `vnc defaults` is optional. | |
42fc5d26 | 92 | |
9eb95b3b | 93 | .. code-block:: frr |
42fc5d26 | 94 | |
d38549c9 QY |
95 | vnc defaults |
96 | ... various VNC defaults | |
97 | exit-vnc | |
42fc5d26 | 98 | |
42fc5d26 | 99 | |
c1a54c05 | 100 | These are the statements that can appear between ``vnc defaults`` and |
9bea107f QY |
101 | ``exit-vnc``. Documentation for these statements is given in |
102 | :ref:`vnc-nve-group-configuration`. | |
103 | ||
104 | - :clicmd:`rt import RT-LIST` | |
105 | - :clicmd:`rt export RT-LIST` | |
106 | - :clicmd:`rt both RT-LIST` | |
107 | - :clicmd:`rd ROUTE-DISTINGUISHER` | |
108 | - :clicmd:`l2rd NVE-ID-VALUE` | |
109 | - :clicmd:`response-lifetime LIFETIME|infinite` | |
110 | - :clicmd:`export bgp|zebra route-map MAP-NAME` | |
111 | - :clicmd:`export bgp|zebra no route-map` | |
42fc5d26 | 112 | |
c1a54c05 | 113 | .. clicmd:: exit-vnc |
42fc5d26 | 114 | |
c1a54c05 | 115 | Exit VNC configuration mode. |
42fc5d26 | 116 | |
0efdf0fe | 117 | .. _vnc-nve-group-configuration: |
42fc5d26 QY |
118 | |
119 | VNC NVE Group Configuration | |
120 | --------------------------- | |
121 | ||
c1a54c05 | 122 | A NVE Group corresponds to a specific set of NVEs. A Client NVE is |
42fc5d26 QY |
123 | assigned to an NVE Group based on whether there is a match for either |
124 | its virtual or underlay network address against the VN and/or UN address | |
c1a54c05 | 125 | prefixes specified in the NVE Group definition. When an NVE Group |
42fc5d26 | 126 | definition specifies both VN and UN address prefixes, then an NVE must |
c1a54c05 | 127 | match both prefixes in order to be assigned to the NVE Group. In the |
42fc5d26 | 128 | event that multiple NVE Groups match based on VN and/or UN addresses, |
a8c90e15 | 129 | the NVE is assigned to the first NVE Group listed in the configuration. |
42fc5d26 QY |
130 | If an NVE is not assigned to an NVE Group, its messages will be ignored. |
131 | ||
132 | Configuration values specified for an NVE group apply to all | |
133 | member NVEs and override configuration values specified in the VNC | |
134 | Defaults section. | |
135 | ||
c1a54c05 | 136 | **At least one `nve-group` is mandatory for useful VNC operation.** |
42fc5d26 | 137 | |
c1a54c05 | 138 | .. clicmd:: vnc nve-group NAME |
42fc5d26 | 139 | |
a8c90e15 | 140 | Enter VNC configuration mode for defining the NVE group `name`. |
42fc5d26 QY |
141 | Use `exit` or `exit-vnc` to exit group configuration mode. |
142 | ||
9eb95b3b | 143 | .. code-block:: frr |
42fc5d26 | 144 | |
d38549c9 QY |
145 | vnc nve-group group1 |
146 | ... configuration commands | |
147 | exit-vnc | |
42fc5d26 QY |
148 | |
149 | ||
03750f1e | 150 | The following statements are valid in an NVE group definition: |
42fc5d26 | 151 | |
d38549c9 | 152 | .. clicmd:: l2rd NVE-ID-VALUE |
42fc5d26 | 153 | |
d38549c9 QY |
154 | Set the value used to distinguish NVEs connected to the same physical |
155 | Ethernet segment (i.e., at the same location) [#]_. | |
42fc5d26 | 156 | |
d38549c9 QY |
157 | The nve-id subfield may be specified as either a literal value in the range |
158 | 1-255, or it may be specified as `auto:vn`, which means to use the | |
159 | least-significant octet of the originating NVE's VN address. | |
42fc5d26 | 160 | |
c1a54c05 | 161 | .. clicmd:: prefix vn|un A.B.C.D/M|X:X::X:X/M |
42fc5d26 | 162 | |
d38549c9 QY |
163 | Specify the matching prefix for this NVE group by either virtual-network |
164 | address (`vn`) or underlay-network address (`un`). Either or both | |
165 | virtual-network and underlay-network prefixes may be specified. Subsequent | |
166 | virtual-network or underlay-network values within a `vnc nve-group` | |
167 | `exit-vnc` block override their respective previous values. | |
42fc5d26 | 168 | |
d38549c9 QY |
169 | These prefixes are used only for determining assignments of NVEs to NVE |
170 | Groups. | |
42fc5d26 | 171 | |
d38549c9 | 172 | .. clicmd:: rd ROUTE-DISTINGUISHER |
42fc5d26 | 173 | |
c1a54c05 QY |
174 | Specify the route distinguisher for routes advertised via BGP |
175 | VPNs. The route distinguisher must be in one of these forms: | |
42fc5d26 | 176 | |
c1a54c05 | 177 | - ``IPv4-address:two-byte-integer`` |
d38549c9 QY |
178 | - ``four-byte-autonomous-system-number:two-byte-integer`` |
179 | - ``two-byte-autonomous-system-number:four-byte-integer`` | |
6ee602cd | 180 | - ``auto:vn:two-byte-integer`` |
d38549c9 QY |
181 | |
182 | Routes originated by NVEs in the NVE group will use the group's specified | |
183 | `route-distinguisher` when they are advertised via BGP. If the `auto` form | |
184 | is specified, it means that a matching NVE has its RD set to | |
185 | ``rd_type=IP=1:IPv4-address=VN-address:two-byte-integer``, for IPv4 VN | |
186 | addresses and | |
187 | ``rd_type=IP=1:IPv4-address=Last-four-bytes-of-VN-address:two-byte-integer``, | |
188 | for IPv6 VN addresses. | |
189 | ||
190 | If the NVE group definition does not specify a `route-distinguisher`, then | |
191 | the default `route-distinguisher` is used. If neither a group nor a default | |
192 | `route-distinguisher` is configured, then the advertised RD is set to | |
193 | ``two-byte-autonomous-system-number=0:four-byte-integer=0``. | |
194 | ||
d38549c9 QY |
195 | .. clicmd:: response-lifetime LIFETIME|infinite |
196 | ||
197 | Specify the response lifetime, in seconds, to be included in RFP response | |
198 | messages sent to NVEs. If the value 'infinite' is given, an infinite | |
199 | lifetime will be used. | |
200 | ||
201 | Note that this parameter is not the same as the lifetime supplied by NVEs in | |
202 | RFP registration messages. This parameter does not affect the lifetime value | |
203 | attached to routes sent by this server via BGP. | |
204 | ||
205 | If the NVE group definition does not specify a `response-lifetime`, the | |
206 | default `response-lifetime` will be used. If neither a group nor a default | |
207 | `response-lifetime` is configured, the value 3600 will be used. The maximum | |
208 | response lifetime is 2147483647. | |
42fc5d26 | 209 | |
d38549c9 | 210 | .. clicmd:: rt export RT-LIST |
42fc5d26 | 211 | |
d38549c9 | 212 | .. clicmd:: rt import RT-LIST |
42fc5d26 | 213 | |
c1a54c05 | 214 | .. clicmd:: rt both RT-LIST |
42fc5d26 | 215 | |
c1a54c05 QY |
216 | Specify route target import and export lists. `rt-list` is a |
217 | space-separated list of route targets, each element of which is | |
218 | in one of the following forms: | |
42fc5d26 | 219 | |
d38549c9 QY |
220 | - ``IPv4-address:two-byte-integer`` |
221 | - ``four-byte-autonomous-system-number:two-byte-integer`` | |
222 | - ``two-byte-autonomous-system-number:four-byte-integer`` | |
42fc5d26 | 223 | |
c1a54c05 QY |
224 | The first form, `rt export`, specifies an `export rt-list`. The `export |
225 | rt-list` will be attached to routes originated by NVEs in the NVE group | |
226 | when they are advertised via BGP. If the NVE group definition does not | |
227 | specify an `export rt-list`, then the default `export rt-list` is used. | |
228 | If neither a group nor a default `export rt-list` is configured, then no | |
229 | RT list will be sent; in turn, these routes will probably not be | |
230 | processed by receiving NVAs. | |
42fc5d26 | 231 | |
c1a54c05 QY |
232 | The second form, `rt import` specifies an `import rt-list`, which is a |
233 | filter for incoming routes. In order to be made available to NVEs in the | |
d38549c9 | 234 | group, incoming BGP VPN routes must have RT lists that have at least one |
c1a54c05 | 235 | route target in common with the group's `import rt-list`. |
42fc5d26 | 236 | |
c1a54c05 QY |
237 | If the NVE group definition does not specify an import filter, then the |
238 | default `import rt-list` is used. If neither a group nor a default | |
239 | `import rt-list` is configured, there can be no RT intersections when | |
240 | receiving BGP routes and therefore no incoming BGP routes will be | |
241 | processed for the group. | |
242 | ||
243 | The third, `rt both`, is a shorthand way of specifying both lists | |
244 | simultaneously, and is equivalent to `rt export `rt-list`` followed by | |
245 | `rt import `rt-list``. | |
246 | ||
c1a54c05 QY |
247 | .. clicmd:: export bgp|zebra route-map MAP-NAME |
248 | ||
249 | Specify that the named route-map should be applied to routes being exported | |
d1e7591e | 250 | to bgp or zebra. This parameter is used in conjunction with |
0efdf0fe | 251 | :ref:`configuring-export-of-routes-to-other-routing-protocols`. This item |
c1a54c05 QY |
252 | is optional. |
253 | ||
c1a54c05 QY |
254 | .. clicmd:: export bgp|zebra no route-map |
255 | ||
256 | Specify that no route-map should be applied to routes being exported to bgp | |
d1e7591e | 257 | or zebra. This parameter is used in conjunction with |
0efdf0fe | 258 | :ref:`configuring-export-of-routes-to-other-routing-protocols`. This item |
c1a54c05 QY |
259 | is optional. |
260 | ||
c1a54c05 QY |
261 | .. clicmd:: export bgp|zebra ipv4|ipv6 prefix-list LIST-NAME |
262 | ||
263 | Specify that the named prefix-list filter should be applied to routes being | |
264 | exported to bgp or zebra. Prefix-lists for ipv4 and ipv6 are independent of | |
d1e7591e | 265 | each other. This parameter is used in conjunction with |
0efdf0fe | 266 | :ref:`configuring-export-of-routes-to-other-routing-protocols`. This item |
c1a54c05 QY |
267 | is optional. |
268 | ||
c1a54c05 QY |
269 | .. clicmd:: export bgp|zebra no ipv4|ipv6 prefix-list |
270 | ||
271 | Specify that no prefix-list filter should be applied to routes being | |
272 | exported to bgp or zebra. This parameter is used in conjunction with | |
0efdf0fe | 273 | :ref:`configuring-export-of-routes-to-other-routing-protocols`. This item |
c1a54c05 | 274 | is optional. |
42fc5d26 | 275 | |
11ab5329 | 276 | .. _vnc-l2-group-configuration: |
42fc5d26 QY |
277 | |
278 | VNC L2 Group Configuration | |
279 | -------------------------- | |
280 | ||
c1a54c05 QY |
281 | The route targets advertised with prefixes and addresses registered by an NVE |
282 | are determined based on the NVE's associated VNC NVE Group Configuration, | |
0efdf0fe | 283 | :ref:`vnc-nve-group-configuration`. Layer 2 (L2) Groups are used to override |
c1a54c05 QY |
284 | the route targets for an NVE's Ethernet registrations based on the Logical |
285 | Network Identifier and label value. A Logical Network Identifier is used to | |
286 | uniquely identify a logical Ethernet segment and is conceptually similar to the | |
287 | Ethernet Segment Identifier defined in :rfc:`7432`. Both the Logical Network | |
288 | Identifier and Label are passed to VNC via RFP prefix and address registration. | |
42fc5d26 | 289 | |
c1a54c05 QY |
290 | Note that a corresponding NVE group configuration must be present, and that |
291 | other NVE associated configuration information, notably RD, is not impacted by | |
292 | L2 Group Configuration. | |
293 | ||
c1a54c05 QY |
294 | .. clicmd:: vnc l2-group NAME |
295 | ||
296 | Enter VNC configuration mode for defining the L2 group `name`. | |
297 | Use `exit` or `exit-vnc` to exit group configuration mode. | |
42fc5d26 | 298 | |
9eb95b3b | 299 | .. code-block:: frr |
a8c90e15 | 300 | |
c1a54c05 QY |
301 | vnc l2-group group1 |
302 | ... configuration commands | |
303 | exit-vnc | |
42fc5d26 | 304 | |
42fc5d26 | 305 | |
c1a54c05 QY |
306 | |
307 | Delete the L2 group named `name`. | |
42fc5d26 QY |
308 | |
309 | The following statements are valid in a L2 group definition: | |
310 | ||
c1a54c05 | 311 | .. clicmd:: logical-network-id VALUE |
42fc5d26 | 312 | |
c1a54c05 QY |
313 | Define the Logical Network Identifier with a value in the range of |
314 | 0-4294967295 that identifies the logical Ethernet segment. | |
42fc5d26 | 315 | |
c1a54c05 | 316 | .. clicmd:: labels LABEL-LIST |
42fc5d26 | 317 | |
42fc5d26 | 318 | |
c1a54c05 QY |
319 | Add or remove labels associated with the group. `label-list` is a |
320 | space separated list of label values in the range of 0-1048575. | |
42fc5d26 | 321 | |
c1a54c05 | 322 | .. clicmd:: rt import RT-TARGET |
42fc5d26 | 323 | |
c1a54c05 | 324 | .. clicmd:: rt export RT-TARGET |
42fc5d26 | 325 | |
c1a54c05 | 326 | .. clicmd:: rt both RT-TARGET |
42fc5d26 | 327 | |
c1a54c05 QY |
328 | Specify the route target import and export value associated with the group. |
329 | A complete definition of these parameters is given above, | |
0efdf0fe | 330 | :ref:`vnc-nve-group-configuration`. |
42fc5d26 | 331 | |
0efdf0fe | 332 | .. _configuring-redistribution-of-routes-from-other-routing-protocols: |
42fc5d26 QY |
333 | |
334 | Configuring Redistribution of Routes from Other Routing Protocols | |
335 | ----------------------------------------------------------------- | |
336 | ||
c1a54c05 QY |
337 | Routes from other protocols (including BGP) can be provided to VNC (both for |
338 | RFP and for redistribution via BGP) from three sources: the zebra kernel | |
339 | routing process; directly from the main (default) unicast BGP RIB; or directly | |
42fc5d26 QY |
340 | from a designated BGP unicast exterior routing RIB instance. |
341 | ||
c1a54c05 QY |
342 | The protocol named in the `vnc redistribute` command indicates the route |
343 | source: `bgp-direct` routes come directly from the main (default) unicast BGP | |
344 | RIB and are available for RFP and are redistributed via BGP; | |
345 | `bgp-direct-to-nve-groups` routes come directly from a designated BGP unicast | |
346 | routing RIB and are made available only to RFP; and routes from other protocols | |
347 | come from the zebra kernel routing process. | |
42fc5d26 QY |
348 | Note that the zebra process does not need to be active if |
349 | only `bgp-direct` or `bgp-direct-to-nve-groups` routes are used. | |
350 | ||
c1a54c05 QY |
351 | zebra routes |
352 | ^^^^^^^^^^^^ | |
42fc5d26 QY |
353 | |
354 | Routes originating from protocols other than BGP must be obtained | |
355 | via the zebra routing process. | |
356 | Redistribution of these routes into VNC does not support policy mechanisms | |
357 | such as prefix-lists or route-maps. | |
358 | ||
c1a54c05 QY |
359 | bgp-direct routes |
360 | ^^^^^^^^^^^^^^^^^ | |
42fc5d26 QY |
361 | |
362 | `bgp-direct` redistribution supports policy via | |
363 | prefix lists and route-maps. This policy is applied to incoming | |
364 | original unicast routes before the redistribution translations | |
365 | (described below) are performed. | |
366 | ||
367 | Redistribution of `bgp-direct` routes is performed in one of three | |
368 | possible modes: `plain`, `nve-group`, or `resolve-nve`. | |
369 | The default mode is `plain`. | |
370 | These modes indicate the kind of translations applied to routes before | |
371 | they are added to the VNC RIB. | |
372 | ||
373 | In `plain` mode, the route's next hop is unchanged and the RD is set | |
374 | based on the next hop. | |
375 | For `bgp-direct` redistribution, the following translations are performed: | |
376 | ||
c1a54c05 QY |
377 | - The VN address is set to the original unicast route's next hop address. |
378 | - The UN address is NOT set. (VN->UN mapping will occur via | |
42fc5d26 | 379 | ENCAP route or attribute, based on `vnc advertise-un-method` |
a8c90e15 | 380 | setting, generated by the RFP registration of the actual NVE) |
c1a54c05 | 381 | - The RD is set to as if auto:vn:0 were specified (i.e., |
42fc5d26 | 382 | `rd_type=IP=1`:`IPv4-address=VN-address`:`two-byte-integer=0`) |
c1a54c05 | 383 | - The RT list is included in the extended community list copied from the |
42fc5d26 QY |
384 | original unicast route (i.e., it must be set in the original unicast route). |
385 | ||
c1a54c05 QY |
386 | In `nve-group` mode, routes are registered with VNC as if they came from an NVE |
387 | in the nve-group designated in the `vnc redistribute nve-group` command. The | |
388 | following translations are performed: | |
42fc5d26 | 389 | |
c1a54c05 | 390 | - The next hop/VN address is set to the VN prefix configured for the |
42fc5d26 | 391 | redistribute nve-group. |
c1a54c05 QY |
392 | - The UN address is set to the UN prefix configured for the redistribute |
393 | nve-group. | |
394 | - The RD is set to the RD configured for the redistribute nve-group. | |
395 | - The RT list is set to the RT list configured for the redistribute nve-group. | |
396 | If `bgp-direct` routes are being redistributed, any extended communities | |
397 | present in the original unicast route will also be included. | |
398 | ||
399 | In `resolve-nve` mode, the next hop of the original BGP route is typically the | |
400 | address of an NVE connected router (CE) connected by one or more NVEs. | |
401 | Each of the connected NVEs will register, via RFP, a VNC host route to the CE. | |
402 | This mode may be though of as a mechanism to proxy RFP registrations of BGP | |
403 | unicast routes on behalf of registering NVEs. | |
42fc5d26 QY |
404 | |
405 | Multiple copies of the BGP route, one per matching NVE host route, will be | |
c1a54c05 QY |
406 | added to VNC. In other words, for a given BGP unicast route, each instance of |
407 | a RFP-registered host route to the unicast route's next hop will result in an | |
408 | instance of an imported VNC route. Each such imported VNC route will have a | |
409 | prefix equal to the original BGP unicast route's prefix, and a next hop equal | |
410 | to the next hop of the matching RFP-registered host route. If there is no | |
411 | RFP-registered host route to the next hop of the BGP unicast route, no | |
412 | corresponding VNC route will be imported. | |
42fc5d26 QY |
413 | |
414 | The following translations are applied: | |
415 | ||
c1a54c05 | 416 | - The Next Hop is set to the next hop of the NVE route (i.e., the |
42fc5d26 QY |
417 | VN address of the NVE). |
418 | ||
c1a54c05 | 419 | - The extended community list in the new route is set to the |
42fc5d26 QY |
420 | union of: |
421 | ||
c1a54c05 QY |
422 | - Any extended communities in the original BGP route |
423 | ||
424 | - Any extended communities in the NVE route | |
425 | - An added route-origin extended community with the next hop of the | |
42fc5d26 QY |
426 | original BGP route |
427 | is added to the new route. | |
428 | The value of the local administrator field defaults 5226 but may | |
429 | be configured by the user via the `roo-ec-local-admin` parameter. | |
430 | ||
c1a54c05 | 431 | - The Tunnel Encapsulation attribute is set to the value of the Tunnel |
42fc5d26 QY |
432 | Encapsulation attribute of the NVE route, if any. |
433 | ||
434 | ||
c1a54c05 QY |
435 | bgp-direct-to-nve-groups routes |
436 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
42fc5d26 | 437 | |
c1a54c05 QY |
438 | Unicast routes from the main or a designated instance of BGP may be |
439 | redistributed to VNC as bgp-direct-to-nve-groups routes. These routes are NOT | |
440 | announced via BGP, but they are made available for local RFP lookup in response | |
441 | to queries from NVEs. | |
42fc5d26 | 442 | |
8646a71b DS |
443 | A non-main/default BGP instance is configured using the |
444 | `router bgp AS view NAME` command as described elsewhere in this document. | |
42fc5d26 | 445 | |
c1a54c05 QY |
446 | In order for a route in the unicast BGP RIB to be made available to a querying |
447 | NVE, there must already be, available to that NVE, an (interior) VNC route | |
448 | matching the next hop address of the unicast route. When the unicast route is | |
449 | provided to the NVE, its next hop is replaced by the next hop of the | |
450 | corresponding NVE. If there are multiple longest-prefix-match VNC routes, the | |
451 | unicast route will be replicated for each. | |
42fc5d26 | 452 | |
c1a54c05 QY |
453 | There is currently no policy (prefix-list or route-map) support for |
454 | `bgp-direct-to-nve-groups` routes. | |
42fc5d26 QY |
455 | |
456 | Redistribution Command Syntax | |
457 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
458 | ||
c1a54c05 | 459 | .. clicmd:: vnc redistribute ipv4|ipv6 bgp|bgp-direct|ipv6 bgp-direct-to-nve-groups|connected|kernel|ospf|rip|static |
42fc5d26 | 460 | |
c1a54c05 | 461 | .. clicmd:: vnc redistribute ipv4|ipv6 bgp-direct-to-nve-groups view VIEWNAME |
42fc5d26 | 462 | |
42fc5d26 | 463 | |
c1a54c05 QY |
464 | Import (or do not import) prefixes from another routing protocols. Specify |
465 | both the address family to import (`ipv4` or `ipv6`) and the protocol | |
466 | (`bgp`, `bgp-direct`, `bgp-direct-to-nve-groups`, `connected`, `kernel`, | |
467 | `ospf`, `rip`, or `static`). Repeat this statement as needed for each | |
468 | combination of address family and routing protocol. Prefixes from protocol | |
469 | `bgp-direct` are imported from unicast BGP in the same bgpd process. | |
470 | Prefixes from all other protocols (including `bgp`) are imported via the | |
471 | `zebra` kernel routing process. | |
42fc5d26 | 472 | |
c1a54c05 | 473 | .. clicmd:: vnc redistribute mode plain|nve-group|resolve-nve |
42fc5d26 | 474 | |
c1a54c05 QY |
475 | Redistribute routes from other protocols into VNC using the specified mode. |
476 | Not all combinations of modes and protocols are supported. | |
42fc5d26 | 477 | |
c1a54c05 | 478 | .. clicmd:: vnc redistribute nve-group GROUP-NAME |
42fc5d26 | 479 | |
42fc5d26 | 480 | |
c1a54c05 QY |
481 | When using `nve-group` mode, assign (or do not assign) the NVE group |
482 | `group-name` to routes redistributed from another routing protocol. | |
483 | `group-name` must be configured using `vnc nve-group`. | |
42fc5d26 | 484 | |
c1a54c05 QY |
485 | The VN and UN prefixes of the nve-group must both be configured, and each |
486 | prefix must be specified as a full-length (/32 for IPv4, /128 for IPv6) | |
487 | prefix. | |
42fc5d26 | 488 | |
c1a54c05 | 489 | .. clicmd:: vnc redistribute lifetime LIFETIME|infinite |
42fc5d26 | 490 | |
c1a54c05 QY |
491 | Assign a registration lifetime, either `lifetime` seconds or `infinite`, to |
492 | prefixes redistributed from other routing protocols as if they had been | |
493 | received via RFP registration messages from an NVE. `lifetime` can be any | |
494 | integer between 1 and 4294967295, inclusive. | |
42fc5d26 | 495 | |
c1a54c05 | 496 | .. clicmd:: vnc redistribute resolve-nve roo-ec-local-admin 0-65536 |
42fc5d26 | 497 | |
c1a54c05 QY |
498 | Assign a value to the local-administrator subfield used in the |
499 | Route Origin extended community that is assigned to routes exported | |
500 | under the `resolve-nve` mode. The default value is `5226`. | |
42fc5d26 | 501 | |
c1a54c05 QY |
502 | The following four `prefix-list` and `route-map` commands may be specified |
503 | in the context of an nve-group or not. If they are specified in the context | |
504 | of an nve-group, they apply only if the redistribution mode is `nve-group`, | |
505 | and then only for routes being redistributed from `bgp-direct`. If they are | |
506 | specified outside the context of an nve-group, then they apply only for | |
507 | redistribution modes `plain` and `resolve-nve`, and then only for routes | |
508 | being redistributed from `bgp-direct`. | |
42fc5d26 | 509 | |
c1a54c05 | 510 | .. clicmd:: vnc redistribute bgp-direct (ipv4|ipv6) prefix-list LIST-NAME |
42fc5d26 | 511 | |
c1a54c05 QY |
512 | When redistributing `bgp-direct` routes, |
513 | specifies that the named prefix-list should be applied. | |
42fc5d26 | 514 | |
c1a54c05 QY |
515 | .. clicmd:: vnc redistribute bgp-direct no (ipv4|ipv6) prefix-list |
516 | ||
517 | When redistributing `bgp-direct` routes, | |
518 | specifies that no prefix-list should be applied. | |
519 | ||
c1a54c05 QY |
520 | .. clicmd:: vnc redistribute bgp-direct route-map MAP-NAME |
521 | ||
522 | When redistributing `bgp-direct` routes, | |
523 | specifies that the named route-map should be applied. | |
524 | ||
c1a54c05 QY |
525 | .. clicmd:: vnc redistribute bgp-direct no route-map |
526 | ||
527 | When redistributing `bgp-direct` routes, | |
528 | specifies that no route-map should be applied. | |
42fc5d26 | 529 | |
0efdf0fe | 530 | .. _configuring-export-of-routes-to-other-routing-protocols: |
42fc5d26 QY |
531 | |
532 | Configuring Export of Routes to Other Routing Protocols | |
533 | ------------------------------------------------------- | |
534 | ||
c1a54c05 QY |
535 | Routes from VNC (both for RFP and for redistribution via BGP) can be provided |
536 | to other protocols, either via zebra or directly to BGP. | |
537 | ||
538 | It is important to note that when exporting routes to other protocols, the | |
539 | downstream protocol must also be configured to import the routes. For example, | |
540 | when VNC routes are exported to unicast BGP, the BGP configuration must include | |
541 | a corresponding `redistribute vnc-direct` statement. | |
542 | ||
c1a54c05 QY |
543 | .. clicmd:: export bgp|zebra mode none|group-nve|registering-nve|ce |
544 | ||
c1a54c05 QY |
545 | Specify how routes should be exported to bgp or zebra. If the mode is |
546 | `none`, routes are not exported. If the mode is `group-nve`, routes are | |
547 | exported according to nve-group or vrf-policy group configuration | |
0efdf0fe | 548 | (:ref:`vnc-nve-group-configuration`): if a group is configured to allow |
c1a54c05 QY |
549 | export, then each prefix visible to the group is exported with next hops set |
550 | to the currently-registered NVEs. If the mode is `registering-nve`, then all | |
551 | VNC routes are exported with their original next hops. If the mode is `ce`, | |
552 | only VNC routes that have an NVE connected CE Router encoded in a Route | |
553 | Origin Extended Community are exported. This extended community must have an | |
554 | administrative value that matches the configured `roo-ec-local-admin` value. | |
555 | The next hop of the exported route is set to the encoded NVE connected CE | |
556 | Router. | |
42fc5d26 | 557 | |
d38549c9 | 558 | The default for both bgp and zebra is mode `none`. |
42fc5d26 | 559 | |
c1a54c05 | 560 | .. clicmd:: vnc export bgp|zebra group-nve group GROUP-NAME |
42fc5d26 | 561 | |
c1a54c05 | 562 | .. clicmd:: vnc export bgp|zebra group-nve no group GROUP-NAME |
42fc5d26 | 563 | |
c1a54c05 QY |
564 | When export mode is `group-nve`, export (or do not export) prefixes from the |
565 | specified nve-group or vrf-policy group to unicast BGP or to zebra. Repeat | |
566 | this statement as needed for each nve-group to be exported. Each VNC prefix | |
567 | that is exported will result in N exported routes to the prefix, each with a | |
568 | next hop corresponding to one of the N NVEs currently associated with the | |
569 | nve-group. | |
42fc5d26 | 570 | |
9bea107f | 571 | Some commands have a special meaning under certain export modes. |
42fc5d26 | 572 | |
9bea107f | 573 | :clicmd:`export bgp|zebra ipv4|ipv6 prefix-list LIST-NAME` |
c1a54c05 QY |
574 | When export mode is `ce` or `registering-nve`, |
575 | specifies that the named prefix-list should be applied to routes | |
576 | being exported to bgp or zebra. | |
577 | Prefix-lists for ipv4 and ipv6 are independent of each other. | |
42fc5d26 | 578 | |
9bea107f | 579 | :clicmd:`export bgp|zebra no ipv4|ipv6 prefix-list` |
d38549c9 QY |
580 | When export mode is `ce` or `registering-nve`, |
581 | specifies that no prefix-list should be applied to routes | |
582 | being exported to bgp or zebra. | |
42fc5d26 | 583 | |
9bea107f | 584 | :clicmd:`export bgp|zebra route-map MAP-NAME` |
c1a54c05 QY |
585 | When export mode is `ce` or `registering-nve`, specifies that the named |
586 | route-map should be applied to routes being exported to bgp or zebra. | |
42fc5d26 | 587 | |
9bea107f | 588 | :clicmd:`export bgp|zebra no route-map` |
c1a54c05 QY |
589 | When export mode is `ce` or `registering-nve`, specifies that no route-map |
590 | should be applied to routes being exported to bgp or zebra. | |
42fc5d26 | 591 | |
c1a54c05 QY |
592 | When the export mode is `group-nve`, policy for exported routes is specified |
593 | per-NVE-group or vrf-policy group inside a `nve-group` `RFG-NAME` block via | |
0efdf0fe | 594 | the following commands(:ref:`vnc-nve-group-configuration`): |
42fc5d26 | 595 | |
9bea107f | 596 | :clicmd:`export bgp|zebra route-map MAP-NAME` |
c1a54c05 QY |
597 | This command is valid inside a `nve-group` `RFG-NAME` block. It specifies |
598 | that the named route-map should be applied to routes being exported to bgp | |
599 | or zebra. | |
42fc5d26 | 600 | |
9bea107f | 601 | :clicmd:`export bgp|zebra no route-map` |
c1a54c05 QY |
602 | This command is valid inside a `nve-group` `RFG-NAME` block. It specifies |
603 | that no route-map should be applied to routes being exported to bgp or | |
604 | zebra. | |
42fc5d26 | 605 | |
9bea107f | 606 | :clicmd:`export bgp|zebra ipv4|ipv6 prefix-list LIST-NAME` |
c1a54c05 QY |
607 | This command is valid inside a `nve-group` `RFG-NAME` block. It specifies |
608 | that the named prefix-list filter should be applied to routes being exported | |
609 | to bgp or zebra. Prefix-lists for ipv4 and ipv6 are independent of each | |
610 | other. | |
42fc5d26 | 611 | |
9bea107f | 612 | :clicmd:`export bgp|zebra no ipv4|ipv6 prefix-list` |
c1a54c05 QY |
613 | This command is valid inside a `nve-group` `RFG-NAME` block. It specifies |
614 | that no prefix-list filter should be applied to routes being exported to | |
615 | bgp or zebra. | |
42fc5d26 | 616 | |
0efdf0fe | 617 | .. _manual-address-control: |
42fc5d26 QY |
618 | |
619 | Manual Address Control | |
620 | ====================== | |
621 | ||
c1a54c05 QY |
622 | The commands in this section can be used to augment normal dynamic VNC. The |
623 | `add vnc` commands can be used to manually add IP prefix or Ethernet MAC | |
624 | address forwarding information. The `clear vnc` commands can be used to remove | |
625 | manually and dynamically added information. | |
626 | ||
627 | .. clicmd:: add vnc prefix (A.B.C.D/M|X:X::X:X/M) vn (A.B.C.D|X:X::X:X) un (A.B.C.D|X:X::X:X) [cost (0-255)] [lifetime (infinite|(1-4294967295))] [local-next-hop (A.B.C.D|X:X::X:X) [local-cost (0-255)]] | |
628 | ||
629 | Register an IP prefix on behalf of the NVE identified by the VN and UN | |
630 | addresses. The `cost` parameter provides the administrative preference of | |
631 | the forwarding information for remote advertisement. If omitted, it defaults | |
632 | to 255 (lowest preference). The `lifetime` parameter identifies the period, | |
633 | in seconds, that the information remains valid. If omitted, it defaults to | |
634 | `infinite`. The optional `local-next-hop` parameter is used to configure a | |
635 | nexthop to be used by an NVE to reach the prefix via a locally connected CE | |
636 | router. This information remains local to the NVA, i.e., not passed to other | |
637 | NVAs, and is only passed to registered NVEs. When specified, it is also | |
638 | possible to provide a `local-cost` parameter to provide a forwarding | |
639 | preference. If omitted, it defaults to 255 (lowest preference). | |
640 | ||
641 | .. clicmd:: add vnc mac xx:xx:xx:xx:xx:xx virtual-network-identifier (1-4294967295) vn (A.B.C.D|X:X::X:X) un (A.B.C.D|X:X::X:X) [prefix (A.B.C.D/M|X:X::X:X/M)] [cost (0-255)] [lifetime (infinite|(1-4294967295))] | |
642 | ||
643 | Register a MAC address for a logical Ethernet (L2VPN) on behalf of the NVE | |
644 | identified by the VN and UN addresses. The optional `prefix` parameter is to | |
645 | support enable IP address mediation for the given prefix. The `cost` | |
646 | parameter provides the administrative preference of the forwarding | |
647 | information. If omitted, it defaults to 255. The `lifetime` parameter | |
648 | identifies the period, in seconds, that the information remains valid. If | |
649 | omitted, it defaults to `infinite`. | |
650 | ||
651 | .. clicmd:: clear vnc prefix (\*|A.B.C.D/M|X:X::X:X/M) (\*|[(vn|un) (A.B.C.D|X:X::X:X|\*) [(un|vn) (A.B.C.D|X:X::X:X|\*)] [mac xx:xx:xx:xx:xx:xx] [local-next-hop (A.B.C.D|X:X::X:X)]) | |
652 | ||
653 | Delete the information identified by prefix, VN address, and UN address. | |
d1e7591e | 654 | Any or all of these parameters may be wildcarded to (potentially) match more |
c1a54c05 QY |
655 | than one registration. The optional `mac` parameter specifies a layer-2 MAC |
656 | address that must match the registration(s) to be deleted. The optional | |
657 | `local-next-hop` parameter is used to delete specific local nexthop | |
658 | information. | |
659 | ||
c1a54c05 QY |
660 | .. clicmd:: clear vnc mac (\*|xx:xx:xx:xx:xx:xx) virtual-network-identifier (\*|(1-4294967295)) (\*|[(vn|un) (A.B.C.D|X:X::X:X|\*) [(un|vn) (A.B.C.D|X:X::X:X|\*)] [prefix (\*|A.B.C.D/M|X:X::X:X/M)]) |
661 | ||
662 | Delete mac forwarding information. Any or all of these parameters may be | |
d1e7591e | 663 | wildcarded to (potentially) match more than one registration. The default |
c1a54c05 QY |
664 | value for the `prefix` parameter is the wildcard value `*`. |
665 | ||
c1a54c05 QY |
666 | .. clicmd:: clear vnc nve (\*|((vn|un) (A.B.C.D|X:X::X:X) [(un|vn) (A.B.C.D|X:X::X:X)])) |
667 | ||
668 | Delete prefixes associated with the NVE specified by the given VN and UN | |
669 | addresses. It is permissible to specify only one of VN or UN, in which case | |
670 | any matching registration will be deleted. It is also permissible to specify | |
671 | `*` in lieu of any VN or UN address, in which case all registrations will | |
672 | match. | |
42fc5d26 | 673 | |
11ab5329 | 674 | .. _other-vnc-related-commands: |
42fc5d26 QY |
675 | |
676 | Other VNC-Related Commands | |
677 | ========================== | |
678 | ||
c1a54c05 QY |
679 | Note: VNC-Related configuration can be obtained via the `show |
680 | running-configuration` command when in `enable` mode. | |
681 | ||
682 | The following commands are used to clear and display Virtual Network Control | |
683 | related information: | |
42fc5d26 | 684 | |
c1a54c05 | 685 | .. clicmd:: clear vnc counters |
42fc5d26 | 686 | |
c1a54c05 QY |
687 | Reset the counter values stored by the NVA. Counter |
688 | values can be seen using the `show vnc` commands listed above. This | |
689 | command is only available in `enable` mode. | |
42fc5d26 | 690 | |
c1a54c05 | 691 | .. clicmd:: show vnc summary |
42fc5d26 | 692 | |
c1a54c05 QY |
693 | Print counter values and other general information |
694 | about the NVA. Counter values can be reset | |
695 | using the `clear vnc counters` command listed below. | |
42fc5d26 | 696 | |
c1a54c05 | 697 | .. clicmd:: show vnc nves |
42fc5d26 | 698 | |
c1a54c05 | 699 | .. clicmd:: show vnc nves vn|un ADDRESS |
42fc5d26 | 700 | |
c1a54c05 QY |
701 | Display the NVA's current clients. Specifying `address` limits the output to |
702 | the NVEs whose addresses match `address`. The time since the NVA last | |
703 | communicated with the NVE, per-NVE summary counters and each NVE's addresses | |
704 | will be displayed. | |
42fc5d26 | 705 | |
c1a54c05 | 706 | .. clicmd:: show vnc queries |
42fc5d26 | 707 | |
c1a54c05 | 708 | .. clicmd:: show vnc queries PREFIX |
42fc5d26 | 709 | |
c1a54c05 | 710 | Display active Query information. Queries remain valid for the default |
0efdf0fe QY |
711 | Response Lifetime (:ref:`vnc-defaults-configuration`) or NVE-group Response |
712 | Lifetime (:ref:`vnc-nve-group-configuration`). Specifying `prefix` limits | |
c1a54c05 | 713 | the output to Query Targets that fall within `prefix`. |
42fc5d26 | 714 | |
c1a54c05 QY |
715 | Query information is provided for each querying NVE, and includes the Query |
716 | Target and the time remaining before the information is removed. | |
42fc5d26 | 717 | |
c1a54c05 | 718 | .. clicmd:: show vnc registrations [all|local|remote|holddown|imported] |
42fc5d26 | 719 | |
c1a54c05 | 720 | .. clicmd:: show vnc registrations [all|local|remote|holddown|imported] PREFIX |
42fc5d26 | 721 | |
c1a54c05 QY |
722 | Display local, remote, holddown, and/or imported registration information. |
723 | Local registrations are routes received via RFP, which are present in the | |
724 | NVA Registrations Cache. Remote registrations are routes received via BGP | |
725 | (VPN SAFIs), which are present in the NVE-group import tables. Holddown | |
726 | registrations are local and remote routes that have been withdrawn but whose | |
727 | holddown timeouts have not yet elapsed. Imported information represents | |
728 | routes that are imported into NVA and are made available to querying NVEs. | |
729 | Depending on configuration, imported routes may also be advertised via BGP. | |
730 | Specifying `prefix` limits the output to the registered prefixes that fall | |
731 | within `prefix`. | |
42fc5d26 | 732 | |
c1a54c05 QY |
733 | Registration information includes the registered prefix, the registering NVE |
734 | addresses, the registered administrative cost, the registration lifetime and | |
735 | the time since the information was registered or, in the case of Holddown | |
736 | registrations, the amount of time remaining before the information is | |
737 | removed. | |
42fc5d26 | 738 | |
c1a54c05 | 739 | .. clicmd:: show vnc responses [active|removed] |
42fc5d26 | 740 | |
c1a54c05 | 741 | .. clicmd:: show vnc responses [active|removed] PREFIX |
42fc5d26 | 742 | |
c1a54c05 QY |
743 | Display all, active and/or removed response information which are |
744 | present in the NVA Responses Cache. Responses remain valid for the | |
0efdf0fe QY |
745 | default Response Lifetime (:ref:`vnc-defaults-configuration`) or |
746 | NVE-group Response Lifetime (:ref:`vnc-nve-group-configuration`.) | |
747 | When Removal Responses are enabled (:ref:`general-vnc-configuration`), | |
c1a54c05 QY |
748 | such responses are listed for the Response Lifetime. Specifying |
749 | `prefix` limits the output to the addresses that fall within | |
750 | `prefix`. | |
42fc5d26 | 751 | |
c1a54c05 QY |
752 | Response information is provided for each querying NVE, and includes |
753 | the response prefix, the prefix-associated registering NVE addresses, | |
754 | the administrative cost, the provided response lifetime and the time | |
755 | remaining before the information is to be removed or will become inactive. | |
42fc5d26 | 756 | |
c1a54c05 | 757 | .. clicmd:: show memory vnc |
42fc5d26 | 758 | |
c1a54c05 | 759 | Print the number of memory items allocated by the NVA. |
42fc5d26 | 760 | |
11ab5329 | 761 | .. _example-vnc-and-vnc-gw-configurations: |
42fc5d26 QY |
762 | |
763 | Example VNC and VNC-GW Configurations | |
764 | ===================================== | |
765 | ||
d38549c9 QY |
766 | .. _vnc-mesh-nva-config: |
767 | ||
768 | Mesh NVA Configuration | |
769 | ---------------------- | |
770 | ||
771 | This example includes three NVAs, nine NVEs, and two NVE groups. Note that | |
772 | while not shown, a single physical device may support multiple logical NVEs. | |
6ee602cd | 773 | :ref:`vnc-fig-vnc-mesh` shows ``code NVA-1`` (192.168.1.100), ``NVA 2`` |
d38549c9 QY |
774 | (192.168.1.101), and ``NVA 3`` (192.168.1.102), which are connected in a full |
775 | mesh. Each is a member of the autonomous system 64512. Each NVA provides VNC | |
776 | services to three NVE clients in the 172.16.0.0/16 virtual-network address | |
777 | range. The 172.16.0.0/16 address range is partitioned into two NVE groups, | |
778 | ``group1`` (172.16.0.0/17) and ``group2`` (172.16.128.0/17). | |
779 | ||
4b44467c QY |
780 | Each NVE belongs to either NVE group ``group1`` or NVE group ``group2``. The |
781 | NVEs ``NVE 1``, ``NVE 2``, ``NVE 4``, ``NVE 7``, and ``NVE 8`` are members of | |
782 | the NVE group ``group1``. The NVEs ``NVE 3``, ``NVE 5``, ``NVE 6``, and ``NVE | |
783 | 9`` are members of the NVE group ``group2``. | |
d38549c9 QY |
784 | |
785 | Each NVA advertises NVE underlay-network IP addresses using the | |
786 | Tunnel Encapsulation Attribute. | |
787 | ||
788 | .. _vnc-fig-vnc-mesh: | |
6ee602cd | 789 | |
a5a48dbf | 790 | .. figure:: ../figures/fig-vnc-mesh.png |
d38549c9 QY |
791 | :align: center |
792 | :alt: Three-way Mesh | |
793 | ||
794 | A three-way full mesh with three NVEs per NVA. | |
795 | ||
9eb95b3b QY |
796 | :file:`bgpd.conf` for ``NVA 1`` (192.168.1.100): |
797 | ||
798 | .. code-block:: frr | |
d38549c9 QY |
799 | |
800 | router bgp 64512 | |
801 | ||
802 | bgp router-id 192.168.1.100 | |
803 | ||
804 | neighbor 192.168.1.101 remote-as 64512 | |
805 | neighbor 192.168.1.102 remote-as 64512 | |
806 | ||
807 | address-family ipv4 vpn | |
808 | neighbor 192.168.1.101 activate | |
809 | neighbor 192.168.1.102 activate | |
810 | exit-address-family | |
811 | ||
812 | vnc defaults | |
813 | rd 64512:1 | |
814 | response-lifetime 200 | |
815 | rt both 1000:1 1000:2 | |
816 | exit-vnc | |
817 | ||
818 | vnc nve-group group1 | |
819 | prefix vn 172.16.0.0/17 | |
820 | rt both 1000:1 | |
821 | exit-vnc | |
822 | ||
823 | vnc nve-group group2 | |
824 | prefix vn 172.16.128.0/17 | |
825 | rt both 1000:2 | |
826 | exit-vnc | |
827 | ||
828 | exit | |
829 | ||
9eb95b3b QY |
830 | :file:`bgpd.conf` for ``NVA 2`` (192.168.1.101): |
831 | ||
832 | .. code-block:: frr | |
d38549c9 QY |
833 | |
834 | router bgp 64512 | |
835 | ||
836 | bgp router-id 192.168.1.101 | |
837 | ||
838 | neighbor 192.168.1.100 remote-as 64512 | |
839 | neighbor 192.168.1.102 remote-as 64512 | |
840 | ||
841 | address-family ipv4 vpn | |
842 | neighbor 192.168.1.100 activate | |
843 | neighbor 192.168.1.102 activate | |
844 | exit-address-family | |
845 | ||
846 | vnc nve-group group1 | |
847 | prefix vn 172.16.0.0/17 | |
848 | rd 64512:1 | |
849 | response-lifetime 200 | |
850 | rt both 1000:1 1000:2 | |
851 | exit-vnc | |
852 | exit | |
853 | ||
9eb95b3b QY |
854 | :file:`bgpd.conf` for ``NVA 3`` (192.168.1.102): |
855 | ||
856 | .. code-block:: frr | |
d38549c9 QY |
857 | |
858 | router bgp 64512 | |
859 | ||
860 | bgp router-id 192.168.1.102 | |
861 | ||
862 | neighbor 192.168.1.101 remote-as 64512 | |
863 | neighbor 192.168.1.102 remote-as 64512 | |
864 | ||
865 | address-family ipv4 vpn | |
866 | neighbor 192.168.1.100 activate | |
867 | neighbor 192.168.1.101 activate | |
868 | exit-address-family | |
869 | ||
870 | vnc defaults | |
871 | rd 64512:1 | |
872 | response-lifetime 200 | |
873 | rt both 1000:1 1000:2 | |
874 | exit-vnc | |
875 | ||
876 | vnc nve-group group1 | |
877 | prefix vn 172.16.128.0/17 | |
878 | exit-vnc | |
879 | exit | |
880 | ||
881 | ||
882 | Mesh NVA and VNC-GW Configuration | |
883 | --------------------------------- | |
884 | ||
885 | This example includes two NVAs, each with two associated NVEs, and two VNC-GWs, | |
886 | each supporting two CE routers physically attached to the four NVEs. Note that | |
887 | this example is showing a more complex configuration where VNC-GW is separated | |
888 | from normal NVA functions; it is equally possible to simplify the configuration | |
889 | and combine NVA and VNC-GW functions in a single FRR instance. | |
890 | ||
891 | .. _vnc-fig-vnc-gw: | |
892 | .. figure:: ../figures/fig-vnc-gw.png | |
893 | :align: center | |
894 | :alt: FRR VNC Gateway | |
895 | ||
896 | Meshed NVEs and VNC-GWs | |
897 | ||
a5a48dbf | 898 | As shown in :ref:`vnc-fig-vnc-gw`, NVAs and VNC-GWs are connected in a full iBGP |
d38549c9 QY |
899 | mesh. The VNC-GWs each have two CEs configured as route-reflector clients. |
900 | Each client provides BGP updates with unicast routes that the VNC-GW reflects | |
901 | to the other client. The VNC-GW also imports these unicast routes into VPN | |
902 | routes to be shared with the other VNC-GW and the two NVAs. This route | |
903 | importation is controlled with the ``vnc redistribute`` statements shown in the | |
904 | configuration. Similarly, registrations sent by NVEs via RFP to the NVAs are | |
905 | exported by the VNC-GWs to the route-reflector clients as unicast routes. RFP | |
906 | registrations exported this way have a next-hop address of the CE behind the | |
907 | connected (registering) NVE. Exporting VNC routes as IPv4 unicast is enabled | |
908 | with the ``vnc export`` command below. | |
909 | ||
9eb95b3b QY |
910 | The configuration for ``VNC-GW 1`` is shown below. |
911 | ||
912 | .. code-block:: frr | |
d38549c9 QY |
913 | |
914 | router bgp 64512 | |
915 | bgp router-id 192.168.1.101 | |
916 | bgp cluster-id 1.2.3.4 | |
917 | neighbor 192.168.1.102 remote-as 64512 | |
918 | neighbor 192.168.1.103 remote-as 64512 | |
919 | neighbor 192.168.1.104 remote-as 64512 | |
920 | neighbor 172.16.1.2 remote-as 64512 | |
921 | neighbor 172.16.2.2 remote-as 64512 | |
922 | ! | |
923 | address-family ipv4 unicast | |
924 | redistribute vnc-direct | |
925 | no neighbor 192.168.1.102 activate | |
926 | no neighbor 192.168.1.103 activate | |
927 | no neighbor 192.168.1.104 activate | |
928 | neighbor 172.16.1.2 route-reflector-client | |
929 | neighbor 172.16.2.2 route-reflector-client | |
930 | exit-address-family | |
931 | ! | |
932 | address-family ipv4 vpn | |
933 | neighbor 192.168.1.102 activate | |
934 | neighbor 192.168.1.103 activate | |
935 | neighbor 192.168.1.104 activate | |
936 | exit-address-family | |
937 | vnc export bgp mode ce | |
938 | vnc redistribute mode resolve-nve | |
939 | vnc redistribute ipv4 bgp-direct | |
940 | exit | |
941 | ||
942 | Note that in the VNC-GW configuration, the neighboring VNC-GW and NVAs each | |
943 | have a statement disabling the IPv4 unicast address family. IPv4 unicast is on | |
944 | by default and this prevents the other VNC-GW and NVAs from learning unicast | |
945 | routes advertised by the route-reflector clients. | |
946 | ||
9eb95b3b QY |
947 | Configuration for ``NVA 2``: |
948 | ||
949 | .. code-block:: frr | |
d38549c9 QY |
950 | |
951 | router bgp 64512 | |
952 | bgp router-id 192.168.1.104 | |
953 | neighbor 192.168.1.101 remote-as 64512 | |
954 | neighbor 192.168.1.102 remote-as 64512 | |
955 | neighbor 192.168.1.103 remote-as 64512 | |
956 | ! | |
957 | address-family ipv4 unicast | |
958 | no neighbor 192.168.1.101 activate | |
959 | no neighbor 192.168.1.102 activate | |
960 | no neighbor 192.168.1.103 activate | |
961 | exit-address-family | |
962 | ! | |
963 | address-family ipv4 vpn | |
964 | neighbor 192.168.1.101 activate | |
965 | neighbor 192.168.1.102 activate | |
966 | neighbor 192.168.1.103 activate | |
967 | exit-address-family | |
968 | ! | |
969 | vnc defaults | |
970 | response-lifetime 3600 | |
971 | exit-vnc | |
972 | vnc nve-group nve1 | |
973 | prefix vn 172.16.1.1/32 | |
974 | response-lifetime 3600 | |
975 | rt both 1000:1 1000:2 | |
976 | exit-vnc | |
977 | vnc nve-group nve2 | |
978 | prefix vn 172.16.2.1/32 | |
979 | response-lifetime 3600 | |
980 | rt both 1000:1 1000:2 | |
981 | exit-vnc | |
982 | exit | |
983 | ||
984 | .. TBD make this its own example: | |
985 | .. | |
986 | .. @float Figure,fig:fig-vnc-gw-rr | |
d1e7591e | 987 | .. @center @image{fig-vnc-gw-rr,400pt,,FRR VNC Gateway with RR} |
d38549c9 QY |
988 | .. @end float |
989 | .. An NVA can also import unicast routes from BGP without advertising the | |
990 | .. imported routes as VPN routes. Such imported routes, while not | |
991 | .. distributed to other NVAs or VNC-GWs, are are available to NVEs via | |
992 | .. RFP query messages sent to the NVA. @ref{fig:fig-vnc-gw-rr} | |
993 | .. shows an example topology where unicast routes are imported into NVAs | |
994 | .. from a Route Reflector. (@pxref{Route Reflector} for route reflector | |
995 | .. configuration details.) The following three lines can be added to the | |
996 | .. ``NVA 1`` and ``NVA 2`` configurations to import routes into VNC | |
997 | .. for local VNC use: | |
998 | .. | |
999 | .. @verbatim | |
1000 | .. neighbor 192.168.1.105 remote-as 64512 | |
1001 | .. vnc redistribute mode plain | |
1002 | .. vnc redistribute ipv4 bgp-direct-to-nve-groups | |
1003 | .. @end verbatim | |
1004 | ||
1005 | .. _vnc-with-frr-route-reflector-config: | |
1006 | ||
1007 | VNC with FRR Route Reflector Configuration | |
1008 | ------------------------------------------ | |
1009 | ||
1010 | A route reflector eliminates the need for a fully meshed NVA network by acting | |
a5a48dbf | 1011 | as the hub between NVAs. :ref:`vnc-fig-vnc-frr-route-reflector` shows BGP |
d38549c9 QY |
1012 | route reflector ``BGP Route Reflector 1`` (192.168.1.100) as a route reflector |
1013 | for NVAs ``NVA 2``(192.168.1.101) and ``NVA 3`` (192.168.1.102). | |
1014 | ||
d38549c9 QY |
1015 | .. _vnc-fig-vnc-frr-route-reflector: |
1016 | .. figure:: ../figures/fig-vnc-frr-route-reflector.png | |
1017 | :align: center | |
1018 | :alt: FRR Route Reflector | |
1019 | ||
1020 | Two NVAs and a BGP Route Reflector | |
1021 | ||
1022 | ``NVA 2`` and ``NVA 3`` advertise NVE underlay-network IP addresses using the | |
1023 | Tunnel Encapsulation Attribute. ``BGP Route Reflector 1`` ``reflects'' | |
1024 | advertisements from ``NVA 2`` to ``NVA 3`` and vice versa. | |
1025 | ||
1026 | As in the example of :ref:`vnc-mesh-nva-config`, there are two NVE groups. The | |
1027 | 172.16.0.0/16 address range is partitioned into two NVE groups, ``group1`` | |
1028 | (172.16.0.0/17) and ``group2`` (172.16.128.0/17). The NVE ``NVE 4``, ``NVE | |
1029 | 7``, and ``NVE 8`` are members of the NVE group ``group1``. The NVEs ``NVE | |
1030 | 5``, ``NVE 6``, and ``NVE 9`` are members of the NVE group ``group2``. | |
1031 | ||
9eb95b3b QY |
1032 | :file:`bgpd.conf` for ``BGP Route Reflector 1`` on 192.168.1.100: |
1033 | ||
1034 | .. code-block:: frr | |
d38549c9 QY |
1035 | |
1036 | router bgp 64512 | |
1037 | ||
1038 | bgp router-id 192.168.1.100 | |
1039 | ||
1040 | neighbor 192.168.1.101 remote-as 64512 | |
1041 | neighbor 192.168.1.101 port 7179 | |
1042 | neighbor 192.168.1.101 description iBGP-client-192-168-1-101 | |
1043 | ||
1044 | neighbor 192.168.1.102 remote-as 64512 | |
1045 | neighbor 192.168.1.102 port 7179 | |
1046 | neighbor 192.168.1.102 description iBGP-client-192-168-1-102 | |
1047 | ||
1048 | address-family ipv4 unicast | |
1049 | neighbor 192.168.1.101 route-reflector-client | |
1050 | neighbor 192.168.1.102 route-reflector-client | |
1051 | exit-address-family | |
1052 | ||
1053 | address-family ipv4 vpn | |
1054 | neighbor 192.168.1.101 activate | |
1055 | neighbor 192.168.1.102 activate | |
1056 | ||
1057 | neighbor 192.168.1.101 route-reflector-client | |
1058 | neighbor 192.168.1.102 route-reflector-client | |
1059 | exit-address-family | |
1060 | ||
1061 | exit | |
1062 | ||
9eb95b3b QY |
1063 | :file:`bgpd.conf` for ``NVA 2`` on 192.168.1.101: |
1064 | ||
1065 | .. code-block:: frr | |
d38549c9 QY |
1066 | |
1067 | router bgp 64512 | |
1068 | ||
1069 | bgp router-id 192.168.1.101 | |
1070 | ||
1071 | neighbor 192.168.1.100 remote-as 64512 | |
1072 | ||
1073 | address-family ipv4 vpn | |
1074 | neighbor 192.168.1.100 activate | |
1075 | exit-address-family | |
1076 | ||
1077 | vnc nve-group group1 | |
1078 | prefix vn 172.16.0.0/17 | |
1079 | rd 64512:1 | |
1080 | response-lifetime 200 | |
1081 | rt both 1000:1 1000:2 | |
1082 | exit-vnc | |
1083 | exit | |
1084 | ||
9eb95b3b | 1085 | :file:`bgpd.conf` for ``NVA 2`` on 192.168.1.102: |
d38549c9 | 1086 | |
9eb95b3b | 1087 | .. code-block:: frr |
d38549c9 | 1088 | |
9eb95b3b | 1089 | router bgp 64512 |
d38549c9 | 1090 | |
9eb95b3b | 1091 | bgp router-id 192.168.1.102 |
d38549c9 | 1092 | |
9eb95b3b | 1093 | neighbor 192.168.1.100 remote-as 64512 |
d38549c9 | 1094 | |
9eb95b3b QY |
1095 | address-family ipv4 vpn |
1096 | neighbor 192.168.1.100 activate | |
1097 | exit-address-family | |
d38549c9 | 1098 | |
9eb95b3b QY |
1099 | vnc defaults |
1100 | rd 64512:1 | |
1101 | response-lifetime 200 | |
1102 | rt both 1000:1 1000:2 | |
1103 | exit-vnc | |
1104 | ||
1105 | vnc nve-group group1 | |
1106 | prefix vn 172.16.128.0/17 | |
1107 | exit-vnc | |
1108 | exit | |
d38549c9 QY |
1109 | |
1110 | While not shown, an NVA can also be configured as a route reflector. | |
1111 | ||
1112 | .. _vnc-with-commercial-route-reflector-config: | |
1113 | ||
1114 | VNC with Commercial Route Reflector Configuration | |
1115 | ------------------------------------------------- | |
1116 | ||
6ee602cd | 1117 | This example is identical to :ref:`vnc-with-frr-route-reflector-config` |
d38549c9 QY |
1118 | with the exception that the route reflector is a commercial router. Only the |
1119 | VNC-relevant configuration is provided. | |
1120 | ||
a5a48dbf | 1121 | .. figure:: ../figures/fig-vnc-commercial-route-reflector.png |
d38549c9 QY |
1122 | :align: center |
1123 | :alt: Commercial Route Reflector | |
1124 | ||
1125 | Two NVAs with a commercial route reflector | |
1126 | ||
1127 | :file:`bgpd.conf` for BGP route reflector ``Commercial Router`` on 192.168.1.104::: | |
1128 | ||
1129 | version 8.5R1.13; | |
1130 | routing-options { | |
1131 | rib inet.0 { | |
1132 | static { | |
1133 | route 172.16.0.0/16 next-hop 192.168.1.104; | |
1134 | } | |
1135 | } | |
1136 | autonomous-system 64512; | |
1137 | resolution { | |
1138 | rib inet.3 { | |
1139 | resolution-ribs inet.0; | |
1140 | } | |
1141 | rib bgp.l3vpn.0 { | |
1142 | resolution-ribs inet.0; | |
1143 | } | |
1144 | } | |
1145 | } | |
1146 | protocols { | |
1147 | bgp { | |
1148 | advertise-inactive; | |
1149 | family inet { | |
1150 | labeled-unicast; | |
1151 | } | |
1152 | group 1 { | |
1153 | type internal; | |
1154 | advertise-inactive; | |
1155 | advertise-peer-as; | |
1156 | import h; | |
1157 | family inet { | |
1158 | unicast; | |
1159 | } | |
1160 | family inet-vpn { | |
1161 | unicast; | |
1162 | } | |
1163 | cluster 192.168.1.104; | |
1164 | neighbor 192.168.1.101; | |
1165 | neighbor 192.168.1.102; | |
1166 | } | |
1167 | } | |
1168 | } | |
1169 | policy-options { | |
1170 | policy-statement h { | |
1171 | from protocol bgp; | |
1172 | then { | |
1173 | as-path-prepend 64512; | |
1174 | accept; | |
1175 | } | |
1176 | } | |
1177 | } | |
1178 | ||
9eb95b3b QY |
1179 | :file:`bgpd.conf` for ``NVA 2`` on 192.168.1.101: |
1180 | ||
1181 | .. code-block:: frr | |
d38549c9 QY |
1182 | |
1183 | router bgp 64512 | |
1184 | ||
1185 | bgp router-id 192.168.1.101 | |
1186 | ||
1187 | neighbor 192.168.1.100 remote-as 64512 | |
1188 | ||
1189 | address-family ipv4 vpn | |
1190 | neighbor 192.168.1.100 activate | |
1191 | exit-address-family | |
1192 | ||
1193 | vnc nve-group group1 | |
1194 | prefix vn 172.16.0.0/17 | |
1195 | rd 64512:1 | |
1196 | response-lifetime 200 | |
1197 | rt both 1000:1 1000:2 | |
1198 | exit-vnc | |
1199 | exit | |
1200 | ||
9eb95b3b QY |
1201 | :file:`bgpd.conf` for ``NVA 3`` on 192.168.1.102: |
1202 | ||
1203 | .. code-block:: frr | |
d38549c9 QY |
1204 | |
1205 | router bgp 64512 | |
1206 | ||
1207 | bgp router-id 192.168.1.102 | |
1208 | ||
1209 | neighbor 192.168.1.100 remote-as 64512 | |
1210 | ||
1211 | address-family ipv4 vpn | |
1212 | neighbor 192.168.1.100 activate | |
1213 | exit-address-family | |
1214 | ||
1215 | vnc defaults | |
1216 | rd 64512:1 | |
1217 | response-lifetime 200 | |
1218 | rt both 1000:1 1000:2 | |
1219 | exit-vnc | |
1220 | ||
1221 | vnc nve-group group1 | |
1222 | prefix vn 172.16.128.0/17 | |
1223 | exit-vnc | |
1224 | exit | |
1225 | ||
1226 | VNC with Redundant Route Reflectors Configuration | |
1227 | ------------------------------------------------- | |
1228 | ||
1229 | This example combines the previous two | |
1230 | (:ref:`vnc-with-frr-route-reflector-config` and | |
1231 | :ref:`vnc-with-commercial-route-reflector-config`) into a redundant route | |
1232 | reflector configuration. BGP route reflectors ``BGP Route Reflector 1`` and | |
1233 | ``Commercial Router`` are the route reflectors for NVAs ``NVA 2`` and ``NVA | |
1234 | 3``. The two NVAs have connections to both route reflectors. | |
1235 | ||
a5a48dbf | 1236 | .. figure:: ../figures/fig-vnc-redundant-route-reflectors.png |
d38549c9 QY |
1237 | :align: center |
1238 | :alt: Redundant Route Reflectors | |
1239 | ||
1240 | FRR-based NVA with redundant route reflectors | |
1241 | ||
d1e7591e | 1242 | :file:`bgpd.conf` for ``BPGD Route Reflector 1`` on 192.168.1.100: |
9eb95b3b QY |
1243 | |
1244 | .. code-block:: frr | |
d38549c9 QY |
1245 | |
1246 | router bgp 64512 | |
1247 | ||
1248 | bgp router-id 192.168.1.100 | |
1249 | bgp cluster-id 192.168.1.100 | |
1250 | ||
1251 | neighbor 192.168.1.104 remote-as 64512 | |
1252 | ||
1253 | neighbor 192.168.1.101 remote-as 64512 | |
1254 | neighbor 192.168.1.101 description iBGP-client-192-168-1-101 | |
1255 | neighbor 192.168.1.101 route-reflector-client | |
1256 | ||
1257 | neighbor 192.168.1.102 remote-as 64512 | |
1258 | neighbor 192.168.1.102 description iBGP-client-192-168-1-102 | |
1259 | neighbor 192.168.1.102 route-reflector-client | |
1260 | ||
1261 | address-family ipv4 vpn | |
1262 | neighbor 192.168.1.101 activate | |
1263 | neighbor 192.168.1.102 activate | |
1264 | neighbor 192.168.1.104 activate | |
1265 | ||
1266 | neighbor 192.168.1.101 route-reflector-client | |
1267 | neighbor 192.168.1.102 route-reflector-client | |
1268 | exit-address-family | |
1269 | exit | |
1270 | ||
9eb95b3b | 1271 | :file:`bgpd.conf` for ``NVA 2`` on 192.168.1.101: |
d38549c9 | 1272 | |
9eb95b3b | 1273 | .. code-block:: frr |
d38549c9 | 1274 | |
9eb95b3b | 1275 | router bgp 64512 |
d38549c9 | 1276 | |
9eb95b3b | 1277 | bgp router-id 192.168.1.101 |
d38549c9 | 1278 | |
9eb95b3b QY |
1279 | neighbor 192.168.1.100 remote-as 64512 |
1280 | neighbor 192.168.1.104 remote-as 64512 | |
d38549c9 | 1281 | |
9eb95b3b QY |
1282 | address-family ipv4 vpn |
1283 | neighbor 192.168.1.100 activate | |
1284 | neighbor 192.168.1.104 activate | |
1285 | exit-address-family | |
1286 | ||
1287 | vnc nve-group group1 | |
1288 | prefix vn 172.16.0.0/17 | |
1289 | rd 64512:1 | |
1290 | response-lifetime 200 | |
1291 | rt both 1000:1 1000:2 | |
1292 | exit-vnc | |
1293 | exit | |
1294 | ||
1295 | :file:`bgpd.conf` for ``NVA 3`` on 192.168.1.102: | |
d38549c9 | 1296 | |
9eb95b3b | 1297 | .. code-block:: frr |
d38549c9 QY |
1298 | |
1299 | router bgp 64512 | |
1300 | ||
1301 | bgp router-id 192.168.1.102 | |
1302 | ||
1303 | neighbor 192.168.1.100 remote-as 64512 | |
1304 | neighbor 192.168.1.104 remote-as 64512 | |
1305 | ||
1306 | address-family ipv4 vpn | |
1307 | neighbor 192.168.1.100 activate | |
1308 | neighbor 192.168.1.104 activate | |
1309 | exit-address-family | |
1310 | ||
1311 | vnc defaults | |
1312 | rd 64512:1 | |
1313 | response-lifetime 200 | |
1314 | rt both 1000:1 1000:2 | |
1315 | exit-vnc | |
1316 | ||
1317 | vnc nve-group group1 | |
1318 | prefix vn 172.16.128.0/17 | |
1319 | exit-vnc | |
1320 | exit | |
1321 | ||
1322 | :file:`bgpd.conf` for the Commercial Router route reflector on 192.168.1.104::: | |
1323 | ||
1324 | routing-options { | |
1325 | rib inet.0 { | |
1326 | static { | |
1327 | route 172.16.0.0/16 next-hop 192.168.1.104; | |
1328 | } | |
1329 | } | |
1330 | autonomous-system 64512; | |
1331 | resolution { | |
1332 | rib inet.3 { | |
1333 | resolution-ribs inet.0; | |
1334 | } | |
1335 | rib bgp.l3vpn.0 { | |
1336 | resolution-ribs inet.0; | |
1337 | } | |
1338 | } | |
1339 | } | |
1340 | protocols { | |
1341 | bgp { | |
1342 | advertise-inactive; | |
1343 | family inet { | |
1344 | labeled-unicast; | |
1345 | } | |
1346 | group 1 { | |
1347 | type internal; | |
1348 | advertise-inactive; | |
1349 | advertise-peer-as; | |
1350 | import h; | |
1351 | family inet { | |
1352 | unicast; | |
1353 | } | |
1354 | family inet-vpn { | |
1355 | unicast; | |
1356 | } | |
1357 | cluster 192.168.1.104; | |
1358 | neighbor 192.168.1.101; | |
1359 | neighbor 192.168.1.102; | |
1360 | } | |
1361 | ||
1362 | group 2 { | |
1363 | type internal; | |
1364 | advertise-inactive; | |
1365 | advertise-peer-as; | |
1366 | import h; | |
1367 | family inet { | |
1368 | unicast; | |
1369 | } | |
1370 | family inet-vpn { | |
1371 | unicast; | |
1372 | } | |
1373 | neighbor 192.168.1.100; | |
1374 | } | |
1375 | ||
1376 | } | |
1377 | } | |
1378 | policy-options { | |
1379 | policy-statement h { | |
1380 | from protocol bgp; | |
1381 | then { | |
1382 | as-path-prepend 64512; | |
1383 | accept; | |
1384 | } | |
1385 | } | |
1386 | } | |
1387 | ||
9eb95b3b | 1388 | .. [#] The nve-id is carried in the route distinguisher. It is the second octet |
c1a54c05 QY |
1389 | of the eight-octet route distinguisher generated for Ethernet / L2 |
1390 | advertisements. The first octet is a constant 0xFF, and the third | |
1391 | through eighth octets are set to the L2 | |
1392 | ethernet address being advertised. | |
42fc5d26 | 1393 |