bsd/ospf | bsd/ospf-n-bgp | bsd/bgp | cisco/ospf | cisco/ospf-n-bgp | cisco/bgp
Here we have five BGP nodes, all doing transit between peers, and obsd3
announcing a default route instead.
vpcs*
ip 10.0.0.1/24 10.0.0.254 ip 10.3.3.1/24 10.3.3.254 save
workstation (libvirt)
no need for static routes because we’re doing NAT within the PoC (on obsd3)
obsd*
hostname obsd1 hostname obsd2 hostname obsd3 hostname obsd4 hostname obsd5 vi /etc/myname obsd1 obsd2 obsd3 obsd4 obsd5 vi /etc/hostname.vio0 inet 1.2.3.1/24 inet 1.2.3.2/24 inet 1.2.3.3/24 inet 10.1.1.1/24 inet 10.2.2.1/24 vi /etc/hostname.vio1 inet 10.1.1.245/24 inet 10.2.2.254/24 dhcp inet 10.0.0.254/24 inet 10.3.3.254/24 rm -f /etc/mygate sh /etc/netstart sysctl net.inet.ip.forwarding=1 sysctl net.inet6.ip6.forwarding=1 echo net.inet.ip.forwarding=1 >> /etc/sysctl.conf echo net.inet6.ip6.forwarding=1 >> /etc/sysctl.conf vi /etc/bgpd.conf AS 65001 AS 65002 AS 65003 AS 65004 AS 65005 router-id 1.2.3.1 router-id 1.2.3.2 router-id 1.2.3.3 router-id 10.1.1.1 router-id 10.2.2.1 connect-retry 30 log updates network inet connected neighbor 1.2.3.1 { remote-as 65001 announce IPv4 } neighbor 10.1.1.254 { remote-as 65001 announce IPv4 } neighbor 1.2.3.2 { remote-as 65002 announce IPv4 } neighbor 10.2.2.254 { remote-as 65002 announce IPv4 } neighbor 1.2.3.3 { remote-as 65003 announce IPv4 } neighbor 10.1.1.1 { remote-as 65004 announce IPv4 } neighbor 10.2.2.1 { remote-as 65005 announce IPv4 } allow from any allow to any bgpd -nf /etc/bgpd.conf rcctl enable bgpd rcctl restart bgpd bgpctl show bgpctl show rib
obsd3 only
vi /etc/bgpd.conf network inet connected network 0/0 mv /etc/pf.conf /etc/pf.conf.dist vi /etc/pf.conf pass out on vio1 from 10.0.0.0/24 to any nat-to (vio1) pass out on vio1 from 10.1.1.0/24 to any nat-to (vio1) pass out on vio1 from 10.2.2.0/24 to any nat-to (vio1) pass out on vio1 from 10.3.3.0/24 to any nat-to (vio1) pass out on vio1 from 1.2.3.0/24 to any nat-to (vio1) pfctl -nf /etc/pf.conf pfctl -f /etc/pf.conf
vpcs1
ping 10.3.3.1 trace 10.3.3.1 ping 192.168.122.1 trace 192.168.122.1 ping 1.1.1.1 trace 1.1.1.1
vpcs2
ping 192.168.122.1 trace 192.168.122.1 ping 1.1.1.1 trace 1.1.1.1
# Martians IPv4 deny from any prefix 0.0.0.0/8 prefixlen >= 8 deny from any prefix 127.0.0.0/8 prefixlen >= 8 deny from any prefix 169.254.0.0/16 prefixlen >= 16 deny from any prefix 198.18.0.0/15 prefixlen >= 15 # Martians IPv6 deny from any prefix ::1/128 deny from any prefix ::/128 deny from any prefix ::ffff:0:0/96 prefixlen >= 96 deny from any prefix 64:ff9b::/96 prefixlen >= 96 # Filtering too specific prefixes deny from any inet prefixlen > 24 # Default route filtering deny from any inet prefix 0.0.0.0/0 prefixlen = 0 deny from any inet6 prefix ::/0 prefixlen = 0 # AS_PATH filtering enforce neighbor-as yes
BGP https://securityrouter.org/wiki/BGP
OpenBGPD https://en.wikipedia.org/wiki/OpenBGPD
OpenBGPD (∞) https://why-openbsd.rocks/fact/openbgpd/
bgpd.conf — Border Gateway Protocol daemon configuration file https://man.openbsd.org/bgpd.conf.5
IPv4/IPv6 Dual Stack BGP Configuration: Part 1 – OpenBGPD http://mindless.gr/2011/07/dual_stack_bgp_configuration_openbgpd/
Configuring BGP on Vultr With OpenBSD https://www.vultr.com/docs/configuring-bgp-on-vultr-with-openbsd
Routing with bgpd https://web.archive.org/web/20200118022955/https://www.nomoa.com/bsd/gateway/routing/bgp.html
https://labs.ripe.net/author/claudio_jeker/openbgpd-adding-diversity-to-the-route-server-landscape/
https://www.openbsd.org/faq/upgrade64.html
https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/bgpd/parse.y#rev1.322
OpenBSD OpenBGPD Notes https://www.packetmischief.ca/openbsd-openbgpd-notes/
BGP configuration best practices https://www.ssi.gouv.fr/uploads/2016/03/bgp-configuration-best-practices.pdf
bgpq4 - bgp filtering automation tool https://github.com/bgp/bgpq4
Route Server https://web.archive.org/web/20200201202749/https://bgp-spamd.net/routeserver/bgpd.html
Border Gateway Protocol (BGP) https://www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/border-gateway-protocol-bgp/white_paper_c11-516826.html
OpenBGPd and route filters http://undeadly.org/cgi?action=article&sid=20151106171337&mode=expanded
High Availability With OpenBGPD on OpenBSD 6.9 https://kernelpanic.life/software/high-availability-with-openbgpd-on-openbsd.html
https://ogris.de/howtos/openbsd-looking-glass.html
https://dn42.eu/howto/OpenBGPD
https://www.knowledgebombs.net/blog/2012/12/13/bgplg-from-scratch.html
(4.8) OpenBGPd sometimes does not send the routes to the peer. https://misc.openbsd.narkive.com/KcIFBPHm/4-8-openbgpd-sometimes-does-not-send-the-routes-to-the-peer
OpenBSD: Defining a new loopback interface https://unix.stackexchange.com/questions/371025/openbsd-defining-a-new-loopback-interface
Dummy Interface In OpenBGPd https://misc.openbsd.narkive.com/Xon0No5m/dummy-interface-in-openbgpd
OpenBGPD: Announce all problem and strange rib-out entries. https://misc.openbsd.narkive.com/B4Y3DTlX/openbgpd-announce-all-problem-and-strange-rib-out-entries
The BIRD IRD https://bird.network.cz/
OpenBGPD: The OpenBSD BGP internet routing daemon (openbgpd.org) https://news.ycombinator.com/item?id=20540871
List of open-source routing platforms https://en.wikipedia.org/wiki/List_of_open-source_routing_platforms