270 likes | 281 Views
This article discusses the necessity of routing in Ethernet switched networks and examines the actions taken by bridges when LANs are reachable only in multiple hops or when the path between LANs is not unique. It also explores the danger of loops and offers a solution using spanning trees.
E N D
Need for Routing in Ethernet switched networks • What do bridges do if some LANs are reachable only in multiple hops ? • What do bridges do if the path between two LANs is not unique ?
Danger of Loops • Consider the two LANs that are connected by two bridges. • Assume host n is transmitting a frame F with unknown destination. What is happening? • Bridges A and B flood the frame to LAN 2. • Bridge B sees F on LAN 2 (with unknown destination), and copies the frame back to LAN 1 • Bridge A does the same. • The copying continues Where’s the problem? What’s the solution ?
Spanning Trees • IEEE 802.1 has an algorithm that builds and maintains a spanning tree in a dynamic environment. • Bridges exchange messages to configure the bridge (Configuration Bridge Protocol Data Unit, Configuration BPDUs) to build the tree.
Concept - Bridge ID • Each bridge has a unique identifier (8 bytes): Bridge ID = <priority level + MAC address> Priority level = 2 bytes; Note that a bridge has several MAC addresses (one for each port), but only one ID using the MAC address of the lowest numbered bridge port (port 1) • Each port within a bridge has a unique identifier (port ID). 0:0:1:2:3:5 51:24:68:1f:3:4 Bridge 2 3 1 Priority: 0x12:41 fe:64:96:12:1:3 Example above: Bridge ID = 12:41:fe:64:96:12:1:3
Bridge 3 with ID 0:1:34:1:21:56:19:87 Concept - Root bridge of a network • Root Bridge:The bridge with the lowest identifier is the root of the spanning tree. 1 LAN A Bridge 2 with ID= 6:4:55:4:21:56:19:87 1 LAN B 2 1 Root bridge is bridge 3 since it has the smallest ID Bridge 1 with ID= 4:1:21:1:21:56:19:87
Concept - For each bridge • Root Port: Each bridge has a root port which identifies the next hop from a bridge to the root. • Root Path Cost: For each bridge, the cost of the min-cost path to the root • Example on previous slide: What is the root port and root path cost of bridge 1: • The root port is port 2 since it leads to the root bridge (bridge 3) • The root path cost is 1 since bridge 1 is one hop away from the root bridge (I.e., bridge 3). • Note: We assume that “cost” of a path is the number of “hops”.
Concept - For each LAN • Designated Bridge, Designated Port:Single bridge on a LAN that provides the minimal cost path to the root for this LAN, and the port on this minimal cost path • if two bridges have the same cost, select the one with highest priority (lower bridge ID) • if the min-cost bridge has two or more ports on the LAN, select the port with the lowest identifier • Example on slide 25: for LAN A, the designated bridge is bridge 3 since it is the root bridge itself; port 1 is the designated port; for LAN B, the designated bridge is bridge 1 since this is closer to the root bridge than bridge 2. The designated port is port 1.
Concept - Designated bridge/port • Even though each LAN is the entity that has a designated bridge/designated port, it is each bridge that determines whether or not it is the designated bridge for the LAN on each of its ports. • Example: Bridge 1 in the example on slide 25 determines whether it is the designated bridge for LAN A (to which its port 2 is connected) and for LAN B (to which its port 1 is connected). • Answer in this case is that bridge 1 is the designated bridge for LAN B, but it is not the designated bridge for LAN A
Steps of Spanning Tree Algorithm 1. Determine the root bridge of the whole network 2. For all other bridges determine root ports 3. For all bridges, determine which of the bridge ports are designated ports for their corresponding LANs • The spanning tree consists of all the root ports and the designated ports. • These ports are all set to the “forwarding state,” while all other ports are in a “blocked state.”
What we just did • We just determined the spanning tree for a network of LANs and bridges in a “centralized manner.” • We knew the bridge IDs of all the bridges and the port IDs of all the ports in all the bridges. • We determined the root bridge (the bridge with the smallest ID.) • For each bridge, we determined the shortest path to the root by counting hops and thus identified the root port. • For each bridge, we determined which of its ports are designated ports for each of its LANs • However, the network of bridges determines the spanning tree in a “distributed manner” - each with limited knowledge. • This is done using messages called BPDUs.
How do the bridges determine the spanning tree? With the help of the BPDUs, bridges can: • Elect a single bridge as the root bridge. • Each bridge can determine: • a root port, the port that gives the best path to the root. • And the corresponding root path cost • Each bridge determines whether it is a designated bridge, for the LANs connected to each of its ports. The designated bridge will forward packets towards the root bridge. • Select ports to be included in the spanning tree. • Root ports and designated ports
root ID cost bridge ID/port ID root bridge (what the sender thinks it is) root path cost for sending bridgeIdentifies sending bridge Identifies port on which this BPDU is sent Short form notation for BPDUs • Each bridge sends out BPDUs that contain the following information:
Ordering of Messages • We can order BPDU messages with the following ordering relation ““: If (R1 < R2) M1 M2 elseif ((R1 == R2) and (C1 < C2)) M1 M2 elseif ((R1 == R2) and (C1 == C2) and (B1 < B2)) M1 M2 M1 M2 ID R1 C1 ID B1 ID R2 C2 ID B2
Determine the Root Bridge • Initially, all bridges assume they are the root bridge. • Each bridge B sends BPDUs of this form on its LANs: • Each bridge looks at the BPDUs received on all its ports and its own transmitted BPDUs. • Root bridge is the smallest received root ID that has been received so far (Whenever a smaller ID arrives, the root is updated) B 0 B
Calculate the Root Path CostDetermine the Root Port • At this time: A bridge B has a belief of who the root is, say R. • Bridge B determines the Root Path Cost (Cost) as follows: • If B = R : Cost = 0. • If B R: Cost = {Smallest Cost in any of BPDUs that were received from R} + 1 • B’s root port is the port from which B received the lowest cost path to R (in terms of relation ““). • Knowing R and Cost, B can generate its BPDU (but will not necessarily send it out): R Cost B
Determine if the bridge is the designated bridge for any of the LANs connected to its ports • At this time: B has generated its BPDU • B will send this BPDU on one of its ports, say port x, only if its BPDU is lower (via relation ““) than any BPDU that B received from port x. • In this case, B also assumes that it is the designated bridge for the LAN to which the port connects. R Cost B
Selecting the Ports for the Spanning Tree • At this time: Bridge B has calculated the root bridge for the network, its root port, root path cost, and whether it is the designated bridge for each of its LANs. • Now B can decide which ports are in the spanning tree: • B’s root port is part of the spanning tree • All ports for which B is the designated bridge are part of the spanning tree. • B’s ports that are in the spanning tree will forward packets (=forwarding state) • B’s ports that are not in the spanning tree will block packets (=blocking state)
Consider the network on the right. Assume that the bridges have calculated the designated ports (D) and the root ports (R) as indicated. What is the spanning tree? Building the Spanning Tree
Adapting to Changes • Bridges continually exchange BPDU’s according to the rules we just discussed. • This allows the bridges to adapt to changes to the topology. • Whenever a BPDU arrives on a port, say port x, B bridge determines: • Can B become the designated bridge for the LAN that port x is attached to? • Can port x become the root port?
Example 1 Assume a Bridge with ID 18 has received the following as the lowest messages on its 4 ports: Root is 12 85 +1 = 86 Port 2 12.86.18 For Ports 1,3, 4 What is the root? What is the Root Path Cost? What is the root port? What is 18’s configuration BPDU? For which LAN (port), if any, is B the designated bridge?
Example 2 (Practice - Solution in Exercises) Assume a Bridge with ID 3 is receiving the following as the lowest messages on its five ports: What is the root? What is the Root Path Cost? What is the root port ? What is 3’s configuration BPDU? For which LAN (port), if any, is B the designated bridge ?
The attached network shows 5 LANs that are interconnected by 5 bridges. The ID’s of the bridges are 1,2,3,4,5 and the port ID’s are as indicated in the figure. The bridges run the spanning tree algorithm. Assume that the root cost path is the number of hops. Assume an initial state. Show which messages are exchanged until the tree is built. Network Example (Practice - Solution in Exercises)
Interesting cases • If two min-cost BPDUs received at a bridge on two different ports are equal in the root ID, root path cost and sending bridge ID, and the root ID is the smallest of the root Ids on all previously received BPDUs, then the designated ports for the LANs corresponding to the two ports on which the two BPDUs are received are compared. The smaller one of these (which will have the higher priority) will be chosen. The port on the bridge receiving these BPDUs which is on the LAN of this selected designated port is the root port of the bridge. • Ref: Section 4.5.3.3 (page 53) of the IEEE 802.1D specification.
Example • Bridge 2 receives two BPDUs [1,0,1] on both its ports 3 and 4 • The designated port for LAN A is port 1 on bridge 1 • The designated port for LAN B is port 2 on bridge 1 • Since port 1 is lower than port 2, it has higher priority. • Hence port 4 is the root port.
Another case • Furthermore, section 4.5.3.3 of IEEE 802.1D states that if even the designated ports of the LANs corresponding to the ports on which a bridge receives the same BPDUs are the same, then look at the port numbers on the bridge itself at which these BPDUs are received and select the lower one to be the root port.
Example • Ports 4 and 2 of bridge 2 are on LAN A. They will both receive BPDU [1,0,1] from bridge 1. The designated port for LAN A is port 1 on bridge 1. So even the designated ports are the same. Hence choose between ports 2 and 4 by selecting the lower one, which is port 2 as the root port.
Priority • Finally, see pg 102 of the spec, section 5.2.5. It states that the ”Two bridge identifiers when compared numerically, the lesser number shall denote the bridge of the higher priority."