mirror of
https://github.com/alice-lg/alice-lg.git
synced 2024-05-11 05:55:03 +00:00
220 lines
6.7 KiB
Plaintext
220 lines
6.7 KiB
Plaintext
# ======================================
|
|
# Alice-LG configuration example
|
|
# ======================================
|
|
|
|
[server]
|
|
# configures the built-in webserver and provides global application settings
|
|
listen_http = 127.0.0.1:7340
|
|
# configures the built-in webserver timeout in seconds (default 120s)
|
|
# http_timeout = 60
|
|
# enable the prefix-lookup endpoint / the global search feature
|
|
enable_prefix_lookup = true
|
|
# Try to refresh the neighbor status on every request to /neighbors
|
|
enable_neighbors_status_refresh = false
|
|
asn = 9033
|
|
# this ASN is used as a fallback value in the RPKI feature and for route
|
|
# filtering evaluation with large BGP communities
|
|
store_backend = postgres
|
|
|
|
[postgres]
|
|
url = "postgres://postgres:postgres@localhost:5432/alice"
|
|
min_connections = 2
|
|
max_connections = 128
|
|
|
|
[housekeeping]
|
|
# Interval for the housekeeping routine in minutes
|
|
interval = 5
|
|
# Try to release memory via a forced GC/SCVG run on every housekeeping run
|
|
force_release_memory = true
|
|
|
|
[theme]
|
|
path = /path/to/my/alice/theme/files
|
|
# Optional:
|
|
url_base = /theme
|
|
|
|
[pagination]
|
|
# Routes tables can be paginated, which comes in handy with
|
|
# peers announcing a lot of routes. Set to 0 to disable
|
|
# pagination.
|
|
routes_filtered_page_size = 250
|
|
routes_accepted_page_size = 250
|
|
routes_not_exported_page_size = 250
|
|
|
|
[rejection_reasons]
|
|
# a pair of a large BGP community value and a string to signal the processing
|
|
# results of route filtering
|
|
9033:65666:1 = An IP Bogon was detected
|
|
9033:65666:2 = Prefix is longer than 64
|
|
9033:65666:3 = Prefix is longer than 24
|
|
9033:65666:4 = AS path contains a bogon AS
|
|
9033:65666:5 = AS path length is longer than 64
|
|
9033:65666:6 = First AS in path is not the same as the Peer AS
|
|
9033:65666:7 = ECIX prefix hijack
|
|
9033:65666:8 = Origin AS not found in IRRDB for Peer AS-SET
|
|
9033:65666:9 = Prefix not found in IRRDB for Origin AS
|
|
9033:65666:10 = Advertised nexthop address is not the same as the peer
|
|
|
|
23:42:1 = Some made up reason
|
|
|
|
#
|
|
# Optional: Define communities which might be filtered
|
|
# in the future.
|
|
[rejection_candidates]
|
|
communities = 6695:1102:14, 6695:1102:15, 23:42:46
|
|
|
|
[noexport]
|
|
load_on_demand = true # Default: false
|
|
|
|
[noexport_reasons]
|
|
# a pair of a large BGP community value and a string to signal the processing
|
|
# results of route distribution and the distribution policy applied to a route
|
|
9033:65667:1 = The target peer policy is Fairly-open and the sender ASN is an exception
|
|
9033:65667:2 = The target peer policy is Selective and the sender ASN is no exception
|
|
9033:65667:3 = The target peer policy is set to restrictive
|
|
9033:65667:4 = The sender has specifically refused export to the target peer, either through sending 65000:AS, or through the portal
|
|
9033:65667:5 = The sender has refused export to all peers and the target is no exception, either through sending 65000:0, or through the portal
|
|
9033:65667:6 = The Sender has set (peerRTTHigherDeny:ms) and the targets RTT ms >= then the ms in the community
|
|
9033:65667:7 = The Sender has set (peerRTTLowerDeny:ms) and the targets RTT ms <= then the ms in the community
|
|
|
|
23:46:1 = Some other made up reason
|
|
|
|
|
|
[rpki]
|
|
# shows rpki validation status in the client, based on the presence of a large
|
|
# BGP community on the route
|
|
enabled = true
|
|
|
|
# Optional, falling back to defaults as defined in:
|
|
# https://www.euro-ix.net/en/forixps/large-bgp-communities/
|
|
valid = 23042:1000:1
|
|
unknown = 23042:1000:2
|
|
# not_checked = 23042:1000:3
|
|
invalid = 23042:1000:4-*
|
|
|
|
|
|
# Define other known bgp communities
|
|
[bgp_communities]
|
|
1:23 = some tag
|
|
9033:65666:1 = ip bogon detected
|
|
# Wildcards are supported aswell:
|
|
0:* = do not redistribute to AS$1
|
|
|
|
#
|
|
# Define columns for neighbours and routes table,
|
|
# with <key> = <Table Header>
|
|
#
|
|
# and <key> := <object.path> Implicitly referencing the object,
|
|
# e.g. route.bgp.as_path -> bgp.as_path)
|
|
# |= <Widget> A widget with special rendering features,
|
|
# to which the object is applied. E.g.
|
|
# Uptime, which will be rendered as
|
|
# Uptime(neighbour).
|
|
#
|
|
# As per convention: Widgets are in Uppercase, object properties are
|
|
# in lowercase.
|
|
#
|
|
# Available Widgets for Neighbours:
|
|
#
|
|
# Uptime Displays the relative uptime of this neighbour
|
|
# Description The neighbour's description with link to routes page
|
|
#
|
|
|
|
[neighbours_columns]
|
|
address = Neighbour
|
|
asn = ASN
|
|
state = State
|
|
Uptime = Uptime
|
|
Description = Description
|
|
routes_received = Routes Received
|
|
routes_filtered = Filtered
|
|
|
|
#
|
|
|
|
[routes_columns]
|
|
flags =
|
|
network = Network
|
|
gateway = Gateway
|
|
interface = Interface
|
|
metric = Metric
|
|
bgp.as_path = AS Path
|
|
|
|
|
|
[lookup_columns]
|
|
flags =
|
|
network = Network
|
|
gateway = Gateway
|
|
neighbour.asn = ASN
|
|
neighbour.description = Description
|
|
bgp.as_path = AS Path
|
|
routeserver.name = RS
|
|
|
|
|
|
# Routeservers
|
|
# Birdwatcher Example
|
|
[source.rs0-example-v4]
|
|
name = rs1.example.com (IPv4)
|
|
# Optional: a group for the routeservers list
|
|
group = FRA
|
|
blackholes = 10.23.6.666, 10.23.6.665
|
|
|
|
[source.rs0-example-v4.birdwatcher]
|
|
api = http://rs1.example.com:29184/
|
|
# single_table / multi_table
|
|
type = multi_table
|
|
|
|
main_table = master4 # default is master in bird1x
|
|
peer_table_prefix = T
|
|
pipe_protocol_prefix = M
|
|
# Timeout in seconds to wait for the status data (only required if enable_neighbors_status_refresh is true)
|
|
neighbors_refresh_timeout = 2
|
|
|
|
# Optional:
|
|
show_last_reboot = true
|
|
|
|
[source.rs1-example-v6]
|
|
name = rs1.example.com (IPv6)
|
|
[source.rs1-example-v6.birdwatcher]
|
|
timezone = Europe/Brussels
|
|
api = http://rs1.example.com:29186/
|
|
# single_table / multi_table
|
|
type = multi_table
|
|
peer_table_prefix = T
|
|
pipe_protocol_prefix = M
|
|
# Timeout in seconds to wait for the status data (only required if enable_neighbors_status_refresh is true)
|
|
neighbors_refresh_timeout = 2
|
|
|
|
# Optional: Examples for time format
|
|
# Please see https://golang.org/pkg/time/#pkg-constants for an
|
|
# explanation on how time parsing in go works.
|
|
servertime = 2006-01-02T15:04:05Z07:00
|
|
servertime_short = 02.01.2006
|
|
servertime_ext = Mon, 02 Jan 2006 15:04:05 -0700
|
|
|
|
|
|
# Routeservers
|
|
# GoBGP Example
|
|
# [source.rs2-example]
|
|
# name = rs2.example.com
|
|
# group = AMS
|
|
# [source.rs2-example.gobgp]
|
|
# host is the IP (or DNS name) and port for the remote GoBGP daemon
|
|
# host = rs2.example.com:50051
|
|
# Optional: processing_timeout is a timeout in seconds
|
|
# configured per gRPC call to a given GoBGP daemon.
|
|
# Default: 300
|
|
# processing_timeout = 300
|
|
|
|
# [source.rs0-example]
|
|
# name = rs-example.openbgpd-state-server
|
|
# [source.rs0-example.openbgpd-state-server]
|
|
# api = http://165.22.27.105:29111/api
|
|
|
|
# Cache results from openbgpd for n seconds, 0 disables the cache.
|
|
# cache_ttl = 30
|
|
# routes_cache_size = 1024 # Neighbors
|
|
|
|
# [source.rs0-example-bgplgd]
|
|
# name = rs-example.bgplgd
|
|
# [source.rs0-example-bgplgd.openbgpd-bgplgd]
|
|
# api = http://165.22.27.105:29111/api
|