Linux Bridging: Teaching an old dog new tricks

20
Linux Bridging Linux Bridging Teaching an Old Dog New Tricks Teaching an Old Dog New Tricks Stephen Hemminger Stephen Hemminger [email protected]

description

Overview of upcoming features in Linux bridge

Transcript of Linux Bridging: Teaching an old dog new tricks

Page 1: Linux Bridging: Teaching an old dog new tricks

Linux BridgingLinux Bridging

Teaching an Old Dog New TricksTeaching an Old Dog New Tricks

Stephen HemmingerStephen [email protected]

Page 2: Linux Bridging: Teaching an old dog new tricks

TopicsTopics

● Background● Tunneling● Security● Status

Page 3: Linux Bridging: Teaching an old dog new tricks

Bridge HistoryBridge History

1985 1990

EthernetBridgingInvented

IEEE 802.1d1998

1998

IEEE 802.1d

2000 2004 2005 2012

LinuxBridge

2001

IEEE 802.1d2004

RSTP SPB802.1aq

MSTP802.1s

IGMPSnooping

Page 4: Linux Bridging: Teaching an old dog new tricks

Bridge ForwardingBridge Forwarding

Destination?

ForwardingTable

Output

Flood

Multicast?

IGMPtable

Page 5: Linux Bridging: Teaching an old dog new tricks

Disabled

Root Leaf

Spanning Tree ProtocolSpanning Tree Protocol

BPDU

BPDU

Edge

Page 6: Linux Bridging: Teaching an old dog new tricks
Page 7: Linux Bridging: Teaching an old dog new tricks

TunnelsTunnels

VXLAN2

GuestA

GuestB

GuestC

GuestD

VXLAN1

Bridge1 Bridge2 Bridge1 Bridge2

Page 8: Linux Bridging: Teaching an old dog new tricks

Cloud Tunneling ProtocolsCloud Tunneling Protocols

● VxLan– Arista, Broadcom, Cisco, Vmware, Red Hat

● NVGRE– Microsoft, Intel, Dell, Broadcom, Emulex

● STT– Niciria

Page 9: Linux Bridging: Teaching an old dog new tricks

API flavor'sAPI flavor's

● Ioctl– Compatibility– non-extensible

● Sysfs– Text based

● Netlink– Notifications– TLV format

Page 10: Linux Bridging: Teaching an old dog new tricks

Hw offloadHw offload

● Common netlink API– Forwarding table– monitoring

Page 11: Linux Bridging: Teaching an old dog new tricks

SecuritySecurity

● BPDU guard● BPDU filter● Root port protect● Port locking

Page 12: Linux Bridging: Teaching an old dog new tricks

STP Security IssuesSTP Security Issues

Bridge(core)

Bridge(edge)

GuestVM

Bridge(core)

Page 13: Linux Bridging: Teaching an old dog new tricks

BPDU

Core Bridge

UntrustedHost

BPDU blockedNot sent or received

BPDU FilterBPDU Filter

Page 14: Linux Bridging: Teaching an old dog new tricks

BPDU

Core Bridge

UntrustedHost/Bridge

BPDU

Rogue BPDU!

Link disabled

BPDU GuardBPDU Guard

Page 15: Linux Bridging: Teaching an old dog new tricks

BPDU

Core Bridge

Semi-trustedHost/Bridge

BPDU

BPDUAllowed if

Priority < Root

Root Port ProtectRoot Port Protect

Page 16: Linux Bridging: Teaching an old dog new tricks

Core Bridge

UntrustedGuest

Source AddressMust match

Port lockPort lock

Page 17: Linux Bridging: Teaching an old dog new tricks

Spanning TreeSpanning Tree

● Current– Kernel – 802.1d 1998– Userspace – RSTP daemon

● Goal– Kernel – 802.1d/802.1s– Userspace – SPB or TRILL?

Page 18: Linux Bridging: Teaching an old dog new tricks

StatusStatus

● VXLAN – 3.7● Security – 3.8?● STP update – 3.9??

Page 19: Linux Bridging: Teaching an old dog new tricks

Bridge vs OpenvswitchBridge vs Openvswitch

Ethernet Bridge– Plug and Play– Firewall rules– Integrated

Openvswitch– Table driven– Flexible– Management agent

Page 20: Linux Bridging: Teaching an old dog new tricks

Thank youThank you