SlideShare a Scribd company logo
Building your own CGN
with Linux
Maximilian Wilhelm
DENOG12
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Agenda
●
Background
●
Why?
●
How?
●
The struggles
●
The solution
●
Questions
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Background
●
Mid-size German university
– 20k students
– 2.5k employees
– Some guests
– Main campus
+ 3.5 remote sites
– Part of eduroam
© University Paderborn, Johannes Pauly
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
The WIFI challenge
●
10k users (peak, pre-covid)
●
7 IPv4 (public) prefixes
●
VLAN mapping magic in radius
– Based on first character of username
– Has to be updated each semester
●
We‘re out of prefixes to add
●
4Gb/s WIFI traffic
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
The Plan
●
Add IPv6
●
Use one large private IPv4 prefix
●
Get rid of VLAN-mapping magic
●
NAT external IPv4 traffic
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Constraints
●
Two groups of users
– Internal (student, employee, local guest)
– External (roamed user from remote org)
●
Distinction required for some services
– Intranet
– Licensed stuff (library, etc.)
– Has to be represented in IP prefixes
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Network topology
●
Classic campus design
– Border
– Layer 3 core
– Distribution
– Access
– WIFI with CAPWAP to
DC
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Plan A – use existing boxes
●
Simple, border routers should NAT
– It‘s shiny ASR 9ks, they can do it!
●
Turns out, they can‘t
– ASR 9k need Virtualized Services Module for NAT
✗ Doesn‘t fit into our ASR 9001
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Plan B – buy
●
2x ASR 1001-HX
– 2RU
– IOS-XE
– 4x 10G
– 4 million NAT sessions
– 2x 750W PSU
●
~150 k€
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Plan C – build
●
Get two commodity servers
●
Shove decent NICs into it
●
Install (Debian) Linux
●
Configure bird
●
Configure nftables
●
Profit
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Sizing – CPU
●
One or two CPUs?
– Avoid NUMA*
●
How many cores?
– Distribute packet processing load, utilise NIC queues
– 1 Core routes 3Gb/s
●
Intel oder AMD?
– It‘s gonna be EPYC
➔
Single socket EPYC system
* https://www.youtube.com/watch?v=8NSzkYSX5nY
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Sizing – RAM
●
Last peak: 10k users
– Assume 200 sessions per users
➔ Design for 5m sessions
●
One session roughly consists of two 5-tuple + x
– 5-tuple <= 16B
– Let‘s asume 48B / session
●
5m * 48B / 10^20 = 228MB
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Sizing – Network
●
NIC should have
– Large Buffers
– Decent number of queues
– 2x 10/25G ports
●
Not Broadcom & Intel
➔
Mellanox ConnectX 4
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Hardware configuration
●
2x Dell R6515
– 1RU
– 1x EPYC 7542, 32C
– 4x 10/25G Mellanox ConnectX 4
– 32GB RAM
●
>1 billion sessions*
– 2x 550W PSU
●
~10 k€
*calculated
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
How to integrate CGN into network?
●
Active-Active setup would be nice
– BGP + Anycast
– Requires ECMP
●
Policy
– Internal traffic should be routed regulary
– Traffic to external destinations should be NATed
➔ Will need policy-based routing (PBR)
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Option 1 – DC
●
Nexus 7010
– NX-OS
– PBR via route-map
●
PBR on SVIs to WIFI clients
– set next-hop to CGN-IP
✗
Only useful for DC networks
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Option B – Border
●
ASR 9001
– 4x SFP+ 8x XFP
– IOS-XR
– Supports PBR via VRF
✗
Router ports expensive
✗
Config complicated
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Option C – Core
●
Catalyst 9500-48Y4C
– IOS-XE
– PBR via route-map
●
PBR on interfaces do DC
– Easily extendible
✔
Ports available, cheap(er)
and 25G possible
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Core it is
●
Straight forward setup
– eBGP Core ↔ CGN nodes
– Anycast for CGN-srv-IP
– Route-map with
●
ACL to catch traffic
●
set next-hop recursive
✗
So you would think...
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
PBR on IOS-XE on Catalyst 9500
●
IOS-XE 16.9.4
• Recommended release when I started
• Configurable in route-map
✗ Route-map not applied to interface
✗ Log entry that something isn‘t
supported
➔
Upgrade to IOS-XE 16.12.3e
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
PBR on IOS-XE on Catalyst 9500
●
IOS-XE 16.12.3e
• Configurable in route-map
• Applied to interface
• Seems to work (with one NH)
●
2nd box added, 1st box drained
✗ 1st drained box get‘s ALL traffic
●
TAC says
✗ „Not supported on Cat9500“
✗ „Not on the BU roadmap either“
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
The solution
●
Two sub-interfaces
– Internal / external
●
BGP in GRT
●
VRF cgn
– Static default route to
CGN-srv-IP in GRT
●
PBR
– set vrf cgn
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
The CGN box
●
Debian stable
●
bird for BGP
– Plus drain switch
●
nftables for NAT (three rules!)
●
conntrackd for stateful failover
●
Bloody details: BLOG
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
NAT – Nftables
# NATs are good
table ip nat {
chain postrouting {
type nat hook postrouting priority 100; policy accept;
ip saddr 100.64.0.0/12 snat to 192.0.2.0-192.0.2.15
persistent
ip saddr 100.127.0.0/16 snat to 203.0.113.240-
203.0.113.247 persistent
}
}
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Conntrackd
●
User-space daemon for conntrack table sync
●
Allows sync via unicast or multicast
●
Setup
– Unicast
– NOTRACK mode
– Internal/external cache disabled
– TCPWindowTracking Off
– ExpectationSync On
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Bird
root@cgn-o2c-01[~]# birdc show route
0.0.0.0/0 via 198.51.100.28 on twe1-2.3101 [cr_cua_01_e 2020-09-15] * (100) [AS65049i]
via 198.51.100.40 on twe2-1.3101 [cr_n2a_01_e 2020-09-15] (100) [AS65049i]
via 198.51.100.24 on twe1-1.3101 [cr_o2g_01_e 2020-09-15] (100) [AS65049i]
100.64.0.0/10 via 198.51.100.17 on twe1-2 [cr_cua_01_i 2020-09-15] * (100) [AS65049i]
via 198.51.100.33 on twe2-1 [cr_n2a_01_i 2020-09-15] (100) [AS65049i]
via 198.51.100.9 on twe1-1 [cr_o2g_01_i 2020-09-15] (100) [AS65049i]
# NAT Pools für interne User
192.0.2.0/28 unreachable [nat_pools 2020-09-15] * (200)
192.0.2.32/28 unreachable [nat_pools 2020-09-15] * (200)
# NAT Pools für externe User
203.0.113.240/29 unreachable [nat_pools 2020-09-15] * (200)
203.0.113.248/29 unreachable [nat_pools 2020-09-15] * (200)
# Host-IP
198.51.100.252/32 dev lo [nat_srv_ip 2020-09-15] * (240)
# Anycast CGN Service-IP
198.51.100.254/32 dev anycast_srv [nat_srv_ip 2020-09-15] * (240)
Maximilian Wilhelm
Zentrum für Informations- und Medientechnologien
Thank you
●
Questions?

More Related Content

What's hot

MicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMeshMicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMesh
Akash Agrawal
 
Prometheus
PrometheusPrometheus
Prometheus
wyukawa
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
NexThoughts Technologies
 
Monitoring in CloudStack
Monitoring in CloudStackMonitoring in CloudStack
Monitoring in CloudStack
ShapeBlue
 
Best practices for Terraform with Vault
Best practices for Terraform with VaultBest practices for Terraform with Vault
Best practices for Terraform with Vault
Mitchell Pronschinske
 
Cloud Monitoring tool Grafana
Cloud Monitoring  tool Grafana Cloud Monitoring  tool Grafana
Cloud Monitoring tool Grafana
Dhrubaji Mandal ♛
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Edureka!
 
The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...
The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...
The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...
HostedbyConfluent
 
[KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
 [KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui... [KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
[KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
Akihiro Suda
 
Common Patterns of Multi Data-Center Architectures with Apache Kafka
Common Patterns of Multi Data-Center Architectures with Apache KafkaCommon Patterns of Multi Data-Center Architectures with Apache Kafka
Common Patterns of Multi Data-Center Architectures with Apache Kafka
confluent
 
Prometheus and Grafana
Prometheus and GrafanaPrometheus and Grafana
Prometheus and Grafana
Lhouceine OUHAMZA
 
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
HostedbyConfluent
 
How Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for PerformanceHow Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for Performance
Brendan Gregg
 
Using tfsec to scan your Terraform
Using tfsec to scan your Terraform Using tfsec to scan your Terraform
Using tfsec to scan your Terraform
OwenRumney1
 
docker installation and basics
docker installation and basicsdocker installation and basics
docker installation and basics
Walid Ashraf
 
Ibm spectrum scale fundamentals workshop for americas part 1 components archi...
Ibm spectrum scale fundamentals workshop for americas part 1 components archi...Ibm spectrum scale fundamentals workshop for americas part 1 components archi...
Ibm spectrum scale fundamentals workshop for americas part 1 components archi...
xKinAnx
 
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Adin Ermie
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
Guozhang Wang
 
Terraform 0.12 + Terragrunt
Terraform 0.12 + TerragruntTerraform 0.12 + Terragrunt
Terraform 0.12 + Terragrunt
Anton Babenko
 
macvlan and ipvlan
macvlan and ipvlanmacvlan and ipvlan
macvlan and ipvlan
Suraj Deshmukh
 

What's hot (20)

MicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMeshMicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMesh
 
Prometheus
PrometheusPrometheus
Prometheus
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
 
Monitoring in CloudStack
Monitoring in CloudStackMonitoring in CloudStack
Monitoring in CloudStack
 
Best practices for Terraform with Vault
Best practices for Terraform with VaultBest practices for Terraform with Vault
Best practices for Terraform with Vault
 
Cloud Monitoring tool Grafana
Cloud Monitoring  tool Grafana Cloud Monitoring  tool Grafana
Cloud Monitoring tool Grafana
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
 
The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...
The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...
The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...
 
[KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
 [KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui... [KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
[KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
 
Common Patterns of Multi Data-Center Architectures with Apache Kafka
Common Patterns of Multi Data-Center Architectures with Apache KafkaCommon Patterns of Multi Data-Center Architectures with Apache Kafka
Common Patterns of Multi Data-Center Architectures with Apache Kafka
 
Prometheus and Grafana
Prometheus and GrafanaPrometheus and Grafana
Prometheus and Grafana
 
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
 
How Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for PerformanceHow Netflix Tunes EC2 Instances for Performance
How Netflix Tunes EC2 Instances for Performance
 
Using tfsec to scan your Terraform
Using tfsec to scan your Terraform Using tfsec to scan your Terraform
Using tfsec to scan your Terraform
 
docker installation and basics
docker installation and basicsdocker installation and basics
docker installation and basics
 
Ibm spectrum scale fundamentals workshop for americas part 1 components archi...
Ibm spectrum scale fundamentals workshop for americas part 1 components archi...Ibm spectrum scale fundamentals workshop for americas part 1 components archi...
Ibm spectrum scale fundamentals workshop for americas part 1 components archi...
 
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
 
Terraform 0.12 + Terragrunt
Terraform 0.12 + TerragruntTerraform 0.12 + Terragrunt
Terraform 0.12 + Terragrunt
 
macvlan and ipvlan
macvlan and ipvlanmacvlan and ipvlan
macvlan and ipvlan
 

Similar to Building your own CGN boxes with Linux

100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV
NTT Communications Technology Development
 
Ocpeu14
Ocpeu14Ocpeu14
Ocpeu14
KALRAY
 
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...
PROIDEA
 
FPGA on the Cloud
FPGA on the Cloud FPGA on the Cloud
FPGA on the Cloud
jtsagata
 
100 M pps on PC.
100 M pps on PC.100 M pps on PC.
100 M pps on PC.
Redge Technologies
 
Smartcom's control plane software, a customized version of FreeBSD by Boris A...
Smartcom's control plane software, a customized version of FreeBSD by Boris A...Smartcom's control plane software, a customized version of FreeBSD by Boris A...
Smartcom's control plane software, a customized version of FreeBSD by Boris A...
eurobsdcon
 
PCCC23:筑波大学計算科学研究センター テーマ1「スーパーコンピュータCygnus / Pegasus」
PCCC23:筑波大学計算科学研究センター テーマ1「スーパーコンピュータCygnus / Pegasus」PCCC23:筑波大学計算科学研究センター テーマ1「スーパーコンピュータCygnus / Pegasus」
PCCC23:筑波大学計算科学研究センター テーマ1「スーパーコンピュータCygnus / Pegasus」
PC Cluster Consortium
 
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
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
Thomas Graf
 
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...
Vietnam Open Infrastructure User Group
 
CAPI and OpenCAPI Hardware acceleration enablement
CAPI and OpenCAPI Hardware acceleration enablementCAPI and OpenCAPI Hardware acceleration enablement
CAPI and OpenCAPI Hardware acceleration enablement
Ganesan Narayanasamy
 
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep DiveVMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld
 
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
OpenStack Korea Community
 
Ceph, Now and Later: Our Plan for Open Unified Cloud Storage
Ceph, Now and Later: Our Plan for Open Unified Cloud StorageCeph, Now and Later: Our Plan for Open Unified Cloud Storage
Ceph, Now and Later: Our Plan for Open Unified Cloud Storage
Sage Weil
 
RISC-V and OpenPOWER open-ISA and open-HW - a swiss army knife for HPC
RISC-V  and OpenPOWER open-ISA and open-HW - a swiss army knife for HPCRISC-V  and OpenPOWER open-ISA and open-HW - a swiss army knife for HPC
RISC-V and OpenPOWER open-ISA and open-HW - a swiss army knife for HPC
Ganesan Narayanasamy
 
Achieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVMAchieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVM
data://disrupted®
 
Exploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC CloudExploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC Cloud
Ryousei Takano
 
Achieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVMAchieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVM
DevOps.com
 
FD.IO Vector Packet Processing
FD.IO Vector Packet ProcessingFD.IO Vector Packet Processing
FD.IO Vector Packet Processing
Kernel TLV
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
Kirill Tsym
 

Similar to Building your own CGN boxes with Linux (20)

100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV100Gbps OpenStack For Providing High-Performance NFV
100Gbps OpenStack For Providing High-Performance NFV
 
Ocpeu14
Ocpeu14Ocpeu14
Ocpeu14
 
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...
 
FPGA on the Cloud
FPGA on the Cloud FPGA on the Cloud
FPGA on the Cloud
 
100 M pps on PC.
100 M pps on PC.100 M pps on PC.
100 M pps on PC.
 
Smartcom's control plane software, a customized version of FreeBSD by Boris A...
Smartcom's control plane software, a customized version of FreeBSD by Boris A...Smartcom's control plane software, a customized version of FreeBSD by Boris A...
Smartcom's control plane software, a customized version of FreeBSD by Boris A...
 
PCCC23:筑波大学計算科学研究センター テーマ1「スーパーコンピュータCygnus / Pegasus」
PCCC23:筑波大学計算科学研究センター テーマ1「スーパーコンピュータCygnus / Pegasus」PCCC23:筑波大学計算科学研究センター テーマ1「スーパーコンピュータCygnus / Pegasus」
PCCC23:筑波大学計算科学研究センター テーマ1「スーパーコンピュータCygnus / Pegasus」
 
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
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
 
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...
Unrevealed Story Behind Viettel Network Cloud Hotpot | Đặng Văn Đại, Hà Mạnh ...
 
CAPI and OpenCAPI Hardware acceleration enablement
CAPI and OpenCAPI Hardware acceleration enablementCAPI and OpenCAPI Hardware acceleration enablement
CAPI and OpenCAPI Hardware acceleration enablement
 
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep DiveVMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep Dive
 
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
 
Ceph, Now and Later: Our Plan for Open Unified Cloud Storage
Ceph, Now and Later: Our Plan for Open Unified Cloud StorageCeph, Now and Later: Our Plan for Open Unified Cloud Storage
Ceph, Now and Later: Our Plan for Open Unified Cloud Storage
 
RISC-V and OpenPOWER open-ISA and open-HW - a swiss army knife for HPC
RISC-V  and OpenPOWER open-ISA and open-HW - a swiss army knife for HPCRISC-V  and OpenPOWER open-ISA and open-HW - a swiss army knife for HPC
RISC-V and OpenPOWER open-ISA and open-HW - a swiss army knife for HPC
 
Achieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVMAchieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVM
 
Exploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC CloudExploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC Cloud
 
Achieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVMAchieving the Ultimate Performance with KVM
Achieving the Ultimate Performance with KVM
 
FD.IO Vector Packet Processing
FD.IO Vector Packet ProcessingFD.IO Vector Packet Processing
FD.IO Vector Packet Processing
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
 

More from Maximilan Wilhelm

This is the way - Holistic (Network) Automation
This is the way - Holistic (Network) AutomationThis is the way - Holistic (Network) Automation
This is the way - Holistic (Network) Automation
Maximilan Wilhelm
 
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
Maximilan Wilhelm
 
Contemporary network configuration for linux - ifupdown-ng
Contemporary network configuration for linux - ifupdown-ngContemporary network configuration for linux - ifupdown-ng
Contemporary network configuration for linux - ifupdown-ng
Maximilan Wilhelm
 
Angewandte Netzwerkgrundlagen reloaded - von Layer 1 bis 3
Angewandte Netzwerkgrundlagen reloaded - von Layer 1 bis 3Angewandte Netzwerkgrundlagen reloaded - von Layer 1 bis 3
Angewandte Netzwerkgrundlagen reloaded - von Layer 1 bis 3
Maximilan Wilhelm
 
Intent driven, fully automated deployment of anycasted load balancers with ha...
Intent driven, fully automated deployment of anycasted load balancers with ha...Intent driven, fully automated deployment of anycasted load balancers with ha...
Intent driven, fully automated deployment of anycasted load balancers with ha...
Maximilan Wilhelm
 
Anycast all the things
Anycast all the thingsAnycast all the things
Anycast all the things
Maximilan Wilhelm
 
Out-of-Band-Management für APU-Boards
Out-of-Band-Management für APU-BoardsOut-of-Band-Management für APU-Boards
Out-of-Band-Management für APU-Boards
Maximilan Wilhelm
 
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
Maximilan Wilhelm
 
Best Current Operational Practices - Dos, Don’ts and lessons learned
Best Current Operational Practices - Dos, Don’ts and lessons learnedBest Current Operational Practices - Dos, Don’ts and lessons learned
Best Current Operational Practices - Dos, Don’ts and lessons learned
Maximilan Wilhelm
 
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-NetzwerkstackL2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
Maximilan Wilhelm
 
Overlays & IP-Fabrics - viele Wege führen nach Rom und warum Layer2 keine Lös...
Overlays & IP-Fabrics - viele Wege führen nach Rom und warum Layer2 keine Lös...Overlays & IP-Fabrics - viele Wege führen nach Rom und warum Layer2 keine Lös...
Overlays & IP-Fabrics - viele Wege führen nach Rom und warum Layer2 keine Lös...
Maximilan Wilhelm
 
Dynamische Routingprotokolle Aufzucht und Pflege - BGP
Dynamische Routingprotokolle Aufzucht und Pflege - BGPDynamische Routingprotokolle Aufzucht und Pflege - BGP
Dynamische Routingprotokolle Aufzucht und Pflege - BGP
Maximilan Wilhelm
 
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
 
IPv6 im Jahre 2018
IPv6 im Jahre 2018IPv6 im Jahre 2018
IPv6 im Jahre 2018
Maximilan Wilhelm
 
Netzwerkgrundlagen - Von Ethernet bis IP
Netzwerkgrundlagen - Von Ethernet bis IPNetzwerkgrundlagen - Von Ethernet bis IP
Netzwerkgrundlagen - Von Ethernet bis IP
Maximilan Wilhelm
 
Contemporary Linux Networking
Contemporary Linux NetworkingContemporary Linux Networking
Contemporary Linux Networking
Maximilan Wilhelm
 
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
Maximilan Wilhelm
 
Software Defined Freifunk Backbones
Software Defined Freifunk BackbonesSoftware Defined Freifunk Backbones
Software Defined Freifunk Backbones
Maximilan Wilhelm
 

More from Maximilan Wilhelm (18)

This is the way - Holistic (Network) Automation
This is the way - Holistic (Network) AutomationThis is the way - Holistic (Network) Automation
This is the way - Holistic (Network) Automation
 
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
 
Contemporary network configuration for linux - ifupdown-ng
Contemporary network configuration for linux - ifupdown-ngContemporary network configuration for linux - ifupdown-ng
Contemporary network configuration for linux - ifupdown-ng
 
Angewandte Netzwerkgrundlagen reloaded - von Layer 1 bis 3
Angewandte Netzwerkgrundlagen reloaded - von Layer 1 bis 3Angewandte Netzwerkgrundlagen reloaded - von Layer 1 bis 3
Angewandte Netzwerkgrundlagen reloaded - von Layer 1 bis 3
 
Intent driven, fully automated deployment of anycasted load balancers with ha...
Intent driven, fully automated deployment of anycasted load balancers with ha...Intent driven, fully automated deployment of anycasted load balancers with ha...
Intent driven, fully automated deployment of anycasted load balancers with ha...
 
Anycast all the things
Anycast all the thingsAnycast all the things
Anycast all the things
 
Out-of-Band-Management für APU-Boards
Out-of-Band-Management für APU-BoardsOut-of-Band-Management für APU-Boards
Out-of-Band-Management für APU-Boards
 
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
 
Best Current Operational Practices - Dos, Don’ts and lessons learned
Best Current Operational Practices - Dos, Don’ts and lessons learnedBest Current Operational Practices - Dos, Don’ts and lessons learned
Best Current Operational Practices - Dos, Don’ts and lessons learned
 
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-NetzwerkstackL2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
L2/L3 für Fortgeschrittene - Helle und dunkle Magie im Linux-Netzwerkstack
 
Overlays & IP-Fabrics - viele Wege führen nach Rom und warum Layer2 keine Lös...
Overlays & IP-Fabrics - viele Wege führen nach Rom und warum Layer2 keine Lös...Overlays & IP-Fabrics - viele Wege führen nach Rom und warum Layer2 keine Lös...
Overlays & IP-Fabrics - viele Wege führen nach Rom und warum Layer2 keine Lös...
 
Dynamische Routingprotokolle Aufzucht und Pflege - BGP
Dynamische Routingprotokolle Aufzucht und Pflege - BGPDynamische Routingprotokolle Aufzucht und Pflege - BGP
Dynamische Routingprotokolle Aufzucht und Pflege - BGP
 
Dynamische Routingprotokolle Aufzucht und Pflege - OSPF
Dynamische Routingprotokolle Aufzucht und Pflege - OSPFDynamische Routingprotokolle Aufzucht und Pflege - OSPF
Dynamische Routingprotokolle Aufzucht und Pflege - OSPF
 
IPv6 im Jahre 2018
IPv6 im Jahre 2018IPv6 im Jahre 2018
IPv6 im Jahre 2018
 
Netzwerkgrundlagen - Von Ethernet bis IP
Netzwerkgrundlagen - Von Ethernet bis IPNetzwerkgrundlagen - Von Ethernet bis IP
Netzwerkgrundlagen - Von Ethernet bis IP
 
Contemporary Linux Networking
Contemporary Linux NetworkingContemporary Linux Networking
Contemporary Linux Networking
 
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
 
Software Defined Freifunk Backbones
Software Defined Freifunk BackbonesSoftware Defined Freifunk Backbones
Software Defined Freifunk Backbones
 

Recently uploaded

Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
JungkooksNonexistent
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
laozhuseo02
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
Output determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CCOutput determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CC
ShahulHameed54211
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Sanjeev Rampal
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
3ipehhoa
 
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptxLiving-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
TristanJasperRamos
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
Gal Baras
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
nirahealhty
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
natyesu
 
ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAE
Himani415946
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
laozhuseo02
 

Recently uploaded (16)

Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
Output determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CCOutput determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CC
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
 
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptxLiving-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
 
ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAE
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
 

Building your own CGN boxes with Linux

  • 1. Building your own CGN with Linux Maximilian Wilhelm DENOG12
  • 2. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Agenda ● Background ● Why? ● How? ● The struggles ● The solution ● Questions
  • 3. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Background ● Mid-size German university – 20k students – 2.5k employees – Some guests – Main campus + 3.5 remote sites – Part of eduroam © University Paderborn, Johannes Pauly
  • 4. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien The WIFI challenge ● 10k users (peak, pre-covid) ● 7 IPv4 (public) prefixes ● VLAN mapping magic in radius – Based on first character of username – Has to be updated each semester ● We‘re out of prefixes to add ● 4Gb/s WIFI traffic
  • 5. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien The Plan ● Add IPv6 ● Use one large private IPv4 prefix ● Get rid of VLAN-mapping magic ● NAT external IPv4 traffic
  • 6. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Constraints ● Two groups of users – Internal (student, employee, local guest) – External (roamed user from remote org) ● Distinction required for some services – Intranet – Licensed stuff (library, etc.) – Has to be represented in IP prefixes
  • 7. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Network topology ● Classic campus design – Border – Layer 3 core – Distribution – Access – WIFI with CAPWAP to DC
  • 8. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Plan A – use existing boxes ● Simple, border routers should NAT – It‘s shiny ASR 9ks, they can do it! ● Turns out, they can‘t – ASR 9k need Virtualized Services Module for NAT ✗ Doesn‘t fit into our ASR 9001
  • 9. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Plan B – buy ● 2x ASR 1001-HX – 2RU – IOS-XE – 4x 10G – 4 million NAT sessions – 2x 750W PSU ● ~150 k€
  • 10. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Plan C – build ● Get two commodity servers ● Shove decent NICs into it ● Install (Debian) Linux ● Configure bird ● Configure nftables ● Profit
  • 11. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Sizing – CPU ● One or two CPUs? – Avoid NUMA* ● How many cores? – Distribute packet processing load, utilise NIC queues – 1 Core routes 3Gb/s ● Intel oder AMD? – It‘s gonna be EPYC ➔ Single socket EPYC system * https://www.youtube.com/watch?v=8NSzkYSX5nY
  • 12. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Sizing – RAM ● Last peak: 10k users – Assume 200 sessions per users ➔ Design for 5m sessions ● One session roughly consists of two 5-tuple + x – 5-tuple <= 16B – Let‘s asume 48B / session ● 5m * 48B / 10^20 = 228MB
  • 13. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Sizing – Network ● NIC should have – Large Buffers – Decent number of queues – 2x 10/25G ports ● Not Broadcom & Intel ➔ Mellanox ConnectX 4
  • 14. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Hardware configuration ● 2x Dell R6515 – 1RU – 1x EPYC 7542, 32C – 4x 10/25G Mellanox ConnectX 4 – 32GB RAM ● >1 billion sessions* – 2x 550W PSU ● ~10 k€ *calculated
  • 15. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien How to integrate CGN into network? ● Active-Active setup would be nice – BGP + Anycast – Requires ECMP ● Policy – Internal traffic should be routed regulary – Traffic to external destinations should be NATed ➔ Will need policy-based routing (PBR)
  • 16. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Option 1 – DC ● Nexus 7010 – NX-OS – PBR via route-map ● PBR on SVIs to WIFI clients – set next-hop to CGN-IP ✗ Only useful for DC networks
  • 17. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Option B – Border ● ASR 9001 – 4x SFP+ 8x XFP – IOS-XR – Supports PBR via VRF ✗ Router ports expensive ✗ Config complicated
  • 18. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Option C – Core ● Catalyst 9500-48Y4C – IOS-XE – PBR via route-map ● PBR on interfaces do DC – Easily extendible ✔ Ports available, cheap(er) and 25G possible
  • 19. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Core it is ● Straight forward setup – eBGP Core ↔ CGN nodes – Anycast for CGN-srv-IP – Route-map with ● ACL to catch traffic ● set next-hop recursive ✗ So you would think...
  • 20. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien PBR on IOS-XE on Catalyst 9500 ● IOS-XE 16.9.4 • Recommended release when I started • Configurable in route-map ✗ Route-map not applied to interface ✗ Log entry that something isn‘t supported ➔ Upgrade to IOS-XE 16.12.3e
  • 21. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien PBR on IOS-XE on Catalyst 9500 ● IOS-XE 16.12.3e • Configurable in route-map • Applied to interface • Seems to work (with one NH) ● 2nd box added, 1st box drained ✗ 1st drained box get‘s ALL traffic ● TAC says ✗ „Not supported on Cat9500“ ✗ „Not on the BU roadmap either“
  • 22. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien The solution ● Two sub-interfaces – Internal / external ● BGP in GRT ● VRF cgn – Static default route to CGN-srv-IP in GRT ● PBR – set vrf cgn
  • 23. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien The CGN box ● Debian stable ● bird for BGP – Plus drain switch ● nftables for NAT (three rules!) ● conntrackd for stateful failover ● Bloody details: BLOG
  • 24. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien NAT – Nftables # NATs are good table ip nat { chain postrouting { type nat hook postrouting priority 100; policy accept; ip saddr 100.64.0.0/12 snat to 192.0.2.0-192.0.2.15 persistent ip saddr 100.127.0.0/16 snat to 203.0.113.240- 203.0.113.247 persistent } }
  • 25. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Conntrackd ● User-space daemon for conntrack table sync ● Allows sync via unicast or multicast ● Setup – Unicast – NOTRACK mode – Internal/external cache disabled – TCPWindowTracking Off – ExpectationSync On
  • 26. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Bird root@cgn-o2c-01[~]# birdc show route 0.0.0.0/0 via 198.51.100.28 on twe1-2.3101 [cr_cua_01_e 2020-09-15] * (100) [AS65049i] via 198.51.100.40 on twe2-1.3101 [cr_n2a_01_e 2020-09-15] (100) [AS65049i] via 198.51.100.24 on twe1-1.3101 [cr_o2g_01_e 2020-09-15] (100) [AS65049i] 100.64.0.0/10 via 198.51.100.17 on twe1-2 [cr_cua_01_i 2020-09-15] * (100) [AS65049i] via 198.51.100.33 on twe2-1 [cr_n2a_01_i 2020-09-15] (100) [AS65049i] via 198.51.100.9 on twe1-1 [cr_o2g_01_i 2020-09-15] (100) [AS65049i] # NAT Pools für interne User 192.0.2.0/28 unreachable [nat_pools 2020-09-15] * (200) 192.0.2.32/28 unreachable [nat_pools 2020-09-15] * (200) # NAT Pools für externe User 203.0.113.240/29 unreachable [nat_pools 2020-09-15] * (200) 203.0.113.248/29 unreachable [nat_pools 2020-09-15] * (200) # Host-IP 198.51.100.252/32 dev lo [nat_srv_ip 2020-09-15] * (240) # Anycast CGN Service-IP 198.51.100.254/32 dev anycast_srv [nat_srv_ip 2020-09-15] * (240)
  • 27. Maximilian Wilhelm Zentrum für Informations- und Medientechnologien Thank you ● Questions?