OSPF on TransPort routers implements the Open Shortest Path First protocol
version 2 as described in RFC 2328. The following text is from the OpenBSD
man page for ospfd.conf. The SarOS operating system implementation of OSPF
is almost identical to the OpenBSD version but some of the features described
may not be supported.
SECTIONS
The OSPF config file is divided into three main sections.
Macros
User-defined variables may be defined and used later, simplifying
the configuration file.
Global Configuration
Global settings for OSPF. A number of global settings can be
overruled in specific areas or interfaces.
Areas
An OSPF router must be a member of at least one area. Areas are
used to group interfaces, simplifying configuration.
MACROS
Macros can be defined that will later be expanded in context. Macro
names must start with a letter, digit, or underscore, and may contain any
of those characters. Macro names may not be reserved words (for example,
area, interface, or hello-interval). Macros are not expanded inside
quotes.
For example:
hi="5"
area 0.0.0.0 {
interface tun0 {
hello-interval $hi
}
}
The same can be accomplished by specifying the hello-interval globally or
within the area declaration.
GLOBAL CONFIGURATION
All interface related settings can be configured globally, per area and
per interface. The only settings that can be set globally and not
overruled are listed below.
fib-update (yes|no)
If set to no, do not update the Forwarding Information Base,
a.k.a. the kernel routing table. The default is yes. Setting
fib-update to no will implicitly set the stub router option to
ensure that no traffic tries to transit via this router.
rdomain tableid
Specifies the routing table OSPF should modify. Table 0 is
the default table.
[no] redistribute (static|connected|default) [set ...]
[no] redistribute prefix [set ...]
[no] redistribute rtlabel label [set ...]
If set to connected, routes to directly attached networks will be
announced over OSPF. If set to static, static routes will be
announced over OSPF. If set to default, a default route pointing
to this router will be announced over OSPF. It is possible to
specify a network range with prefix; networks need to be part of
that range to be redistributed. Additionally it is possible to
redistribute based on route labels using the rtlabel keyword. By
default no additional routes will be announced over OSPF.
redistribute statements are evaluated in sequential order, from
first to last. The first matching rule decides if a route should
be redistributed or not. Matching rules starting with no will
force the route to be not announced. The only exception is
default, which will be set no matter what, and additionally no
cannot be used together with it.
It is possible to set the route metric and type for each
redistribute rule. type is either 1 or 2. The default value for
type is 1 and for metric is 100. Setting more than one option
needs curly brackets:
redistribute static set { metric 300 type 2 }
rfc1583compat (yes|no)
If set to yes, decisions regarding AS-external routes are
evaluated according to RFC 2328. The default is no.
router-id address
Set the router ID; if not specified, the numerically lowest IP
address of the router will be used.
rtlabel label external-tag number
Map route labels to external route tags and vice versa. The
external route tag is a non-negative 32-bit number attached to
AS-external OSPF LSAs.
spf-delay (seconds|msec milliseconds)
Set the SPF delay. The delay between receiving an update to the
link state database and starting the shortest path first
calculation. The default value is 1 second; valid range is 10
milliseconds-10 seconds.
spf-holdtime (seconds|msec milliseconds)
Set the SPF holdtime. The minimum time between two consecutive
shortest path first calculations. The default value is 5
seconds; the valid range is 10 milliseconds-5 seconds.
stub router (yes|no)
If set to yes, all interfaces with active neighbors will have a
metric of infinity. This ensures that the other routers prefer
routes around this router while still being able to reach
directly connected IP prefixes.
AREAS
Areas are used for grouping interfaces. All interface-specific
parameters can be configured per area, overruling the global settings.
area address
Specify an area section, grouping one or more interfaces.
area 0.0.0.0 {
interface tun0
interface tun1 {
metric 10
}
}
Area specific parameters are listed below.
demote group [count]
Increase the demotion counter by [count] on the given
interface group, when no neighbor in the area is in
an active state. The demotion counter will be decreased when one
neighbor in that area is in an active state. The default value
for count is 1.
stub [redistribute default] [set ...]
Mark the area as stub. Stub areas will not be flooded by as-ext
LSA, resulting in smaller routing tables. Area border routers
should redistribute a default network LSA; this can be enabled by
specifying the default redistribute option. A default summary
LSA will only be redistributed if the router has an active
connection to the backbone area 0.0.0.0.
INTERFACES
Each interface can have several parameters configured individually,
otherwise they are inherited. An interface is specified by its name. If
multiple networks are configured an additional IP address can be
supplied. By default the first IP address is used.
interface tun0 {
auth-type crypt
auth-md 1 "yotVoo_Heypp"
auth-md-keyid 1
}
interface eth0:192.168.1.3
Interface-specific parameters are listed below.
auth-key key
Set the authentication key for simple authentication. Up to 8
characters can be specified.
auth-md key-id key
Set the authentication key-id and key for crypt authentication.
The valid range for key-id is 0-255. Up to 16 characters can be
specified for key. Multiple keys may be specified.
auth-md-keyid key-id
Configure the key-id to use for crypt authentication. The valid
range for key-id is 0-255. The default key-id is 1. While key-
id 0 is valid, it is unavailable on various other
implementations.
auth-type (none|simple|crypt)
Set the authentication type. The default is none. Simple
authentication uses a plaintext password, up to 8 characters.
Crypt authentication uses an MD5 hash.
demote group
Increase the demotion counter by 1 on the given interface
group, when the interface state is going down. The
demotion counter will be decreased when the interface state is
active again.
fast-hello-interval msec milliseconds
If the interface is configured to use router-dead-time minimal,
hello packets will be sent using this timer. The default value
is 333; valid range is 50-333 milliseconds.
hello-interval seconds
Set the hello interval. The default value is 10; valid range is
1-65535 seconds.
metric cost
Set the interface metric a.k.a. cost. The default value is 10;
valid range is 1-65535.
passive
Prevent transmission and reception of OSPF packets on this
interface. The specified interface will be announced as a stub
network.
retransmit-interval seconds
Set retransmit interval. The default value is 5 seconds; valid
range is 5-3600 seconds.
router-dead-time (seconds|minimal)
Set the router dead time, a.k.a. neighbor inactivity timer. The
default value is 40 seconds; valid range is 2-2147483647 seconds.
If the router dead time has been set to minimal, the timer is set
to 1 second and hello packets are sent using the interval
specified by fast-hello-interval. When a neighbor has been
inactive for router-dead-time its state is set to DOWN.
Neighbors that have been inactive for more than 24 hours are
completely removed.
router-priority priority
Set the router priority. The default value is 1; valid range is
0-255. If set to 0 the router is not eligible as a Designated
Router or Backup Designated Router.
transmit-delay seconds
Set the transmit delay. The default value is 1; valid range is
1-3600 seconds.