template bgp dn42_bgp_up { graceful restart; local as DN42_ASN; ipv4 { table dn42v4; import filter { if dn42_is_valid_network() && !dn42_is_self_net() then accept; reject; }; export filter { if dn42_is_valid_network() && source ~ [RTS_STATIC, RTS_BGP] then accept; else reject; }; import limit 9000 action block; }; ipv6 { table dn42v6; import filter { if dn42_is_valid_network_v6() && !dn42_is_self_net_v6() then accept; reject; }; export filter { if dn42_is_valid_network_v6() && source ~ [RTS_STATIC, RTS_BGP] then accept; else reject; }; import limit 9000 action block; }; } template bgp dn42_ibgp { graceful restart; local as DN42_ASN; med metric; direct; ipv4 { table dn42v4; next hop self; gateway direct; import filter { if bgp_large_community ~ [(DN42_ASN, 1,*)] then reject; if !dn42_is_valid_network() then reject; if dn42_is_self_net() then reject; accept; }; export filter { if bgp_large_community ~ [(DN42_ASN, 1,*)] then reject; if !dn42_is_valid_network() then reject; if dn42_is_self_net() then reject; accept; }; }; ipv6 { table dn42v6; next hop self; gateway direct; import filter { if bgp_large_community ~ [(DN42_ASN, 1,*)] then reject; if !dn42_is_valid_network_v6() then reject; if dn42_is_self_net_v6() then reject; accept; }; export filter { if bgp_large_community ~ [(DN42_ASN, 1,*)] then reject; if !dn42_is_valid_network_v6() then reject; if dn42_is_self_net_v6() then reject; accept; }; }; } include "/etc/bird/peers/dn42/*.conf";