Skip to content

Repository files navigation


ROUTE SERVER AGENT


This repository contains code used for automated internal management of 48 IX route servers.

How it Works

Upon receiving a signal from 48ix/routingpolicy (RPS), the RS Agent (RSA) ingests a delta FRRouting configuration. Prior to sending the actual payload, RPS creates a SHA-256 hash of the config file, encrypts the file, and creates a second hash of the now-encrypted config file. RPS then sends both hashes to RSA, followed by the encrypted config file payload. RSA validates that both the encrypted & decrypted data match the hashes sent by RPS and decrypts the config file. Then, RSA uses the FRR Reload script to test that the config is valid, and if it is, RSA applies the new config and reloads FRRouting.

Configuration

There are only 4 configuration variables, and only one is required. All are picked up via environment variables.

Environment VariableFunctionDefault
ix_rsagent_listen_addressIPv4/IPv6 Address for the RS Agent Server to listen on::
ix_rsagent_listen_portTCP Port used for RSA to RPS communication4848
ix_rsagent_frr_reloadPath to frr-reload script/usr/lib/frr/frr-reload.py
ix_rsagent_keyEncryption key used for RSA to RPS communication

About

48 IX Route Server Agent

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages