freyanet/README.md
2023-11-19 11:56:45 -05:00

2.8 KiB

freyanet

this container allows perring multiple servers togeather with ospf creating an internetwork on any subnet

running

docker run --privileged --network host -v $PWD/config:/config g.freya.cat/freya/freyanet

or with docker-compose:

version: "3"
services:
  inet2:
	image: g.freya.cat/freya/freyanet
	network_mode: host # needed otherwise internal network wont be accessable
	privileged: true
	volumes:
	  - ./config:/config

config

create a file at /config/inet2.conf

# specify router id
RouterID 10.1.1.1

# specify routed subnets
Subnet 10.0.0.0/8
Subnet fd:cafe::/48

# optional global private key gets used for all interfaces
PrivateKey = {host private key}

interface interfacename
	# indentation is a single tab per level

	# set the address(es) to assign to the interface
	# route lines are usually the same as Address but with host bits zeroed
	Address 10.2.255.1/30 
  Route 10.2.255.0/30   # must specify route
  # you can also set ipv6 
  Address fd:cafe::ffff/64
  Address fd:cafe::/64
	# link local is also possible (and prefered for peering routers)
	# link-local addresses should *not* have an associated Route line
  Address fe80::1/64
	Route 1.1.1.0/24
	# more syntax options
	Route 1.1.2.0/24 via 1.1.1.2
	Route default via 1.1.1.3
	# optional: set Gateway and Gateway6 to configure a default gateway
	# through this interface
	Gateway 1.1.1.2
	Gateway6 fe80::1111:1111:1111:1111
	# port to listen on in the host's network namespace, over udp
	# you probably have to allow this through your firewall
	ListenPort {host port}
	# omit if using global private key
	PrivateKey {host private key}
	# all optional
	PreUp command
	PostUp command
	PreDown command
	PostDown command
	
	# if running ospf on this interface
	OSPF
	# if running ospf on this interface and it's a stub network (no other routers)
	OSPF stub
	
	peer peername
		PublicKey {peer public key}
		# if the peer is a router, it has to have AllowedIPs set to everything and be the only
		# peer on the interface
		AllowedIPs 0.0.0.0/0, ::/0
		# either:
		Domain = {domain name of peer}
		Port = {peer port}
		# or:
		Endpoint = {peer ip}:{peer port}
		# make domain enpoint resolve with ipv (ipv6 is default)
		IPv4
		
		# optional
		PersistentKeepalive = 25

# optionally assign static addresses to the loopback interface
# this has its uses for making things ibgp not dependent on a specific interface being up
Loopback 1.2.3.4

and other optional files:

  • /config/setup.sh gets run on the first run of the container with the host's networking
  • /config/start.sh gets run every time the container starts up with the host's networking

Licenses

License Author Project
MIT tint inet2
MIT freya freyanet