nixos/tests/fastnetmon-advanced: init

This commit is contained in:
Yureka 2023-10-18 04:13:16 +02:00
parent bf5f01ee52
commit f13a5196fc
2 changed files with 66 additions and 0 deletions

View file

@ -248,6 +248,7 @@ in {
ec2-nixops = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-nixops or {};
ecryptfs = handleTest ./ecryptfs.nix {};
fscrypt = handleTest ./fscrypt.nix {};
fastnetmon-advanced = runTest ./fastnetmon-advanced.nix;
ejabberd = handleTest ./xmpp/ejabberd.nix {};
elk = handleTestOn ["x86_64-linux"] ./elk.nix {};
emacs-daemon = handleTest ./emacs-daemon.nix {};

View file

@ -0,0 +1,65 @@
{ pkgs, lib, ... }:
{
name = "fastnetmon-advanced";
meta.maintainers = lib.teams.wdz.members;
nodes = {
bird = { ... }: {
networking.firewall.allowedTCPPorts = [ 179 ];
services.bird2 = {
enable = true;
config = ''
router id 192.168.1.1;
protocol bgp fnm {
local 192.168.1.1 as 64513;
neighbor 192.168.1.2 as 64514;
multihop;
ipv4 {
import all;
export none;
};
}
'';
};
};
fnm = { ... }: {
networking.firewall.allowedTCPPorts = [ 179 ];
services.fastnetmon-advanced = {
enable = true;
settings = {
networks_list = [ "172.23.42.0/24" ];
gobgp = true;
gobgp_flow_spec_announces = true;
};
bgpPeers = {
bird = {
local_asn = 64514;
remote_asn = 64513;
local_address = "192.168.1.2";
remote_address = "192.168.1.1";
description = "Bird";
ipv4_unicast = true;
multihop = true;
active = true;
};
};
};
};
};
testScript = { nodes, ... }: ''
start_all()
fnm.wait_for_unit("fastnetmon.service")
bird.wait_for_unit("bird2.service")
fnm.wait_until_succeeds('journalctl -eu fastnetmon.service | grep "BGP daemon restarted correctly"')
fnm.wait_until_succeeds("journalctl -eu gobgp.service | grep BGP_FSM_OPENCONFIRM")
bird.wait_until_succeeds("birdc show protocol fnm | grep Estab")
fnm.wait_until_succeeds('journalctl -eu fastnetmon.service | grep "API server listening"')
fnm.succeed("fcli set blackhole 172.23.42.123")
bird.succeed("birdc show route | grep 172.23.42.123")
'';
}