2017 - LISA - LinkedIn's Distributed Firewall (DFW)

Mike Svoboda
Mike SvobodaSenior Staff Systems and Automation Engineer
Distributed Firewall (DFW)
Mike Svoboda
Sr. Staff Engineer, Production Infrastructure Engineering
LinkedIn: https://www.linkedin.com/in/mikesvoboda/
Agenda for today’s discussion
Slides
5-8
Problem 1: Moving machines around in the datacenter
to create a DMZ
Slides
11-29
Problem 2: Horizontal vs Vertical Network design
Slides
30-40
What is Distributed Firewall?
Slide
42
References
Q/A Session
What Motivated LinkedIn to create
DFW?
Problem 1:
Moving machines around in the
datacenter to create DMZ
Script Kiddie Hacking: Easy network attack vectors
• Port Scanning – What is the remote device responding to?
• Enumeration- Gather information about services running on the target machine
• Data Extraction- Pull as much valuable information from the remote service as possible
Wake up call!
PHYSICALLY MOVING MACHINES IN THE DATACENTER DOESN’T SCALE!
• Providing additional layers of network security
to an application requires either physically
moving machines around in the datacenter, or
rewire network cables to create DMZs.
• DFW to complement existing network firewall
ACL systems, not replace it.
• Additional layer of security in our infrastructure
to complement existing systems.
How can we respond?
Move the machines into a DMZ behind a network
firewall, limiting network connectivity?
Production Network Security
TREAT THE PRODUCTION NETWORK AS IF IT’S THE PUBLIC INTERNET.
• Milton in the finance department clicked on a
bad email attachment and now has malware
on his workstation. Thanks Milton, appreciate
that.
• Milton’s workstation resides inside the internal
office network, which has the ability to connect
to application resources in Staging, Q/A, or
Production servers.
• Milton is one employee out of thousands.
Production Network Security
TREAT THE PRODUCTION NETWORK AS IF IT’S THE PUBLIC INTERNET.
• The hacker who has control of Milton’s machine was
able to exploit one application out of thousands, and
now has full production network access.
• The hacker can take their time analyzing various
production services, probing what responds to API
calls.
• What are the details behind the Equifax leak(s)?
Problem 2:
Horizontal vs. Vertical Network Design
The Vertical Network Architecture
• Big iron switches deployed at
the entry point of the
datacenter with uplink access
to LinkedIn’s internal
networks.
• More big iron switches at the
second and their tier of the
network.
• This image is a logical
representation, at minimum,
1k servers, upwards of 5k.
DATACENTER CLUSTERS PER ENVIRONMENT
The Vertical Network Architecture
• Each packet between environments has to flow through
thousands of rules before hitting a match.
• Firewall admin has to fit the entire security model into
their brain. This is error prone and difficult to update.
• TCAM tables are stored in hardware silicon. We’re
limited on the complexity that can be enforced.
• Hardware ASICs are fast, but expensive! Deploying
big iron costs millions of dollars!
DATACENTER CLUSTERS PER ENVIRONMENT
The Vertical Network Architecture
• Traffic shifts become problematic, as not all ACLs
exists in every CRT.
• TCAM tables can only support complexity of the
environment they host, not all “PROD” ACLs. It could
support the “PROD1” logical implementation of
linkedin.com, but not “PROD2” and “PROD3”
application fabrics.
• Human cost of hand maintaining per-application CRT
ACLs rises exponentially.
MULTIPLE CLUSTERS PER DATACENTER
The Horizontal Network Architecture
• Instead of scaling vertically, scale horizontally using
interconnected pods. Ofter multiple paths for machines
to communicate with each other.
• Allow datacenter engineering to maximize resources
• The “cluster” is too large of a deployment. Sometimes
we need to add capacity to an environment down to the
cabinet level
BUILD PODS INSTEAD OF CLUSTERS
1
Present: Altair Design
Pod 1
ToRX ToR32ToRYToR1
Pod X
ToRX ToR32ToRYToR1
Pod Y
ToRX ToR32ToRYToR1
Pod 64
ToRX ToR32ToRYToR1
Leaf4Leaf3Leaf2Leaf1Leaf4Leaf3Leaf2Leaf1Leaf4Leaf3Leaf2Leaf1Leaf4Leaf3Leaf2Leaf1
Spine32SpineYSpineXSpine1 Spine1 SpineX SpineY Spine32 Spine1 SpineX SpineY Spine32Spine32SpineYSpineXSpine1
ToR
Leaf
Spine
True 5 Stage Clos Architecture (Maximum Path Length: 5 Chipsets to Minimize Latency)
Moved complexity from big boxes to our advantage, where we can manage and control!
Single SKU - Same Chipset - Uniform IO design (Bandwidth, Latency and Buffering)
Dedicated control plane, OAM and CPU for each ASIC
Non-Blocking Parallel Fabrics
1
Fabric 4
Fabric 3
Fabric 2
Fabric 1
ToR
ServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServer
ToR
ServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServer
1
5 Stage Clos
1
ToR
1
ToR
1025
ToR
1024
ToR
2048
1
Leaf
1
Leaf
256
Leaf
128
Leaf
129
1
Spine
1
Spine
128
2
Fabric
1
Fabric
4
2
Fabric
1
Fabric
4
2
ToR
1
ToR
1025
ToR
1024
ToR
2048
Leaf
1
Leaf
256
Leaf
128
Leaf
129
Fabric
1
Fabric
4
~2400 switches to support ~100,000 bare metal servers
Tier 1
ToR - Top of the Rack
Broadcom Tomahawk 32x 100G
10/25/50/100G Attachement
Regular Server Attachement 10G
Each Cabinet: 96 Dense Compute units
Half Cabinet (Leaf-Zone) 48x 10G port for servers + 4 uplinks of 50G
Full Cabinet: 2x Single ToR Zones: 48 + 48 = 96 Servers
2
Project Falco
ToR
Server
Leaf
Spine Spine
Leaf Leaf Leaf
Spine Spine
Tier 2
Leaf
Broadcom Tomahawk 32x 100G
Non-Blocking Topology:
32x downlinks of 50G to serve 32 ToR
32x uplinks of 50G to provide 1:1 Over-subscription
2
Project Falco
ToR
Server
Leaf
Spine Spine
Leaf Leaf Leaf
Spine Spine
Tier 3
Spine
Broadcom Tomahawk 32x 100G
Non-Blocking Topology:
64 downlinks to provide 1:1 Over-subscription
To serve 64 pods (each pod 32 ToR)
100,000 Servers: Each pod (Approximately 1550 Compute)
2
Project Falco
ToR
Server
Leaf
Spine Spine
Leaf Leaf Leaf
Spine Spine
2
Simplifying the picture
2
Simplifying the picture
Fabric1..4 Spine1
Leaf 129..132
ToR 1025
Leaf 1..4
ToR 1
2017 - LISA - LinkedIn's Distributed Firewall (DFW)
Where do we put the Firewall in this architecture?
• Since we’ve scaled the network horizontally, there’s no “choke point” like we had with the vertical
network architecture
• We want to be able to mix / match security zones in the same rack to maximize space / power
• We want to have a customized security profile, down to the per server or container (network
namespace) that is unique for the deployed applications.
• Reject any requests from less trusted zones to hitting anything in PROD by default without defined
ACLs.
What is Distributed Firewall (DFW)?
What is DFW?
• Software Defined Networking (SDN)
• The applications deployed to the machine / container create a unique security profile.
• Deny incoming by default. Allow all loopback. Allow all outbound.
• Whitelist incoming application ports to accept connections from the same security zone
• Cross security zone communication requires human created ACLs based on our Topology application
deployment system
• As deployment actions happen across the datacenter, host based firewalls detect these conditions and
update their rulesets accordingly.
• The underlying firewall implementation is irrelevant
• Currently using ipfilter (iptables) and nftables on Linux, but could expand to ipf, pf, Windows, etc.
Advantages of DFW
• Fully distributed. More network I/O throughput, CPU horsepower, scales linearly.
• Datacenter space is fully utilized and physical network flattened. Logical network is quite
different.
• The VLANs the top-of-rack switch exposes determine the security zones the attached
machines belong to, not the massive vertical network cluster. Multiple security zones co-
located in the same rack. New security zones trivial to create.
• Only expose the network ports defined in our CMDB application deployment system
• Further limit accessibility to the network ports via upstream consumers by consuming the
application call graph.
• Able to canary / ramp ACL changes down to the per host or container, no big bang
modifications required.
Advantages of DFW
• Each node contains a small subset of rules vs. the CRT
network firewall containing tens of thousands.
• Authorized users can modify the firewall on-demand
without disabling it.
• Communicate keep-alive executions and notify if a
machine stops executing DFW. (hardware failure,
etc.)
• ACL complexity is localized to the service that
requires it.
New Business Capabilities
• Pre-security zone. Functionality that only host based firewalls could provide:
• Blackhole: Take an application listening on port 11016 from taking any traffic, or block
specific upstream consumers.
• QoS: sshd and Zookeeper network traffic should get priority over Apache Kafka network
I/O
• Pinhole: Based on the callgraph, only allow upstream consumers to access my
application on port 11016
New Business Capabilities
• Decommission datacenters in a controlled manner
• Allow authorized users to keep applications online, with DFW rejecting all inbound /
outbound application traffic. Allow SSH / sudo / infrastructure services to stay online.
• Conntrackd data exposed
• IPv6 support comes for free!
• Using ipset list:sets, every rule in DFW is written referencing the IPv4 and IPv6 ip
addresses / netblocks in parallel. As the company shifts from IPv4 to IPv6 and new
AAAA records come online, DFW automatically inserts these addresses and the
firewalls permit the IPv6 traffic.
ACLDB
• Centralized database that feeds sources
of truth by scraping CMDB and delivers
JSON data containers to each machine.
• JSON containers land on machines via
automated file transfers
• Intra-security zone communication
(What can communicate inside PROD?)
• Inter-security zone communication (What
is allowed to reach into PROD?)
High Level Architecture
• Only inbound traffic is filtered. All loopback / outbound traffic will always be immediately
passed.
• Network security will be enforced by filtering inbound traffic at the known destination.
• DFW rejects traffic, we do not drop traffic. The source host knows that its been rejected with
a ICMP port unreachable event.
• Build safeguards. Don’t firewall off 30k machines and become unrecoverable without pulling
power to the whole datacenter.
High Level Architecture
• Pre-security zone: Functionalities referenced on “new business capabilities slide”
• Security zone: Mimic the existing network firewalls, allowing PROD  PROD
communication. Rules are written as “accept from any” as we jump into a new
iptables chain once the source machine resides in PROD netblocks.
• Post security zone: Inter-security zone rules maintained in ACLDB. “Allow 5x
machines in ZONE1 to hit 10x machines in PROD…
• The rules placed in /etc/sysconfig/iptables and /etc/sysconfig/ip6tables are identical, since
they reference list:set ipsets, which in turn reference the necessary IPv4 and IPv6 sub-ipsets.
DFW is stateless. Precompute the ruleset, every execution
• Every execution of DFW builds the iptables / ipset configuration from scratch, compares to
live state in the kernel
• Current state of iptables / ipsets does not matter.
• Users could flush ruleset, reboot, add or delete entries, destroy or create ipsets. We
use auditd to monitor for setsockopt() system calls for unexpected rule insertions.
• Next execution of DFW, we converge from whatever current state is to the intended state
either scheduled or on discovery of setsockopt() calls.
• Debugging is simple. Firewall issues after DFW execution is not from a “previous state
issue.” Current state needs a behavior change for things to work.
• Whitelist network ports, is the source machine connecting to me in my security zone, or do
I need to add a rule in ACLDB to permit the traffic?
Work with the humans, not against them
• Since automation is constantly enforcing its known good state, we need to plan for emergency
situations where Authorized Users has to modify the firewall on demand
• Example 1: Authorized users needs to whitelist a network port ASAP to stop an outage
• Authorized user adds a destination network port to a specific ipset, which immediately starts whitelisting that
traffic within the same security zone (PROD  PROD port 9000). Allows time to register the network port
with the application in our CMDB application deployment system. DFW cleans this ipset automatically.
• Example 2: Authorized users wants to blackhole an application without stopping / shutting it down
• Shutting down an application corrupts memory state, which could be useful for developers to debug. Adding
destination port 9000 into this ipset allows the application to remain online, but reject all incoming requests.
• Example 3: Deployment actions
• Chicken and egg – DFW depends on application deployment system to determine mapping to servers. At
deployment time, a ipset gets modified to immediately whitelist the traffic. DFW cleans this ipset
IPTABLES RULES REFERENCE TYPICALLY EMPTY IPSETS, EXPECTING HUMAN
INPUT.
References:
• Altair Network Design: https://www.slideshare.net/shawnzandi/linkedin-openfabric-project-
interop-2017
• Eng blog post on Altair: https://engineering.linkedin.com/blog/2016/03/project-altair--the-
evolution-of-linkedins-data-center-network
• Programmable Data Center: https://engineering.linkedin.com/blog/2017/03/linkedin_s-approach-
to-a-self-defined-programmable-data-center
• Facebook’s Spine and Leaf: https://code.facebook.com/posts/360346274145943/introducing-
data-center-fabric-the-next-generation-facebook-data-center-network/
• Facebook’s Spine and Leaf: https://www.youtube.com/watch?v=mLEawo6OzFM
• Milton from Office Space: http://www.imdb.com/title/tt0151804/
Q/A session
Production ready implementation / Demo the technology:
Zener: https://www.zener.io/lisa17
BOF: Distributed, Software Defined Security in the Modern Data Center
Thursday, November 2, 9:00 pm–10:00 pm, Marina Room
LinkedIn: https://www.linkedin.com/in/mikesvoboda
2017 - LISA - LinkedIn's Distributed Firewall (DFW)
1 of 43

Recommended

Performance Tuning RocksDB for Kafka Streams’ State Stores by
Performance Tuning RocksDB for Kafka Streams’ State StoresPerformance Tuning RocksDB for Kafka Streams’ State Stores
Performance Tuning RocksDB for Kafka Streams’ State Storesconfluent
699 views55 slides
Hadoop Overview & Architecture by
Hadoop Overview & Architecture  Hadoop Overview & Architecture
Hadoop Overview & Architecture EMC
64.6K views91 slides
Introduction to the Disruptor by
Introduction to the DisruptorIntroduction to the Disruptor
Introduction to the DisruptorTrisha Gee
68.6K views48 slides
Getting IPv6 & Securing your Routing by
Getting IPv6 & Securing your RoutingGetting IPv6 & Securing your Routing
Getting IPv6 & Securing your RoutingRIPE NCC
9.2K views98 slides
Couchbase 101 by
Couchbase 101 Couchbase 101
Couchbase 101 Dipti Borkar
1.3K views47 slides
LMAX Architecture by
LMAX ArchitectureLMAX Architecture
LMAX ArchitectureStephan Schmidt
16.1K views44 slides

More Related Content

What's hot

Apache Flink and what it is used for by
Apache Flink and what it is used forApache Flink and what it is used for
Apache Flink and what it is used forAljoscha Krettek
1.4K views22 slides
[215]네이버콘텐츠통계서비스소개 김기영 by
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영NAVER D2
7.1K views66 slides
Improving Data Locality for Spark Jobs on Kubernetes Using Alluxio by
Improving Data Locality for Spark Jobs on Kubernetes Using AlluxioImproving Data Locality for Spark Jobs on Kubernetes Using Alluxio
Improving Data Locality for Spark Jobs on Kubernetes Using AlluxioAlluxio, Inc.
1.8K views30 slides
Apache flink by
Apache flinkApache flink
Apache flinkpranay kumar
417 views50 slides
Intro to Graph Databases Using Tinkerpop, TitanDB, and Gremlin by
Intro to Graph Databases Using Tinkerpop, TitanDB, and GremlinIntro to Graph Databases Using Tinkerpop, TitanDB, and Gremlin
Intro to Graph Databases Using Tinkerpop, TitanDB, and GremlinCaleb Jones
42.5K views69 slides
Druid: Sub-Second OLAP queries over Petabytes of Streaming Data by
Druid: Sub-Second OLAP queries over Petabytes of Streaming DataDruid: Sub-Second OLAP queries over Petabytes of Streaming Data
Druid: Sub-Second OLAP queries over Petabytes of Streaming DataDataWorks Summit
3.4K views59 slides

What's hot(20)

Apache Flink and what it is used for by Aljoscha Krettek
Apache Flink and what it is used forApache Flink and what it is used for
Apache Flink and what it is used for
Aljoscha Krettek1.4K views
[215]네이버콘텐츠통계서비스소개 김기영 by NAVER D2
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영
NAVER D27.1K views
Improving Data Locality for Spark Jobs on Kubernetes Using Alluxio by Alluxio, Inc.
Improving Data Locality for Spark Jobs on Kubernetes Using AlluxioImproving Data Locality for Spark Jobs on Kubernetes Using Alluxio
Improving Data Locality for Spark Jobs on Kubernetes Using Alluxio
Alluxio, Inc.1.8K views
Intro to Graph Databases Using Tinkerpop, TitanDB, and Gremlin by Caleb Jones
Intro to Graph Databases Using Tinkerpop, TitanDB, and GremlinIntro to Graph Databases Using Tinkerpop, TitanDB, and Gremlin
Intro to Graph Databases Using Tinkerpop, TitanDB, and Gremlin
Caleb Jones42.5K views
Druid: Sub-Second OLAP queries over Petabytes of Streaming Data by DataWorks Summit
Druid: Sub-Second OLAP queries over Petabytes of Streaming DataDruid: Sub-Second OLAP queries over Petabytes of Streaming Data
Druid: Sub-Second OLAP queries over Petabytes of Streaming Data
DataWorks Summit3.4K views
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016 by DataStax
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
DataStax9.4K views
Spark SQL Adaptive Execution Unleashes The Power of Cluster in Large Scale wi... by Databricks
Spark SQL Adaptive Execution Unleashes The Power of Cluster in Large Scale wi...Spark SQL Adaptive Execution Unleashes The Power of Cluster in Large Scale wi...
Spark SQL Adaptive Execution Unleashes The Power of Cluster in Large Scale wi...
Databricks3.1K views
Data Stream Processing with Apache Flink by Fabian Hueske
Data Stream Processing with Apache FlinkData Stream Processing with Apache Flink
Data Stream Processing with Apache Flink
Fabian Hueske4.3K views
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink... by HostedbyConfluent
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...
HostedbyConfluent669 views
Data Analyse Black Horse - ClickHouse by Jack Gao
Data Analyse Black Horse - ClickHouseData Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouse
Jack Gao1.4K views
Flexible and Real-Time Stream Processing with Apache Flink by DataWorks Summit
Flexible and Real-Time Stream Processing with Apache FlinkFlexible and Real-Time Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache Flink
DataWorks Summit2.2K views
Twitter's Real Time Stack - Processing Billions of Events Using Distributed L... by Karthik Ramasamy
Twitter's Real Time Stack - Processing Billions of Events Using Distributed L...Twitter's Real Time Stack - Processing Billions of Events Using Distributed L...
Twitter's Real Time Stack - Processing Billions of Events Using Distributed L...
Karthik Ramasamy4.4K views
Whoops, The Numbers Are Wrong! Scaling Data Quality @ Netflix by DataWorks Summit
Whoops, The Numbers Are Wrong! Scaling Data Quality @ NetflixWhoops, The Numbers Are Wrong! Scaling Data Quality @ Netflix
Whoops, The Numbers Are Wrong! Scaling Data Quality @ Netflix
DataWorks Summit1.3K views
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022) by Lucas Jellema
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Lucas Jellema371 views
QGIS server: the good, the not-so-good and the ugly by Ross McDonald
QGIS server: the good, the not-so-good and the uglyQGIS server: the good, the not-so-good and the ugly
QGIS server: the good, the not-so-good and the ugly
Ross McDonald8.4K views
Apache Tez - A New Chapter in Hadoop Data Processing by DataWorks Summit
Apache Tez - A New Chapter in Hadoop Data ProcessingApache Tez - A New Chapter in Hadoop Data Processing
Apache Tez - A New Chapter in Hadoop Data Processing
DataWorks Summit18.3K views
Apache Hadoop and HBase by Cloudera, Inc.
Apache Hadoop and HBaseApache Hadoop and HBase
Apache Hadoop and HBase
Cloudera, Inc.36.7K views
Intro ProxySQL by I Goo Lee
Intro ProxySQLIntro ProxySQL
Intro ProxySQL
I Goo Lee1.7K views

Similar to 2017 - LISA - LinkedIn's Distributed Firewall (DFW)

Introduction to SDN by
Introduction to SDNIntroduction to SDN
Introduction to SDNMuhammad Moinur Rahman
272 views64 slides
Distributech_Presentation DTECH_2013 by
Distributech_Presentation DTECH_2013Distributech_Presentation DTECH_2013
Distributech_Presentation DTECH_2013Dorian Hernandez
418 views22 slides
Gab 2015 aymeric weinbach azure iot by
Gab   2015 aymeric weinbach azure iot Gab   2015 aymeric weinbach azure iot
Gab 2015 aymeric weinbach azure iot Aymeric Weinbach
3.8K views34 slides
Introduction to Software Defined Networking (SDN) by
Introduction to Software Defined Networking (SDN)Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)Bangladesh Network Operators Group
17.3K views58 slides
Introductionto SDN by
Introductionto SDN Introductionto SDN
Introductionto SDN Md. Shariful Islam Robin
380 views58 slides
LinkedIn OpenFabric Project - Interop 2017 by
LinkedIn OpenFabric Project - Interop 2017LinkedIn OpenFabric Project - Interop 2017
LinkedIn OpenFabric Project - Interop 2017Shawn Zandi
4.9K views55 slides

Similar to 2017 - LISA - LinkedIn's Distributed Firewall (DFW)(20)

Distributech_Presentation DTECH_2013 by Dorian Hernandez
Distributech_Presentation DTECH_2013Distributech_Presentation DTECH_2013
Distributech_Presentation DTECH_2013
Dorian Hernandez418 views
Gab 2015 aymeric weinbach azure iot by Aymeric Weinbach
Gab   2015 aymeric weinbach azure iot Gab   2015 aymeric weinbach azure iot
Gab 2015 aymeric weinbach azure iot
Aymeric Weinbach3.8K views
LinkedIn OpenFabric Project - Interop 2017 by Shawn Zandi
LinkedIn OpenFabric Project - Interop 2017LinkedIn OpenFabric Project - Interop 2017
LinkedIn OpenFabric Project - Interop 2017
Shawn Zandi4.9K views
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014 by SAMeh Zaghloul
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
SAMeh Zaghloul18.1K views
Ccna 4 Chapter 1 V4.0 Answers by ccna4discovery
Ccna 4 Chapter 1 V4.0 AnswersCcna 4 Chapter 1 V4.0 Answers
Ccna 4 Chapter 1 V4.0 Answers
ccna4discovery2.3K views
OVNC 2015-Software-Defined Networking: Where Are We Today? by NAIM Networks, Inc.
OVNC 2015-Software-Defined Networking: Where Are We Today?OVNC 2015-Software-Defined Networking: Where Are We Today?
OVNC 2015-Software-Defined Networking: Where Are We Today?
Helen Tabunshchyk "Handling large amounts of traffic on the Edge" by Fwdays
Helen Tabunshchyk "Handling large amounts of traffic on the Edge"Helen Tabunshchyk "Handling large amounts of traffic on the Edge"
Helen Tabunshchyk "Handling large amounts of traffic on the Edge"
Fwdays167 views
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir... by Radisys Corporation
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys Corporation3.4K views
ICS Security 101 by Sandeep Singh by OWASP Delhi
ICS Security 101 by Sandeep SinghICS Security 101 by Sandeep Singh
ICS Security 101 by Sandeep Singh
OWASP Delhi1.6K views
OWASP Appsec USA 2014 Talk "Pwning the Pawns with Wihawk" Santhosh Kumar by Santhosh Kumar
OWASP Appsec USA 2014 Talk "Pwning the Pawns with Wihawk" Santhosh Kumar OWASP Appsec USA 2014 Talk "Pwning the Pawns with Wihawk" Santhosh Kumar
OWASP Appsec USA 2014 Talk "Pwning the Pawns with Wihawk" Santhosh Kumar
Santhosh Kumar1.1K views
LTE Testing by Ixia
LTE TestingLTE Testing
LTE Testing
Ixia1.6K views
6° Sessione VMware NSX: la piattaforma di virtualizzazione della rete per il ... by Jürgen Ambrosi
6° Sessione VMware NSX: la piattaforma di virtualizzazione della rete per il ...6° Sessione VMware NSX: la piattaforma di virtualizzazione della rete per il ...
6° Sessione VMware NSX: la piattaforma di virtualizzazione della rete per il ...
Jürgen Ambrosi651 views
Automated Deployment and Management of Edge Clouds by Jay Bryant
Automated Deployment and Management of Edge CloudsAutomated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge Clouds
Jay Bryant104 views
Nozomi Networks SCADAguardian - Data-Sheet by Nozomi Networks
Nozomi Networks SCADAguardian - Data-SheetNozomi Networks SCADAguardian - Data-Sheet
Nozomi Networks SCADAguardian - Data-Sheet
Nozomi Networks1.6K views

Recently uploaded

Unit 1_Lecture 2_Physical Design of IoT.pdf by
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdfStephenTec
12 views36 slides
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...Jasper Oosterveld
18 views49 slides
PRODUCT LISTING.pptx by
PRODUCT LISTING.pptxPRODUCT LISTING.pptx
PRODUCT LISTING.pptxangelicacueva6
14 views1 slide
AMAZON PRODUCT RESEARCH.pdf by
AMAZON PRODUCT RESEARCH.pdfAMAZON PRODUCT RESEARCH.pdf
AMAZON PRODUCT RESEARCH.pdfJerikkLaureta
26 views13 slides
Scaling Knowledge Graph Architectures with AI by
Scaling Knowledge Graph Architectures with AIScaling Knowledge Graph Architectures with AI
Scaling Knowledge Graph Architectures with AIEnterprise Knowledge
30 views15 slides
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
85 views32 slides

Recently uploaded(20)

Unit 1_Lecture 2_Physical Design of IoT.pdf by StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec12 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
AMAZON PRODUCT RESEARCH.pdf by JerikkLaureta
AMAZON PRODUCT RESEARCH.pdfAMAZON PRODUCT RESEARCH.pdf
AMAZON PRODUCT RESEARCH.pdf
JerikkLaureta26 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson85 views
Serverless computing with Google Cloud (2023-24) by wesley chun
Serverless computing with Google Cloud (2023-24)Serverless computing with Google Cloud (2023-24)
Serverless computing with Google Cloud (2023-24)
wesley chun11 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst478 views
HTTP headers that make your website go faster - devs.gent November 2023 by Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn22 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana16 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software263 views

2017 - LISA - LinkedIn's Distributed Firewall (DFW)

  • 1. Distributed Firewall (DFW) Mike Svoboda Sr. Staff Engineer, Production Infrastructure Engineering LinkedIn: https://www.linkedin.com/in/mikesvoboda/
  • 2. Agenda for today’s discussion Slides 5-8 Problem 1: Moving machines around in the datacenter to create a DMZ Slides 11-29 Problem 2: Horizontal vs Vertical Network design Slides 30-40 What is Distributed Firewall? Slide 42 References Q/A Session
  • 3. What Motivated LinkedIn to create DFW?
  • 4. Problem 1: Moving machines around in the datacenter to create DMZ
  • 5. Script Kiddie Hacking: Easy network attack vectors • Port Scanning – What is the remote device responding to? • Enumeration- Gather information about services running on the target machine • Data Extraction- Pull as much valuable information from the remote service as possible
  • 6. Wake up call! PHYSICALLY MOVING MACHINES IN THE DATACENTER DOESN’T SCALE! • Providing additional layers of network security to an application requires either physically moving machines around in the datacenter, or rewire network cables to create DMZs. • DFW to complement existing network firewall ACL systems, not replace it. • Additional layer of security in our infrastructure to complement existing systems. How can we respond? Move the machines into a DMZ behind a network firewall, limiting network connectivity?
  • 7. Production Network Security TREAT THE PRODUCTION NETWORK AS IF IT’S THE PUBLIC INTERNET. • Milton in the finance department clicked on a bad email attachment and now has malware on his workstation. Thanks Milton, appreciate that. • Milton’s workstation resides inside the internal office network, which has the ability to connect to application resources in Staging, Q/A, or Production servers. • Milton is one employee out of thousands.
  • 8. Production Network Security TREAT THE PRODUCTION NETWORK AS IF IT’S THE PUBLIC INTERNET. • The hacker who has control of Milton’s machine was able to exploit one application out of thousands, and now has full production network access. • The hacker can take their time analyzing various production services, probing what responds to API calls. • What are the details behind the Equifax leak(s)?
  • 9. Problem 2: Horizontal vs. Vertical Network Design
  • 10. The Vertical Network Architecture • Big iron switches deployed at the entry point of the datacenter with uplink access to LinkedIn’s internal networks. • More big iron switches at the second and their tier of the network. • This image is a logical representation, at minimum, 1k servers, upwards of 5k. DATACENTER CLUSTERS PER ENVIRONMENT
  • 11. The Vertical Network Architecture • Each packet between environments has to flow through thousands of rules before hitting a match. • Firewall admin has to fit the entire security model into their brain. This is error prone and difficult to update. • TCAM tables are stored in hardware silicon. We’re limited on the complexity that can be enforced. • Hardware ASICs are fast, but expensive! Deploying big iron costs millions of dollars! DATACENTER CLUSTERS PER ENVIRONMENT
  • 12. The Vertical Network Architecture • Traffic shifts become problematic, as not all ACLs exists in every CRT. • TCAM tables can only support complexity of the environment they host, not all “PROD” ACLs. It could support the “PROD1” logical implementation of linkedin.com, but not “PROD2” and “PROD3” application fabrics. • Human cost of hand maintaining per-application CRT ACLs rises exponentially. MULTIPLE CLUSTERS PER DATACENTER
  • 13. The Horizontal Network Architecture • Instead of scaling vertically, scale horizontally using interconnected pods. Ofter multiple paths for machines to communicate with each other. • Allow datacenter engineering to maximize resources • The “cluster” is too large of a deployment. Sometimes we need to add capacity to an environment down to the cabinet level BUILD PODS INSTEAD OF CLUSTERS
  • 14. 1 Present: Altair Design Pod 1 ToRX ToR32ToRYToR1 Pod X ToRX ToR32ToRYToR1 Pod Y ToRX ToR32ToRYToR1 Pod 64 ToRX ToR32ToRYToR1 Leaf4Leaf3Leaf2Leaf1Leaf4Leaf3Leaf2Leaf1Leaf4Leaf3Leaf2Leaf1Leaf4Leaf3Leaf2Leaf1 Spine32SpineYSpineXSpine1 Spine1 SpineX SpineY Spine32 Spine1 SpineX SpineY Spine32Spine32SpineYSpineXSpine1 ToR Leaf Spine True 5 Stage Clos Architecture (Maximum Path Length: 5 Chipsets to Minimize Latency) Moved complexity from big boxes to our advantage, where we can manage and control! Single SKU - Same Chipset - Uniform IO design (Bandwidth, Latency and Buffering) Dedicated control plane, OAM and CPU for each ASIC
  • 15. Non-Blocking Parallel Fabrics 1 Fabric 4 Fabric 3 Fabric 2 Fabric 1 ToR ServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServer ToR ServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServer
  • 23. Tier 1 ToR - Top of the Rack Broadcom Tomahawk 32x 100G 10/25/50/100G Attachement Regular Server Attachement 10G Each Cabinet: 96 Dense Compute units Half Cabinet (Leaf-Zone) 48x 10G port for servers + 4 uplinks of 50G Full Cabinet: 2x Single ToR Zones: 48 + 48 = 96 Servers 2 Project Falco ToR Server Leaf Spine Spine Leaf Leaf Leaf Spine Spine
  • 24. Tier 2 Leaf Broadcom Tomahawk 32x 100G Non-Blocking Topology: 32x downlinks of 50G to serve 32 ToR 32x uplinks of 50G to provide 1:1 Over-subscription 2 Project Falco ToR Server Leaf Spine Spine Leaf Leaf Leaf Spine Spine
  • 25. Tier 3 Spine Broadcom Tomahawk 32x 100G Non-Blocking Topology: 64 downlinks to provide 1:1 Over-subscription To serve 64 pods (each pod 32 ToR) 100,000 Servers: Each pod (Approximately 1550 Compute) 2 Project Falco ToR Server Leaf Spine Spine Leaf Leaf Leaf Spine Spine
  • 27. 2 Simplifying the picture Fabric1..4 Spine1 Leaf 129..132 ToR 1025 Leaf 1..4 ToR 1
  • 29. Where do we put the Firewall in this architecture? • Since we’ve scaled the network horizontally, there’s no “choke point” like we had with the vertical network architecture • We want to be able to mix / match security zones in the same rack to maximize space / power • We want to have a customized security profile, down to the per server or container (network namespace) that is unique for the deployed applications. • Reject any requests from less trusted zones to hitting anything in PROD by default without defined ACLs.
  • 30. What is Distributed Firewall (DFW)?
  • 31. What is DFW? • Software Defined Networking (SDN) • The applications deployed to the machine / container create a unique security profile. • Deny incoming by default. Allow all loopback. Allow all outbound. • Whitelist incoming application ports to accept connections from the same security zone • Cross security zone communication requires human created ACLs based on our Topology application deployment system • As deployment actions happen across the datacenter, host based firewalls detect these conditions and update their rulesets accordingly. • The underlying firewall implementation is irrelevant • Currently using ipfilter (iptables) and nftables on Linux, but could expand to ipf, pf, Windows, etc.
  • 32. Advantages of DFW • Fully distributed. More network I/O throughput, CPU horsepower, scales linearly. • Datacenter space is fully utilized and physical network flattened. Logical network is quite different. • The VLANs the top-of-rack switch exposes determine the security zones the attached machines belong to, not the massive vertical network cluster. Multiple security zones co- located in the same rack. New security zones trivial to create. • Only expose the network ports defined in our CMDB application deployment system • Further limit accessibility to the network ports via upstream consumers by consuming the application call graph. • Able to canary / ramp ACL changes down to the per host or container, no big bang modifications required.
  • 33. Advantages of DFW • Each node contains a small subset of rules vs. the CRT network firewall containing tens of thousands. • Authorized users can modify the firewall on-demand without disabling it. • Communicate keep-alive executions and notify if a machine stops executing DFW. (hardware failure, etc.) • ACL complexity is localized to the service that requires it.
  • 34. New Business Capabilities • Pre-security zone. Functionality that only host based firewalls could provide: • Blackhole: Take an application listening on port 11016 from taking any traffic, or block specific upstream consumers. • QoS: sshd and Zookeeper network traffic should get priority over Apache Kafka network I/O • Pinhole: Based on the callgraph, only allow upstream consumers to access my application on port 11016
  • 35. New Business Capabilities • Decommission datacenters in a controlled manner • Allow authorized users to keep applications online, with DFW rejecting all inbound / outbound application traffic. Allow SSH / sudo / infrastructure services to stay online. • Conntrackd data exposed • IPv6 support comes for free! • Using ipset list:sets, every rule in DFW is written referencing the IPv4 and IPv6 ip addresses / netblocks in parallel. As the company shifts from IPv4 to IPv6 and new AAAA records come online, DFW automatically inserts these addresses and the firewalls permit the IPv6 traffic.
  • 36. ACLDB • Centralized database that feeds sources of truth by scraping CMDB and delivers JSON data containers to each machine. • JSON containers land on machines via automated file transfers • Intra-security zone communication (What can communicate inside PROD?) • Inter-security zone communication (What is allowed to reach into PROD?)
  • 37. High Level Architecture • Only inbound traffic is filtered. All loopback / outbound traffic will always be immediately passed. • Network security will be enforced by filtering inbound traffic at the known destination. • DFW rejects traffic, we do not drop traffic. The source host knows that its been rejected with a ICMP port unreachable event. • Build safeguards. Don’t firewall off 30k machines and become unrecoverable without pulling power to the whole datacenter.
  • 38. High Level Architecture • Pre-security zone: Functionalities referenced on “new business capabilities slide” • Security zone: Mimic the existing network firewalls, allowing PROD  PROD communication. Rules are written as “accept from any” as we jump into a new iptables chain once the source machine resides in PROD netblocks. • Post security zone: Inter-security zone rules maintained in ACLDB. “Allow 5x machines in ZONE1 to hit 10x machines in PROD… • The rules placed in /etc/sysconfig/iptables and /etc/sysconfig/ip6tables are identical, since they reference list:set ipsets, which in turn reference the necessary IPv4 and IPv6 sub-ipsets.
  • 39. DFW is stateless. Precompute the ruleset, every execution • Every execution of DFW builds the iptables / ipset configuration from scratch, compares to live state in the kernel • Current state of iptables / ipsets does not matter. • Users could flush ruleset, reboot, add or delete entries, destroy or create ipsets. We use auditd to monitor for setsockopt() system calls for unexpected rule insertions. • Next execution of DFW, we converge from whatever current state is to the intended state either scheduled or on discovery of setsockopt() calls. • Debugging is simple. Firewall issues after DFW execution is not from a “previous state issue.” Current state needs a behavior change for things to work. • Whitelist network ports, is the source machine connecting to me in my security zone, or do I need to add a rule in ACLDB to permit the traffic?
  • 40. Work with the humans, not against them • Since automation is constantly enforcing its known good state, we need to plan for emergency situations where Authorized Users has to modify the firewall on demand • Example 1: Authorized users needs to whitelist a network port ASAP to stop an outage • Authorized user adds a destination network port to a specific ipset, which immediately starts whitelisting that traffic within the same security zone (PROD  PROD port 9000). Allows time to register the network port with the application in our CMDB application deployment system. DFW cleans this ipset automatically. • Example 2: Authorized users wants to blackhole an application without stopping / shutting it down • Shutting down an application corrupts memory state, which could be useful for developers to debug. Adding destination port 9000 into this ipset allows the application to remain online, but reject all incoming requests. • Example 3: Deployment actions • Chicken and egg – DFW depends on application deployment system to determine mapping to servers. At deployment time, a ipset gets modified to immediately whitelist the traffic. DFW cleans this ipset IPTABLES RULES REFERENCE TYPICALLY EMPTY IPSETS, EXPECTING HUMAN INPUT.
  • 41. References: • Altair Network Design: https://www.slideshare.net/shawnzandi/linkedin-openfabric-project- interop-2017 • Eng blog post on Altair: https://engineering.linkedin.com/blog/2016/03/project-altair--the- evolution-of-linkedins-data-center-network • Programmable Data Center: https://engineering.linkedin.com/blog/2017/03/linkedin_s-approach- to-a-self-defined-programmable-data-center • Facebook’s Spine and Leaf: https://code.facebook.com/posts/360346274145943/introducing- data-center-fabric-the-next-generation-facebook-data-center-network/ • Facebook’s Spine and Leaf: https://www.youtube.com/watch?v=mLEawo6OzFM • Milton from Office Space: http://www.imdb.com/title/tt0151804/
  • 42. Q/A session Production ready implementation / Demo the technology: Zener: https://www.zener.io/lisa17 BOF: Distributed, Software Defined Security in the Modern Data Center Thursday, November 2, 9:00 pm–10:00 pm, Marina Room LinkedIn: https://www.linkedin.com/in/mikesvoboda

Editor's Notes

  1. This doesn’t scale, and its just one application out of thousands.
  2. A front end application hacked, granting direct network access to backend databases or other application level APIs that pulled from the backend databases? Could isolation of those middle tier API applications or backend databases prevented identity theft? How many thousands / millions of times have there been data leaks at organizations Code is often written just well enough to become operational, or address scaling issues. Security considerations can be a second or third (or lower priority) Script kiddies can access your internal application resources, what can state sponsored hackers do? What can motivated organizations with $$$ do? The highly capable?
  3. Network firewall, on the CRT, is a bottleneck for traffic coming in / out of the datacenter core. All firewall ACLs have to be processed at the CRT
  4. Central single point of failure. Failover to secondary CRT highly impacting to production traffic. Error in ACL promotion can affect thousands of machines behind the CRT!
  5. Each new datacenter facility or “cluster” could trigger thousands of ACL updates on other CRTs.
  6. Power, rack space, cooling, and network is a lot more expensive than the actual machine using it!!! We are wasting millions of dollars in underutilized resources! . We are abandoning space in the datacenter because we only have space for one or two additional cabinets, or have maxed out power / cooling.
  7. Four parallel fabrics each cabinet/rack connects to all for planes thru its 4 leaf switches. They are color coded to understand the connection better.
  8. designed by Charles Clos in 1952, which represents multi-stage telephone switching systems.
  9. and we chose to build our network on top of merchant silicon. a very common strategy for mega scaled data center.
  10. and we chose to build our network on top of merchant silicon. a very common strategy for mega scaled data center.
  11. and we chose to build our network on top of merchant silicon. a very common strategy for mega scaled data center.
  12. Machines from ZONE1, ZONE2, and PROD could all co-exist in the same physical rack, connected to the same TOR Only allow frontend webservers to hit midtier application servers on port 9000, reject all other requests from PROD. Only expose network paths to the APIs your applications provide to the upstream consumers!
  13. Users / hackers can’t spin up netcat or sshd and start listening on some random port. Applications are not exposed to the network until their defined network ports are registered into CMDB. Keeps DEV honest – new traffic flows can’t be introduced unbeknown to Operations without registration.
  14. We wont block legitimate operational tasks. Easily auditable Packets destined for other applications to not have to traverse irrelevant ACLs in network TCAM tables.
  15. Restricts access to an application inside the security zone (No open PROD communication) Each application can create a unique security profile. We aren’t restricted to large concepts like “PROD” security zones or “DMZs”.
  16. Permits immediate rollback in case of unexpected service shutdowns. When machines remain on the network, we retain automation control and auditability. Enhance the callgraph, and monitor incoming connections via conntrackd. No longer limited to expensive / unreliable netstat –an snapshots.
  17. Some data is shared across the entire security zone (Allow bastion hosts to ssh into PROD), others are the unique attributes per machine. Allow machines in ZONE1 access to hit Voldemort in PROD, allow desktops access to SSH to hosts in ZONE2.
  18. Debugging DFW rejections will always happen on the destination node. If we filtered outbound traffic, it becomes too complex to debug rejection events. Application X  Application Y isn’t working. Application Y doesn’t see inbound traffic. I connect to machine Y, not knowing which machines are supposed to send data to it… Where is my traffic being dropped? Somewhere out in PROD? Application X could be hundreds or thousands of machines. Debugging Application X  Application Y becomes simple. There are only two rejection reasons. The source host in Application X doesn’t reside in my security zone. The network port Application Y uses hasn’t been registered with Topology to whitelist the incoming traffic.
  19. Ipsets contain the “why” we accepted or rejected traffic. The rules in the iptables file is the ”high level objective” for what we are trying to achieve. 99.999% of changes are made in the ipsets, not iptables rules. As machines move in / out of applications or netblocks update, IPv6 comes online, ipset membership changes automatically. The IPv6 support simplifies IPv6 migration so we don’t have to burn network firewall TCAM memory space in silicon, duplicating the existing IPv4 ruleset.
  20. Creates “temporary ipsets” and uses ”ipset swap <foo> <tmp_foo>” to promote membership change if not identical. (Adding or removing specific entries not calculated) Ipset swap is atomic. Adding 100x new ip addresses, ports, or netblocks to the firewall is an all-or-nothing operation at one instant. Most change in DFW happens with ipset membership changing, not iptables template file expansion changing. CFEngine template expands iptables / ip6tables and executes iptables-restore < /etc/sysconfig/iptables to enforce in-memory state remains what we expanded.