Add the RPKI protocol (RFC 6810) using the RTRLib
(http://rpki.realmv6.org/) that is integrated inside
the BIRD's code.
Implemeted transports are:
- unprotected transport over TCP
- secure transport over SSHv2
The code should work properly with one cache server per protocol.
A compilation has to be hacked with:
$ ./configure LIBS='-lssh' ...
Example configuration of bird.conf:
...
roa table roatable;
protocol rpki {
roa table roatable;
cache "rpki-validator.realmv6.org";
}
protocol rpki {
roa table roatable;
cache "localhost" {
port 2222;
ssh encryption {
bird private key "/home/birdgeek/.ssh/id_rsa";
cache public key "/home/birdgeek/.ssh/known_hosts";
user "birdgeek";
};
};
}
...
TODO list:
- load libssh2 using dlopen
- support more cache servers per protocol
C includes as they contain substitutions specific to make.
Worked around by creating sysconf/paths.h which is created from
the Makefile instead of by the configure script.
operations on 2.1/2.2 kernels. This allows passing of real interface
indexes instead of referencing interfaces by their IP addresses which
fails badly in presence of unnumbered interfaces.
Unfortunately, this structure is not visible with glibc 2.0 as it provides
its own networking headers :-( Both libc5 and glibc 2.1 should be OK.
over EFence and also hopefully smaller memory overhead, but sadly it's non-free
for commercial use).
If the DMALLOC_OPTIONS environment variable is not set, switch on `reasonable'
checks by default.
Also introduced mb_allocz() for cleared mb_alloc().
guesses most system-dependent parameters and determines name of system
configuration file (sysdep/cf/...) with the remaining ones.
To compile BIRD, you now need to do:
autoconf # Create configure from configure.in
./configure # Run configure script
make # Compile everything
Configuration files:
sysdep/config.h Master config file
sysdep/autoconf.h Parameters determined by configure script
sysdep/cf/*.h Fixed system configuration we're unable
to guess.
Makefiles are still the original ones, but this will change soon.