Annotation of embedaddon/quagga/doc/routemap.texi, revision 1.1.1.2
1.1 misho 1: @node Route Map
2: @chapter Route Map
3:
4: Route maps provide a means to both filter and/or apply actions to
5: route, hence allowing policy to be applied to routes.
6:
7: @menu
8: * Route Map Command::
9: * Route Map Match Command::
10: * Route Map Set Command::
11: * Route Map Call Command::
12: * Route Map Exit Action Command::
13: * Route Map Examples::
14: @end menu
15:
16: Route-maps are an ordered list of route-map entries. Each entry may
17: specify up to four distincts sets of clauses:
18:
19: @table @samp
20: @item Matching Policy
21:
22: This specifies the policy implied if the @samp{Matching Conditions} are
23: met or not met, and which actions of the route-map are to be taken, if
24: any. The two possibilities are:
25:
26: @itemize @minus
27: @item
28: @samp{permit}: If the entry matches, then carry out the @samp{Set
29: Actions}. Then finish processing the route-map, permitting the route,
30: unless an @samp{Exit Action} indicates otherwise.
31:
32: @item
33: @samp{deny}: If the entry matches, then finish processing the route-map and
34: deny the route (return @samp{deny}).
35: @end itemize
36:
37: The @samp{Matching Policy} is specified as part of the command which
38: defines the ordered entry in the route-map. See below.
39:
40: @item Matching Conditions
41:
42: A route-map entry may, optionally, specify one or more conditions which
43: must be matched if the entry is to be considered further, as governed
44: by the Match Policy. If a route-map entry does not explicitely specify
45: any matching conditions, then it always matches.
46:
47: @item Set Actions
48:
49: A route-map entry may, optionally, specify one or more @samp{Set
50: Actions} to set or modify attributes of the route.
51:
52: @item Call Action
53:
54: Call to another route-map, after any @samp{Set Actions} have been
55: carried out. If the route-map called returns @samp{deny} then
56: processing of the route-map finishes and the route is denied,
57: regardless of the @samp{Matching Policy} or the @samp{Exit Policy}. If
58: the called route-map returns @samp{permit}, then @samp{Matching Policy}
59: and @samp{Exit Policy} govern further behaviour, as normal.
60:
61: @item Exit Policy
62:
63: An entry may, optionally, specify an alternative @samp{Exit Policy} to
64: take if the entry matched, rather than the normal policy of exiting the
65: route-map and permitting the route. The two possibilities are:
66:
67: @itemize @minus
68: @item
69: @samp{next}: Continue on with processing of the route-map entries.
70:
71: @item
72: @samp{goto N}: Jump ahead to the first route-map entry whose order in
73: the route-map is >= N. Jumping to a previous entry is not permitted.
74: @end itemize
75: @end table
76:
77: The default action of a route-map, if no entries match, is to deny.
78: I.e. a route-map essentially has as its last entry an empty @samp{deny}
79: entry, which matches all routes. To change this behaviour, one must
80: specify an empty @samp{permit} entry as the last entry in the route-map.
81:
82: To summarise the above:
83:
84: @multitable {permit} {action} {No Match}
85: @headitem @tab Match @tab No Match
86: @item @emph{Permit} @tab action @tab cont
87: @item @emph{Deny} @tab deny @tab cont
88: @end multitable
89:
90: @table @samp
91:
92: @item action
93: @itemize @minus
94: @item
95: Apply @emph{set} statements
96:
97: @item
98: If @emph{call} is present, call given route-map. If that returns a @samp{deny}, finish
99: processing and return @samp{deny}.
100:
101: @item
102: If @samp{Exit Policy} is @emph{next}, goto next route-map entry
103:
104: @item
105: If @samp{Exit Policy} is @emph{goto}, goto first entry whose order in the list
106: is >= the given order.
107:
108: @item
109: Finish processing the route-map and permit the route.
110: @end itemize
111:
112: @item deny
113: @itemize @minus
114: @item
115: The route is denied by the route-map (return @samp{deny}).
116: @end itemize
117:
118: @item cont
119: @itemize @minus
120: @item
121: goto next route-map entry
122: @end itemize
123: @end table
124:
125: @node Route Map Command
126: @section Route Map Command
127:
128: @deffn {Command} {route-map @var{route-map-name} (permit|deny) @var{order}} {}
129:
130: Configure the @var{order}'th entry in @var{route-map-name} with
131: @samp{Match Policy} of either @emph{permit} or @emph{deny}.
132:
133: @end deffn
134:
135: @node Route Map Match Command
136: @section Route Map Match Command
137:
138: @deffn {Route-map Command} {match ip address @var{access_list}} {}
139: Matches the specified @var{access_list}
140: @end deffn
141:
142: @deffn {Route-map Command} {match ip next-hop @var{ipv4_addr}} {}
143: Matches the specified @var{ipv4_addr}.
144: @end deffn
145:
146: @deffn {Route-map Command} {match aspath @var{as_path}} {}
147: Matches the specified @var{as_path}.
148: @end deffn
149:
150: @deffn {Route-map Command} {match metric @var{metric}} {}
151: Matches the specified @var{metric}.
152: @end deffn
153:
154: @deffn {Route-map Command} {match community @var{community_list}} {}
155: Matches the specified @var{community_list}
156: @end deffn
157:
158: @node Route Map Set Command
159: @section Route Map Set Command
160:
161: @deffn {Route-map Command} {set ip next-hop @var{ipv4_address}} {}
162: Set the BGP nexthop address.
163: @end deffn
164:
165: @deffn {Route-map Command} {set local-preference @var{local_pref}} {}
166: Set the BGP local preference.
167: @end deffn
168:
169: @deffn {Route-map Command} {set weight @var{weight}} {}
170: Set the route's weight.
171: @end deffn
172:
173: @deffn {Route-map Command} {set metric @var{metric}} {}
1.1.1.2 ! misho 174: @anchor{routemap set metric}
1.1 misho 175: Set the BGP attribute MED.
176: @end deffn
177:
178: @deffn {Route-map Command} {set as-path prepend @var{as_path}} {}
179: Set the BGP AS path to prepend.
180: @end deffn
181:
182: @deffn {Route-map Command} {set community @var{community}} {}
183: Set the BGP community attribute.
184: @end deffn
185:
186: @deffn {Route-map Command} {set ipv6 next-hop global @var{ipv6_address}} {}
187: Set the BGP-4+ global IPv6 nexthop address.
188: @end deffn
189:
190: @deffn {Route-map Command} {set ipv6 next-hop local @var{ipv6_address}} {}
191: Set the BGP-4+ link local IPv6 nexthop address.
192: @end deffn
193:
194: @node Route Map Call Command
195: @section Route Map Call Command
196:
197: @deffn {Route-map Command} {call @var{name}} {}
198: Call route-map @var{name}. If it returns deny, deny the route and
199: finish processing the route-map.
200: @end deffn
201:
202: @node Route Map Exit Action Command
203: @section Route Map Exit Action Command
204:
205: @deffn {Route-map Command} {on-match next} {}
206: @deffnx {Route-map Command} {continue} {}
207: Proceed on to the next entry in the route-map.
208: @end deffn
209:
210: @deffn {Route-map Command} {on-match goto @var{N}} {}
211: @deffnx {Route-map Command} {continue @var{N}} {}
212: Proceed processing the route-map at the first entry whose order is >= N
213: @end deffn
214:
215: @node Route Map Examples
216: @section Route Map Examples
217:
218: A simple example of a route-map:
219:
220: @example
221: @group
222: route-map test permit 10
223: match ip address 10
224: set local-preference 200
225: @end group
226: @end example
227:
228: This means that if a route matches ip access-list number 10 it's
229: local-preference value is set to 200.
230:
231: See @ref{BGP Configuration Examples} for examples of more sophisticated
232: useage of route-maps, including of the @samp{call} action.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>