Cisco – How firewalls differ between traditional networks and SDN

ciscofirewallopenflowsdn

Is there a major difference between stateful firewalls that exist in the traditional networks and those that exist in SDN environment? In other word, do we have some special firewall devices that only work in SDN-based network?

Best Answer

The architecture of SDN prevents stateful in-line processing of packet flows (ignoring using firewall hardware, NFV or experimental stateful switches).

Therefore anything that monitors the state of a flow requires that state to be held by the controller. This causes unacceptable workload for the controller and increases state held across (typically) multiple controllers. Consequently most SDN FW proposals are either static or dynamic packet-filters, for example using a rule checking algorithm before installing FW switch rules.

Take for example, closing a TCP flow. A traditional firewall observes the FIN handshake (2x FIN, 2x ACK) as it happens and closes the firewall on seeing the last ACK packet. Rather that deal with this state, an OpenFlow switch uses a time-out, meaning the firewall hole is left open. An attacker can then use the switches renewal of a time-out to keep the firewall open until the attacker is finished.

For the controller to close the hole, means the controller needs to see the FIN packets (increasing rules in the rule space, possibly buffering in the switch) and the two responding ACKs, but obviously without seeing every ACK in the flow and equally obviously allowing the flow to finish correctly.

Setting up a flow based on seeing a SYN packet or two is easy. Removing a rule so your firewall is in synch with the two end hosts, not so easy using the SDN architecture.

Of course YMMV depending on what you want your SDN packet-filter to do.