SlideShare a Scribd company logo
SALT + NETBOX + VYOS
= NETWORK AUTOMATION

+ ROUTING SECURITY
MAREK ISALSKI — FAELIX
https://faelix.link/netmcr40
VyOS SaltStack YAML Netbox

BGP OSPF FRR RPKI IRR XDP

bgpq3 UTRS RTBH NetFlow
MAREK ISALSKI — FAELIX
https://faelix.link/netmcr40
Who?
Marek and Lou and Laura
A bunch of @NetworkMoose
Giants:
FRR, Routinator 3000, VyOS+contributors, Linux,
netfilter/iptables, Salt+contributors, RIPE+RIRs,
Team Cymru, DigitalOcean+Netbox-contributors…
Where?
This story all took place in:
Reynolds House (Equinix MA2)
Williams House (Equinix MA1)
Why?
DFZ
Why?
RIPE NCC Update 2019-10-02
Today we allocated the last of our contiguous /22
IPv4 address blocks. We still have approximately
one million addresses available, in the form of

/23s and /24s, and we will continue making /22-
equivalent allocations made up of these smaller
blocks. Once we can no longer allocate the
equivalent of a /22, we will announce that we have
reached run-out. We expect this to occur in
November 2019.
+4000routesby 2020
Why? 1M routes
in 200 days
Why?
DFZ
Why?
Why?
How? DFZ
OSPF
Area 0
How?
DFZ 800k routes800k routes
default! default!
HARDWARE
How?
4x 10G SFP+ ports (must not be RJ45, cannot be
QSFP+ with SFP+ breakout)
At least 2x 1G RJ45 ports
Low CPU power draw
Prefer GHz over cores (single-thread performance)
~16 Gb RAM
Ideally 1U
Ideally dual PSU and IPMI
How?
SM Chassis: Front I/O, Redundant 400W PSUs
SM X11SCM-F (2x RJ45 Intel® I210-AT + OOB/IPMI)
Xeon E3-1265Lv5 (4c/8t, 2.9GHz, 45W)
16GB DDR4 2666 ECC, 2x 240Gb SSDs
Intel X710-DA4 (4x SFP+ NIC)
How?
How?
SOFTWARE
VyOS
Linux
FRR (Quagga fork) for routing protocols
iproute2, iptables, ipset, etc
VyOS 1.3: XDP (eXpress Data Path)
Like DPDK / FDIO / VPP (but less tap/vif mess)
20Mpps per CPU core…!
SaltStack
Big investment in Salt @faelix
Use it for bare metal (virtualisation clusters)
Use it for our ISP services and NFVs
Use it for full-/part-managed customer VPSs
…why not use it for routers?
VyOS includes salt-minion (agent)
Introducing: hphr
"Halophile Router" (salt-loving)
Uses Netbox for single source-of-truth
Uses SLS (YAML) for anything not possible in Netbox
Generates a VyOS router configuration file
Loads, compares, commits, saves to config.boot
OSS release coming soon: github.com/faelix/hphr
Addressing
Connections
Sub-Interfaces
OSPF, BGP, etc?
Netbox ≈ "physical infra"
Using SaltStack's "pillar" in two ways:
Netbox for DCIM / IPAM
SLS (YAML-syntax) files for OSPF, BGP, etc
Peering/Transit Interface
P/T Interface: BCP38
bgpq3
P/T Interface: NetFlow
BGP Peering
bgpq3
BGP Peering
BGP Peering
RPKI via RTRR
BGP Upstream
BGP Upstream
RPKI via RTRR
RPKI
Routinator 3000
GOTCHAS
BGP C/P Protection
bgpd state -> unresponsive : no response
yet to ping sent 90 seconds ago
BGP C/P Protection
/usr/lib/frr/watchfrr.sh restart bgpd
BGP C/P Protection
847177 bgp routes removed from the rib
bgpd restarting, we're gonna be ok?!
[NARRATOR VOICE]
THEY WERE NOT "OK"
bly$ show ip bgp summary
% BGP instance not found

bly$
Architecture of VyOS
protocols {
bgp 41495 {
………
}
}
router bgp 41495
………"VyOS"
/config/config.boot
FRR running-config
https://phabricator.vyos.net/
T1514
So: Reboot the Router
https://phabricator.vyos.net/T1514
FRR's running-config not "refreshable" if a
daemon crashes
Can only reboot router to make VyOS send new
running-config
Rebooting a router is annoying, but we're in a
maintenance window, the other router is ok, so we're
gonna be ok.
[NARRATOR VOICE]
THEY WERE NOT "OK"
FRR Converges BGP Fast
Router booted up
Began configuring itself
Brought interfaces up
Brought BGP instance up
Cogent transit session established
Peering sessions on LINX established
…then VyOS applied prefix-lists and route-maps :-(
FRR Converges BGP Fast
Router booted up
Began configuring itself
Brought interfaces up
Brought BGP instance up
Cogent transit session established
Peering sessions on LINX established
…then VyOS applied prefix-lists and route-maps :-(
ANNOUNCING 800K ROUTES
TO LINX MAN (BY ACCIDENT)
T1698 + T1148 + T944
BUGS!
Achievement

Unlocked :(
FRR Impedance Mismatch


router bgp 41495
neighbor 195.66.244.6 remote-as 6939
neighbor 195.66.244.6 soft-reconfiguration inbound
neighbor 195.66.244.6 maximum-prefix 200000
neighbor 195.66.244.6 prefix-list hphr-DFZ-IPv4 in
neighbor 195.66.244.6 prefix-list auto-AS-FAELIX out
neighbor 195.66.244.6 route-map AS6939-LINX-in-IPv4 in
neighbor 195.66.244.6 route-map TRANSIT-out-IPv4 out
neighbor shutdown
no shutdown
FRR Impedance Mismatch
"Since FRR lacks a command for creating peers in down state, no other
workaround is possible." Bug: T1148
router bgp 41495
neighbor 195.66.244.6 remote-as 6939
neighbor 195.66.244.6 soft-reconfiguration inbound
neighbor 195.66.244.6 maximum-prefix 200000
neighbor 195.66.244.6 prefix-list hphr-DFZ-IPv4 in
neighbor 195.66.244.6 prefix-list auto-AS-FAELIX out
neighbor 195.66.244.6 route-map AS6939-LINX-in-IPv4 in
neighbor 195.66.244.6 route-map TRANSIT-out-IPv4 out
BGP C/P Protection
added to hphr
THIS STORY ISN'T OVER…
XXXTODO
Add features to FRR, provide VyOS workarounds, or
make Salt states for router reboot maintenance
Nerf watchfrr, and make it possible for VyOS to
refresh config into FRR's daemons
Fragility of VyOS firewalling when replaced with
barebones iptables from hphr
NIC parameter and bare metal router sysctl tuning
XDP in VyOS 1.3
What We Achieved
Two very long nights of maintenance (both overran)
Full table BGP on VyOS converge time in seconds
Routing on MikroTiks converges near-instantly
BCP38 (customers cannot spoof source address)
IRR filtering (only accept where route/route6 object)
RPKI (will not accept invalid routes from P/T)
Templated configuration (repeatable, automated)
Single source of truth (the docs become the config)
BEER TIME
FOR MAREK,
QUESTION
TIME FOR LOU
E: marek @ faelix . net
T: @maznu
E: lou @ faelix . net
T: @gremlinlou

More Related Content

What's hot

Epoll - from the kernel side
Epoll -  from the kernel sideEpoll -  from the kernel side
Epoll - from the kernel side
llj098
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_maps
lcplcp1
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
Denys Haryachyy
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDK
Kernel TLV
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
Kernel TLV
 
Vxlan control plane and routing
Vxlan control plane and routingVxlan control plane and routing
Vxlan control plane and routing
Wilfredzeng
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
Brendan Gregg
 
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
ShapeBlue
 
UM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of SoftwareUM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of Software
Brendan Gregg
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux Kernel
Thomas Graf
 
EVPN for Cloud Builders
EVPN for Cloud BuildersEVPN for Cloud Builders
EVPN for Cloud Builders
Juniper Networks (日本)
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
Michelle Holley
 
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
Kentaro Ebisawa
 
Understanding DPDK algorithmics
Understanding DPDK algorithmicsUnderstanding DPDK algorithmics
Understanding DPDK algorithmics
Denys Haryachyy
 
Java8から17へ
Java8から17へJava8から17へ
Java8から17へ
onozaty
 
Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2
Chartbeat
 
Tale of a New Bangladeshi NIX
Tale of a New Bangladeshi NIXTale of a New Bangladeshi NIX
Tale of a New Bangladeshi NIX
Bangladesh Network Operators Group
 
Kubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep DiveKubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep Dive
Michal Rostecki
 
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース 【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
Juniper Networks (日本)
 

What's hot (20)

HTTP/2 入門
HTTP/2 入門HTTP/2 入門
HTTP/2 入門
 
Epoll - from the kernel side
Epoll -  from the kernel sideEpoll -  from the kernel side
Epoll - from the kernel side
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_maps
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDK
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 
Vxlan control plane and routing
Vxlan control plane and routingVxlan control plane and routing
Vxlan control plane and routing
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
 
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
 
UM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of SoftwareUM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of Software
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux Kernel
 
EVPN for Cloud Builders
EVPN for Cloud BuildersEVPN for Cloud Builders
EVPN for Cloud Builders
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
 
Understanding DPDK algorithmics
Understanding DPDK algorithmicsUnderstanding DPDK algorithmics
Understanding DPDK algorithmics
 
Java8から17へ
Java8から17へJava8から17へ
Java8から17へ
 
Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2
 
Tale of a New Bangladeshi NIX
Tale of a New Bangladeshi NIXTale of a New Bangladeshi NIX
Tale of a New Bangladeshi NIX
 
Kubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep DiveKubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep Dive
 
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース 【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
 

Similar to Netmcr 40 - Salt + Netbox + Vyos = Network Automation + Routing Security

VYOS & RPKI at the BGP as edge
VYOS & RPKI at the BGP as edgeVYOS & RPKI at the BGP as edge
VYOS & RPKI at the BGP as edge
Faelix Ltd
 
Implementing an IPv6 Enabled Environment for a Public Cloud Tenant
Implementing an IPv6 Enabled Environment for a Public Cloud TenantImplementing an IPv6 Enabled Environment for a Public Cloud Tenant
Implementing an IPv6 Enabled Environment for a Public Cloud Tenant
Shixiong Shang
 
Practice Lab CSC
Practice Lab CSCPractice Lab CSC
Practice Lab CSC
Salachudin Emir
 
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Hardware accelerated switching with Linux @ SWLUG Talks May 2014Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Nat Morris
 
Remote peering
Remote peeringRemote peering
Remote peering
ChristianHuber43
 
VyOS Users Meeting #2, VyOSのVXLANの話
VyOS Users Meeting #2, VyOSのVXLANの話VyOS Users Meeting #2, VyOSのVXLANの話
VyOS Users Meeting #2, VyOSのVXLANの話
upaa
 
PhNOG 2019: RPKI Deployment Update
PhNOG 2019: RPKI Deployment UpdatePhNOG 2019: RPKI Deployment Update
PhNOG 2019: RPKI Deployment Update
APNIC
 
SRv6-TOI-rev3i-EXTERNAL.pdf
SRv6-TOI-rev3i-EXTERNAL.pdfSRv6-TOI-rev3i-EXTERNAL.pdf
SRv6-TOI-rev3i-EXTERNAL.pdf
YunLiu75
 
Dynamische Routingprotokolle Aufzucht und Pflege - OSPF
Dynamische Routingprotokolle Aufzucht und Pflege - OSPFDynamische Routingprotokolle Aufzucht und Pflege - OSPF
Dynamische Routingprotokolle Aufzucht und Pflege - OSPF
Maximilan Wilhelm
 
NZNOG 2020 - Getting IPv6 Private Addressing Right
NZNOG 2020 - Getting IPv6 Private Addressing RightNZNOG 2020 - Getting IPv6 Private Addressing Right
NZNOG 2020 - Getting IPv6 Private Addressing Right
Mark Smith
 
FD.io - The Universal Dataplane
FD.io - The Universal DataplaneFD.io - The Universal Dataplane
FD.io - The Universal Dataplane
Open Networking Summit
 
Operational Issues inIPv6 --from vendors' point of view--
Operational Issues inIPv6 --from vendors' point of view--Operational Issues inIPv6 --from vendors' point of view--
Operational Issues inIPv6 --from vendors' point of view--
Shinsuke SUZUKI
 
Deeper dive in Docker Overlay Networks
Deeper dive in Docker Overlay NetworksDeeper dive in Docker Overlay Networks
Deeper dive in Docker Overlay Networks
Laurent Bernaille
 
IPV6 IPv6 Routing Lab By Rob Hamm
IPV6 IPv6 Routing Lab  By Rob HammIPV6 IPv6 Routing Lab  By Rob Hamm
IPV6 IPv6 Routing Lab By Rob Hamm
Information and Communications Technology Council
 
Osnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptxOsnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptx
M.Qasim Arham
 
Ipv6
Ipv6Ipv6
Ipv6
maha5960
 
OpenNebulaConf2018 - Scalable L2 overlay networks with routed VXLAN / BGP EVP...
OpenNebulaConf2018 - Scalable L2 overlay networks with routed VXLAN / BGP EVP...OpenNebulaConf2018 - Scalable L2 overlay networks with routed VXLAN / BGP EVP...
OpenNebulaConf2018 - Scalable L2 overlay networks with routed VXLAN / BGP EVP...
OpenNebula Project
 
Cloud Traffic Engineer – Google Espresso Project by Shaowen Ma
Cloud Traffic Engineer – Google Espresso Project  by Shaowen MaCloud Traffic Engineer – Google Espresso Project  by Shaowen Ma
Cloud Traffic Engineer – Google Espresso Project by Shaowen Ma
MyNOG
 
IXP Route Servers with RPKI and IXP Manager
IXP Route Servers with RPKI and IXP ManagerIXP Route Servers with RPKI and IXP Manager
IXP Route Servers with RPKI and IXP Manager
APNIC
 
Ipv6 deployment at the university of warwick - networkshop44
Ipv6 deployment at the university of warwick - networkshop44Ipv6 deployment at the university of warwick - networkshop44
Ipv6 deployment at the university of warwick - networkshop44
Jisc
 

Similar to Netmcr 40 - Salt + Netbox + Vyos = Network Automation + Routing Security (20)

VYOS & RPKI at the BGP as edge
VYOS & RPKI at the BGP as edgeVYOS & RPKI at the BGP as edge
VYOS & RPKI at the BGP as edge
 
Implementing an IPv6 Enabled Environment for a Public Cloud Tenant
Implementing an IPv6 Enabled Environment for a Public Cloud TenantImplementing an IPv6 Enabled Environment for a Public Cloud Tenant
Implementing an IPv6 Enabled Environment for a Public Cloud Tenant
 
Practice Lab CSC
Practice Lab CSCPractice Lab CSC
Practice Lab CSC
 
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Hardware accelerated switching with Linux @ SWLUG Talks May 2014Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
 
Remote peering
Remote peeringRemote peering
Remote peering
 
VyOS Users Meeting #2, VyOSのVXLANの話
VyOS Users Meeting #2, VyOSのVXLANの話VyOS Users Meeting #2, VyOSのVXLANの話
VyOS Users Meeting #2, VyOSのVXLANの話
 
PhNOG 2019: RPKI Deployment Update
PhNOG 2019: RPKI Deployment UpdatePhNOG 2019: RPKI Deployment Update
PhNOG 2019: RPKI Deployment Update
 
SRv6-TOI-rev3i-EXTERNAL.pdf
SRv6-TOI-rev3i-EXTERNAL.pdfSRv6-TOI-rev3i-EXTERNAL.pdf
SRv6-TOI-rev3i-EXTERNAL.pdf
 
Dynamische Routingprotokolle Aufzucht und Pflege - OSPF
Dynamische Routingprotokolle Aufzucht und Pflege - OSPFDynamische Routingprotokolle Aufzucht und Pflege - OSPF
Dynamische Routingprotokolle Aufzucht und Pflege - OSPF
 
NZNOG 2020 - Getting IPv6 Private Addressing Right
NZNOG 2020 - Getting IPv6 Private Addressing RightNZNOG 2020 - Getting IPv6 Private Addressing Right
NZNOG 2020 - Getting IPv6 Private Addressing Right
 
FD.io - The Universal Dataplane
FD.io - The Universal DataplaneFD.io - The Universal Dataplane
FD.io - The Universal Dataplane
 
Operational Issues inIPv6 --from vendors' point of view--
Operational Issues inIPv6 --from vendors' point of view--Operational Issues inIPv6 --from vendors' point of view--
Operational Issues inIPv6 --from vendors' point of view--
 
Deeper dive in Docker Overlay Networks
Deeper dive in Docker Overlay NetworksDeeper dive in Docker Overlay Networks
Deeper dive in Docker Overlay Networks
 
IPV6 IPv6 Routing Lab By Rob Hamm
IPV6 IPv6 Routing Lab  By Rob HammIPV6 IPv6 Routing Lab  By Rob Hamm
IPV6 IPv6 Routing Lab By Rob Hamm
 
Osnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptxOsnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptx
 
Ipv6
Ipv6Ipv6
Ipv6
 
OpenNebulaConf2018 - Scalable L2 overlay networks with routed VXLAN / BGP EVP...
OpenNebulaConf2018 - Scalable L2 overlay networks with routed VXLAN / BGP EVP...OpenNebulaConf2018 - Scalable L2 overlay networks with routed VXLAN / BGP EVP...
OpenNebulaConf2018 - Scalable L2 overlay networks with routed VXLAN / BGP EVP...
 
Cloud Traffic Engineer – Google Espresso Project by Shaowen Ma
Cloud Traffic Engineer – Google Espresso Project  by Shaowen MaCloud Traffic Engineer – Google Espresso Project  by Shaowen Ma
Cloud Traffic Engineer – Google Espresso Project by Shaowen Ma
 
IXP Route Servers with RPKI and IXP Manager
IXP Route Servers with RPKI and IXP ManagerIXP Route Servers with RPKI and IXP Manager
IXP Route Servers with RPKI and IXP Manager
 
Ipv6 deployment at the university of warwick - networkshop44
Ipv6 deployment at the university of warwick - networkshop44Ipv6 deployment at the university of warwick - networkshop44
Ipv6 deployment at the university of warwick - networkshop44
 

More from Faelix Ltd

Net mcr 2021 05 handout
Net mcr 2021 05 handoutNet mcr 2021 05 handout
Net mcr 2021 05 handout
Faelix Ltd
 
L2TP 101 ON-RAMP TO CONSUMING WHOLESALE BROADBAND SERVICES
L2TP 101 ON-RAMP TO CONSUMING WHOLESALE BROADBAND SERVICESL2TP 101 ON-RAMP TO CONSUMING WHOLESALE BROADBAND SERVICES
L2TP 101 ON-RAMP TO CONSUMING WHOLESALE BROADBAND SERVICES
Faelix Ltd
 
Things I wish I had known about IPv6 before I started
Things I wish I had known about IPv6 before I startedThings I wish I had known about IPv6 before I started
Things I wish I had known about IPv6 before I started
Faelix Ltd
 
Bastion jump hosts with Teleport
Bastion jump hosts with TeleportBastion jump hosts with Teleport
Bastion jump hosts with Teleport
Faelix Ltd
 
How we found a firewall vendor bug using Teleport as a bastion jump host
How we found a firewall vendor bug using Teleport as a bastion jump hostHow we found a firewall vendor bug using Teleport as a bastion jump host
How we found a firewall vendor bug using Teleport as a bastion jump host
Faelix Ltd
 
The Story of CVE-2018-19299 - finding and reporting bugs in Mikrotik RouterOS v6
The Story of CVE-2018-19299 - finding and reporting bugs in Mikrotik RouterOS v6The Story of CVE-2018-19299 - finding and reporting bugs in Mikrotik RouterOS v6
The Story of CVE-2018-19299 - finding and reporting bugs in Mikrotik RouterOS v6
Faelix Ltd
 
Keeping your rack cool with one "/IP route rule"
Keeping your rack cool with one "/IP route rule"Keeping your rack cool with one "/IP route rule"
Keeping your rack cool with one "/IP route rule"
Faelix Ltd
 
MikroTik & RouterOS
MikroTik & RouterOSMikroTik & RouterOS
MikroTik & RouterOS
Faelix Ltd
 
SDN, CMDB, NMS ...CRM! How we're putting the customer at the centre of our ne...
SDN, CMDB, NMS ...CRM! How we're putting the customer at the centre of our ne...SDN, CMDB, NMS ...CRM! How we're putting the customer at the centre of our ne...
SDN, CMDB, NMS ...CRM! How we're putting the customer at the centre of our ne...
Faelix Ltd
 

More from Faelix Ltd (9)

Net mcr 2021 05 handout
Net mcr 2021 05 handoutNet mcr 2021 05 handout
Net mcr 2021 05 handout
 
L2TP 101 ON-RAMP TO CONSUMING WHOLESALE BROADBAND SERVICES
L2TP 101 ON-RAMP TO CONSUMING WHOLESALE BROADBAND SERVICESL2TP 101 ON-RAMP TO CONSUMING WHOLESALE BROADBAND SERVICES
L2TP 101 ON-RAMP TO CONSUMING WHOLESALE BROADBAND SERVICES
 
Things I wish I had known about IPv6 before I started
Things I wish I had known about IPv6 before I startedThings I wish I had known about IPv6 before I started
Things I wish I had known about IPv6 before I started
 
Bastion jump hosts with Teleport
Bastion jump hosts with TeleportBastion jump hosts with Teleport
Bastion jump hosts with Teleport
 
How we found a firewall vendor bug using Teleport as a bastion jump host
How we found a firewall vendor bug using Teleport as a bastion jump hostHow we found a firewall vendor bug using Teleport as a bastion jump host
How we found a firewall vendor bug using Teleport as a bastion jump host
 
The Story of CVE-2018-19299 - finding and reporting bugs in Mikrotik RouterOS v6
The Story of CVE-2018-19299 - finding and reporting bugs in Mikrotik RouterOS v6The Story of CVE-2018-19299 - finding and reporting bugs in Mikrotik RouterOS v6
The Story of CVE-2018-19299 - finding and reporting bugs in Mikrotik RouterOS v6
 
Keeping your rack cool with one "/IP route rule"
Keeping your rack cool with one "/IP route rule"Keeping your rack cool with one "/IP route rule"
Keeping your rack cool with one "/IP route rule"
 
MikroTik & RouterOS
MikroTik & RouterOSMikroTik & RouterOS
MikroTik & RouterOS
 
SDN, CMDB, NMS ...CRM! How we're putting the customer at the centre of our ne...
SDN, CMDB, NMS ...CRM! How we're putting the customer at the centre of our ne...SDN, CMDB, NMS ...CRM! How we're putting the customer at the centre of our ne...
SDN, CMDB, NMS ...CRM! How we're putting the customer at the centre of our ne...
 

Recently uploaded

How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 

Recently uploaded (20)

How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 

Netmcr 40 - Salt + Netbox + Vyos = Network Automation + Routing Security

  • 1. SALT + NETBOX + VYOS = NETWORK AUTOMATION
 + ROUTING SECURITY MAREK ISALSKI — FAELIX https://faelix.link/netmcr40
  • 2. VyOS SaltStack YAML Netbox
 BGP OSPF FRR RPKI IRR XDP
 bgpq3 UTRS RTBH NetFlow MAREK ISALSKI — FAELIX https://faelix.link/netmcr40
  • 3. Who? Marek and Lou and Laura A bunch of @NetworkMoose Giants: FRR, Routinator 3000, VyOS+contributors, Linux, netfilter/iptables, Salt+contributors, RIPE+RIRs, Team Cymru, DigitalOcean+Netbox-contributors…
  • 4. Where? This story all took place in: Reynolds House (Equinix MA2) Williams House (Equinix MA1)
  • 6. Why? RIPE NCC Update 2019-10-02 Today we allocated the last of our contiguous /22 IPv4 address blocks. We still have approximately one million addresses available, in the form of
 /23s and /24s, and we will continue making /22- equivalent allocations made up of these smaller blocks. Once we can no longer allocate the equivalent of a /22, we will announce that we have reached run-out. We expect this to occur in November 2019. +4000routesby 2020
  • 7. Why? 1M routes in 200 days
  • 10. Why?
  • 12. OSPF Area 0 How? DFZ 800k routes800k routes default! default!
  • 14. How? 4x 10G SFP+ ports (must not be RJ45, cannot be QSFP+ with SFP+ breakout) At least 2x 1G RJ45 ports Low CPU power draw Prefer GHz over cores (single-thread performance) ~16 Gb RAM Ideally 1U Ideally dual PSU and IPMI
  • 15. How? SM Chassis: Front I/O, Redundant 400W PSUs SM X11SCM-F (2x RJ45 Intel® I210-AT + OOB/IPMI) Xeon E3-1265Lv5 (4c/8t, 2.9GHz, 45W) 16GB DDR4 2666 ECC, 2x 240Gb SSDs Intel X710-DA4 (4x SFP+ NIC)
  • 16. How?
  • 17. How?
  • 19. VyOS Linux FRR (Quagga fork) for routing protocols iproute2, iptables, ipset, etc VyOS 1.3: XDP (eXpress Data Path) Like DPDK / FDIO / VPP (but less tap/vif mess) 20Mpps per CPU core…!
  • 20. SaltStack Big investment in Salt @faelix Use it for bare metal (virtualisation clusters) Use it for our ISP services and NFVs Use it for full-/part-managed customer VPSs …why not use it for routers? VyOS includes salt-minion (agent)
  • 21. Introducing: hphr "Halophile Router" (salt-loving) Uses Netbox for single source-of-truth Uses SLS (YAML) for anything not possible in Netbox Generates a VyOS router configuration file Loads, compares, commits, saves to config.boot OSS release coming soon: github.com/faelix/hphr
  • 26. Netbox ≈ "physical infra" Using SaltStack's "pillar" in two ways: Netbox for DCIM / IPAM SLS (YAML-syntax) files for OSPF, BGP, etc
  • 37. BGP C/P Protection bgpd state -> unresponsive : no response yet to ping sent 90 seconds ago
  • 39. BGP C/P Protection 847177 bgp routes removed from the rib bgpd restarting, we're gonna be ok?!
  • 41. bly$ show ip bgp summary % BGP instance not found
 bly$
  • 42. Architecture of VyOS protocols { bgp 41495 { ……… } } router bgp 41495 ………"VyOS" /config/config.boot FRR running-config https://phabricator.vyos.net/ T1514
  • 43. So: Reboot the Router https://phabricator.vyos.net/T1514 FRR's running-config not "refreshable" if a daemon crashes Can only reboot router to make VyOS send new running-config Rebooting a router is annoying, but we're in a maintenance window, the other router is ok, so we're gonna be ok.
  • 45. FRR Converges BGP Fast Router booted up Began configuring itself Brought interfaces up Brought BGP instance up Cogent transit session established Peering sessions on LINX established …then VyOS applied prefix-lists and route-maps :-(
  • 46. FRR Converges BGP Fast Router booted up Began configuring itself Brought interfaces up Brought BGP instance up Cogent transit session established Peering sessions on LINX established …then VyOS applied prefix-lists and route-maps :-(
  • 47. ANNOUNCING 800K ROUTES TO LINX MAN (BY ACCIDENT) T1698 + T1148 + T944 BUGS! Achievement
 Unlocked :(
  • 48. FRR Impedance Mismatch 
 router bgp 41495 neighbor 195.66.244.6 remote-as 6939 neighbor 195.66.244.6 soft-reconfiguration inbound neighbor 195.66.244.6 maximum-prefix 200000 neighbor 195.66.244.6 prefix-list hphr-DFZ-IPv4 in neighbor 195.66.244.6 prefix-list auto-AS-FAELIX out neighbor 195.66.244.6 route-map AS6939-LINX-in-IPv4 in neighbor 195.66.244.6 route-map TRANSIT-out-IPv4 out neighbor shutdown no shutdown
  • 49. FRR Impedance Mismatch "Since FRR lacks a command for creating peers in down state, no other workaround is possible." Bug: T1148 router bgp 41495 neighbor 195.66.244.6 remote-as 6939 neighbor 195.66.244.6 soft-reconfiguration inbound neighbor 195.66.244.6 maximum-prefix 200000 neighbor 195.66.244.6 prefix-list hphr-DFZ-IPv4 in neighbor 195.66.244.6 prefix-list auto-AS-FAELIX out neighbor 195.66.244.6 route-map AS6939-LINX-in-IPv4 in neighbor 195.66.244.6 route-map TRANSIT-out-IPv4 out
  • 51. THIS STORY ISN'T OVER…
  • 52. XXXTODO Add features to FRR, provide VyOS workarounds, or make Salt states for router reboot maintenance Nerf watchfrr, and make it possible for VyOS to refresh config into FRR's daemons Fragility of VyOS firewalling when replaced with barebones iptables from hphr NIC parameter and bare metal router sysctl tuning XDP in VyOS 1.3
  • 53. What We Achieved Two very long nights of maintenance (both overran) Full table BGP on VyOS converge time in seconds Routing on MikroTiks converges near-instantly BCP38 (customers cannot spoof source address) IRR filtering (only accept where route/route6 object) RPKI (will not accept invalid routes from P/T) Templated configuration (repeatable, automated) Single source of truth (the docs become the config)
  • 54. BEER TIME FOR MAREK, QUESTION TIME FOR LOU E: marek @ faelix . net T: @maznu E: lou @ faelix . net T: @gremlinlou