1EXABGP.CONF(5)              BSD File Formats Manual             EXABGP.CONF(5)
2

NAME

4     exabgp.conf — Configuration file controlling the BGP configuration for
5     exabgp(1).
6

DESCRIPTION

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 | urg | ece | cwr | ns ];
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                redirect-to-nexthop-ietf <ip-address>;
128                copy <ip-address>;
129                mark <mark>;
130                action ( sample | terminal | sample-terminal );
131                community
132                large-community
133                extended-community
134              }
135            }
136          }
137          l2vpn {
138            vpls <site-name> {
139              next-hop <ip-address>;
140              origin ( IGP | EGP | INCOMPLETE );
141              as-path [ <as-sequence-asn> | ( <as-set ) ];
142              med <med>;
143              local-preference <preference>;
144              community ( <community> | [ <community> <community> ... ] );
145              large-community ( <large-community> | [ <large-community> <large-community> ... ] );
146              originator-id <ip-address>;
147              cluster-list [ <ip-address> <ip-address> ... ];
148              extended-community ( <extended-community> |
149                                   [ <extended-community>
150                                     <extended-community> ... ] );
151              rd <route-distinguisher>;
152              withdraw;
153              endpoint ( <vpls-endpoint> | <integer> );
154              offset ( <block-offset> | <integer> );
155              size ( <block-size> | <integer> );
156              base ( <label-base> | <integer> );
157              name <route-name>;
158          }
159          process {
160            run <command> <args>;
161          }
162          family {
163            all; // default, or a list of the below
164            minimal; // use AFI/SAFI required to announce routes in config
165            ipv4 unicast;
166            ipv4 multicast;
167            ipv4 nlri-mpls;
168            ipv4 mpls-vpn;
169            ipv4 flow;
170            ipv4 flow-vpn;
171            ipv6 unicast;
172            ipv6 flow;
173            ipv6 flow-vpn;
174          }
175          capability {
176            graceful-restart <seconds>;
177            asn4 ( enable | disable );
178            add-path ( disable | send | receive | send/receive );
179            multi-session ( enable | disable );
180            operational ( enable | disable );
181          }
182          operational {
183            // ??
184          }
185        }
186        neighbor <ip-address> {
187          // Attributes and sections as for under
188          // group <groupname> { neighbor <neighbor> {
189          // ref. above
190        }
191
192     Please note that multi-line sections really do need to be written as mul‐
193     tiple lines: the first one ending in "{", and ending with a line with a
194     "}" by itself.
195

SEE ALSO

197     exabgp(1).
198
199                               February 26, 2015
Impressum