1EXABGP.CONF(5) BSD File Formats Manual EXABGP.CONF(5)
2
4 exabgp.conf — Configuration file controlling the BGP configuration for
5 exabgp(1).
6
8 CONFIGURATION FILE SYNTAX
9 group <groupname> {
10 // Most if not all the attributes under neighbor can be defined
11 // at the group level as well, and the settings will be inherited
12 // unless overridden in the neighbor section
13 neighbor <ip-address> {
14 description <text>;
15 router-id <router-id>;
16 local-address <ip-address>;
17 local-as <asn>;
18 peer-as <asn>;
19 passive;
20 hold-time <seconds>;
21 md5-password <md5-secret>;
22 ttl-security;
23 group-updates;
24 aigp <truthvalue>;
25 route-refresh <truthvalue>;
26 graceful-restart <...>;
27 multi-session <truthvalue);
28 add-path <path>;
29 auto-flush <truthvalue>;
30 adj-rib-out <truthvalue>;
31 // Can also have the groups listed under group <gn> { } below:
32 static {
33 }
34 flow {
35 }
36 l2vpn {
37 }
38 process {
39 }
40 family {
41 }
42 capability {
43 }
44 operational {
45 }
46 }
47 static {
48 route <ip-address>/<prefixlength> {
49 next-hop <ip-address>; // only mandatory attribute
50 origin ( IGP | EGP | INCOMPLETE );
51 as-path [ <as-sequence-asn> | ( <as-set ) ];
52 as-sequence
53 med <med>;
54 aigp <aigp>;
55 local-preference <preference>;
56 atomic-aggregate;
57 aggregator <asn>:<ip-address>;
58 path-information <ip-address>;
59 community ( <community> | [ <community> <community> ... ] );
60 large-community ( <large-community> | [ <large-community> <large-community> ... ] );
61 originator-id <ip-address>;
62 cluster-list ( <ip-address> | [ <ip-address> <ip-address> ... ] );
63 extended-community ( <extended-community> |
64 [ <extended-community>
65 <extended-community> ... ] );
66 split /<prefixlength>;
67 label ( <label> | [ <label> <label> ... ] );
68 rd <route-distinguisher>;
69 watchdog <watchdog-name>;
70 bgp-prefix-sid ( [<label-index-value>] |
71 [ <label-index-value>, [ ( <srgb-base_1>,<srgb-range_1> ), ... ] ]);
72 withdraw;
73 }
74 // or alternatively
75 route <ip-address>/<prefixlength> <attribute-sequence>;
76 // where <attribute-sequence> is a sequence of
77 // any of the attributes above
78 }
79 flow {
80 route <route-name> {
81 rd <route-distinguisher>;
82 next-hop <ip-address>; // for redirect-to-nexthop
83 match {
84 // one or more match terms
85 source <ip-address>/<prefixlength>;
86 destination <ip-address>/<prefixlength>;
87 port <portnumber>;
88 source-port <portnumber>;
89 destination-port <portnumber-expression>;
90 protocol [ udp | tcp ]; // IPv4 only
91 next-header [ udp | tcp ]; // IPv6 only
92 tcp-flags [ fin | syn | rst | push | ack | urgent ];
93 icmp-type [ echo-reply | echo-request | info-reply |
94 info-request | mask-reply | mask-request |
95 parameter-problem | redirect | router-advertisment |
96 router-solicit | source-quench | time-exceeded |
97 timestamp | timestamp-reply | unreachable ];
98 icmp-code [ communication-prohibited-by-filtering |
99 destination-host-prohibited |
100 destination-host-unknown |
101 destination-network-unknown |
102 fragmentation-needed | host-precedence-violation |
103 ip-header-bad | network-unreachable |
104 network-unreachable-for-tos | port-unreachable |
105 redirect-for-host | redirect-for-network |
106 redirect-for-tos-and-host |
107 redirect-for-tos-and-net |
108 required-option-missing | source-host-isolated |
109 source-route-failed |
110 ttl-eq-zero-during-reassembly |
111 ttl-eq-zero-during-transit ];
112 fragment [ not-a-fragment | dont-fragment | is-fragment |
113 first-fragment | last-fragment ];
114 // fragment is IPv4 only, poorly tested
115 dscp <dscp-value>;
116 traffic-class <traffic-class>;
117 packet-length <packet-length-expression>;
118 flow-label <flow-label-expression>; // IPv6 only
119 }
120 then {
121 // one action only
122 accept;
123 discard;
124 rate-limit <ratelimit>;
125 redirect ( <route-distinguisher> | <ip-address> );
126 redirect-to-nexthop; // Ref. next-hop above
127 copy <ip-address>;
128 mark <mark>;
129 action ( sample | terminal | sample-terminal );
130 community
131 large-community
132 extended-community
133 }
134 }
135 }
136 l2vpn {
137 vpls <site-name> {
138 next-hop <ip-address>;
139 origin ( IGP | EGP | INCOMPLETE );
140 as-path [ <as-sequence-asn> | ( <as-set ) ];
141 med <med>;
142 local-preference <preference>;
143 community ( <community> | [ <community> <community> ... ] );
144 large-community ( <large-community> | [ <large-community> <large-community> ... ] );
145 originator-id <ip-address>;
146 cluster-list [ <ip-address> <ip-address> ... ];
147 extended-community ( <extended-community> |
148 [ <extended-community>
149 <extended-community> ... ] );
150 rd <route-distinguisher>;
151 withdraw;
152 endpoint ( <vpls-endpoint> | <integer> );
153 offset ( <block-offset> | <integer> );
154 size ( <block-size> | <integer> );
155 base ( <label-base> | <integer> );
156 name <route-name>;
157 }
158 process {
159 run <command> <args>;
160 }
161 family {
162 all; // default, or a list of the below
163 minimal; // use AFI/SAFI required to announce routes in config
164 ipv4 unicast;
165 ipv4 multicast;
166 ipv4 nlri-mpls;
167 ipv4 mpls-vpn;
168 ipv4 flow;
169 ipv4 flow-vpn;
170 ipv6 unicast;
171 ipv6 flow;
172 ipv6 flow-vpn;
173 }
174 capability {
175 graceful-restart <seconds>;
176 asn4 ( enable | disable );
177 add-path ( disable | send | receive | send/receive );
178 multi-session ( enable | disable );
179 operational ( enable | disable );
180 }
181 operational {
182 // ??
183 }
184 }
185 neighbor <ip-address> {
186 // Attributes and sections as for under
187 // group <groupname> { neighbor <neighbor> {
188 // ref. above
189 }
190
191 Please note that multi-line sections really do need to be written as mul‐
192 tiple lines: the first one ending in "{", and ending with a line with a
193 "}" by itself.
194
196 exabgp(1).
197
198 February 26, 2015