<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4930996102809526927</id><updated>2012-01-24T21:40:50.329-08:00</updated><category term='OSPF'/><category term='IPv6'/><category term='L3VPN'/><category term='LDP'/><category term='DC News'/><category term='Vanilla L2'/><category term='RSVP'/><category term='BGP'/><category term='Hardware'/><category term='ISIS'/><category term='L2VPN'/><category term='MPLS architecture'/><category term='TRILL'/><category term='DC Networking'/><title type='text'>Pseudorandom thoughts</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>54</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-4086524628914102775</id><published>2011-12-02T04:37:00.001-08:00</published><updated>2011-12-02T04:45:06.283-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DC Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='TRILL'/><title type='text'>ISIS : rBridge Nicknames</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Every rBridge in the rBridge campus must have a unique nickname. Incase two campuses are merged resulting in same nicknames for multiple bridges, then it must reconverge to using unique names again.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Nicknames can be configured or selected dynamically.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Nickname value of 0x0000 and those between 0xFFC0 and 0xFFFF are reserved and must not be used for rBridges.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Nicknames are carried in ISIS TLVs along with a priority of use field. The priority is an unsigned 8 bit value where the most significant bit (0x80) indicates that it has been configured. Default value in botton 7 bits is 0x40.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;In the case of dynamic nicknames, they can be generated randomly and also reused across reboots. Incase of a collision, the bridge with the higher ISIS ID gets to keep its nickname. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Normally each rBridge has a single nickname. But it may be configured to request multiple nicknames. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Each multi-destination tree has its own nickname. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-4086524628914102775?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/4086524628914102775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/12/isis-rbridge-nicknames.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4086524628914102775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4086524628914102775'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/12/isis-rbridge-nicknames.html' title='ISIS : rBridge Nicknames'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-4024943448475788393</id><published>2011-12-02T02:07:00.001-08:00</published><updated>2011-12-02T04:28:34.807-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DC Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='TRILL'/><title type='text'>TRILL : Packet</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;TRILL Packet&lt;/em&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/-X_f6ZLkxQIk/TtijVkMDl9I/AAAAAAAAGY0/amhz3niW2WY/s1600/TRILL+pformat.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="131" src="http://4.bp.blogspot.com/-X_f6ZLkxQIk/TtijVkMDl9I/AAAAAAAAGY0/amhz3niW2WY/s400/TRILL+pformat.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After TRILL encapsulation, the frame is encoded as a normal Ethernet frame with the DA belonging to the next transit/egress rBridge and SA as the sender MAC address. The Outer VLAN is not mandatory and depends on the port configuration. Incase there are non-TRILL bridges in transit, for them the TRILL packet is completely transparent and they can transparently bridge the frame. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;TRILL Header&lt;/em&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/-A-0qznd45uA/Ttikk4oAJtI/AAAAAAAAGY8/vV-pO2H719I/s1600/TRILL+Header.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="77" src="http://1.bp.blogspot.com/-A-0qznd45uA/Ttikk4oAJtI/AAAAAAAAGY8/vV-pO2H719I/s400/TRILL+Header.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;TRILL Ethertype indicates the type of payload. &lt;br /&gt;V = Version (2 bits)&lt;br /&gt;R = Reserved (2 bits)&lt;br /&gt;M = Multi-destination (1 bit)&lt;br /&gt;OpLng = Length of trill options&lt;br /&gt;Hop = TTL&lt;br /&gt;Nicknames = 16 bit values designating the ingress and egress rBridges. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-4024943448475788393?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/4024943448475788393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/12/trill-packet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4024943448475788393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4024943448475788393'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/12/trill-packet.html' title='TRILL : Packet'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-X_f6ZLkxQIk/TtijVkMDl9I/AAAAAAAAGY0/amhz3niW2WY/s72-c/TRILL+pformat.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-1411441958321129595</id><published>2011-12-01T20:47:00.001-08:00</published><updated>2011-12-02T02:06:00.659-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DC Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='TRILL'/><title type='text'>TRILL overview</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Introduction&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;TRILL is Transparent Interconnection of a lot of links. It is a IEEE standard for doing routing in layer 2 using a link state protocol such as ISIS. The forwarding unit in a TRILL network is called an RBridge (Routing Bridge) and a collection of RBridges operating in tandem is called an RBridge Campus.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Main benefits of TRILL&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Can reduce the spanning tree domain or completely eliminate it in a large L2 environment.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Based on link state routing and supports multi-pathing.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Prevents need for MAC learning in the transit nodes.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Extensible as its based on ISIS.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Gives an option of TTL (hop count) to prevent endless looping&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;em&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Packet flow&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-S-0wIbOTK8Q/TthctORtsII/AAAAAAAAGYs/f-qUc62wAgI/s1600/TRILL+packet.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="203" src="http://1.bp.blogspot.com/-S-0wIbOTK8Q/TthctORtsII/AAAAAAAAGYs/f-qUc62wAgI/s400/TRILL+packet.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;When a native Ethernet (or in future extensible to other L2 technologies) frame either with a 802.1Q VLAN header or without it, enters a TRILL cloud at some ingress rBridge (say RB1), it is encapsulated in a TRILL header and "routed" through the cloud on its way to the egress rBridge (say RB3), provided the egress rBridge for that particular destination MAC address is known.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The routing within the cloud (say at RB5) happens only based on the egress rBridge stored in the TRILL header, this facilitates the option to skip end MAC address learning in the transit rBridges.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Once the packet reaches the egress rBridge, it is decapsulated and the native&amp;nbsp;frame is sent out. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The native frame must be mandatorily added to the payload along with the VLAN tag and it will be either sent along&amp;nbsp;with the&amp;nbsp;tag or without it depending on the properties of the port on which it is egressing.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;If the destination MAC address is unknown or if it is a multi-destination (either IP generated multicast packet or any other kind of L2 multicast&amp;nbsp;packet), it is sent via a pre-built distribution trees. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;rBridges do not participate in spanning trees but they can be a leaf node in a spanning tree. Hence BPDUs do not get forwarded via TRILL clouds.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-1411441958321129595?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/1411441958321129595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/12/trill-overview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1411441958321129595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1411441958321129595'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/12/trill-overview.html' title='TRILL overview'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-S-0wIbOTK8Q/TthctORtsII/AAAAAAAAGYs/f-qUc62wAgI/s72-c/TRILL+packet.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-4325161555652863447</id><published>2011-12-01T20:06:00.001-08:00</published><updated>2011-12-01T20:20:28.468-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DC Networking'/><title type='text'>Data Center Bridging : Introduction</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;In an effort to make Ethernet work with data center storage protocols such as FC and iSCSI, there are a few enhancements done to make Ethernet support traffic management capabilities. These are collectively known as Data Center Ethernet (DCE) or Data Center Bridging (DCB). The important standards within DCB are,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;em&gt;&lt;strong&gt;Priority Flow Control (PFC) 802.1Qbb&lt;/strong&gt;&lt;/em&gt; Also known as per-priority PAUSE. This extends the existing PAUSE mechanism in Ethernet to also specify a priority value for which the PAUSE should be implmented. The bridge sends an array of 8 fields containing a 2 octet priority_enable_vector and a 2 octet time_vector field. The priority_enable_vector specifying each of the 8 priorities for which PAUSE should be active and the time_vector field gives the corresponding PAUSE interval. The interval is measured in pause_quanta, which is the time taken to transmit 512 bits on the particular PHY. The range of valid PAUSE intervals are 0-65535.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;em&gt;&lt;strong&gt;Enhanced Transmission Selection 802.1Qaz&lt;/strong&gt;&lt;/em&gt; It introduces a new 4 bit Priority Group ID (PGID) field. The PGID values 8-14 are reserved and 15 is a special "No bandwidth limit" option. One or more priorities can be mapped to the values 0-7. Each PGID is allocated a maximum percentage of bandwidth on the particular link and it cannot exceed that value.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;em&gt;&lt;strong&gt;Congestion Notification 802.1Qau&lt;/strong&gt;&lt;/em&gt; Link-level pausing can cause the congestion to shift to a secondary location from the primary one. To avoid this congestion control must actually be implemented at the source of the traffic and backward congestion notification mechanisms to inform the source are implemented in this standard. The point where congestion occurs is called Congestion Point (CP) and the one that handles it is called Reaction Point (RP). Congestion level is indicated by the CP to the RP and the RP immediately reacts by stopping the transmission and then gradually increasing it. The increase happens in two phases Fast Recovery and Active Increase. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;strong&gt;&lt;em&gt;DCB Exchange protocol 802.1Qaz&lt;/em&gt;&lt;/strong&gt; It is used to exchange information with the immediately connected peers. It does not support multiple neighbors and works only on point to point connections. DCB exchange parameters can be classified as two types, administrative, pertaining to configuration and operational, pertaining to real time statistics. They are packaged into organization specific TLVs transmitted via the LLDP protocol. Currently there are TLVs for priority groups, PFC etc. &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-4325161555652863447?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/4325161555652863447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/12/data-center-bridging-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4325161555652863447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4325161555652863447'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/12/data-center-bridging-introduction.html' title='Data Center Bridging : Introduction'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-7471130083670579345</id><published>2011-11-28T19:34:00.001-08:00</published><updated>2011-11-28T19:38:35.820-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C5.5 : P2P over LAN</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;It is common to have topologies where the physical connect media is a broadcast media such as Ethernet but there are only two routers connected to the media as in a point to point circuit. In such cases, to treat such connections as a p2p connection reduces a number of overhead in routing protocols such as OSPF and ISIS. For example, in ISIS, it would not be necessary to run DIS election on this link. Also it would not be necessary to generate a separate prefix TLV and the adjacency itself is enough to use this link properly in the SPF calculation.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To facilitate such operation, the rules are defined in RFC 5309 to configure a link as a p2p link irrespective of the characteristics of the physical media. However since this is configuration based, there must be mechanisms to check whether the connection is really configured correctly. For example, if a LAN Hello message is received on such a p2p forced link, then the adjacency must not come up because the notion of the link is different on both sides and vice versa. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It is still required that the links have IP address and they go through the normal ARP process for resolving the next-hop etc. as they do in LAN circuits. To replace these with operation similar to p2p circuits would be under a different scope.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-7471130083670579345?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/7471130083670579345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c55-p2p-over-lan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/7471130083670579345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/7471130083670579345'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c55-p2p-over-lan.html' title='ISIS C5.5 : P2P over LAN'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-3192367560330493365</id><published>2011-11-28T18:23:00.001-08:00</published><updated>2011-11-28T19:27:52.973-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C5.4 : Fragments exceeding 255</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Due to some additions to the TLV structure like subTLVs and features like traffic engineering, it may be possible that the LSP becomes very big that after fragmentation it may exceed the max fragments of 255. There are couple of ways to solve this problem as detailed in RFC 3786. The first mode is to be used in cases where&amp;nbsp;there are some routers which do support this new operation and we need to be backward compatible. However the first model has a few drawbacks and there is a second mode or operation which can be run if all routers support the mode. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Operation Mode 1&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;In this mode, the information that doesnt fit into the first 255 fragments in the physical router S is sent as if it is originating from a different virtual router S'.&amp;nbsp;S' is only connected to the physical router through a p2p link and is a leaf, the cost of the link to S will be zero. Any connectivity loss to S will automatically result in loss of connectivity to all virtual routers it is connected to. The only adjacency that will be advertised by S' is the one to S with a cost of maxMetric-1 (this is to satisfy the bidirectionality check). Incase there is more information, then more virtual routers can be added as per the requirement. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;This model is very elegant in the sense that other routers need not be aware of this scheme at all and can use the normal SPF mechanisms to compute the routes. However the restriction is that only leaf information can be advertised using virtual routers&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Operation Mode 2&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;In this mode, any information can be advertised using the virtual routers. The SPF algorithm will be run after the router consolidates the information from the physical router as well as the associated virtual routers. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;TLV #24 (IS Alias ID TLV)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/-u_qByMzD5gU/TtRQseK9gII/AAAAAAAAGYk/0FA49SUZ3Wg/s1600/ISIS+TLV24.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;img border="0" dda="true" height="202" src="http://2.bp.blogspot.com/-u_qByMzD5gU/TtRQseK9gII/AAAAAAAAGYk/0FA49SUZ3Wg/s320/ISIS+TLV24.JPG" width="320" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;This TLV is used to advertise the physical router information (S) so that the receiving routers can advertise the virtual router LSPs with the actual physical router LSP. This TLV is used in both modes.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;﻿&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-3192367560330493365?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/3192367560330493365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c54-fragments-exceeding-255.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3192367560330493365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3192367560330493365'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c54-fragments-exceeding-255.html' title='ISIS C5.4 : Fragments exceeding 255'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-u_qByMzD5gU/TtRQseK9gII/AAAAAAAAGYk/0FA49SUZ3Wg/s72-c/ISIS+TLV24.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-8196961282163017777</id><published>2011-11-28T03:43:00.001-08:00</published><updated>2011-11-28T04:08:05.393-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C5.3 : Multi-Topology</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;ISIS has support built in for handling different topologies at the same time and distributing and computing routes for the different topologies separately. There are a few well-defined topologies defined in the RFC itself, namely:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;IPv4 Unicast (0)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;In-Band Management (1)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;IPv6 Unicast (2)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Multicast (3)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;IETF consensus (4 - 3995)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Experimental (3996-4095)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Topology ID information needs to be added to the TLVs so that the information pertaining to the different topologies can be distinguished. The IIH carries the different topologies supported by the router in TLV #229 defined for the purpose. It has a vector array of 12-bit topology ID information.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/-ldoqEpT-CYk/TtN2c8CRngI/AAAAAAAAGYU/AEGfgwA48v8/s1600/ISISMTHello.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;img border="0" dda="true" height="160" src="http://1.bp.blogspot.com/-ldoqEpT-CYk/TtN2c8CRngI/AAAAAAAAGYU/AEGfgwA48v8/s200/ISISMTHello.JPG" width="200" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Multi-topology supporting LSP TLVs are also defined. For IPv6, there is a Multitopology IPv6 reachability TLV #237 and a Multitopology IPv4 TLV #235 is defined for IPv4 topologies.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/-aMbgV1v43Pc/TtN5JCq-bfI/AAAAAAAAGYc/dbCXdT8pE-Y/s1600/ISIS+TLV235.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="400" src="http://3.bp.blogspot.com/-aMbgV1v43Pc/TtN5JCq-bfI/AAAAAAAAGYc/dbCXdT8pE-Y/s400/ISIS+TLV235.JPG" width="232" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;﻿&lt;/div&gt;&lt;div style="text-align: justify;"&gt;For IPv4 with default topology #0, either TLV 235 can be used or the original TLV #135 can be used.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-8196961282163017777?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/8196961282163017777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c54-multi-topology.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/8196961282163017777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/8196961282163017777'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c54-multi-topology.html' title='ISIS C5.3 : Multi-Topology'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ldoqEpT-CYk/TtN2c8CRngI/AAAAAAAAGYU/AEGfgwA48v8/s72-c/ISISMTHello.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-856254569475233778</id><published>2011-11-28T01:41:00.001-08:00</published><updated>2011-11-28T01:46:39.678-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C5.2 : Interaction with BFD</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Normally an ISIS neighbor adjacency for IP routing can come up independent of the BFD state on the link. However for ISIS there is a unique problem. Sending and receiving IIH packets does not happen at the IPv4/IPv6 level. And BFD is a protocol that maintains connectivity information at the IPv4/IPv6 level. Hence it is possible that between two routers IIH connectivity&amp;nbsp;still works and adjacency&amp;nbsp;is up but&amp;nbsp;the link is not capable of handling any IP data traffic. This has been fixed using RFC 6213.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;To avoid the above scenario a new TLV #148 has been defined to carry the BFD capability on each link to be included in the IIH packets.&amp;nbsp;This TLV indicates if an interface has BFD capability. If both sides of a link have&amp;nbsp;BFD capability, then the ISIS adjacency&amp;nbsp;should come up only after the BFD session between the two is up. Similarly&amp;nbsp;if the BFD session goes down, then the adjacency is expected to go down immediately irrespective of whether IIHs can still be exchanged.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;In the case of LAN circuits, the&amp;nbsp;rules apply for adjacencies between&amp;nbsp;two routers which have BFD enabled on the LAN interface. If the BFD is down, then&amp;nbsp;the routers are excluded from the adjacent routers advertised by the&amp;nbsp;pseudonode.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-856254569475233778?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/856254569475233778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c52-interaction-with-bfd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/856254569475233778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/856254569475233778'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c52-interaction-with-bfd.html' title='ISIS C5.2 : Interaction with BFD'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-2948685963798228911</id><published>2011-11-28T01:24:00.001-08:00</published><updated>2011-11-28T01:33:26.168-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C5.1 : Mesh Groups</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;In ATM and FR scenarios, in many networks routers are connected as a mesh using multiple logical point to point links. In these cases, ISIS LSP flooding can result in an enormous amount of redundant information. For example in the below topology.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/-Ymq4nFEvxTE/TtNUOsuQsRI/AAAAAAAAGYM/wKx-Q66w9YA/s1600/ISIS+Mesh+groups.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;img border="0" dda="true" height="270" src="http://4.bp.blogspot.com/-Ymq4nFEvxTE/TtNUOsuQsRI/AAAAAAAAGYM/wKx-Q66w9YA/s320/ISIS+Mesh+groups.JPG" width="320" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;When a new LSP is flooded by System 1, it is received by System 3 directly. It is also received by System 2 and flooded back again to System 3 and so is the case with System 4 flooding it to System 3. It is not apparent to these routers that System 3 is directly connected to System 1 and does not need to know about System 1 generated LSPs.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;To overcome the above problem RFC 2973 defined Mesh Groups. A mesh group is defined as a set of point to point circuits that provide full connectivity to a set of Intermediate Systems. Each circuit now has two attributes : &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;meshGroupEnable : meshInactive, meshBlocked and meshSet&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;meshGroupNum : Integer specifying the mesh group&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The working is fairly obvious, if a new version of the LSP is received, it is not flooded back into circuits which have meshSet and which have the same integer specifying the mesh number. The routers assume that the originating router would have done the update by itself as its a full mesh.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The main disadvantage of this method is that it&amp;nbsp;is purely driven by configuration and the configurations are also static.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-2948685963798228911?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/2948685963798228911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c51-mesh-groups.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2948685963798228911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2948685963798228911'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c51-mesh-groups.html' title='ISIS C5.1 : Mesh Groups'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Ymq4nFEvxTE/TtNUOsuQsRI/AAAAAAAAGYM/wKx-Q66w9YA/s72-c/ISIS+Mesh+groups.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-8184426745714667121</id><published>2011-11-27T22:31:00.001-08:00</published><updated>2011-11-27T23:23:41.607-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C4: Leaking L2 routes into L1</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;In ISIS, a L1 area is like a stub area of OSPF. It has full information about the networks that are within the L1 area but it uses the nearest L2 router to get to the networks that are outside its area. It is natural that there are multiple L2 routers that are connected to a L1 area.&amp;nbsp;In that case&amp;nbsp;there will be some networks external to the L1 area that are reachable&amp;nbsp;shorter via&amp;nbsp;one L2 router ad some networks which are shorter via the other L2 router. However this information is not normally available to the routers in the L1 area because L2 routes are not normally leaked into the L1 area.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;In cases where the above problem is significant, it is possible to intentionally leak L2 routes into L1 area so that a proper routing decision can be made. However care must be taken to ensure that only the necessary routes are leaked as otherwise it can be overwhelming for the L1 router.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The route computation for the L2 leaked routes is a simple&amp;nbsp;selection based on cost&amp;nbsp;between the prefixes advertised by the different L2 routers.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Care should be taken not to re-advertise the L2 leaked routes back into L2 by L1 routers as this could cause routing loops. For this there is a need to distinguish which routes are the ones leaked. This is done by&amp;nbsp;adding an&amp;nbsp;Up/Down Bit in the Old Style TLVs #128 and TLV #130. This occupies the MSB of the default metric field. If the bit is set to 1, then it is a leaked route. In the new style TLV #135, the support for the bit was present from before and is used for the purpose.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/-ZLvMdiox-Io/TtM21vWJT_I/AAAAAAAAGYE/WkFdD2_JM-Q/s1600/UD+bit.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;img border="0" dda="true" height="320" src="http://2.bp.blogspot.com/-ZLvMdiox-Io/TtM21vWJT_I/AAAAAAAAGYE/WkFdD2_JM-Q/s320/UD+bit.JPG" width="228" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-8184426745714667121?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/8184426745714667121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c4-leaking-l2-routes-into-l1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/8184426745714667121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/8184426745714667121'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c4-leaking-l2-routes-into-l1.html' title='ISIS C4: Leaking L2 routes into L1'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-ZLvMdiox-Io/TtM21vWJT_I/AAAAAAAAGYE/WkFdD2_JM-Q/s72-c/UD+bit.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-7420622658877067878</id><published>2011-11-27T21:35:00.001-08:00</published><updated>2011-11-27T21:59:51.525-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C4: SPF</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;strong&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;SPF computation&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;SPF run is based on Djikstra's algorithm.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The&amp;nbsp;high level working of the algorithm is as follows.&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Initially all nodes are put into an UNKNOWN list.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The router that performs the computation moves itself into the PATH list.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Add all the nodes that are connected to the source router into the TENT list along with the cost to reach them.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Now scan the&amp;nbsp;TENT list and find the node with the least cost and add it to the PATH list. Before adding the node into the PATH list verify that there is bi-directional connectivity to the node, ie. the node also has advertised a path back to the source node. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Now add all the nodes that are connected to the node that got added to the PATH list in the TENT list. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Again choose the TENT node that has the least cost from the source and move it to PATH list and repeat the above process. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;If there are more than one node in TENT list with the same cost, then choose one randomly to be moved into the PATH.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;SPF computation takes place in two stages:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The first stage mentioned in the steps above needs to only know the information that is advertised in the IS-Reach TLV, ie. we need to know only the adjacency information and the cost of the paths.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The second stage involves listing all the network prefixes that are hanging off the nodes and assigning a first hop to reach them. In this stage the IP Reachability TLVs are used. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;There are three different kinds of SPF:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;strong&gt;Full SPF&lt;/strong&gt; This is what has been described above and consists of two passes to build the entire routing database for the protocol.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;strong&gt;Partial SPF&lt;/strong&gt; This is useful when we know that only the prefix information has changed, ie. either the prefixes now have a different metric or they have been added or deleted. In such a case, we know from the above sequence of steps that only the second stage needs to run and the first stage data is completely unaffected. &lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;strong&gt;Incrementatl SPF &lt;/strong&gt;This is useful in a couple of scenarios. For example, a adjacency has gone down but we know from our earlier SPF run that the adjacency that went down was not being used in the actual shortest path, then this change can be completely ignored. However we should understand that this change&amp;nbsp;maybe irrelevant to only this router and this path may&amp;nbsp;be used by some other router in its shortest paths tree. Hence this decision is purely local to each router. the second instance is when a router itself is a leaf, then if there are any changes in the metrics of the adjacency that router has with its attachment point can be safely ignored by all routers because they are not going to have any impact on the calculated paths.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-7420622658877067878?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/7420622658877067878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c4-spf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/7420622658877067878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/7420622658877067878'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-c4-spf.html' title='ISIS C4: SPF'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-3565567077852957471</id><published>2011-11-22T02:24:00.001-08:00</published><updated>2011-11-26T18:36:44.766-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C3: Fragmentation</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;ISIS performs fragmentation at the application level. The minimum MTU that is supported by ISIS is 1492 bytes. To make sure that a particular link supports this minimum MTU, the IIH (Hello) message is explicitly made to be of a size bigger than that by adding padding TLVs. It is also required to add multiple padding TLVs because the maximum size of one padding TLV is only 255 bytes. Once the minimum MTU is working, the adjacency comes up.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;When LSPs are to be exchanged across the link, it is safe to assume that the minimum MTU is atleast supported. So when a LSP needs to be generated that is bigger than the minimum MTU, it needs to be fragmented at the LSP level. A LSP ID is thus designated as,&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;System ID - Pseudonode ID - Fragment ID&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;A system thus generates multiple unique LSPs for the database information with just the last byte differing. ISIS does not necessarily have to wait for all the LSPs to arrive before it can begin the SPF computation. This is because the individual TLVs within the fragments are all self-contained. For example, if we need to send a IP Reachability TLV for a huge number of internal routes, then they will be split into multiple IP Reachability TLVs such that one whole TLV fits into one LSP packet.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;For CSNP and PSNP packets, the individual units within each of them are the TLV #9 specifying the LSP-IDs that are either being advertised or requested. Since there is no relation between the different LSP-IDs that are being advertised, they can be conveniently split into multiple packets and sent as multiple different Type #9 TLVs.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-3565567077852957471?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/3565567077852957471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-fragmentation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3565567077852957471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3565567077852957471'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-fragmentation.html' title='ISIS C3: Fragmentation'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-1078894570178030853</id><published>2011-11-22T02:17:00.001-08:00</published><updated>2011-11-26T18:36:35.406-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C3: Sequence number packets</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;Sequence number packets are used to ensure that all the routers in the network have the latest information regarding the LSPs. There are two types of sequence number packets.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;Partial Sequence Number Packet (PSNP) : Used for requesting or acknowledging specific LSP-IDs from a neighbor.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;Complete Sequence Number Packet (CSNP) : Used for advertising the latest sequence number and age for all the LSPs that are present in a router's database.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;LSP Entry TLV #9 is used for this purpose.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/-yMS_mUhk4Gw/Tst3uAoitFI/AAAAAAAAGX0/7S6zGVxR-DQ/s1600/SNP.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" hda="true" height="289" src="http://3.bp.blogspot.com/-yMS_mUhk4Gw/Tst3uAoitFI/AAAAAAAAGX0/7S6zGVxR-DQ/s320/SNP.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;The TLV can contain information about multiple LSP-IDs that are present in the database.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-1078894570178030853?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/1078894570178030853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-sequence-number-packets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1078894570178030853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1078894570178030853'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-sequence-number-packets.html' title='ISIS C3: Sequence number packets'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-yMS_mUhk4Gw/Tst3uAoitFI/AAAAAAAAGX0/7S6zGVxR-DQ/s72-c/SNP.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-3654627103381937226</id><published>2011-11-21T22:01:00.001-08:00</published><updated>2011-11-26T18:36:26.960-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C3: New style TLVs - Wide metrics</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;Limitations of the old IP extensions for IPv4 are&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;li&gt;&lt;div&gt;Limited space for specifying metrics (6 bits)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Fixed nature of the TLV without any option for extending it to add new information as protocol develops.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;IETF enhanced the existing IS-reach TLV #2 and IP Reachability TLV #128 with the above goals in mind to create two new TLVs in RFC 3784&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;li&gt;&lt;div&gt;Extended IS reachability TLV #22&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/-dlGV_vflRf4/TstzV6wKDZI/AAAAAAAAGXk/U6EIOBP12kY/s1600/TLV22.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" hda="true" height="320" src="http://4.bp.blogspot.com/-dlGV_vflRf4/TstzV6wKDZI/AAAAAAAAGXk/U6EIOBP12kY/s320/TLV22.JPG" width="263" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;The subTLVs may be used to advertise the IP address of the neighbors.&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;li&gt;&lt;div&gt;Extended IP reachability TLV #135&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/-iNCEbl0Df7Q/Tss9dBl_cLI/AAAAAAAAGXc/sh6EbjFm1pU/s1600/TLV135.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" hda="true" height="320" src="http://2.bp.blogspot.com/-iNCEbl0Df7Q/Tss9dBl_cLI/AAAAAAAAGXc/sh6EbjFm1pU/s320/TLV135.JPG" width="214" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;The metric field is&amp;nbsp;32 bits wide and can be used to reverse encode the interface bandwidth (ie. higher bandwidth link gets a lower metric and vice-versa). The subTLV&amp;nbsp;bit field denotes whether there are optional subTLVs following the base TLV. The subTLVs can be used to extend the functionality in future by adding new formats. &lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;The prefix has been made variable length so that only the useful bits can be encoded in it. The decoder knows how many bytes are available in prefix using the prefix length field. The metrics no longer can specify the I/E bit (internal-external). All prefix information is advertised in a consolidated manner using TLV #135.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;Most implementations today support both the old style and the new style metrics. The new style is also referred to as wide-metrics because the metric width has been increased to 24 bits in TLV #135 and 24 bits in TLV #22.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;﻿&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-3654627103381937226?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/3654627103381937226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-new-style-tlvs-wide-metrics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3654627103381937226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3654627103381937226'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-new-style-tlvs-wide-metrics.html' title='ISIS C3: New style TLVs - Wide metrics'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-dlGV_vflRf4/TstzV6wKDZI/AAAAAAAAGXk/U6EIOBP12kY/s72-c/TLV22.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-2547581056864613167</id><published>2011-11-21T21:44:00.001-08:00</published><updated>2011-11-26T18:36:18.480-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C3: IPv4 Extensions - Old Style TLVs</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;ISIS has been extended by RFC 1195 to support IPv4 routing support. The LSPs that are used for conveying IP information are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;Internal IP Reachability TLV #128&lt;/b&gt; This is used for conveying the information of networks that are directly connected to the router. It is possible that we may need to advertise networks belonging to interfaces that are not enabled for ISIS. This is accomplished by configuring them as passive interfaces. Each entry is 12 bytes wide and a number of networks can be packed into a single TLV upto the maximum size possible. Since the TLV length is a one-byte field, only sizes upto 255 can be specified. Hence we can pack upto a maximum of 21 networks in one TLV.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/-AOVEhoCViFQ/Tss3RlomzUI/AAAAAAAAGXE/MPMUVAn9W6Q/s1600/TLV128.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;img border="0" hda="true" height="320" src="http://4.bp.blogspot.com/-AOVEhoCViFQ/Tss3RlomzUI/AAAAAAAAGXE/MPMUVAn9W6Q/s320/TLV128.JPG" width="264" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;Protocols Supported TLV #129&lt;/b&gt;&amp;nbsp; This is used for conveying the protocols that are supported by the ISIS instance either at the interface level or at a router level. This TLV enables ISIS to become truly protocol independent. The codes used for IPv4 are 0xCC and for IPv6 are 0x8E. If the neighboring router doesnt advertise the protocol support for IPv4, then a IPv4 adjacency does not come up.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;External IP reachability TLV #130&lt;/b&gt; and &lt;b&gt;Inter-domain information type TLV # 131&lt;/b&gt; These are used for propagating external domain route information into ISIS. The TLV #130 is similar to TLV #128 to advertise external domain IP networks and TLV #131 gives more information about the domain like AS number etc. These are no longer used.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Interface address TLV #132&lt;/b&gt; This is used for conveying the configured interface addresses to the neighboring router. If a neighbor finds its own addresses configured on the other router, adjacency does not come up.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-nWazOEXCeas/Tss5mDnPkBI/AAAAAAAAGXM/m3cMbzt3Ebg/s1600/TLV132.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" hda="true" height="195" src="http://2.bp.blogspot.com/-nWazOEXCeas/Tss5mDnPkBI/AAAAAAAAGXM/m3cMbzt3Ebg/s320/TLV132.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-2547581056864613167?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/2547581056864613167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-ipv4-extensions-old-style-tlvs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2547581056864613167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2547581056864613167'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-ipv4-extensions-old-style-tlvs.html' title='ISIS C3: IPv4 Extensions - Old Style TLVs'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-AOVEhoCViFQ/Tss3RlomzUI/AAAAAAAAGXE/MPMUVAn9W6Q/s72-c/TLV128.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-4067142067922889280</id><published>2011-11-20T02:05:00.000-08:00</published><updated>2011-11-26T18:36:08.628-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C3: IS-Reach TLV</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;To build a graph that can be used to compute the Shortest Path tree to the different parts of the network, there needs to be two inputs. One gives the adjacencies between the routers in the network along with the metrics for traversing that adjacency and the next is the networks that are hanging off each of the routers. The first information is distributed across the network by the use of the IS-Reach TLV #2. &lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/-Q4QnLpBpHME/Tst0xSKsYxI/AAAAAAAAGXs/C1EhK8fzdeg/s1600/TLV2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" hda="true" height="320" src="http://1.bp.blogspot.com/-Q4QnLpBpHME/Tst0xSKsYxI/AAAAAAAAGXs/C1EhK8fzdeg/s320/TLV2.JPG" width="297" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;﻿The Neighbor ID is a combination of 6 bytes of System ID and 1 byte for Pseudonode ID. There are different types of metric that can be advertised incase it is required to compute different paths depending on different metrics.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-4067142067922889280?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/4067142067922889280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-is-reach-tlv.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4067142067922889280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4067142067922889280'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-is-reach-tlv.html' title='ISIS C3: IS-Reach TLV'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Q4QnLpBpHME/Tst0xSKsYxI/AAAAAAAAGXs/C1EhK8fzdeg/s72-c/TLV2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-4870663385200894464</id><published>2011-11-17T17:50:00.001-08:00</published><updated>2011-11-17T17:59:14.299-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vanilla L2'/><title type='text'>Spanning tree Root Guard and BPDU Guard</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;strong&gt;Root Guard&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Administrators have some control over which bridge can become the root port. This is by modifying the bridge priority and the bridge that must definitely become the root can be designated a priority of 0. However it is possible that there may be some other bridge with priority 0 with a smaller MAC and STP will elect that as a root bridge. Refer to this &lt;/span&gt;&lt;a href="http://www.cisco.com/en/US/tech/tk389/tk621/technologies_tech_note09186a00800ae96b.shtml"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;link&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt; for&amp;nbsp;an example of how a rogue bridge can cause a non-optimal topology to be built up.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Root guard feature ensures that when a superior BPDU arrives on a port that is enabled for this feature, the port is set into a STP-inconsistent listening state. The port never moves to a root port state. This makes sure that the BPDU sender never has a chance to become the designated port on this link. When the superior BPDU&amp;nbsp; ceases to appear, the port is automatically transitioned to designated port state.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;strong&gt;BPDU Guard&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;When edge ports are connected to servers, it is possible that a rogue server sends out a BPDU on the edge port causing confusion in the STP calculations. So when it is given that a port will definitely be an edge port, BPDU guard can be enabled to protect such malicious BPDU messages from the servers. When such a port receives a BPDU, it automatically disables the port and manual intervention is required to bring it back up. BPDU guard is usually configured in conjunction with portfast feature on the edge ports.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-4870663385200894464?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/4870663385200894464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/spanning-tree-root-guard-and-bpdu-guard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4870663385200894464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4870663385200894464'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/spanning-tree-root-guard-and-bpdu-guard.html' title='Spanning tree Root Guard and BPDU Guard'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-2096565368499068900</id><published>2011-11-14T23:08:00.001-08:00</published><updated>2011-11-25T18:10:41.041-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vanilla L2'/><title type='text'>Rapid Spanning Tree Protocol</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;The most important issue with the original spanning tree algorithm is the fact that the transition from a blocked state to a forwarding state takes 50secs with the default configuration parameters and during this time, it is possible that a lot of traffic is blackholed during this period. To alleviate this concern and many other minor issues with original STP, Rapid Spanning Tree Protocol (RSTP) was standardized as 802.1w. It was subsequently integrated into the original 802.1d STP IEEE document and today the default spanning tree implementation is RSTP. Devices can fall back to original STP mode incase they see STP BPDUs.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;The major differences between RSTP and STP are:&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;RSTP defines port roles in addition to port states. Two new port roles defined are &lt;i&gt;alternate&lt;/i&gt; and &lt;i&gt;backup&lt;/i&gt;. Alternate port is the second best path to reach the root bridge and is computed along with the root port. If for some reason the root port goes down, the alternate port is immediately moved from blocked to forwarding state without any intermediate states. When a bridge connects using more than one port to the same LAN segment, the second best port other than the designated port will be marked as the backup port. If the designated port goes down, then the backup port will be transitioned to forwarding state. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;RSTP has done away with the timer based listening and learning states for moving a port to forward on point to point connections. Instead it has introduced a proposal and agreement based mechanism, where two bridges on a dedicated link can quickly converge on who will be designated port for the LAN.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;BPDU timeout is no longer 10 * hello time, it has been reduced to&amp;nbsp;3 * Hello time.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;BPDUs are no longer generated only by the root, every bridge generates a BPDU in the generation interval.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Topology Change Notifications are flooded directly by the bridges across the network and they no longer need to propagate to the root and get sent in the next BPDU message. Also the forwarding table entries are immediately cleared on receiving the TCN.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;﻿Here is a &lt;a href="http://cciethebeginning.wordpress.com/2008/11/20/differences-between-stp-and-rstp/"&gt;link&lt;/a&gt; for a tabular listing of the differences.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-2096565368499068900?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/2096565368499068900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/rapid-spanning-tree-protocol.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2096565368499068900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2096565368499068900'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/rapid-spanning-tree-protocol.html' title='Rapid Spanning Tree Protocol'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-1944938626547366591</id><published>2011-11-14T22:41:00.001-08:00</published><updated>2011-11-14T22:53:27.523-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vanilla L2'/><title type='text'>Spanning tree Topology Change</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;strong&gt;Topology Change Notification&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;There is a need to propagate any topology change due to spanning tree activity across the network. The reason for this is that forwarding entries may have to re-learnt after the topology change. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;For example,&amp;nbsp;assume a bridge B1 was forwarding packets to another bridge B2 and&amp;nbsp;some port of B1 has become blocking now because of spanning tree protocol making it lose connectivity to a few end-station MACs. There would already be&amp;nbsp;forwarding table entries in B2&amp;nbsp;pointing to B1&amp;nbsp;for those MACs&amp;nbsp;even though there will be a new way to reach the MACs that were once behind B1. Till we receive any packet from those sources in the new path, we will be blackholing the traffic by sending them to B1 where they&amp;nbsp;could get discarded. Hence even though B2 is not involved in the spanning tree topology change that happens at B1, it is still necessary to flush out the forwarding table entries.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;When a port that was forwarding changed to blocking or a port that was blocking changed to forwarding the bridge on which the event happens generates a new message known as Topology Change Notification (TCN) and sends it on the root port. The bridge along the path to the root, then acknowledges the packet using a Topology Change Acknowledgement (TCA) and forwards the TCN towards the root. When the root bridge receives the TCN, it will set the Topology Change Flag in the next BPDU message that it is generating. Whenever a bridge receives a BPDU with the TCN flag, it sets the flag in its next outgoing BPDU as well.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;There is a short station cache timeout (default=forward delay=15secs) that is started on receiving a BPDU with the TCN flag set and on expiry of it, the forwarding table entries are flushed.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;Problems&lt;/strong&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;One obivous problem with the TCNs occurs when we have end stations connected to the network flapping. In this case the port connected to the end station moves from forwarding to blocking back to forwarding. This warrants generation of a TCN and subsequent flushing of all MAC address entries across the network. To alleviate this problem, we can use Cisco's portfast feature. If a port is configured for this feature, then it is assumed that it only connects to end stations and whenever there is a spanning tree state change in the port, no TCNs are generated. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-1944938626547366591?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/1944938626547366591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/spanning-tree-topology-change.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1944938626547366591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1944938626547366591'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/spanning-tree-topology-change.html' title='Spanning tree Topology Change'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-1144822511943025895</id><published>2011-11-14T21:04:00.001-08:00</published><updated>2011-11-14T21:34:31.708-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vanilla L2'/><title type='text'>Spanning tree states</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;There are basically 5 states in the original spanning tree algorithm.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Disabled&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Blocking&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Listening&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Learning&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Forwarding&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Let us look at when the state transitions happen. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Initially a port is in disabled state and needs to be enabled by the administrator.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Once it is enabled, it is immediately put it into Listening state. Packets are not forwarded in Listening state and no MAC learning happens.&amp;nbsp;If this bridge is turned on new, the bridge&amp;nbsp;assumes that it is the root&amp;nbsp;and starts transmitting BPDUs to that effect until it hears something better from its neighbors. If it hears a better BPDU&amp;nbsp;from a&amp;nbsp;neighbor, it immediately transitions&amp;nbsp;the port to blocking state.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Once the listening state is completed for a predetermined amount of time, if at the end of the time, it&amp;nbsp;still has not received any better BPDU on the interface, then it moves&amp;nbsp;to&amp;nbsp;learning state.&amp;nbsp;Packet forwarding still does not happen but MAC learning happens. This is to&amp;nbsp;pre-build a MAC&amp;nbsp;database before&amp;nbsp;actually forwarding&amp;nbsp;starts to happen. In this state if it receives a better BPDU, it can still transition&amp;nbsp;to blocking state.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Once learning state is completed,&amp;nbsp;the port moves to forwarding state. It can either be the root port or designated port from the protocol point of view but&amp;nbsp;there is no difference in the forwarding paradigm and the port is kept up for both forwarding incoming and outgoing packets and also for MAC learning.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The amount of time that is spent in the learning and listening states depends on a parameter known as &lt;em&gt;forward delay&lt;/em&gt;. This is the amount of time that it takes to propagate BPDU from one end of the network to the other and the default is 15secs. The purpose of the listening/learning states is to allow propagation of the BPDUs from one of the network to the other and back to be fully sure that all the bridges in the network have consistent information to create a loop-free tree.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;In a steady state, the root bridge transmits the BPDUs every 2 seconds. On reception of&amp;nbsp;this BPDU, the other bridges generate and forward their own BPDU on all their ports. Ports in all spanning tree states except disabled receive and process BPDUs.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The max age for the BPDU originating from the root bridge is by default 20secs. So if a&amp;nbsp;interface breaks down at any part of the spanning tree,&amp;nbsp;bridges with other interfaces on LAN, the&amp;nbsp;will stop receiving the better BPDU from the bridge and will timeout the existing best BPDU at the end of 20 secs. At this point, the designated port election will need to again happen on the LAN. For this all the ports on the LAN will be moved to listening state and a new bridge with the least cost to the root will be selected. The other ports move to blocking state. For the port that is now transitioning as a designated port on the LAN, it will hence take (20+15+15=50secs) for the transition to complete to forwarding state. All traffic coming into the LAN will be blackholed during this period and this is one of the items that will be addressed in the newer Rapid Spanning Tree Protocol (RSTP) that we will discuss later.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-1144822511943025895?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/1144822511943025895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/spanning-tree-states.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1144822511943025895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1144822511943025895'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/spanning-tree-states.html' title='Spanning tree states'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-7565606201887043564</id><published>2011-11-14T20:37:00.001-08:00</published><updated>2011-11-14T21:35:06.774-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vanilla L2'/><title type='text'>Spanning tree algorithm basics</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Elect a bridge among all the bridges of all LANs as a &lt;em&gt;root bridge&lt;/em&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Select the port that has&amp;nbsp;the shortest distance from each bridge to the root bridge. This is called the &lt;em&gt;root port&lt;/em&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;For each LAN choose the bridge that has the shortest distance to the bridge. This is called the &lt;em&gt;designated bridge&lt;/em&gt; for the LAN and the port on the bridge that connects to the LAN is called the &lt;em&gt;designated port&lt;/em&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;All ports that are either root ports or designated ports are in forwarded state and all other ports are in discarding state. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;From the above it must be clear that the working of the protocol has to be broadly based on these concepts.&lt;/span&gt;&lt;/div&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Every bridge must have a ID which is unique across the domain. Root bridge election can be done based on this root bridge ID.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Information packets must be sent along all LAN segments of the network containing the bridge's own bridge ID and the best root port ID that the bridge is aware of and the cost to reach that root bridge from this bridge.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;With the above information, it is possible at some point for all bridges to converge on the best root bridge for the entire network and their own cost to the root bridge.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;It is also possible to know which port on the bridge is the one that has the lowest cost to the root bridge. This port is designated as the root bridge. In the cases where there are more than one port having the same cost, then the interface ID is used to select the root port.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;On a LAN, all the connected bridges know the bridge that has the best cost to the root. This bridge becomes the desginated bridge and the port on the LAN of that bridge becomes the designated port. All other bridges block their ports that are connected to the LAN because they are not having the most optimal path to the root to forward the traffic.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;The above 5 steps are necessary sufficient to complete a spanning tree algorithm convergence.&amp;nbsp;To add a little more depth of information to above,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Bridge ID A bridge ID is formed by concatenating 2 bytes of priority along with&amp;nbsp;a unique&amp;nbsp;MAC address on the bridge. The lower the root ID, it is more preferred. The priority is prepended to the MAC, so by assigning a lower priority, we can influence the root bridge selection.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Information exchange between bridges is done using a Bridge Protocol Data Unit (BPDU) packet. It is a L2 packet sent with a SAP value of 01000010 and multicast to special MAC address. A BPDU contains among other things.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Root Bridge ID&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Cost to Root Bridge&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Transmitter Bridge ID&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Age for which the message is valid&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Configuration parameters&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;A received BDPU is better than the BPDU than what&amp;nbsp;we are generating on a particular LAN segment, if the number generated by a&amp;nbsp;combination of Priority.Root Bridge ID.Cost.Transmitter bridge ID is lower than what we generated on the interface. In that case, we accept that the other bridge is a better choice for transmitting packets on the LAN and start to block our port on that LAN.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Select one among all the best BPDUs on each port of the LANs we are connected to and that port becomes the root port for the bridge. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-7565606201887043564?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/7565606201887043564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/spanning-tree-algorithm-basics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/7565606201887043564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/7565606201887043564'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/spanning-tree-algorithm-basics.html' title='Spanning tree algorithm basics'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-3270808815674839408</id><published>2011-11-14T20:07:00.001-08:00</published><updated>2011-11-14T21:35:25.863-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vanilla L2'/><title type='text'>Bridges and need for spanning tree</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;strong&gt;&lt;em&gt;Transparent Bridge&lt;/em&gt;&lt;/strong&gt; is transparent because it doesn modify anything in the packets that pass through it at any level, L2 or L3.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;&lt;em&gt;Learning bridges&lt;/em&gt;&lt;/strong&gt; learn the source MAC of a packet on the incoming interface. In future any packet that has this MAC as the destination MAC will be forwarded only on that interface. When the same MAC is seen as source MAC in another interface, the original entry is re-learnt using the new interface. Otherwise MAC addresses are usually timed out when there is no traffic from the source for a particular period of time. Unknown MACs are replicated and flooded on all ports of the bridge or the VLAN.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;&lt;em&gt;Qualified learning&lt;/em&gt;&lt;/strong&gt; implies learning a MAC address along with a VLAN. This is important when non-unique MAC addresses can be present in a multi-customer environment. Today almost all hardware L2 forwarding tables support qualified learning.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;Problem of loops&lt;/strong&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;When packets are replicated and flooded, multiple copies of the packet start to exist on the network.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;There is no TTL like mechanism for discarding a L2 packet once it has reached the particular number of hop traversals.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/-BwonjmC0z_M/TsHqp9scFAI/AAAAAAAAGW4/sn7FbffjdLY/s1600/Loop.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="260" nda="true" src="http://1.bp.blogspot.com/-BwonjmC0z_M/TsHqp9scFAI/AAAAAAAAGW4/sn7FbffjdLY/s640/Loop.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;In the above when A transmits&amp;nbsp;a packet to a host on LAN2 which is unknown, the packet is forwarded on to the LAN2 segment by all 3 bridges. They also each learn that A is on LAN1.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;When the packet that is forwarded by B1 reaches B2, B2 now incorrectly changes its source learning such that A now resides on LAN2. Similar is the case when B1 receives the packet that is transmitted by B2 or B3. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Since the packet is still coming in for an unknown MAC, B2 again retransmits the packet that B1 sent on LAN2, onto LAN1 again. Similar is the case with B1 on the packet it received from B2. Now the packet again reaches the bridges and A is learnt on LAN1. This cycle continues to happen and the packets keep getting replicated and flooded on all segments again and again till the entire network is completely consumed by infinite copies of the same packet.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;Spanning tree algorithm&lt;/strong&gt; attempts to solve the problem by having a tree rooted at one particular bridge and providing loop-free connectivity to all the LAN segments connected in the network.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-3270808815674839408?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/3270808815674839408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/bridges-and-need-for-spanning-tree.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3270808815674839408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3270808815674839408'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/bridges-and-need-for-spanning-tree.html' title='Bridges and need for spanning tree'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-BwonjmC0z_M/TsHqp9scFAI/AAAAAAAAGW4/sn7FbffjdLY/s72-c/Loop.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-2336911125922664638</id><published>2011-11-09T00:18:00.000-08:00</published><updated>2011-11-09T00:18:20.169-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vanilla L2'/><title type='text'>802.1ah Provider Backbone Bridging</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;802.1ad doesn’t offer a true separation of customer and service provider L2 domains because the MAC addresses in the packets are still the customer generated MACs. To overcome this restriction, concept known as Provide Backbone Bridging or Mac-In-Mac was introduced. In addition to adding a new MAC encapsulation, it also provided a way to add a service instance so that flows can be tagged in L2 and there can be some applications in future like E-VPN that can make use of it.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-BpuOoGN2gKw/Tro2zcejrGI/AAAAAAAAGWw/jJbHgLK4f-k/s1600/PBB.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" ida="true" src="http://4.bp.blogspot.com/-BpuOoGN2gKw/Tro2zcejrGI/AAAAAAAAGWw/jJbHgLK4f-k/s400/PBB.JPG" width="391" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;B-DA : Backbone destination MAC&lt;br /&gt;B-SA : Backbone source MAC&lt;/span&gt; &lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;B-VID : Backbone VLAN ID&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;I-SID : Service Identifier (24 bits)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;S-VID : Service Provider VLAN ID (part of 802.1ad)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;C-VID : Customer VLAN ID (part of 802.1q)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Service Encapsulation also contains priority, Drop Eligibility Indicator (DEI) and No Customer Address (NCA, for OAM frames) flags in addition to I-SID&lt;/span&gt; &lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Ethertypes are as follows:&lt;/span&gt; &lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Outer header : 0x88A8 (Note that outer header is of a similar format as a 802.1q frame, so there is no change in hardware as far as the bridges in the Provider backbone are considered)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Service Encapsulation : 0x88E7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Customer frame S-TAG : 0x8100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Customer frame C-TAG : Payload type (eg: 0x0800 for IP)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;﻿&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-2336911125922664638?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/2336911125922664638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/8021ah-provider-backbone-bridging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2336911125922664638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2336911125922664638'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/8021ah-provider-backbone-bridging.html' title='802.1ah Provider Backbone Bridging'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-BpuOoGN2gKw/Tro2zcejrGI/AAAAAAAAGWw/jJbHgLK4f-k/s72-c/PBB.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-5814499235920228944</id><published>2011-11-08T22:39:00.000-08:00</published><updated>2011-11-08T22:39:47.883-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vanilla L2'/><title type='text'>802.1q and 802.1ad</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://en.wikipedia.org/wiki/IEEE_802.1Q"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;802.1q&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt; defines the system of VLAN tagging for a packet. It should be noted that it is VLAN tagging and not VLAN encapsulation because the actual packet is modified with the addition of VLAN information and it is not encapsulated with a different header. The original L2 header fields such as destination MAC and source MAC will continue to be in their original positions, following which a new 32 bit 802.1q header is added which contains the following information.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;16 bits TPID (Set to 0x8100, this is present in the traditional Ethertype location with the packet and identifies that the packet contains a 802.1q header)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;3 bits PCP (Priority Code Point) 3-bit priority field for Ethernet as defined by &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/IEEE_802.1p"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;802.1p &lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;1 bit CFI (Canonical Format Indicator) If 1, indicates that the MAC address is in non-canonical format&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;12 bits VID (VLAN ID, max can be 4095, since 0x0000 and 0xFFFF are reserved max usable is 4094)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;When 802.1 SNAP encapsulation is used with OUI of 00-00-0 and protocol ID field in the SNAP header containing the EtherType, then the protocol field will be set to 0x8100 and the 32 bit 802.1q header will be appended after the SNAP header.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;When double tag encapsulation based on &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/802.1ad"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;802.1ad&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt; is used the EtherType of the first tag is specified as 0x88a8. This implies that there is another tag following the first one and the second tag will continue to have EtherType of 0x8100. The outer tag is usually the provider VLAN and known as S-TAG, the inner tag is the customer VLAN ID and is known as C-TAG.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;It should be noted here that 802.1ad does not solve the problem of customer MAC learning as the original MAC header of the packet still contains the customer source and destination MACs. It only provides a way to hide the customer VLAN in scenarios where there is a requirement for more than 4K VLANs or where there is a need for hiding the customer VLANs from the core L2 network because they are non-unique. This mechanism is also known as Q-in-Q. For solution to prevent customer MAC from being learnt we will need support for Provider Backbone switches which we will come to later.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-5814499235920228944?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/5814499235920228944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/8021q-and-8021ad.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/5814499235920228944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/5814499235920228944'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/8021q-and-8021ad.html' title='802.1q and 802.1ad'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-4164308048021993949</id><published>2011-11-08T00:40:00.000-08:00</published><updated>2011-11-08T00:40:22.862-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DC Networking'/><title type='text'>Data Center Networking Challenges</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;Explosion of MACs, IP addresses and ARPs&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;This is the first and foremost technical challenge for a data center with highly virtualized servers. If a typical rack can contain about 15-20 physical servers and each physical server has about 40 virtual machines within it, then per rack we will have 800 MAC and IP addresses to deal with. This number is expected to go up significantly in the coming months as servers become more and more capable and can support maybe even up to 100 virtual machines.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;The issue with more MACs per rack will affect a ToR switch in the sense that it has to learn the MACs in its Forwarding Database (FDB). But the problem will be more pronounced in the aggregation switches that cater to multiple racks. With future scales of operation, the aggregation boxes may have to deal with maybe a million MACs in a medium sized data center. Adding support for more MACs in the FDB increases the cost of the forwarding hardware. &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Another important problem with this scale of IP addresses is the need for doing ARP resolution using traditional means which is broadcast. Usually DCs will be segmented into VLANs to ensure logical separation of servers, however the scale of a single VLAN may be reasonably big to cause flooding of ARP packets for thousands of hosts. This not only affects the link capacity but also affects the processing power of the servers/hypervisors as in traditional IPv4 ARP, every node has to process the ARP request before choosing to drop it. In IPv6 though there is an alternate for this by means of using solicited multicast node address so that atleast the processing part is handled. However it is difficult to come up with such a scheme for IPv4 because the implementations on the servers need to change for this. &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;In addition to ARP processing being a problem for the servers, it is a bigger problem for the routers involved in the L3 forwarding at the aggregation/core level because they are now expected to handle all the ARPs for all the MACs in the L2 administrative domain which could run up in millions.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;Restricted VLAN space&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;If traditional VLANs are used then the number of separations possible in a data center L2 network will be only 4K VLANs. It is also possible that not all 4Ks can be used for actual VMs. When considering a multi-tenant DC supporting a huge number of customers, this restriction is very limiting as a single DC may be serving thousands of different customers wanting separation of data flow. &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;Multi-path support and optimal routing&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Traditional spanning tree algorithm implementation blocks out redundant ports and does not utilize their bandwidth. Earlier this was not an issue because the traffic from the servers to the ToRs was not really populating the links fully, however with the introduction of VMs and more powerful servers with 10G NICs, it is easy to fill the pipe and also push such traffic into the aggregation/core layers. This means unutilized bandwidth is no longer acceptable. &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;One solution for the above problem is to use the concept of M-LAGs or multi-chassis trunking or SMLT. However this cannot be extended to provide any path based routing as it is a very local concept between the set of switches.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;Optimal traffic forwarding&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;It is also expected that most data centers have requirements about the time taken to reach from one VM to another within the same DC and fast response time for packets to be sent out of the DC. In a large data center with multiple L2 aggregation switches, it is natural to have multiple hops before the packet actually reaches the destination ToR for inter-DC communication. Each hop in the path introduces a latency and it is also not guaranteed that this path will be the most optimal one to reach the destination ToR. &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;To address the above problems, TRILL and Shortest Path Briding (SPB) are used both of which are based on IS-IS and try to find the optimal path as well as support ECMP so that solutions like M-LAG are not needed.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;vMotion and VM relocation&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Through vMotion a VM can be relocated on to another physical server that may either be in the same DC or in a different DC in a different geographic location. There are some needs for this including disaster recovery, appropriate load balancing among the servers, server maintenance, DC operation maintenance like need to reduce cooling etc. &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;When a VM moves to another physical server, it carries its IP address and MAC along with it. In a intra-L3 move, the MAC address alone needs to be updated to point to the new VM across the complete topology. Even this can be an issue because of the need for updation in a huge number of routers. An alternate for this is to have a PBB scheme that is pushed right up to the ToRs so that what is learnt across the aggregation and core routers is only the provider MAC and not the end user MAC.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;When VM moves across a DC to another L3 domain, then it is required for tunnelling the data from the original subnet to the new subnet of the VM. But in the long run, it must converge to using a proper shortest path route to reach the destination rather using the triangulation method.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-4164308048021993949?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/4164308048021993949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/data-center-networking-challenges.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4164308048021993949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4164308048021993949'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/data-center-networking-challenges.html' title='Data Center Networking Challenges'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-8264298739628824600</id><published>2011-11-07T18:51:00.001-08:00</published><updated>2011-11-07T18:51:46.478-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DC News'/><title type='text'>IaaS vs PaaS vs SaaS</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.networkworld.com/news/2011/102511-tech-argument-iaas-paas-saas-252357.html"&gt;http://www.networkworld.com/news/2011/102511-tech-argument-iaas-paas-saas-252357.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-8264298739628824600?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/8264298739628824600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/iaas-vs-paas-vs-saas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/8264298739628824600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/8264298739628824600'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/iaas-vs-paas-vs-saas.html' title='IaaS vs PaaS vs SaaS'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-6411748274015471636</id><published>2011-10-27T23:37:00.000-07:00</published><updated>2011-10-30T23:34:27.546-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IPv6'/><title type='text'>IPv6 address</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;IPv6 has no reserved broadcast or network reserved address within a subnet. Hence all addresses within a subnet are usable for hosts.&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;VLSM is usually not required in IPv6 networks because of the availability of huge number of addresses.&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;i&gt;&lt;b&gt;Unicast address&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;ul&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Unspecified or loopback &amp;nbsp;(::/128 or ::1 /128)&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Link Local (FE80:: /10)&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;IPv4 compatible (0:0:0:0:0:0::/96)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;i&gt;Multicast address&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/span&gt;&lt;ul style="text-align: left;"&gt;&lt;ul&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Assigned (FF00:: /8)&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;FF0x:112 bit group ID where&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;x = 2 (Site local) 1 (Interface local) 4 (Global)&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Solicited Node (FF02::1:FF00:0000 /104)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;i&gt;Anycast address&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/span&gt;&lt;ul style="text-align: left;"&gt;&lt;ul&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Link-local (FE80:: /10)&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Aggregatable Global (2001::/16, 2002::/16, 3FFE::/16)&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Site Local (FEC0:: /10)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;&lt;i&gt;Link local address&lt;/i&gt;&lt;/b&gt; can be generated by concatenating the 64 bit EUI with the link local prefix.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;fe80 -="" 10="" bits=""&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;[FE80::] [54 bits zero] [64 bits EUI]&lt;/span&gt;&lt;/fe80&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;&lt;i&gt;Site local address&lt;/i&gt;&lt;/b&gt; can be generated by concatenating 64 bit EUI with subnet mask and site local prefix.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;ffc0 -="" 10="" bits=""&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;subnet 54="" bits="" id=""&gt;[FEC0::] [64 bits EUI]&lt;/subnet&gt;&lt;/span&gt;&lt;/ffc0&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;&lt;i&gt;Solicited node multicast address&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;All unicast and anycast IP have their corresponding solicited node multicast address automatically assigned. A device must listen to the solicited node multicast addresses of its correpsonding unicast/anycast addresses without any additional configuration. The address is formed by concatenating FF02::1:FF00:0000/104 with the last 24 bits of the unicast/anycast address.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;IPv4 over Ethernet has a protocol field of 0x0800.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;IPv6 over Ethernet has a protocol field of 0x86DD.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;&lt;i&gt;Multicast MAC mapping&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;33:33:Last 32 bits of IPv6 address&lt;last 32="" address="" bits="" ipv6="" of="" the=""&gt;&lt;/last&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;&lt;i&gt;EUI format&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;00:50:3E:E4:4C:00 -&amp;gt; 00:50:3E:FF:FE:E4:4C:00&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;After above step, in the first byte set 0x000000X0 X bit to 1 or 0 depending on whether its a globally unique address or not.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-6411748274015471636?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/6411748274015471636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/10/ipv6-address.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/6411748274015471636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/6411748274015471636'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/10/ipv6-address.html' title='IPv6 address'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-9104111140216668672</id><published>2011-10-27T22:51:00.000-07:00</published><updated>2011-10-30T23:29:50.818-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IPv6'/><title type='text'>IPv6 Header</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Sleb2Tgc2gQ/TqpAjKzXSyI/AAAAAAAAGP0/5rZyzf8DlD4/s1600/ipv61.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="242" src="http://4.bp.blogspot.com/-Sleb2Tgc2gQ/TqpAjKzXSyI/AAAAAAAAGP0/5rZyzf8DlD4/s400/ipv61.gif" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;IPv6 header is a fixed size one of 40 octets.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Next Header indicates the header following the base IPv6 header and contains the options.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Flow label is introduced new to assign a tag to a flow. It is not widely used as of now.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Hop limit is similar in functionality to IPv4 TTL field.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Different types of optional header include:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Hop-by-hop options header : I&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Pv4 max packet length is 65535, this is because the length field is 16 bits. In IPv6 there is a hop-by-hop options header that allows specifying a length that is 32 bits wide, so the maximum size supported can be 2^32-1. Such packets greater than 65535 bytes are known as IPv6 jumbograms.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Destination options header : contains information that is specifically to be interpreted by the destination such as Mobile IPv6.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Routing header : Forces a packet to pass through specific routers along the way to the destination.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Fragment header : Used when a node has to send a packet greater than the max MTU on the path.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Authentication and Encapsulation Security Payload (ESP) Header : Used for IPSec. IPSec support is mandatory for routers/nodes supporting IPv6.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;IPv4 supports a minimum MTU of 68 bytes and maximum length of IPv4 header is 60 bytes, hence the minimum fragment length is 8 bytes. IPv4 implementations must be able to support a minimum of 576 bytes long IP datagram after reassembly.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;IPv6 supports a minimum MTU of 1280 bytes and the minimum datagram size supported should be 1500 bytes.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-9104111140216668672?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/9104111140216668672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/10/ipv6-header.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/9104111140216668672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/9104111140216668672'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/10/ipv6-header.html' title='IPv6 Header'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Sleb2Tgc2gQ/TqpAjKzXSyI/AAAAAAAAGP0/5rZyzf8DlD4/s72-c/ipv61.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-4914987398291426052</id><published>2011-10-27T22:40:00.000-07:00</published><updated>2011-10-27T22:40:18.446-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IPv6'/><title type='text'>IPv6 ICMP usages</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Neighbor discovery protocol (ND)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Router Solicitation and Router Advertisement (Determine information about the LAN such as network prefix, default gateway etc.)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Echo request and reply&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;PMTUD for determining Path MTU (Note that IPv6 does not support transit fragmentation, the source is expected to send packets that are fragmented to the minimum MTU along the path)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Multicast Listener Discovery (corresponds to IPv4 IGMP)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Node Information Query (NIQ)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Multicast Router Discovery (MRD)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Secure Neighbor Discovery (SEND)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Mobile IPv6&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;ICMP in IPv4 has been used for a variety of DOS attacks and hence many service providers completely block ICMP packets within a secure network. However this is not possible in IPv6 due to the variety of uses that ICMPv6 has.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-4914987398291426052?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/4914987398291426052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/10/ipv6-icmp-usages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4914987398291426052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4914987398291426052'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/10/ipv6-icmp-usages.html' title='IPv6 ICMP usages'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-787596645231579790</id><published>2011-10-27T22:17:00.000-07:00</published><updated>2011-11-26T18:35:47.070-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C3: Psuedonode</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia,'Times New Roman',serif;"&gt;If all routers attached to a LAN generate updates for neighbors on the LAN, then it will result in large scale flooding across the network. In a N router LAN adding N+1 router will generate N+1 updates to other N routers in the LAN and outside. To avoid this scaling issue pseudonodes are used.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia,'Times New Roman',serif;"&gt;One router is elected as the Designated Intermediate System (DIS) router and it generates the adjacencies for a particular LAN. Hence a mesh will now be changed into a star topology. This DIS router is known as pseudonode because it is a virtual node representing the VLAN.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia,'Times New Roman',serif;"&gt;Pseudonode ID is derived from the System ID of the DIS router. While the NSEL is 0 for physical routers in the ISIS address, for pseudonodes the value can be any non-zero unique number. Since it can hold upto 255 values, a router can act as a DIS for atleast 255 LANs. Beyond that it may have to limit itself rom getting elected as DIS by reducing its priority.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia,'Times New Roman',serif;"&gt;Pseudonode suppression may be done when only 2 routers are connected to a broadcast network. In this case a p2p hello encapsulated in a ethernet frame is sent and if the other end also has the capability, it will form a p2p adjacency over the broadcast link and this eliminates the need for a PN election. Also Adjacency State attribute (#240) can also be used.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia,'Times New Roman',serif;"&gt;DIS election is performed using priority field in the IIH followed by MAC address of the node. There is no concept of backup DIS. A DIS can be preempted due to a new router coming up on the LAN.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-787596645231579790?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/787596645231579790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/10/isis-psuedonode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/787596645231579790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/787596645231579790'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/10/isis-psuedonode.html' title='ISIS C3: Psuedonode'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-3719313060860115607</id><published>2011-10-27T22:09:00.000-07:00</published><updated>2011-11-27T21:12:30.795-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C3: Link State Packets and Reliable Flooding</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;strong&gt;Link State Packets&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;SPF computation operates on the following premise. &lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Distributed database : Every router has a full copy of the network topology.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Localized computation : Ever router computes the routes independently and does not propagate it outside.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Link State Packets are used to advertise the information regarding the local database of&amp;nbsp;reachable networks and&amp;nbsp;has the following important fields.&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Checksum&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Sequence #&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Lifetime&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;LSP-ID&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;TLVs to advertise reachable network information and adjacent router information.&lt;/li&gt;&lt;/ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;LSPs are sent with a sequence number to ensure that the latest LSP is identifiable if there are delays in propagation.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;LSPs have a lifetime that is advertised along with them, the max being 65535 seconds (18 hours). LSPs not refreshed within the lifetime are purged. Typical LSP lifetimes are 20 mins.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;em&gt;Overload bit&lt;/em&gt; This indicates that due to memory constraints a router cannot take any more LSPs. This means that the result of SPF will also not be used because using partial SPF is dangerous. Hence a router advertise this bit will be taken off from SPF calculation of router routers for &lt;i&gt;transit routes&lt;/i&gt;. For routes that are directly connected to the router and terminating, the router would still be used for calculation.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;strong&gt;Reliable Flooding&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;We need a way to reliably flood the LSP information across a domain so that all routers have the same information regarding the topology of the network.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Forwarding LSPs on all interfaces where there are adjacencies except for the incoming interface is known as flooding. Flooding happens only if the received LSP sequence # is more than the one that was already flooded. This helps stale LSPs from getting weeded out of the network.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Periodically there is a packet that is transmitted with a brief description of all the LSPs in the router's database. When a neighbor sees this list and comes to know of a LSP that is not in its database or a newer version of a LSP than what it has, then it sends a request message to get the LSP. When this process completes, we can expect all the routers in the domain to have the same topology of the network.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Purging LSP is a forceful way of removing an LSP from a database. This may be useful in cases like DIS re-election. In some cases like LSP lifetime expiry as well, the LSPs are purged as due to time shift some routers may not have expired them&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-3719313060860115607?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/3719313060860115607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/10/isis-link-state-packets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3719313060860115607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3719313060860115607'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/10/isis-link-state-packets.html' title='ISIS C3: Link State Packets and Reliable Flooding'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-5194587656281093265</id><published>2011-10-27T21:49:00.000-07:00</published><updated>2011-11-27T21:04:25.233-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C2: Hellos and Neighbor formation</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;There are 4&amp;nbsp;combinations of Hello (IIH : IS-IS Hello) in ISIS,&amp;nbsp;at one level&amp;nbsp;to distinguish if its a&amp;nbsp;p2p or broadcast link and another two types for L1 and L2. 10859 combines L1 and L2 hello into one type to save bandwidth.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Generally L1 hellos are sent to 01-80-C2-00-00-14 and L2 hellos are sent to 01-80-C2-00-00-15.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;ISIS Packet types:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/-y2QBfxYFnCc/TtMWCFyR7sI/AAAAAAAAGX8/Khwak0YDSDA/s1600/ISIS+packet+types.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="154" src="http://4.bp.blogspot.com/-y2QBfxYFnCc/TtMWCFyR7sI/AAAAAAAAGX8/Khwak0YDSDA/s640/ISIS+packet+types.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;In OSPF adjacency cannot be formed unless there is a matching hold time or dead time configuration. In ISIS the hold time can be changed at any time. Frequency of hello is calculated based on the configured hold time as hold time / multiplier.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia;"&gt;LANs use a 3-way handshake mechanism and p2p uses a two way handshake.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia;"&gt;In a 3-way handshake, IS Neighbor TLV #6 is sent which contains the MAC address of the nodes from whom IIH are received. When there are two routers, the handshake completes when each router has advertised the other router's MAC address in their IIH TLV #6. In a 3 router scenario, the handshakes complete when all the routers have advertised the other two routers in their respective TLVs. ISIS adjacency is said to be up at the point the handshakes complete.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: Georgia;"&gt;IS Neighbor TLV #6 cannot be used to determine if a neighbor adjacency is up on a p2p link because it is not mandatory to have MAC address on the p2p liks. Hence Adjacency State TLV (TLV #240) is introduced which contains three state - Down, Initializing and Up.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-5194587656281093265?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/5194587656281093265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/10/isis-neighbor-formation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/5194587656281093265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/5194587656281093265'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/10/isis-neighbor-formation.html' title='ISIS C2: Hellos and Neighbor formation'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-y2QBfxYFnCc/TtMWCFyR7sI/AAAAAAAAGX8/Khwak0YDSDA/s72-c/ISIS+packet+types.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-428575256624406272</id><published>2011-10-27T21:27:00.000-07:00</published><updated>2011-11-26T18:43:11.265-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS C1: Addressing</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;OSI requires only one address per router. It is equivalent to configuring one loopback address and then assigning unnumbered IP to all other interfaces in IP world.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;OSI address and NET concepts are interchangeable. NET consists of the following parts:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Area-ID&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;System ID&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;NET Selector (NSEL)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;NSEL is always 0 for ISIS. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;System IDs should be unique for each router in the network (this is similar to router ID). System IDs can be of variable length according ISO 10859. However typically they are 6 bytes.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia;"&gt;System IDs are usually generated from router ID which is guaranteed to be unique across the network. The ways to dervie it are&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia;"&gt;BCD encoding 192.168.2.111 -&amp;gt; 192168002117 -&amp;gt; 1921.6800.2117&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia;"&gt;Direct Hex 192.168.2.117 -&amp;gt; 00 00 C0 A8 02 75&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia;"&gt;Direct Hex with prepending topology code 192.168.2.117 -&amp;gt; 01 F4 C0 A8 02 75 (01 F4 is the POP code to make it unique across multiple instances of ISIS or in VPN cases)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia;"&gt;Area-ID : This is the unique number of for the area and can be variable size between 1 and 13 bytes. Usually 1, 3 or 5 bytes are used. First byte is called AFI. 49 is the AFI for private addresses.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Example ISIS address: 49.1921.6800.2117.00 (1 byte AFI-6 byte System ID-1 byte NSEL)&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-428575256624406272?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/428575256624406272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/10/isis-addressing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/428575256624406272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/428575256624406272'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/10/isis-addressing.html' title='ISIS C1: Addressing'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-2054387539500369937</id><published>2011-10-27T20:46:00.000-07:00</published><updated>2012-01-24T21:40:50.420-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>IS-IS C1: Protocol Basics</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;General&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;ISIS was defined by IETF as a generic link state algorithm capable of performing routing operation for any protocol running above it. Base specification ISO 10589 contains both generic portion as well as portions specific to CLNP. IETF later defined TLVs which are specific to IP and also clarified many other aspects of the protocol for usage in IP networks.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;RFC 1195 - First IP aware IS-IS RFC generated by IETF.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;ISIS is different from other routing protocols because it runs directly over Layer-2 of OSI reference model. This means it does not need L3 configuration on the interface to work.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/-bLFEnSipxl0/Tqop2dOdLhI/AAAAAAAAGPc/vLvludtnP6E/s1600/ISIS1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;img border="0" height="171" ida="true" src="http://3.bp.blogspot.com/-bLFEnSipxl0/Tqop2dOdLhI/AAAAAAAAGPc/vLvludtnP6E/s640/ISIS1.JPG" width="640" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;ISIS understands two interface types - P2P and Broadcast. On broadcast networks ISIS packets are always multicast to 0180:C200:0014 or 0180.C200:0015.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;On Ethernet links, ISIS always uses 802.3 SAP encapsulation with DSAP and SSAP values as 0xFE.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;On p2p links, ISIS uses only PPP as encapsulation protocol. Initially there is a OSICP coming into play like LCP which confirms that both ends can understand the OSI protocols. After that the packets are encapsulaed using a 4-byte PPP header.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/-c7Yx8nSrQ5Y/Tqoq6qLcWhI/AAAAAAAAGPk/L1JqP0i7D4M/s1600/ISIS2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;img border="0" height="142" ida="true" src="http://2.bp.blogspot.com/-c7Yx8nSrQ5Y/Tqoq6qLcWhI/AAAAAAAAGPk/L1JqP0i7D4M/s400/ISIS2.JPG" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&amp;nbsp;In OSPF a router can be part of multiple areas and the demarcation of areas is within the router. A link can only connect between two routers in the same area. In ISIS a router wholly belongs to&amp;nbsp;a particular&amp;nbsp;area at a time. However a link can connect two routers in different areas. So the demarcation of areas is within the link.&amp;nbsp;If a link is designated as a Level-1 link, then adjacencies can come up only if it is connecting routers in the same area. If it is designated as a Level-2 link, then the routers can be in different areas. The only restriction is that in a topology, all Level-2 links must form a contiguous network. This is equivalent to a backbone network in OSPF.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/-bozEeTWkC0Q/TqosJoJhHLI/AAAAAAAAGPs/ZCczZi6rOTw/s1600/ISIS3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;img border="0" height="353" ida="true" src="http://4.bp.blogspot.com/-bozEeTWkC0Q/TqosJoJhHLI/AAAAAAAAGPs/ZCczZi6rOTw/s640/ISIS3.JPG" width="640" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;In OSPF, the ABR selectively propagates routes from other areas into the areas it belongs to. In ISIS, the L2 router does not by default do this propagation. Whenever a L2 router is attached to another L2 router that belongs to a different area, it sets an attached-bit in its advertisement and this is propagated to all routers in its area. When a L1-only router has to send packets to a destination outside its own area, it just chooses a L2 router that had advertised the attached-bit and sends the packet to it. This is equivalent to adding a default route to that L2 router.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;Though it is mentioned that the ISIS router wholly belongs to a area at a time, it doesnt imply that it cannot wholly belong to multiple areas at the same time. A router can be present in more than one area fully at the same time and this concept is used for area migrations. The ISIS packets have the ability to carry multiple area IDs at the same time and if there is a single matching area between two routers across a L1 link, the adjacency can come up.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div align="justify" style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-2054387539500369937?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/2054387539500369937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/10/is-is-basics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2054387539500369937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2054387539500369937'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/10/is-is-basics.html' title='IS-IS C1: Protocol Basics'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-bLFEnSipxl0/Tqop2dOdLhI/AAAAAAAAGPc/vLvludtnP6E/s72-c/ISIS1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-1836763994671491281</id><published>2011-10-15T22:23:00.000-07:00</published><updated>2011-11-23T22:29:58.177-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISIS'/><title type='text'>ISIS Concepts</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;ol style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;li&gt;Protocols theory and foundation concepts&lt;/li&gt;&lt;li&gt;Neighbor discovery and adjacency formation&lt;/li&gt;&lt;li&gt;Exchanging topology data and reliable flooding of data across the domain &lt;/li&gt;&lt;li&gt;SPF computation&lt;/li&gt;&lt;li&gt;Problems with the protocol and tweaks to solve them &lt;/li&gt;&lt;ol&gt;&lt;li&gt;Mesh Groups&lt;/li&gt;&lt;li&gt;BFD &lt;/li&gt;&lt;li&gt;Multi-topology&lt;/li&gt;&lt;li&gt;Fragments exceeding 255 &lt;/li&gt;&lt;li&gt;P2P operation over a LAN&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Retrieving data after reboot or restart (Graceful restart)&lt;/li&gt;&lt;li&gt;Protocol Extensions&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Traffic Engineering&lt;/li&gt;&lt;li&gt;Hostname Exchange &lt;/li&gt;&lt;li&gt;Security&lt;/li&gt;&lt;li&gt;Advertising router information&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-1836763994671491281?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/1836763994671491281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-concepts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1836763994671491281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1836763994671491281'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/11/isis-concepts.html' title='ISIS Concepts'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-3159332189556980279</id><published>2011-05-03T04:19:00.000-07:00</published><updated>2011-10-30T23:35:42.585-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BGP'/><title type='text'>BGP attributes and path selection</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;BGP Path Attributes are used in the BGP to influence the path selection. The different attributes are,&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Weight &lt;/b&gt;Cisco proprietory, not propagated in messages and is of local significance&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Local preference&lt;/b&gt; Determines the preference for a particular router for a particular prefix only within a particular AS, propagated by iBGP within an AS.&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Multi-Exit discriminator&lt;/b&gt; Suggests the preference of a particular exit point from current AS to an external AS, if the external AS is receiving the same prefix from multiple exit points. This is part of the path selection process and may not be the deciding factor for choosing an exit point by neighboring AS.&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Origin &lt;/b&gt;This is set to IGP for routes injected via network command, EGP for routes learnt via eBGP and Unknown for routes redistributed into BGP.&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;AS Path List &lt;/b&gt;Contains the list of ASs traversed by this particular route &lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Next Hop &lt;/b&gt;Attribute For EBGP, the next hop attribute is the IP address of the advertising eBGP peer. When the route is propagated into iBGP, the same eBGP nexthop is carried into it.&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Community &lt;/b&gt;Attribute Provides a way to group destinations to which routing decisions (acceptance, preference and redistribution) can be applied. Community can be either a well-known community (in the range 0xFFFF0000 through 0xFFFFFFFF) with pre-defined meanings or they can be private communities. The common well-known communities are &lt;i&gt;no-export&lt;/i&gt; (which means dont export this route to other AS via eBGP), &lt;i&gt;no-advertise&lt;/i&gt; (which means dont this route advertise to anyone), &lt;i&gt;local-as&lt;/i&gt; (which means send to only those in the same AS) and &lt;i&gt;internet &lt;/i&gt;(which means send the prefix to everyone)&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;BGP route selection process&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;li style="text-align: justify;"&gt;If the path specifies a next hop that is inaccessible, drop the update.  &lt;/li&gt;&lt;li style="text-align: justify;"&gt; Prefer the path with the largest weight.  &lt;/li&gt;&lt;li style="text-align: justify;"&gt; If the weights are the same, prefer the path with the largest local preference.  &lt;/li&gt;&lt;li style="text-align: justify;"&gt; If the local preferences are the same, prefer the path that was originated by BGP running on this router.  &lt;/li&gt;&lt;li style="text-align: justify;"&gt; If no route was originated, prefer the route that has the shortest AS_path.  &lt;/li&gt;&lt;li style="text-align: justify;"&gt; If all paths have the same AS_path length, prefer the path  with the lowest origin type (where IGP is lower than EGP, and EGP is  lower than incomplete).  &lt;/li&gt;&lt;li style="text-align: justify;"&gt; If the origin codes are the same, prefer the path with the lowest MED attribute.  &lt;/li&gt;&lt;li style="text-align: justify;"&gt; If the paths have the same MED, prefer the external path over the internal path.  &lt;/li&gt;&lt;li style="text-align: justify;"&gt; If the paths are still the same, prefer the path through the closest IGP neighbor.  &lt;/li&gt;&lt;li style="text-align: justify;"&gt; Prefer the path with the lowest IP address, as specified by the BGP router ID. &lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;For more details on the above attributes please refer &lt;/span&gt;&lt;a href="http://docwiki.cisco.com/wiki/Border_Gateway_Protocol" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;here&lt;/a&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-3159332189556980279?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/3159332189556980279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/05/bgp-attributes-and-path-selection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3159332189556980279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3159332189556980279'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/05/bgp-attributes-and-path-selection.html' title='BGP attributes and path selection'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-6051876549410428899</id><published>2011-05-02T22:28:00.000-07:00</published><updated>2011-05-02T22:28:08.869-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BGP'/><title type='text'>eBGP and iBGP</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;Need for eBGP and iBGP&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;BGP sessions between peers belonging to different autonomous systems is known as eBGP. This is by default only between directly connected peers. It is possible to overcome this restriction using eBGP multihop though. Suppose a eBGP router is learning a set of prefixes via the eBGP session with a neighboring AS router, it needs to have some way to distribute this information to the other routes in its own AS. To do this it can redistribute those routes into an IGP. However the disadvantage with this is that if the routes need to go out again from AS to some other AS connected elsewhere, the IGP routes need to redistributed back into BGP at that point. However at this point we would have lost all the BGP information such as AS path, community etc. that were there in the original BGP update received. Hence we need to have a BGP mechanism to transfer the prefixes learnt from eBGP within the AS, this is known as iBGP.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;Why iGBP neighbors have to be fully meshed?&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;iBGP sessions always need to be full meshed. Consider a normal distance vector protocol case such as RIP. It is possible that the routes that are advertised by some router come back to the same router again via a different path (even if split horizon is enabled). The reason the routes dont get populated again is because they are now coming with a higher cost than the one we originally advertised. In BGP, the only cost available in the route update for a prefix is the AS path length and the AS path doesnt change when it travels inside an AS. Hence if we receive back the prefixes we sent originally there is no way to detect it so in iBGP. To overcome this, it was decided that no router will re-advertise what it learnt from a particular iBGP neighbor to other iBGP neighbors. This in turn meant that all iBGP routers have to be in a full mesh.&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;Prefix synchornization&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;BGP prefix synchronization with IGP routes is only needed for a specific scenario where the AS is a transit AS and not all routers in the AS are running BGP. Consider the below topology.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-WDtutXQmCes/Tb-RK6g9MbI/AAAAAAAAGFg/UhABlMVE9J0/s1600/BGP+Synchronization.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="286" src="http://2.bp.blogspot.com/-WDtutXQmCes/Tb-RK6g9MbI/AAAAAAAAGFg/UhABlMVE9J0/s640/BGP+Synchronization.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;In the above R6 is going to advertise the routes it learnt from AS 6501 neighbor R7 into iBGP. R2 learns these routes and assume it installs them in the routing table. Now it can advertise these routes to R1 in AS 6502 and R1 can start sending traffic to these prefixes to R2. In R2 the next hop for these routes will be R6 IP address and it will forward those packets along the way to R3. However if IGP is no synchronized at this point and R3 still does not have the route to the prefix, then it will result in blackhole. R2 can know that all IGPs in the AS have the route to the prefix if its own IGP instance also learns this route. Hence in prefix synchronization, for routes learnt via iBGP, the local IGP routing table is checked to see if the same prefix is available and only then the routes are advertised to other eBGP neighbors.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;The prerequisite for the above to work is for all BGP routes to be redistributed into IGP. This is not a very favorable scenario usually because it puts an enormous strain on the IGP computing resources. Hence for transit ASs it is a good idea to run BGP on all the routers in the AS and disable route synchronization.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-6051876549410428899?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/6051876549410428899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/05/ebgp-and-ibgp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/6051876549410428899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/6051876549410428899'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/05/ebgp-and-ibgp.html' title='eBGP and iBGP'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-WDtutXQmCes/Tb-RK6g9MbI/AAAAAAAAGFg/UhABlMVE9J0/s72-c/BGP+Synchronization.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-470064596528385801</id><published>2011-05-02T05:24:00.000-07:00</published><updated>2011-05-03T01:25:17.992-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BGP'/><title type='text'>BGP primer</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;BGP is an exterior gateway protocol that is suited for exchanging large amount of routing information among peers belonging to same or different domains. BGP is essentially a distance vector protocol but there are things that make it more suited for being an inter-autonomous system protocol. They are,&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;Stability &lt;/b&gt;BGP suppresses the impact of interface or route up/down events on the network as flaps can be catastrophic on a huge network. A BGP speaker can generate updates only every 30 seconds on a external BGP session and only every 5 seconds on a internal BGP session. Route dampening is another feature where unstable routes are penalized and not advertised as frequently. Also BGP sessions need not be reset when policies change.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;Scalability &lt;/b&gt;BGP with modern routers can scale up to hundreds of peer sessions and many hundred thousand routes. As a distance vector protocol BGP advertises routes to its peers only the paths it uses and any change in path information is an implicit withdrawal of earlier information. BGP requires all routers in a AS to be fully meshed, however this limitation can be overcome by features such as route reflector and confederations. Aggregation of routes is supported and important to keep the size of updates low.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;Flexibility &lt;/b&gt;BGP offers an extensive amount of flexibility in defining policies. There are basically two kinds of policies - routing and administrative. A routing policy can be defined on the inbound or outbound direction and can control things accepting route updates only from a specific upstream provider or changing the path selection. Administrative policies work at the AS boundaries to control things like how many prefixes can be imported into the AS or what routes can be advertised outside of the AS etc.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-470064596528385801?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/470064596528385801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/05/bgp-primer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/470064596528385801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/470064596528385801'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/05/bgp-primer.html' title='BGP primer'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-4188468219550377682</id><published>2011-05-02T01:06:00.000-07:00</published><updated>2011-05-03T01:25:55.691-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='L2VPN'/><category scheme='http://www.blogger.com/atom/ns#' term='LDP'/><title type='text'>Using LDP for PW establishment</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;Targetted LDP session establishment&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;LDP normally sends a hello packet to multicast address 224.0.0.2 and UDP port 646 for discovery of neighbors. However when we need to establish LDP session across multiple routers, it is not possible to send multicast LDP hellos. The discovery in these cases is achieved by sending a unicast UDP packet to port 646 with the pre-configured destination address of the LDP peer. A TCP session is subsequently established to that remote LDP neighbor. For L2VPN cases, the PW peer address is automatically picked up usually for establishment of the targetted LDP session for exchanging VC labels.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&amp;nbsp;&lt;b&gt; &lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;LDP Information exchange for PW&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;Every PW is identified by a PW identifier and can carry traffic of one particular L2 session with a CE router. By L2 session we mean, either untagged traffic, tagged traffic with a particular VLAN ID coming on the port or double tagged traffic with specific VLAN ID combination coming on the port. LDP communicates to the other end the mapping between a inner label and corresponding PW ID, which will then map to a corresponding outgoing disposition for that particular unique L2 session. The disposition may involve a VLAN translation as well at the egress PE.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;In normal LDP information exchange, for every prefix that the router wishes to receive with a label, the prefix (known as FEC) is advertised along with the desired label to the neighbors. This is done using a label mapping message that contains a FEC TLV followed by a Generic label TLV. Each FEC TLV can have multiple FEC elements but we support only one usually and the type is Prefix FEC (2). The Generic Label TLV can also hold multiple different types of labels but for our purposes this is just a 32 bit number. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/-0CJH0ROfTL4/Tb5d5jtqA-I/AAAAAAAAGFQ/dbYh1vNQz-k/s1600/LDP+Normal+FEC+TLV.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://4.bp.blogspot.com/-0CJH0ROfTL4/Tb5d5jtqA-I/AAAAAAAAGFQ/dbYh1vNQz-k/s640/LDP+Normal+FEC+TLV.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;For purposes of information exchange for PW scenario, we have defined two new FEC types - 128 (PWID FEC Element) and 129 (Generalized FEC element). 129 is not used widely. The TLV gives the binding of the local label for the PW endpoint, ie. the label with which it is expecting packets for that particular endpoint. The endpoint could be of three types - untagged port, single tagged port or a dual-tagged port. For the single tagged port case, every VLAN ID - port id combination becomes a separate endpoint and labels have to be generated separately for each. For double tagged case, each double tag and port id combination becomes a separate endpoint. This way customer VLANs need not be unique across the box and need to be unique only on that particular port.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/-QlYLE_HTA9o/Tb5f-WCD8EI/AAAAAAAAGFU/TCmQZfQ_Wjw/s1600/LDP+FEC+128.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="388" src="http://4.bp.blogspot.com/-QlYLE_HTA9o/Tb5f-WCD8EI/AAAAAAAAGFU/TCmQZfQ_Wjw/s640/LDP+FEC+128.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;The Interface Parameter TLV in the above message gives information about the attachment circuit interface such as MTU, this can be used to check if the two endpoints are interoperable.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;When a particular endpoint (Attachment Circuit) is administratively disabled, the label advertised for the same is withdrawn using a Label Withdrawal LDP message.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-m0SE2YVUqXc/Tb5lzViki3I/AAAAAAAAGFY/RfTKAN8rElA/s1600/LDP+FEC+128+Withdraw.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-m0SE2YVUqXc/Tb5lzViki3I/AAAAAAAAGFY/RfTKAN8rElA/s640/LDP+FEC+128+Withdraw.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;Once the label is exchanged, we are ready to send packets with the label to the egress PE for suitable disposition. Generally by default routers to add the VLAN tag to the payload before encapsulating it in MPLS packet and it is possible to turn this off by configuration. This tag is then removed at the egress router if there is no tag necessary for the egress outgoing interface. For untagged scenarios the default VLAN is added as in example below. Also in the below packet capture, there is only one hop from ingress to egress, so there is no outer MPLS label due to PHP.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-IUanIiUEZuw/Tb5sCLz9qbI/AAAAAAAAGFc/zD6WraGvFew/s1600/L2VPN+data+packet.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="http://2.bp.blogspot.com/-IUanIiUEZuw/Tb5sCLz9qbI/AAAAAAAAGFc/zD6WraGvFew/s640/L2VPN+data+packet.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-4188468219550377682?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/4188468219550377682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/05/targetted-ldp-session-establishment-ldp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4188468219550377682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4188468219550377682'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/05/targetted-ldp-session-establishment-ldp.html' title='Using LDP for PW establishment'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-0CJH0ROfTL4/Tb5d5jtqA-I/AAAAAAAAGFQ/dbYh1vNQz-k/s72-c/LDP+Normal+FEC+TLV.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-3973639406023602628</id><published>2011-05-01T22:56:00.000-07:00</published><updated>2011-05-01T22:59:03.170-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='L2VPN'/><title type='text'>Layer 2 VPN Primer</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;A L2VPN service is used for multiplexing and transferring data from multiple individual L2 payload sources from one end to an intended recipient on the other end through a public network. For all practical purposes the customer edge(CE) device on one end of the network sees the CE device at the other end of the cloud as directly connected to it via a L2 link.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;a href="http://3.bp.blogspot.com/-fvHgF-ft-mo/Tb5C9tZTZgI/AAAAAAAAGFM/RpAqZ0G7QJs/s1600/L2VPN+Basic.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="http://3.bp.blogspot.com/-fvHgF-ft-mo/Tb5C9tZTZgI/AAAAAAAAGFM/RpAqZ0G7QJs/s640/L2VPN+Basic.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;The emulated L2 service could be anything of the following:&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;li&gt;ATM &lt;/li&gt;&lt;li&gt;Frame relay&lt;/li&gt;&lt;li&gt;PPP/HDLC&lt;/li&gt;&lt;li&gt;Ethernet &lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;When TDM based encapsulations are used on either side, it is also important to emulate the circuit based charachteristics of SONET/SDH. &lt;a href="http://en.wikipedia.org/wiki/TDMoIP"&gt;SAToP &lt;/a&gt;describes methods for transporting low rate TDM digital signals while CEP describes methods for high rate TDM like SONET/SDH. There are two encapsulations for the packet that is transported as a payload. The inner encapsulation is used by the remote endpoint to identify which psuedowire this traffic belongs to, so that it can be routed to the appropriate outgoing interface. The outer encapsulation masks the inner encapsulation while the packet is being transported across the shared network.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt; The &lt;/span&gt;&lt;a href="http://tools.ietf.org/html/rfc3985" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;RFC 3985&lt;/a&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt; describes the requirements in general for setting up a pseudowire and the conditions to be met for how the payload traffic flowing through it should be delivered. &lt;/span&gt;&lt;a href="http://tools.ietf.org/html/rfc4447" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;RFC 4447&lt;/a&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt; describes the usage of LDP to establish a psuedowire connection between two PE routers and distribution of psuedowire identification information for the inner encapsulation. Until now LDP is the only protocol used for establishment of the control plane and LDP was chosen because it had a good TLV based packet format. For outer level encapsulation, either MPLS could be used which in turn can be again using LDP or RSVP, or any other means to encapsulate a MPLS labelled packet can be used.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-3973639406023602628?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/3973639406023602628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/05/layer-2-vpn-primer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3973639406023602628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3973639406023602628'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/05/layer-2-vpn-primer.html' title='Layer 2 VPN Primer'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-fvHgF-ft-mo/Tb5C9tZTZgI/AAAAAAAAGFM/RpAqZ0G7QJs/s72-c/L2VPN+Basic.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-3628320279393137197</id><published>2011-04-30T05:50:00.000-07:00</published><updated>2011-04-30T05:50:44.163-07:00</updated><title type='text'>LDP IGP synchronization (RFC 5443)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;We will briefly look at the LDP IGP synchronization  feature.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt; &lt;/span&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;What is it?&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt; &lt;/span&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;Assume a IGP converged network where the IGP has already  computed the routes and installed in the forwarding database. Assume also that  LDP is running among the routers in the domain and LDP is still converging. It  is now possible that some packets are sent to a neighbor pointed to by IGP  before the LDP session to the neighbor is fully established and we have a label  to the destination address in the packet. This could be a problem in cases such  as VPN, where the LDP outer label has to be present in the packet end-to-end or  packet will be dropped due to lack of route etc. This feature, which can be  enabled on a per-interface basis and a per routing protocol basis will ensure  that packets are not forwarded on a link until LDP is fully synchronized with  atleast one neighbor (or all neighbors – see below) on the link.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt; &lt;/span&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;How is it done?&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt; &lt;/span&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;When an interface is marked as LDP-IGP synchronized, as long as  there is no LDP adjacency on the interface to atleast one IGP neighbor, the  interface is advertised within the IGP as having the highest metric/cost. This  prevents the link from getting used in the route calculations done by all the  other routers in the IGP domain. When LDP session is fully established, the link  is advertised with a normal cost. In the interim packets may still be sent via  another link (which is probably higher cost) but has full LDP on the path. There  is also a timer which is user-configurable and will start advertising the link  with normal metric/cost even though LDP has synchronized for a long time. The  default though will be that the timer is set to infinity.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt; &lt;/span&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;Limitations?&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt; &lt;/span&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;This feature will only work in a straightforward manner on P2P  interface or atleast interfaces that have only one LDP neighbor. When we have a  multi-access interface, there can be multiple IGP neighbors downstream. Each  neighbor could be a nexthop for a particular prefix and this will be known only  after SPF computation. For some neighbors we may have full LDP, while some are  not still fully established. However the link advertisement needs to be done on  a per link basis. So it becomes an implementation decision whether to wait for  all LDP peers to be fully connected before the link returns to normal cost.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt; &lt;/span&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;LDP as of today does not have a mechanism to signal an end of  LIB transfer. So after a LDP session is established a calculated guess needs to  be made about when the label database transfer will complete. This will depend  on the volume of the database and is usually a configurable option in the  routers.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt; &lt;/span&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt; &lt;/span&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;Cisco &lt;a href="http://www.cisco.com/en/US/docs/ios/mpls/configuration/guide/mp_ldp_igp_synch.pdf" title="http://www.cisco.com/en/US/docs/ios/mpls/configuration/guide/mp_ldp_igp_synch.pdf"&gt;http://www.cisco.com/en/US/docs/ios/mpls/configuration/guide/mp_ldp_igp_synch.pdf&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt; &lt;/span&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;Juniper &lt;a href="http://www.juniper.net/techpubs/software/erx/junose81/swconfig-bgp-mpls/html/mpls-config14.html" title="http://www.juniper.net/techpubs/software/erx/junose81/swconfig-bgp-mpls/html/mpls-config14.html"&gt;http://www.juniper.net/techpubs/software/erx/junose81/swconfig-bgp-mpls/html/mpls-config14.html&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt; &lt;/span&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;RFC 5443 &lt;a href="http://www.ietf.org/rfc/rfc5443.txt" title="http://www.ietf.org/rfc/rfc5443.txt"&gt;http://www.ietf.org/rfc/rfc5443.txt&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-3628320279393137197?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/3628320279393137197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ldp-igp-synchronization-rfc-5443.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3628320279393137197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3628320279393137197'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ldp-igp-synchronization-rfc-5443.html' title='LDP IGP synchronization (RFC 5443)'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-4459996485728278579</id><published>2011-04-30T05:35:00.001-07:00</published><updated>2011-04-30T18:32:15.661-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSPF'/><title type='text'>OSPF stub areas, NSSA and default routes</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;Stub Area&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;From the list of LSAs given in the earlier post, it would be  clear that AS external routes, such as those redistributed from BGP are flooded  across the OSPF domain as Type-5 LSAs and summary of routes within an area are  flooded using Type-3 LSAs. For some routing topologies, it may be unnecessary to  store the complete database as illustrated below.&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-MyOMQX9wXO4/Tby4ECK8O3I/AAAAAAAAGE0/3S4SQ7FV4Zo/s1600/OSPF+Stub+area.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://1.bp.blogspot.com/-MyOMQX9wXO4/Tby4ECK8O3I/AAAAAAAAGE0/3S4SQ7FV4Zo/s640/OSPF+Stub+area.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;li&gt; &lt;div align="justify"&gt;In the above scenario Area 2 does not have to bother about  the external routes and needs to always send those packets to ABR1. However if  you consider routers in Area 1, they need to make to decision whether to send  the packets to Area 0 via ABR2 or to ASBR1, so they need to maintain the Type-5  LSAs in their database. So for saving memory and processing power on routers in  Area 2, it is configured as a stub area. This means ABR1 does not forward either  Type-3 or Type-5 LSAs into the neighbors in the area. &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;Whenever a network is configured as stub, the Hello packet E  bit is reset. Two routers can become hello adjacent only if the bit matches,  this is to prevent two routers in an area having different notions about being a  stub area. &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;It is obvious that a backbone area cannot be configured as  stub. &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;Also ASBRs cannot be supported into stub  areas.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;NSSA&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;There is another variation of the stub area called  Not-So-Stubby-Area (NSSA). The need for an NSSA is that in some instances it is  required for the area to process the external information that is injected from  BGP/RIP through an ASBR attached to it but it does not really care about  Type-3/5 LSAs injected from other areas. For example, in the above topology, if  suppose Area2 was also connected to an ASBR as this,&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;External routes –&amp;gt; ASBR2 - Area 2 – ABR1 – Area 0 – ABR2 –  Area 1 – ASBR1 &amp;lt;– External routes&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;Now Area 1 and Area 2 would need to process the external routes  that are injected by their corresponding ASBR but they are not really bothered  about the other ASBR in the domain that is injecting the routes because they  have only one ABR. In such cases the area is configured as an NSSA. NSSA areas  inject external routes as Type-7 LSAs into the area. The ABR of an NSSA converts  the Type-7 LSA into a Type-5 LSA before flooding it to other areas. &lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;These are the points to note when converting the LSAs and  flooding.&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;li&gt; &lt;div align="justify"&gt;Not all Type-7 LSAs are converted and flooded. This is  because some ASBR injected routes may be relevant only within the area and some  routes like default route should not be propagated. There is a N/P (propagate)  bit in the LSA that indicates whether this route needs to be propagated.&lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;There could be multiple ABRs in the NSSA and each of them  will receive the Type-7 route but only the ABR with the highest router ID  performs the translation.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;Default Routes&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;In the above cases of stub and NSSA we know that we need to use  the default route while routing packets from the stub/NSSA areas, which brings  up the question of how the default routes are generated within OSPF. The  following link should answer the question, ie. it is basically configured to do  so.&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;a href="http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094a74.shtml" target="_blank"&gt;How does OSPF generate default route – Cisco&lt;/a&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;We need to understand that there may be more than one ABR  connected to the stub/NSSA areas and they can both be advertising default  routes. The one among them is chosen using normal cost based rules.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-4459996485728278579?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/4459996485728278579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ospf-stub-areas-nssa-and-default-routes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4459996485728278579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4459996485728278579'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ospf-stub-areas-nssa-and-default-routes.html' title='OSPF stub areas, NSSA and default routes'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-MyOMQX9wXO4/Tby4ECK8O3I/AAAAAAAAGE0/3S4SQ7FV4Zo/s72-c/OSPF+Stub+area.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-2881275815174730735</id><published>2011-04-30T05:34:00.001-07:00</published><updated>2011-04-30T18:26:25.465-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSPF'/><title type='text'>OSPF link state advertisement and acknowledgement</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;LSA Types&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;For a brief description of all the LSA types refer  &lt;a href="http://en.wikipedia.org/wiki/Link-state_advertisement"&gt;this&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;b&gt;LSA aging&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;Let us  briefly describe how link state information is aged. The LS age that is present  in the LS header counts from 1 up. When the age of an LSA reaches one hour it is  removed from the router’s database. The LSA is required to be refreshed normally  every 30 minutes. Also as seen earlier, an LS is not updated more frequently  than every 5 seconds. It is possible that a router that advertised an LSA dies,  in which case it takes an hour for the information to be flushed out. It is  possible for a originating router to flush out the LSA from the system by  advertising it with Age 0 at any time.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-2881275815174730735?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/2881275815174730735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ospf-link-state-advertisement-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2881275815174730735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2881275815174730735'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ospf-link-state-advertisement-and.html' title='OSPF link state advertisement and acknowledgement'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-4285922420013825866</id><published>2011-04-30T05:33:00.001-07:00</published><updated>2011-04-30T18:18:59.639-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSPF'/><title type='text'>OSPF database synchronization between neighbors</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;LSA Header&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;There are basically two portions to every LSA, a  header which is 20 bytes long which uniquely identifies the LSA using a  combination of &lt;ls advertising="" link="" router="" state=""&gt; and a LS type  specific portion. The contents of the LSA header area:&lt;/ls&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;ls advertising="" link="" router="" state=""&gt;LS Age&lt;/ls&gt;&lt;/li&gt;&lt;li&gt;&lt;ls advertising="" link="" router="" state=""&gt;Options &lt;/ls&gt;&lt;/li&gt;&lt;li&gt;&lt;ls advertising="" link="" router="" state=""&gt;LS Type&lt;/ls&gt;&lt;/li&gt;&lt;li&gt;&lt;ls advertising="" link="" router="" state=""&gt;Link State ID&lt;/ls&gt;&lt;/li&gt;&lt;li&gt;&lt;ls advertising="" link="" router="" state=""&gt;Advertising Router&lt;/ls&gt;&lt;/li&gt;&lt;li&gt;&lt;ls advertising="" link="" router="" state=""&gt;LS&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt; sequence number&lt;/span&gt;&lt;/ls&gt;&lt;/li&gt;&lt;li style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;ls advertising="" link="" router="" state=""&gt;LS checksum&lt;/ls&gt;&lt;/li&gt;&lt;li style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;ls advertising="" link="" router="" state=""&gt;Length&lt;/ls&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;ls advertising="" link="" router="" state=""&gt;&lt;br /&gt;&lt;/ls&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;&lt;ls advertising="" link="" router="" state=""&gt;Database description packet&lt;/ls&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;ls advertising="" link="" router="" state=""&gt;&lt;br /&gt;&lt;/ls&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: left;"&gt;&lt;li&gt;When routers become hello adjacent, the router generates a  database description packet (DDP) that contains the LSA headers of all the LSAs  it has.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Each DDP has a sequence number and is individually acknowledged by the  neighbor. The neighbor can send back its own data in the acknowledgement. Unless  an ack is received the next DDP packet is not sent.&amp;nbsp;&lt;/li&gt;&lt;li&gt;The final DDP packet is a  blank packet just for ack purposes. &lt;/li&gt;&lt;/ul&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-38ckFqU7m4c/Tby0iWAHXKI/AAAAAAAAGEg/oJlgFzXZmk4/s1600/OSPF+DDP.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="264" src="http://3.bp.blogspot.com/-38ckFqU7m4c/Tby0iWAHXKI/AAAAAAAAGEg/oJlgFzXZmk4/s640/OSPF+DDP.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-LV9_U6eU26A/Tby0nQocpbI/AAAAAAAAGEk/i-V0JNTP3gY/s1600/OSPF+DDP1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://3.bp.blogspot.com/-LV9_U6eU26A/Tby0nQocpbI/AAAAAAAAGEk/i-V0JNTP3gY/s640/OSPF+DDP1.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;LS Request and Update&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: left;"&gt;&lt;li&gt;The receiving router examines every LSA header and looks at the  sequence number of the LSA. If it already has the LSA but with a lower sequence  number or if it doesnt have the LSA at all, it sends a LS Request packet for  that specific LSA.&amp;nbsp;&lt;/li&gt;&lt;li&gt;The LSA sequence numbers are linear increasing numbers. The  sequence number starts at 0x80000001 which is the least negative number (it is  signed) and then increases until max positive number. Since routers are not  allowed to regenerate an LSA more frequently than 5 seconds, it will take about  600 years for the sequence number to run out. &lt;/li&gt;&lt;li&gt;On identifying the LSAs that are needed from the neighbor the  router sends out the following LS Request packet, identifying each LSA by &lt;ls advertising="" id="" link="" router="" state=""&gt;. It does not specify the instance  as the LSA could have changed between the last DDP and now.&lt;/ls&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-DPNAE3DQjOs/Tby0taKw8oI/AAAAAAAAGEo/OxSLuLHxFTk/s1600/OSPF+LSRequest.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://4.bp.blogspot.com/-DPNAE3DQjOs/Tby0taKw8oI/AAAAAAAAGEo/OxSLuLHxFTk/s640/OSPF+LSRequest.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-H_jwDo1QJzg/Tby0vEqeP6I/AAAAAAAAGEs/tiL2qQNxkKw/s1600/OSPF+LSUpdate.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-H_jwDo1QJzg/Tby0vEqeP6I/AAAAAAAAGEs/tiL2qQNxkKw/s640/OSPF+LSUpdate.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Djh7vl8LCY0/Tby0w838DMI/AAAAAAAAGEw/hdValEQ2enw/s1600/LS+Ack.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-Djh7vl8LCY0/Tby0w838DMI/AAAAAAAAGEw/hdValEQ2enw/s640/LS+Ack.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-4285922420013825866?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/4285922420013825866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ospf-database-synchronization-between.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4285922420013825866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4285922420013825866'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ospf-database-synchronization-between.html' title='OSPF database synchronization between neighbors'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-38ckFqU7m4c/Tby0iWAHXKI/AAAAAAAAGEg/oJlgFzXZmk4/s72-c/OSPF+DDP.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-6948738977404815140</id><published>2011-04-30T05:32:00.001-07:00</published><updated>2011-04-30T16:54:23.823-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSPF'/><title type='text'>OSPF hello establishment on broadcast and p2p links</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;In this part we will look at OSPF neighbor establishment.&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: left;"&gt;&lt;li&gt; &lt;div align="justify"&gt;When Hello packets are successfully exchanged between two  directly connected routers, they become neighbors (partially adjacent). They  become fully adjacent when their databases are synchronized. &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;In a broadcast network, if every node needs to become a  neighbor of every other node, then we need n * (n-1) / 2 adjacencies and  databases need to be synchronized in all the adjacencies. To avoid this, one of  the routers in the network is elected as a Designated Router (DR) and  adjacencies are formed between all the routers in the network and the DR alone.  This will result in only n-1 adjacencies. To handle the eventuality of DR going  down and a new DR election taking place, causing disruption to protocol working,  a Backup Designated Router (BDR) is also elected. All routers have a adjacency  formed with the BDR as well, hence with a BDR there are 2n-1 adjacencies in a network.  &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;OSPF transmits a Hello packet on all enabled interfaces  periodically (default: 10 seconds). When OSPF does not receive a Hello packet  from a neighbor for 4x Hello interval, it deems that the neighbor is dead and  starts rerouting traffic away from the failed node. However there exist other  mechanisms such as BFD to detect failures faster than the OSPF Dead interval.  &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;&amp;nbsp;OSPF respects IP subnet model, hence if the network mask does not match  between two routers, hello adjacency does not come up between them.  Router priority is used in DR election. If a router does not wish to be  considered in DR/BDR election it should advertise itself with a priority of 0.The hello interval and dead interval can be tweaked during advertisement to  a value that is possibly higher than the default, this will result in lesser  message exchange but higher dead neighbor detection time.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;OSPF hello packets are always sent to AllSPFRouters  (224.0.0.5) to which all OSPF enabled interfaces listen to.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-tlEkIY2kPGM/TbwO7yQTczI/AAAAAAAAGEc/voDDMFTwHQA/s1600/OSPF+Hello.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://2.bp.blogspot.com/-tlEkIY2kPGM/TbwO7yQTczI/AAAAAAAAGEc/voDDMFTwHQA/s640/OSPF+Hello.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-6948738977404815140?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/6948738977404815140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ospf-hello-establishment-on-broadcast.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/6948738977404815140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/6948738977404815140'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ospf-hello-establishment-on-broadcast.html' title='OSPF hello establishment on broadcast and p2p links'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-tlEkIY2kPGM/TbwO7yQTczI/AAAAAAAAGEc/voDDMFTwHQA/s72-c/OSPF+Hello.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-246319930543687119</id><published>2011-04-30T05:31:00.000-07:00</published><updated>2011-04-30T16:55:24.819-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSPF'/><title type='text'>OSPF primer</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;In a series of posts, we will look at the different aspects of  Open Shortest Path First (OSPF) algorithm and its working in a little bit of  detail.&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;History&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;OSPF is an IETF defined routing protocol. Even though ISO  committee was working on IS-IS at the same time, IS-IS at that time was not  deemed fit for a IP based routing protocol as IS-IS was run in Layer 2 and there  were no extensions for IP in it (at that time). Also it didnt make use of IP  features such as fragmentation and reassembly, multicast address etc. at that  time. It is a different story that IS-IS also evolved a lot under the IETF and  is another primary IGP today but IETF wanted full control over the specification  of a IP based IGP and the goal was achieved with OSPF which became the most  popular IGP as far back as 1992. OSPFv2 is the standard for IPv4 OSPF. When IPv6  came along, OSPFv3 was defined that specifically catered to IPv6 alone. There  are only a few functional differences between OSPFv2 and OSPFv3 though and we  will examine them as well.&lt;/div&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;Highlights&lt;/b&gt;&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;li&gt; &lt;div align="justify"&gt;OSPF runs directly over IP, it has a protocol number of 89.  &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;OSPF uses a combination of Djikstra’s Shortest Path First  Algorithm (SPF) and distance vector algorithm (otherwise known as Bellman-Ford).  &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;OSPF is a hierarchial routing protocol, it splits the entire  routing domain into different areas and runs SPF separately for each area. For  intra-area route calculation SPF is used and for inter-area routes, distance  vector algorithm is used. &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;OSPF defines a common high level architecture for identifying  neighbors and distributing network information that can be used for the route  calculation but specifies different mechanisms for handling different types of  networks such as point-to-point networks, broadcast networks, NBMA networks and  point-to-multipoint networks.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;b&gt;Operation&lt;/b&gt;&lt;/div&gt;&lt;ul style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;li&gt; &lt;div align="justify"&gt;An OSPF domain is split into multiple areas, there is a  special area known as the backbone area which binds together all areas. The  routers that connect to more than one area are called Area Border Routers (ABR).  An area must have an ABR that floods information into the backbone area. However  it is possible that the ABR is not directly connected to the backbone area but  attaches to another ABR via a &lt;i&gt;virtual link&lt;/i&gt; to flood its area  information into the backbone area. &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;A set of directly connected routers can form an adjacency by  using Hello packets. &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;Once two neighbors have communication setup, they exchange  their local Link State database with each other using Database Description  packets and Link State packets. Link state information that is generated by a  router will contain its local interface information plus information that is  re-distributed into OSPF by other routing protocols such as RIP and BGP. &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;By means of a concept called reliable flooding, it is ensured  that the database is completely synchronized across the whole network. &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;SPF is now run on the database to compute the routes to  different networks and installed in the RIB. The SPF calculation is only for  intra-area, for inter-area a distance vector method is used. &lt;/div&gt;&lt;/li&gt;&lt;li&gt; &lt;div align="justify"&gt;Any change in the network topology will regenerate a LSA  which is again reliably flooded across the network and SPF is  rerun.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify" style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;We will look at the above steps in more detail in subsequent  posts.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-246319930543687119?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/246319930543687119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ospf-primer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/246319930543687119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/246319930543687119'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/04/ospf-primer.html' title='OSPF primer'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-7199245993759971895</id><published>2011-04-30T05:27:00.000-07:00</published><updated>2011-04-30T16:57:23.721-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='L3VPN'/><title type='text'>Can we use GRE tunnel for L3VPN?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;The answer is yes and &lt;a href="http://www.ietf.org/rfc/rfc4797.txt"&gt;RFC  4797&lt;/a&gt; describes the use of GRE or IP tunnels instead of a MPLS based tunnel  for implementing Layer 3 VPNs.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;In the MPLS/BGP IP VPN model, the ingress PE, egress PE as well as the  transit P routers need to be MPLS aware. However there may be scenarios where  are non-MPLS aware P routers in a network over which a MPLS/IP-VPN must run.  This RFC addresses this particular condition with a less secure IP/GRE based  tunnel solution.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;Operation&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;In the usual MPLS/BGP VPN model, MP-BGP runs between the PE endpoints and  distributes the VC label for a particular VRF route. After this label is pushed  onto the packet, there is an outer label that is pushed that belongs to a RSVP  or LDP tunnel that runs from the source PE to the destination PE. In the model  described in the RFC, the operation of the protocol until the inner label is  pushed is the same as traditional L3 MPLS based VPNs. However beyond that  instead of pushing the packet with a RSVP/LDP label, the packet is encapsulated  in a IP or GRE tunnel. It is possible to copy the QoS properties from the inner  packet to the outside label as well to ensure preferential treatment. So this is  basically MPLS over IP or MPLS over GRE. The transit P routers forward the  packet only based on the IP/GRE header and are not required to be MPLS  capable.&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;&lt;b&gt;Security&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;"&gt;In the traditional model packets arriving at a egress PE come in with a label  and the PE can validate that the packet is indeed arriving with the label that  is distributed to its immediate upstream neighbor. However in the IP tunnel  model, the packets arriving are plain IP packets which are susceptible to being  spoofed.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-7199245993759971895?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/7199245993759971895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/04/can-we-use-gre-tunnel-for-l3vpn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/7199245993759971895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/7199245993759971895'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/04/can-we-use-gre-tunnel-for-l3vpn.html' title='Can we use GRE tunnel for L3VPN?'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-4275609991949724761</id><published>2011-04-30T05:26:00.000-07:00</published><updated>2011-04-30T05:27:46.235-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>How to calculate bandwidth per slot?</title><content type='html'>&lt;p&gt;There are recent announcements of a &lt;a href="http://www.lightreading.com/document.asp?doc_id=187544&amp;amp;"&gt;250Gbps per  slot&lt;/a&gt; product from Juniper and a CRS-1 successor from Cisco that is 120Gbps  per slot. At this point we must understand that there are different “maths” for  doing this. Here are a few links that throw more light on the issue.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.networkworld.com/community/node/25899"&gt;Rules for stating  bandwidth on Cisco and competitive switches.&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.cisco.com/datacenter/comments/lets_talk_bandwidth/"&gt;Lets talk  bandwidth&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Here is a gist/example of how bandwidth capacity of a slot is done:&lt;/p&gt; &lt;p&gt;Every switch fabric has a channel capacity (say 3.125 Gbps full duplex)&lt;/p&gt; &lt;p&gt;Each switch fabric has multiple channels going to a single slot (say 2, which  means there is 6.25 Gbps capacity)&lt;/p&gt; &lt;p&gt;Each slot is connected to multiple switch fabrics at the same time depending  on the architecture, say this is 10. Hence each slot has access to 62.5Gbps  bandwidth full duplex per slot. There are some companies which state this as  125Gbps because they count 62.5Gbps in IN direction and 62.5Gbps in out  direction at the same time.&lt;/p&gt; &lt;p&gt;Each fabric has a total number of channels it can support. In above case we  had 10 slots with 2 channels to each slot, so a minimum of 20 channels has to be  supported by the fabric. Assume that the fabric has capacity for more channels  (for any future expansions) and it can support 26 channels. Then the switching  capacity of the fabric is 125Gbps * 26 = 3.25Tbps. Note that here we have taken  the full duplex into account.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-4275609991949724761?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/4275609991949724761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/04/how-to-calculate-bandwidth-per-slot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4275609991949724761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/4275609991949724761'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/04/how-to-calculate-bandwidth-per-slot.html' title='How to calculate bandwidth per slot?'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-3892108522924931658</id><published>2011-04-30T05:22:00.000-07:00</published><updated>2011-04-30T05:36:10.341-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>Cut-through and store-and-forward switching</title><content type='html'>&lt;p&gt;When packets are forwarded by a ASIC or an FPGA based L2/L3 switch, there are  fundamentally two different models that can be used. In the first, the entire  packet is received from the incoming port and buffered, the ASIC/FPGA  instructions are executed over the packet in one shot depending on or multiple  level TCAM matches. The packet is then modified and sent out of the egress port,  this model is known as store and forward architecture. The main advantage of  this model is that because it inherently supports buffering, it can support  cases where there is a speed mismatch between the ingress and egress ports  (ingress being more). The main disadvantage is that there is an inherent latency  involved in the model.&lt;/p&gt; &lt;p&gt;In some environments such as HPC or in data centers, it is possible that the  latency (which could be in the order of microseconds) is not acceptable. There  are also cases where there may be a huge network consisting of switches at  multiple levels and hence the latencies will add up and the aggregate number is  too large (such as in trading environments). To address these, there is an an  alternative model of switching known as cut-through switching, in which the  packet is not buffered and is switched as soon the relevant headers are  inspected. There may be configurations, such as ACL, which may require more  fields in the header to be examined before a decision is taken. Also it is  possible that packets with errors in FCS are also forwarded because FCS appears  at the end of the packet. However these are minor issues considering that the  latency can be reduced to be order of nano seconds. &lt;/p&gt; &lt;p&gt;Cisco link describing the two models of switching:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-465436.html" href="http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-465436.html"&gt;http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-465436.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.aristanetworks.com/en/products/7100series" href="http://www.aristanetworks.com/en/products/7100series"&gt;&lt;span style="color:#444444;"&gt;Arista 7100 series data sheet supporting 600 ns latency (Uses  Fulcrum)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.aristanetworks.com/en/products/7100series"&gt;http://www.aristanetworks.com/en/products/7100series&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Juniper EX2500 supporting 700ns latency (uses Fulcrum)&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.juniper.net/us/en/products-services/switching/ex-series/ex2500/#specifications" href="http://www.juniper.net/us/en/products-services/switching/ex-series/ex2500/#specifications"&gt;http://www.juniper.net/us/en/products-services/switching/ex-series/ex2500/#specifications&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Blade technologies Rackswitch G8124 again supporting 700ns latency using  Fulcrum&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.bladenetwork.net/RackSwitch-G8124.html" href="http://www.bladenetwork.net/RackSwitch-G8124.html"&gt;http://www.bladenetwork.net/RackSwitch-G8124.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Force10 S2410 switch supporting 300ns latency&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.force10networks.com/products/s2410.asp" href="http://www.force10networks.com/products/s2410.asp"&gt;http://www.force10networks.com/products/s2410.asp&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Brocade TurboIron 24x supporting 1.5 microsecond latency&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.brocade.com/products-solutions/products/ethernet-switches-routers/enterprise-mobility/product-details/turboiron-24x-switch/overview.page" href="http://www.brocade.com/products-solutions/products/ethernet-switches-routers/enterprise-mobility/product-details/turboiron-24x-switch/overview.page"&gt;http://www.brocade.com/products-solutions/products/ethernet-switches-routers/enterprise-mobility/product-details/turboiron-24x-switch/overview.page&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-3892108522924931658?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/3892108522924931658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2011/04/cut-through-and-store-and-forward.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3892108522924931658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3892108522924931658'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2011/04/cut-through-and-store-and-forward.html' title='Cut-through and store-and-forward switching'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-6228056281831742909</id><published>2009-06-11T01:16:00.000-07:00</published><updated>2009-06-11T01:18:15.205-07:00</updated><title type='text'>VPLS architecture</title><content type='html'>&lt;span style="font-family:lucida grande;"&gt;I will get around soon to writing a few notes here about VPLS architecture as I am still learning about it. But pasting the link to the document that has a very good description about it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.exponential-e.com/PDF/whitepapers/VPLS-Technical-Tutorial.pdf"&gt;http://www.exponential-e.com/PDF/whitepapers/VPLS-Technical-Tutorial.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-6228056281831742909?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/6228056281831742909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2009/06/vpls-architecture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/6228056281831742909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/6228056281831742909'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2009/06/vpls-architecture.html' title='VPLS architecture'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-3489372953176586360</id><published>2009-06-11T01:02:00.000-07:00</published><updated>2011-05-27T20:08:09.333-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MPLS architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='L2VPN'/><category scheme='http://www.blogger.com/atom/ns#' term='LDP'/><title type='text'>Kompella and Martini</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Both Draft-Martini and Draft-Kompella were the starting points for defining Layer-2 VPN architectures.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Draft-Martini utilizes LDP to establish a point-to-point Layer-2 VPN over a MPLS backbone, it does not talk anything about auto-discovery.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Draft-Kompella utilizes BGP for both signalling and auto-discovery to establish fully meshed (multipoint) pseudowires for L2VPN over MPLS backbone.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Draft-Martini was standardized into RFC 4906 (which is now historic) and it has been superseeded by PWE2 working group documents RFC 4447 and related ones. Draft-Kompella expired and was never made into an RFC.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;The documents later evolved into 3 sets of documents:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;RFC4447 and related documents standardized by PWE3 group&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;RFC4761 Virtual Private LAN Service (VPLS) Using BGP for Auto-discovery and Signaling by Kireeti Kompella and Yakhov Rekhter&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;RFC 4762 Virtual Private LAN Service (VPLS) Using BGP for Auto-discovery and Signaling by Marc Lasserre and Vach Kompella&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;A more detailed description of the above evolution is given here&lt;/span&gt;&lt;br /&gt;&lt;a href="http://networkers-online.com/blog/2009/01/draft-martini-draft-kompella-and-l2vpn-services/"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;http://networkers-online.com/blog/2009/01/draft-martini-draft-kompella-and-l2vpn-services/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-3489372953176586360?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/3489372953176586360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2009/06/kompella-and-martini.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3489372953176586360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/3489372953176586360'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2009/06/kompella-and-martini.html' title='Kompella and Martini'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-1849491764312980368</id><published>2009-06-10T22:57:00.000-07:00</published><updated>2011-09-21T22:11:34.989-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MPLS architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='LDP'/><title type='text'>Need to set BOS bit for LDP untagged operation</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: lucida grande;"&gt;Consider a case of LDP untagged operation, ie. a downstream router has not advertised a label for a particular prefix. Now if we receive a packet with 2 labels and the outer label matches our incoming label for this particular prefix, then the normal operation is to remove the outer label and forward the packet to the IGP selected neighbor. Which of course in this case has not advertised any label as yet. However this should not be done, because the downstream neighbor may or may not have a proper entry for the bottom label that will not be exposed. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If the downstream neighbor were really interested in receiving the bottom label (customer label) and switch based on that, it should have advertised implicit null (3). Since it has not done that, we cannot expose the inner label to it. So for all such cases where the outgoing label is untagged, we must check bottom-of-stack (BOS) bit. Only if it is set we can forward the packet after popping top label.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This is a typical scenario where LDP is running in the core and there are pseudowire LSPs running beneath it with customer labels. Incase the LDP path is broken in between the core cloud, this will prevent packets from getting forwarded with incorrect label within the core.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-1849491764312980368?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/1849491764312980368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2009/06/need-to-set-bos-bit-for-ldp-untagged.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1849491764312980368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/1849491764312980368'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2009/06/need-to-set-bos-bit-for-ldp-untagged.html' title='Need to set BOS bit for LDP untagged operation'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-2765295659470641288</id><published>2009-06-10T22:20:00.000-07:00</published><updated>2009-06-10T22:41:17.522-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RSVP'/><title type='text'>RSVP protocol</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:lucida grande;"&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;RSVP is a resource reservation protocol. It tries to reserve resources in the forward path between a source and a receiver or multiple receivers. It is not a routing protocol by itself but can work with any routing protocol to find paths that match a resource requirement and also reserve resources along the path that is computed.&lt;br /&gt;&lt;br /&gt;RSVP is receiver oriented, it is the receiver which initiates and refreshes the resource reservation. RSVP is a soft state protocol, so reservations have to be refreshed in periodic intervals. Resource reservation can use one of different styles defined by RSVP. There is scope for future extension of styles as well. The Qos parameters that are reserved are opaque to RSVP, its job is to only carry the reservation request and verify if the request can be satisfied by the router.&lt;br /&gt;&lt;br /&gt;The different reservation styles that are currently defined are described below. Before we get to that we must understand the following terms.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Filter spec&lt;/strong&gt;&lt;br /&gt;Assume there are n senders sending data flows to a particular receiver. A filter spec identifies the specific sender or senders for whom to apply this resource reservation. So in the above case there can be n distinct filter specifications based on the sender IP address. A sender port number can also be used as an additional distinguishing parameter for filter spec.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Flow spec&lt;/strong&gt;&lt;br /&gt;A flow specification gives the QoS parameters that are to be reserved for a particular session. These parameters as I already mentioned are totally opaque to RSVP. From the above definition of filter spec, we must be able to understand that for every filter spec there is a flow spec and that filter spec could be for one or many senders.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Wildcard Filter&lt;/strong&gt;&lt;br /&gt;There are no separate filterspec specifications for distinguishing between senders here. All senders for a particular flow share the largest reservation that is made on the router. The merged request that is sent to upstream neighbors (there may be two upstream neighbors if two Path messages were received for same flow), contains the largest allocation that is required downstream taking into account all the downstream interfaces.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Fixed-Filter Spec&lt;/strong&gt;&lt;br /&gt;In this model, distinct reservations are made for every on the outgoing interface, but if there are more than one outgoing interface for the same filterspec, then the same reservation is used for both. When the reservation requests are sent upstream, every distinct filterspec generates a separate reservation request, that is the maximum of the filter-spec that is received on all outgoing interfaces.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Shared-Explicit Spec&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:lucida grande;font-size:100%;"&gt;Here the different filter-specs of the same flow share the same reservation on the outgoing interfaces. When the reservation requests are merged and sent upstream, the requests are sent to upstream neighbors that sent the Path messages for that particular and that is the merge of all senders for that flow irrespective of the requirement of that particular sender.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-2765295659470641288?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/2765295659470641288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2009/06/rsvp-protocol.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2765295659470641288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/2765295659470641288'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2009/06/rsvp-protocol.html' title='RSVP protocol'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4930996102809526927.post-9012930383077038141</id><published>2008-06-10T22:01:00.000-07:00</published><updated>2009-06-10T22:41:39.214-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RSVP'/><title type='text'>RSVP basics</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:lucida grande;"&gt;RSVP reserves resources in a network for a particular traffic flow.&lt;br /&gt;&lt;br /&gt;A flow is generally identified by&lt;br /&gt;+ Destination address&lt;br /&gt;+ Protocol identifier&lt;br /&gt;+ Optionally a destination port.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div align="left"&gt;&lt;span style="font-family:lucida grande;"&gt;RSVP Path Message:&lt;br /&gt;# Path messages are sent by the sender of the traffic to the actual destination address of the stream.&lt;br /&gt;# These contain the RA option causing the intermediate routers along the path to inspect the packet and create&lt;br /&gt;a Path State Block for the packet.&lt;br /&gt;# Path messages contain a Sender Template which is exactly similar to Filter Specification and can contain a&lt;br /&gt;maximum of sender IP address and TCP/UDP port optionally. They inherit the protocol from the session.&lt;br /&gt;# Contain a Sender Tspec and an Adspec.&lt;br /&gt;&lt;br /&gt;Types of RSVP classes:&lt;br /&gt;+ Null (Need not be implemented), Session, Rsvp_Hop, Time_Values,&lt;br /&gt;+ Style, Flowspec, Filter_Spec, Sender_Template,&lt;br /&gt;+ Sender_Tspec, Adspec, Error_Spec, Policy_Data (not defined yet),&lt;br /&gt;+ Integrity, Scope and Resv_Confirm&lt;br /&gt;Each class has its own set of C-types which can for example be used to distinguish between IPv4 and IPv6.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4930996102809526927-9012930383077038141?l=sudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sudorandom.blogspot.com/feeds/9012930383077038141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sudorandom.blogspot.com/2009/06/rsvp-basics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/9012930383077038141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4930996102809526927/posts/default/9012930383077038141'/><link rel='alternate' type='text/html' href='http://sudorandom.blogspot.com/2009/06/rsvp-basics.html' title='RSVP basics'/><author><name>Anand</name><uri>http://www.blogger.com/profile/17081944941129719678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
