New Directions for Network Verification
Aurojit Panda, Katerina Argyraki, Mooly Sagiv, Michael Schapira, Scott Shenker
New Directions for Network Verification Aurojit Panda, Katerina - - PowerPoint PPT Presentation
New Directions for Network Verification Aurojit Panda, Katerina Argyraki, Mooly Sagiv, Michael Schapira, Scott Shenker Brief Summary of This Talk Context : Proliferation of network verification tools. Build on assumption that the
Aurojit Panda, Katerina Argyraki, Mooly Sagiv, Michael Schapira, Scott Shenker
Switch Switch Switch
Alice Bob Trent Mallory
Switch Switch Switch Alice Bob Trent Mallory
Firewall Switch Switch Switch Alice Bob Trent Mallory
Firewall Cache Switch Switch Switch Alice Bob Trent Mallory
Firewall Proxy Cache Switch Switch Switch Alice Bob Trent Mallory
Balancer Firewall Firewall Mallory S1 S2
Balancer Firewall Firewall Mallory S1 S2 Can S2 receive packets of type T from Mallory?
Balancer Firewall Firewall Mallory S1 S2 Can S2 receive “infected” packets from Mallory?
Balancer Firewall Firewall Mallory S1 S2 Can S2 receive packets from Mallory without a connection?
HSA, Veriflow, NetKAT, etc.
HSA, Veriflow, NetKAT, etc.
Vericon, FlowLog, etc.
HSA, Veriflow, NetKAT, etc.
Vericon, FlowLog, etc.
Fang, Margrave, etc.
Switches
Switches
Controllers
Switches
Controllers
Firewalls
Switches
Controllers
Firewalls
Classify Packet
Determines what application sent a packet, etc. Complex, proprietary processing.
Classify Packet Update Packet
Determines what application sent a packet, etc. Complex, proprietary processing. Updating payload is complex (compression, etc.) Updating header is simple (fixed format).
Classify Packet Update State Update Packet
Determines what application sent a packet, etc. Complex, proprietary processing. Could be simple (remember packets)
Updating payload is complex (compression, etc.) Updating header is simple (fixed format).
Classify Packet Update State Update Packet Forward Packet
Determines what application sent a packet, etc. Complex, proprietary processing. Could be simple (remember packets)
Updating payload is complex (compression, etc.) Updating header is simple (fixed format). Always simple: forward or drop packets.
Classify Packet Update State Update Packet Forward Packet
Determines what application sent a packet, etc. Complex, proprietary processing. Could be simple (remember packets)
Updating payload is complex (compression, etc.) Updating header is simple (fixed format). Always simple: forward or drop packets.
Oracle: Specify data dependencies and outputs
Classify Packet Update State Update Packet Forward Packet
Determines what application sent a packet, etc. Complex, proprietary processing. Could be simple (remember packets)
Updating payload is complex (compression, etc.) Updating header is simple (fixed format). Always simple: forward or drop packets.
Oracle: Specify data dependencies and outputs Forwarding Model: Specify Completely
Classify Packet Update State Update Packet Forward Packet Oracle: Specify data dependencies and outputs Forwarding Model: Specify Completely
Classify Packet Update State Update Packet Forward Packet Oracle: Specify data dependencies and outputs Forwarding Model: Specify Completely
Outputs Is packet infected. Dependencies See all packets in connection (flow).
Classify Packet Update State Update Packet Forward Packet Oracle: Specify data dependencies and outputs Forwarding Model: Specify Completely
Outputs Is packet infected. Dependencies See all packets in connection (flow). if (infected) { infected_connections.add(packet.flow) }
Classify Packet Update State Update Packet Forward Packet Oracle: Specify data dependencies and outputs Forwarding Model: Specify Completely
Outputs Is packet infected. Dependencies See all packets in connection (flow). if (packet.flow not in infected_connections) { forward (packet); } if (infected) { infected_connections.add(packet.flow) }
mbox mbox mbox mbox mbox mbox mbox mbox mbox mbox mbox mbox
mbox mbox mbox mbox mbox mbox mbox mbox mbox mbox mbox mbox
mbox mbox mbox mbox mbox mbox mbox mbox mbox mbox mbox mbox
Some pictures taken from the Noun Project
Firewall
Firewall a b b → a ⇐ ⇒ ⌥conn(a → b) a → b ⇐ ⇒ ⌥conn(b → a) conn(a → b) Connection started by a to b. Requires a to send packet to b, and b to respond Can a packet from 'a' reach 'b'?