Preparing to run ferrix next to BIRD on the production router. - build: the config proto is now parsed in pure Rust, so building needs no `protoc` binary. It previously worked only where one happened to be installed; the Dockerfile in this repo could not have built. - peers gain `local_address`, the source IP for connections we open (and therefore the next hop we advertise). When both speakers share a host the OS would otherwise pick an arbitrary local address and the peer, which identifies us by address, would refuse the session. Address-family mismatches are rejected at config load; an address the host lacks shows up as the peer's backoff reason. - docs/lab/prod/on-router: static musl cross-build instructions, config, hardened systemd unit (unprivileged, SIGTERM gives BIRD a Cease), loopback addresses for networkd, the BIRD stanza for a same-host multihop session, and reverse-proxy examples with TLS and a password, since the API has no authentication. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
13 lines
363 B
Rust
13 lines
363 B
Rust
use protobuf_codegen::Codegen;
|
|
|
|
fn main() {
|
|
Codegen::new()
|
|
// Parse the .proto in pure Rust so building needs no `protoc` binary
|
|
// on the machine (routers and minimal containers rarely have one).
|
|
.pure()
|
|
.input("proto/config.proto")
|
|
.includes(&["proto"])
|
|
.cargo_out_dir("protos")
|
|
.run_from_script();
|
|
}
|