SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Intent-driven, fully automated deployment of anycasted load
balancers with HAProxy and Python
DENOG 11
Maximilian Wilhelm
1 / 24
Agenda
1. Who's who
2. Context
3. The past
4. The Idea
5. The now
6. Q & A
2 / 24
Who's who Maximilian Wilhelm
Networker
OpenSource Hacker
Fanboy of
(Debian) Linux
ifupdown2
Occupation:
By day: Senior Infrastructure Architect, Uni Paderborn
By night: Infrastructure Archmage, Freifunk Hochstift
In between: Freelance Solution Architect for hire
Contact
@BarbarossaTM
max@sdn.clinic
3 / 24
Who's who
Context
Context
4 / 24
Who's who
Context
Context
Paderborn University
20.000 students
2.500 employees
Lots of central IT services
IDM (LDAP, Kerberos, AD, …)
Mail (SMTP, IMAP, PMX, Mailman, Exchange)
An aweful lot of websites
eLearning things (Moodle, PAUL, …)
SharePoint
File services
The Internet
...
5 / 24
Who's who
Context
The Past
The Past
6 / 24
Who's who
Context
The Past
7 / 24
Who's who
Context
The Past
The Past
Cisco Nexus based L2 fabric
VLANs for service / backend networks
2x F5 Viprion 2400 LBs
Router / default gateway for all service networks
Prefixes for VIPs statically routed to VRRP IP
Prefixes for backend networks statically routed to VRRP IP
No ACLs between service networks
Out-of-everything end of 2018
Manually configured
Even monitoring
8 / 24
Who's who
Context
The Past
9 / 24
Who's who
Context
The Past
The Idea The Idea
10 / 24
Who's who
Context
The Past
The Idea
The big picture
11 / 24
Who's who
Context
The Past
The Idea
The idea
A service as central config element
Can be balanced by
Anycast
HAProxy
If balanced
Service VIPs announced via BGP
Should be Active/Active
Monitoring configured automatically
Checks for frontends / VIPs as well as backends
Config of webserver(s) generated
Should additionally allow
H/A clusters
Caching layer for web stuff
Subnets of service nodes should be routed by DC routers
with ACLs
12 / 24
Who's who
Context
The Past
The Idea
Working DC network setup
All VLANs everywhere
BGP capable DC routers
Heavy automation for Linux boxes
bcfg2
Written in Python
Easily extendable
Config generators for Icinga2
Basic Apache2 templating
People not afraid of automation
On the contrary
What was in the cards?
13 / 24
Who's who
Context
The Past
The Idea
Now what IS a service
Has an FQDN
resolves to IP and/or Legacy-IP addresses
Has a proto and service
proto derived from service, if possible
e.g. tcp/http or tcp/80
Is provided by hosts of $bcfg2_group
e.g. kdc-production
May be anycasted
May be balanced
And the LBs anycasted
May be a web thing
With special http config
e.g. template, redirects and stuff
May have special monitoring config
14 / 24
Who's who
Context
The Past
The Idea
How does it look like?
mwilhelm@kili:/bcfg2/etc/services/imt/infrastructure/anycasted$ cat kerberos-kdc.srv
anycast: True
status: produktiv
name: kerberos-kdc
fqdn: kerberos.srv.imt.uni-paderborn.de
service: kerberos
bcfg2_srv_group: kdc-slave
monitoring:
virtual_bcfg2_groups:
- kdc
- imt-master
15 / 24
Who's who
Context
The Past
The Idea
Well OK, it has a defaulting mechanism, too
mwilhelm@kili:/bcfg2/etc/services/imt/infrastructure/anycasted$ cat defaults.yaml
anycast: True
status: produktiv
mwilhelm@kili:/bcfg2/etc/services/imt/infrastructure/anycasted$ cat kerberos-kdc.srv
name: kerberos-kdc
fqdn: kerberos.srv.imt.uni-paderborn.de
service: kerberos
bcfg2_srv_group: kdc-slave
monitoring:
virtual_bcfg2_groups:
- kdc
- imt-master
16 / 24
Who's who
Context
The Past
The Idea
The Now
The Now
17 / 24
Who's who
Context
The Past
The Idea
The Now
18 / 24
Who's who
Context
The Past
The Idea
The Now
Lessons learned
Bad NIC firmware is bad
BGP timeouts are long
Recovery times are bad when L2 is a black hole
BFD will solve this
HAProxy configuration is complex
Lots of switches have effect on other switches
No way to ask HAProxy what config options are active
19 / 24
Who's who
Context
The Past
The Idea
The Now
The good
Backends with support for Proxy Protocol
Apache2
Cyrus IMAP
Dovecot
Exim
Nginx
Postfix
Varnish
...
20 / 24
Who's who
Context
The Past
The Idea
The Now
The bad
OpenLDAP
No support for Proxy Protocol
Has to be DNATed by HAProxy when slapd should see client IPs
Therefore LDAP backends have to be routed by HAProxy
Exchange
Funny problems with timeouts (solved)
Funny problems with Outlook for Mac clients
SharePoint
Funny problems when you don't use tcp mode for some vHosts
I want this hour of my life back
21 / 24
Who's who
Context
The Past
The Idea
The Now
Bonus level: Packet lter con guration
We know what ports a service is using
We know where (backend, frontend)
Let's generate netfilter rules
Limiting access to source prefixes just came on top
Specifying additional_ports, too
mwilhelm@kili:/bcfg2/etc/services/imt/infrastructure/anycasted$ cat proxy.srv
name: proxy
fqdn: proxy.srv.imt.uni-paderborn.de
service: proxy
protos: tcp
port: 3128
bcfg2_srv_group: proxy-server-produktiv
acl:
allow_from:
- imt_thinclients
- imt_fw_mgmt
22 / 24
Who's who
Context
The Past
The Idea
The Now
Links
Further Reading
BGP / networking basics
https://myfirst.network
Anycast with Cisco Nexus 7000 and Debian Linux
https://blog.sdn.clinic/2018/02/anycasted-services-with-debian-bird-anycast-
healthchecker-and-cisco-nexus-7000/
Anycast all the things
https://www.slideshare.net/BarbarossaTM/anycast-all-the-things
23 / 24
Who's who
Context
The Past
The Idea
Outlook
Links
Questions?
Questions?
24 / 24

Más contenido relacionado

La actualidad más candente

Building your own sdn with debian linux salt stack and python
Building your own sdn with debian linux salt stack and pythonBuilding your own sdn with debian linux salt stack and python
Building your own sdn with debian linux salt stack and python
Maximilan Wilhelm
 

La actualidad más candente (20)

Dynamische Routingprotokolle Aufzucht und Pflege - OSPF
Dynamische Routingprotokolle Aufzucht und Pflege - OSPFDynamische Routingprotokolle Aufzucht und Pflege - OSPF
Dynamische Routingprotokolle Aufzucht und Pflege - OSPF
 
Dynamische Routingprotokolle Aufzucht und Pflege - BGP
Dynamische Routingprotokolle Aufzucht und Pflege - BGPDynamische Routingprotokolle Aufzucht und Pflege - BGP
Dynamische Routingprotokolle Aufzucht und Pflege - BGP
 
IPv6 im Jahre 2018
IPv6 im Jahre 2018IPv6 im Jahre 2018
IPv6 im Jahre 2018
 
Contemporary Linux Networking
Contemporary Linux NetworkingContemporary Linux Networking
Contemporary Linux Networking
 
Netzwerkgrundlagen - Von Ethernet bis IP
Netzwerkgrundlagen - Von Ethernet bis IPNetzwerkgrundlagen - Von Ethernet bis IP
Netzwerkgrundlagen - Von Ethernet bis IP
 
Building your own sdn with debian linux salt stack and python
Building your own sdn with debian linux salt stack and pythonBuilding your own sdn with debian linux salt stack and python
Building your own sdn with debian linux salt stack and python
 
6.Routing
6.Routing6.Routing
6.Routing
 
Morphology of Modern Data Center Networks - YaC 2013
Morphology of Modern Data Center Networks - YaC 2013Morphology of Modern Data Center Networks - YaC 2013
Morphology of Modern Data Center Networks - YaC 2013
 
Operationalizing VRF in the Data Center
Operationalizing VRF in the Data CenterOperationalizing VRF in the Data Center
Operationalizing VRF in the Data Center
 
AS201701 - Building an Internet backbone with pure 1he servers and Linux
AS201701 - Building an Internet backbone with pure 1he servers and LinuxAS201701 - Building an Internet backbone with pure 1he servers and Linux
AS201701 - Building an Internet backbone with pure 1he servers and Linux
 
Building Scalable Data Center Networks
Building Scalable Data Center NetworksBuilding Scalable Data Center Networks
Building Scalable Data Center Networks
 
July NYC Open Networking Meeup
July NYC Open Networking MeeupJuly NYC Open Networking Meeup
July NYC Open Networking Meeup
 
Ifupdown2: Network Interface Manager
Ifupdown2: Network Interface ManagerIfupdown2: Network Interface Manager
Ifupdown2: Network Interface Manager
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
 
Demystifying Networking Webinar Series- Routing on the Host
Demystifying Networking Webinar Series- Routing on the HostDemystifying Networking Webinar Series- Routing on the Host
Demystifying Networking Webinar Series- Routing on the Host
 
Xpress path vxlan_bgp_evpn_appricot2019-v2_
Xpress path vxlan_bgp_evpn_appricot2019-v2_Xpress path vxlan_bgp_evpn_appricot2019-v2_
Xpress path vxlan_bgp_evpn_appricot2019-v2_
 
Low-power IP: 6LoWPAN & Co.
Low-power IP: 6LoWPAN & Co.Low-power IP: 6LoWPAN & Co.
Low-power IP: 6LoWPAN & Co.
 
Linux Native, HTTP Aware Network Security
Linux Native, HTTP Aware Network SecurityLinux Native, HTTP Aware Network Security
Linux Native, HTTP Aware Network Security
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPF
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
 

Similar a Intent driven, fully automated deployment of anycasted load balancers with ha proxy and python

Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...
Igalia
 
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Igalia
 

Similar a Intent driven, fully automated deployment of anycasted load balancers with ha proxy and python (20)

Network for the Large-scale Hadoop cluster at Yahoo! JAPAN
Network for the Large-scale Hadoop cluster at Yahoo! JAPANNetwork for the Large-scale Hadoop cluster at Yahoo! JAPAN
Network for the Large-scale Hadoop cluster at Yahoo! JAPAN
 
FD.io - The Universal Dataplane
FD.io - The Universal DataplaneFD.io - The Universal Dataplane
FD.io - The Universal Dataplane
 
6 open capi_meetup_in_japan_final
6 open capi_meetup_in_japan_final6 open capi_meetup_in_japan_final
6 open capi_meetup_in_japan_final
 
PLNOG16: Obsługa 100M pps na platformie PC , Przemysław Frasunek, Paweł Mała...
PLNOG16: Obsługa 100M pps na platformie PC, Przemysław Frasunek, Paweł Mała...PLNOG16: Obsługa 100M pps na platformie PC, Przemysław Frasunek, Paweł Mała...
PLNOG16: Obsługa 100M pps na platformie PC , Przemysław Frasunek, Paweł Mała...
 
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2...
 
100 M pps on PC.
100 M pps on PC.100 M pps on PC.
100 M pps on PC.
 
Ocpeu14
Ocpeu14Ocpeu14
Ocpeu14
 
How to run a bank on Apache CloudStack
How to run a bank on Apache CloudStackHow to run a bank on Apache CloudStack
How to run a bank on Apache CloudStack
 
Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...
Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...
Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...
 
Simplify Networking for Containers
Simplify Networking for ContainersSimplify Networking for Containers
Simplify Networking for Containers
 
Postgres clusters
Postgres clustersPostgres clusters
Postgres clusters
 
Mellanox Approach to NFV & SDN
Mellanox Approach to NFV & SDNMellanox Approach to NFV & SDN
Mellanox Approach to NFV & SDN
 
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
 
Scaling the Container Dataplane
Scaling the Container Dataplane Scaling the Container Dataplane
Scaling the Container Dataplane
 
Bridges and Tunnels a Drive Through OpenStack Networking
Bridges and Tunnels a Drive Through OpenStack NetworkingBridges and Tunnels a Drive Through OpenStack Networking
Bridges and Tunnels a Drive Through OpenStack Networking
 
PLNOG 17 - Nicolai van der Smagt - Building and connecting the eBay Classifie...
PLNOG 17 - Nicolai van der Smagt - Building and connecting the eBay Classifie...PLNOG 17 - Nicolai van der Smagt - Building and connecting the eBay Classifie...
PLNOG 17 - Nicolai van der Smagt - Building and connecting the eBay Classifie...
 
Osnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptxOsnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptx
 
Bare Metal Club ATX: Networking Discussion
Bare Metal Club ATX: Networking DiscussionBare Metal Club ATX: Networking Discussion
Bare Metal Club ATX: Networking Discussion
 
Virtual Networks for Storage and Data
Virtual Networks for Storage and DataVirtual Networks for Storage and Data
Virtual Networks for Storage and Data
 
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
 

Último

Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Monica Sydney
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
ayvbos
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Monica Sydney
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
gajnagarg
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
JOHNBEBONYAP1
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
ayvbos
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptx
galaxypingy
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
pxcywzqs
 

Último (20)

Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck Microsoft
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptx
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 

Intent driven, fully automated deployment of anycasted load balancers with ha proxy and python

  • 1. Intent-driven, fully automated deployment of anycasted load balancers with HAProxy and Python DENOG 11 Maximilian Wilhelm 1 / 24
  • 2. Agenda 1. Who's who 2. Context 3. The past 4. The Idea 5. The now 6. Q & A 2 / 24
  • 3. Who's who Maximilian Wilhelm Networker OpenSource Hacker Fanboy of (Debian) Linux ifupdown2 Occupation: By day: Senior Infrastructure Architect, Uni Paderborn By night: Infrastructure Archmage, Freifunk Hochstift In between: Freelance Solution Architect for hire Contact @BarbarossaTM max@sdn.clinic 3 / 24
  • 5. Who's who Context Context Paderborn University 20.000 students 2.500 employees Lots of central IT services IDM (LDAP, Kerberos, AD, …) Mail (SMTP, IMAP, PMX, Mailman, Exchange) An aweful lot of websites eLearning things (Moodle, PAUL, …) SharePoint File services The Internet ... 5 / 24
  • 8. Who's who Context The Past The Past Cisco Nexus based L2 fabric VLANs for service / backend networks 2x F5 Viprion 2400 LBs Router / default gateway for all service networks Prefixes for VIPs statically routed to VRRP IP Prefixes for backend networks statically routed to VRRP IP No ACLs between service networks Out-of-everything end of 2018 Manually configured Even monitoring 8 / 24
  • 10. Who's who Context The Past The Idea The Idea 10 / 24
  • 11. Who's who Context The Past The Idea The big picture 11 / 24
  • 12. Who's who Context The Past The Idea The idea A service as central config element Can be balanced by Anycast HAProxy If balanced Service VIPs announced via BGP Should be Active/Active Monitoring configured automatically Checks for frontends / VIPs as well as backends Config of webserver(s) generated Should additionally allow H/A clusters Caching layer for web stuff Subnets of service nodes should be routed by DC routers with ACLs 12 / 24
  • 13. Who's who Context The Past The Idea Working DC network setup All VLANs everywhere BGP capable DC routers Heavy automation for Linux boxes bcfg2 Written in Python Easily extendable Config generators for Icinga2 Basic Apache2 templating People not afraid of automation On the contrary What was in the cards? 13 / 24
  • 14. Who's who Context The Past The Idea Now what IS a service Has an FQDN resolves to IP and/or Legacy-IP addresses Has a proto and service proto derived from service, if possible e.g. tcp/http or tcp/80 Is provided by hosts of $bcfg2_group e.g. kdc-production May be anycasted May be balanced And the LBs anycasted May be a web thing With special http config e.g. template, redirects and stuff May have special monitoring config 14 / 24
  • 15. Who's who Context The Past The Idea How does it look like? mwilhelm@kili:/bcfg2/etc/services/imt/infrastructure/anycasted$ cat kerberos-kdc.srv anycast: True status: produktiv name: kerberos-kdc fqdn: kerberos.srv.imt.uni-paderborn.de service: kerberos bcfg2_srv_group: kdc-slave monitoring: virtual_bcfg2_groups: - kdc - imt-master 15 / 24
  • 16. Who's who Context The Past The Idea Well OK, it has a defaulting mechanism, too mwilhelm@kili:/bcfg2/etc/services/imt/infrastructure/anycasted$ cat defaults.yaml anycast: True status: produktiv mwilhelm@kili:/bcfg2/etc/services/imt/infrastructure/anycasted$ cat kerberos-kdc.srv name: kerberos-kdc fqdn: kerberos.srv.imt.uni-paderborn.de service: kerberos bcfg2_srv_group: kdc-slave monitoring: virtual_bcfg2_groups: - kdc - imt-master 16 / 24
  • 17. Who's who Context The Past The Idea The Now The Now 17 / 24
  • 18. Who's who Context The Past The Idea The Now 18 / 24
  • 19. Who's who Context The Past The Idea The Now Lessons learned Bad NIC firmware is bad BGP timeouts are long Recovery times are bad when L2 is a black hole BFD will solve this HAProxy configuration is complex Lots of switches have effect on other switches No way to ask HAProxy what config options are active 19 / 24
  • 20. Who's who Context The Past The Idea The Now The good Backends with support for Proxy Protocol Apache2 Cyrus IMAP Dovecot Exim Nginx Postfix Varnish ... 20 / 24
  • 21. Who's who Context The Past The Idea The Now The bad OpenLDAP No support for Proxy Protocol Has to be DNATed by HAProxy when slapd should see client IPs Therefore LDAP backends have to be routed by HAProxy Exchange Funny problems with timeouts (solved) Funny problems with Outlook for Mac clients SharePoint Funny problems when you don't use tcp mode for some vHosts I want this hour of my life back 21 / 24
  • 22. Who's who Context The Past The Idea The Now Bonus level: Packet lter con guration We know what ports a service is using We know where (backend, frontend) Let's generate netfilter rules Limiting access to source prefixes just came on top Specifying additional_ports, too mwilhelm@kili:/bcfg2/etc/services/imt/infrastructure/anycasted$ cat proxy.srv name: proxy fqdn: proxy.srv.imt.uni-paderborn.de service: proxy protos: tcp port: 3128 bcfg2_srv_group: proxy-server-produktiv acl: allow_from: - imt_thinclients - imt_fw_mgmt 22 / 24
  • 23. Who's who Context The Past The Idea The Now Links Further Reading BGP / networking basics https://myfirst.network Anycast with Cisco Nexus 7000 and Debian Linux https://blog.sdn.clinic/2018/02/anycasted-services-with-debian-bird-anycast- healthchecker-and-cisco-nexus-7000/ Anycast all the things https://www.slideshare.net/BarbarossaTM/anycast-all-the-things 23 / 24
  • 24. Who's who Context The Past The Idea Outlook Links Questions? Questions? 24 / 24