<?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:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-23021255</id><updated>2010-09-02T22:20:43.467+02:00</updated><title type='text'>Cisco IOS Hints and Tricks</title><subtitle type='html'>Internetworking perspectives by Ivan Pepelnjak</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.ioshints.info/feeds/posts/full'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/full'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/full?start-index=26&amp;max-results=25'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1099</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-23021255.post-6892241058785294327</id><published>2010-09-02T07:14:00.002+02:00</published><updated>2010-09-02T19:15:30.013+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IP routing'/><category scheme='http://www.blogger.com/atom/ns#' term='switching'/><title type='text'>RIBs and FIBs (aka IP routing table and CEF table)</title><content type='html'>&lt;p&gt;Every now and then, I’m asked about the difference between Routing Information Base (RIB), also known as IP Routing Table and Forwarding Information Base (FIB), also known as CEF table or IP forwarding table.&lt;/p&gt;&lt;p class='more'&gt;We’ve discussed this topic during the &lt;a href="http://packetpushers.net/show-7-hiding-in-plain-sight-enterprise-mpls/"&gt;Enterprise MPLS Packet Pushers Podcast&lt;/a&gt;, so you might want to &lt;a href="http://media.blubrry.com/packetpushers/content.blubrry.com/packetpushers/Packet-Pushers-07-Hiding-in-Plain-Sight-Enterprise-MPLS.mp3"&gt;listen to that one first&lt;/a&gt; before going into details.&lt;/p&gt;&lt;p&gt;Let’s start with an overview picture (which does tell you more than the next thousand words I’ll write):&lt;/p&gt;&lt;p style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_K_pkZO5-tTg/TH38WoKecbI/AAAAAAAAENU/mHrMrikYPPI/s1600/RibFib.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="185" src="http://4.bp.blogspot.com/_K_pkZO5-tTg/TH38WoKecbI/AAAAAAAAENU/mHrMrikYPPI/s400/RibFib.png" width="400" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;A router has numerous ways of learning the best paths toward individual IP prefixes: they might be directly connected, configured as static routes or learned through dynamic routing protocols.&lt;/p&gt;&lt;p&gt;Each dynamic routing protocol (&lt;a href="http://blog.ioshints.info/2008/08/rip-route-database.html"&gt;including RIP&lt;/a&gt;) has its own set of internal data structures, known as OSPF/IS-IS database, EIGRP topology table or BGP table. The routing protocol updates its data structures based on routing protocol updates exchanged with its neighbors, eventually collecting all the relevant information. Throughout this article we’ll work with 10.0.1.1/32 learned through OSPF and 10.0.11.11/32 learned through BGP, so let’s inspect the relevant OSPF/BGP data structures.&lt;/p&gt;&lt;pre class="code"&gt;RR#&lt;strong&gt;show ip bgp | begin Network&lt;/strong&gt;&lt;br /&gt;   Network          Next Hop            Metric LocPrf Weight Path&lt;br /&gt;r&amp;gt;i10.0.1.1/32      10.0.1.1                 0    100      0 i&lt;br /&gt;r&amp;gt;i10.0.1.2/32      10.0.1.2                 0    100      0 i&lt;br /&gt;*&amp;gt;i10.0.11.11/32    10.0.1.1                 0    100      0 i&lt;br /&gt;&lt;br /&gt;RR#&lt;strong&gt;show ip ospf database router 10.0.1.1&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;            OSPF Router with ID (10.0.1.5) (Process ID 1)&lt;br /&gt;&lt;br /&gt;                Router Link States (Area 0)&lt;br /&gt;&lt;br /&gt;  LS age: 1612&lt;br /&gt;  Options: (No TOS-capability, DC)&lt;br /&gt;  LS Type: Router Links&lt;br /&gt;  Link State ID: 10.0.1.1&lt;br /&gt;  Advertising Router: 10.0.1.1&lt;br /&gt;  LS Seq Number: 80000003&lt;br /&gt;  Checksum: 0xC764&lt;br /&gt;  Length: 60&lt;br /&gt;  Number of Links: 3&lt;br /&gt;&lt;br /&gt;    Link connected to: a Stub Network&lt;br /&gt;     (Link ID) Network/subnet number: 10.0.1.1&lt;br /&gt;     (Link Data) Network Mask: 255.255.255.255&lt;br /&gt;      Number of MTID metrics: 0&lt;br /&gt;       TOS 0 Metrics: 1&lt;br /&gt;&lt;br /&gt;    Link connected to: another Router (point-to-point)&lt;br /&gt;     (Link ID) Neighboring Router ID: 10.0.1.6&lt;br /&gt;     (Link Data) Router Interface address: 10.0.7.9&lt;br /&gt;      Number of MTID metrics: 0&lt;br /&gt;       TOS 0 Metrics: 64&lt;br /&gt;&lt;br /&gt;    Link connected to: a Stub Network&lt;br /&gt;     (Link ID) Network/subnet number: 10.0.7.8&lt;br /&gt;     (Link Data) Network Mask: 255.255.255.252&lt;br /&gt;      Number of MTID metrics: 0&lt;br /&gt;       TOS 0 Metrics: 64&lt;/pre&gt;&lt;p&gt;Each routing protocol runs its own route selection algorithm (SPF algorithm in case of OSPF or IS-IS or &lt;a href="http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094431.shtml"&gt;pretty complex set of rules in case of BGP&lt;/a&gt;), deriving a set of IP prefixes reachable through that routing protocol and IP next hops that should be used to reach them. You can view the results of these route selection algorithms with protocol-specific &lt;strong&gt;show &lt;/strong&gt;commands (for example, &lt;strong&gt;show ip bgp &lt;/strong&gt;&lt;strong&gt;&lt;em&gt;prefix &lt;/em&gt;&lt;/strong&gt;for BGP and &lt;strong&gt;show ip ospf rib &lt;/strong&gt;&lt;strong&gt;&lt;em&gt;prefix &lt;/em&gt;&lt;/strong&gt;for OSPF).&lt;/p&gt;&lt;pre class="code"&gt;RR#&lt;strong&gt;show ip bgp 10.0.11.11&lt;/strong&gt;&lt;br /&gt;BGP routing table entry for 10.0.11.11/32, version 6&lt;br /&gt;Paths: (1 available, best #1, table default)&lt;br /&gt;  Not advertised to any peer&lt;br /&gt;  Local&lt;br /&gt;    10.0.1.1 (metric 66) from 10.0.1.1 (10.0.1.1)&lt;br /&gt;      Origin IGP, metric 0, localpref 100, valid, internal, best&lt;br /&gt;RR#&lt;strong&gt;show ip ospf rib 10.0.1.1&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;            OSPF Router with ID (10.0.1.5) (Process ID 1)&lt;br /&gt;&lt;br /&gt;OSPF local RIB&lt;br /&gt;Codes: * - Best, &amp;gt; - Installed in global RIB&lt;br /&gt;&lt;br /&gt;*&amp;gt;  10.0.1.1/32, Intra, cost 66, area 0&lt;br /&gt;     SPF Instance 2, age 00:48:15&lt;br /&gt;     Flags: RIB, HiPrio&lt;br /&gt;      via 10.0.2.1, FastEthernet0/0, flags: RIB&lt;br /&gt;       LSA: 1/10.0.1.1/10.0.1.1&lt;/pre&gt;&lt;p&gt;Both BGP and OSPF associate IP next hops with IP prefixes, but BGP simply uses the value of the next-hop attribute attached to the BGP route, whereas OSPF computes the IP address of the next-hop OSPF router with the SPF algorithm.&lt;/p&gt;&lt;p&gt;The results of intra-routing-protocol route selection are inserted in the IP routing table (RIB) based on &lt;em&gt;administrative distance&lt;/em&gt; (and there are &lt;a href="http://packetlife.net/blog/2008/dec/6/two-routing-protocols-same-ad/"&gt;interesting consequences if two routing protocols have the same AD&lt;/a&gt;). Most routing protocols don’t complain when their routes are not used in the IP routing table; &lt;a href="http://blog.ioshints.info/2007/12/what-is-bgp-rib-failure.html"&gt;BGP has a special show command that can display RIB failures&lt;/a&gt;. In our scenario, the 10.0.1.1/32 prefix is received via OSPF and BGP and the OSPF route wins as OSPF has lower AD than internal BGP route.&lt;/p&gt;&lt;pre class="code"&gt;RR#&lt;strong&gt;show ip bgp rib-failure&lt;/strong&gt;&lt;br /&gt;Network      Next Hop    RIB-failure            RIB-NH Matches&lt;br /&gt;10.0.1.1/32  10.0.1.1    Higher admin distance  n/a&lt;br /&gt;10.0.1.2/32  10.0.1.2    Higher admin distance  n/a&lt;/pre&gt;&lt;p&gt;Ideally, we would use RIB to forward IP packets, but we can’t as some entries in it (static routes and BGP routes) could have next hops that are not directly connected. &lt;/p&gt;&lt;p&gt;Compare an IBGP route in the IP routing table (RIB) with an OSPF route:&lt;/p&gt;&lt;pre class="code"&gt;RR#&lt;strong&gt;show ip route 10.0.11.11&lt;/strong&gt;&lt;br /&gt;Routing entry for 10.0.11.11/32&lt;br /&gt;  Known via "bgp 65000", distance 200, metric 0, type internal&lt;br /&gt;  Last update from 10.0.1.1 00:00:55 ago&lt;br /&gt;  Routing Descriptor Blocks:&lt;br /&gt;  * 10.0.1.1, from 10.0.1.1, 00:00:55 ago&lt;br /&gt;      Route metric is 0, traffic share count is 1&lt;br /&gt;      AS Hops 0&lt;br /&gt;      MPLS label: none&lt;br /&gt;&lt;br /&gt;RR#&lt;strong&gt;show ip route 10.0.1.1&lt;/strong&gt;&lt;br /&gt;Routing entry for 10.0.1.1/32&lt;br /&gt;  Known via "ospf 1", distance 110, metric 66, type intra area&lt;br /&gt;  Last update from 10.0.2.1 on FastEthernet0/0, 00:33:47 ago&lt;br /&gt;  Routing Descriptor Blocks:&lt;br /&gt;  * 10.0.2.1, from 10.0.1.1, 00:33:47 ago, via FastEthernet0/0&lt;br /&gt;      Route metric is 66, traffic share count is 1&lt;/pre&gt;&lt;p&gt;OSPF route has an outgoing interface; it’s computed by the SPF algorithm and transferred in the IP routing table. BGP route has no outgoing interface and its next hop is not directly connected; the router has to perform &lt;em&gt;recursive lookups &lt;/em&gt;to find the outgoing interface (recursive lookups are also used to &lt;a href="http://wiki.nil.com/EBGP_load_balancing_with_EBGP_session_between_loopback_interfaces"&gt;implement EBGP load balancing with loopback interfaces&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Early IOS releases performed a recursive lookup on the first packet sent to a new destination (&lt;em&gt;process switching&lt;/em&gt;) and cached the result for subsequent packets (&lt;em&gt;fast switching&lt;/em&gt;). Fast switching worked well in early Internet (with few global IP prefixes), but as the Internet grew and address-spraying DoS attacks became common, core routers frequently experienced &lt;em&gt;cache &lt;/em&gt;&lt;a href="http://en.wikipedia.org/wiki/Thrashing_(computer_science)"&gt;&lt;em&gt;trashing&lt;/em&gt;&lt;/a&gt;. Large number of packets were being process switched, resulting in very high CPU utilization and occasional router meltdown. It was time to move from cache-assisted forwarding to deterministic forwarding.&lt;/p&gt;&lt;p&gt;Forwarding Information Base (FIB) and Cisco Express Forwarding (CEF) switching were introduced to make layer-3 switching deterministic. When IP routes are copied from RIB to FIB, their next hops are resolved, outgoing interfaces are computed and multiple entries are created when the next-hop resolution results in multiple paths to the same destination.&lt;/p&gt;&lt;p&gt;For example, when the BGP route from the previous printout is inserted into FIB, its next-hop is changed to point to the actual next-hop router. The information about the recursive next-hop is retained, as it allows the router to update the FIB (CEF table) without rescanning and recomputing the whole RIB if the path toward the BGP next-hop changes.&lt;/p&gt;&lt;pre class="code"&gt;RR#&lt;strong&gt;show ip cef 10.0.11.11 detail&lt;/strong&gt;&lt;br /&gt;10.0.11.11/32, epoch 0, flags rib only nolabel, rib defined all labels&lt;br /&gt;  recursive via 10.0.1.1&lt;br /&gt;    nexthop 10.0.2.1 FastEthernet0/0 label 19&lt;/pre&gt;&lt;p&gt;Fully-evaluated FIB (CEF table) can then be used directly for layer-3 switching. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-6892241058785294327?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/6892241058785294327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=6892241058785294327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/6892241058785294327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/6892241058785294327'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/09/ribs-and-fibs.html' title='RIBs and FIBs (aka IP routing table and CEF table)'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_K_pkZO5-tTg/TH38WoKecbI/AAAAAAAAENU/mHrMrikYPPI/s72-c/RibFib.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-890083241080584592</id><published>2010-09-01T07:08:00.000+02:00</published><updated>2010-09-01T07:08:00.129+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IPv6'/><title type='text'>The IPv6 “experts” strike again</title><content type='html'>&lt;p&gt;IT World Canada has recently published an interesting “&lt;a href="http://www.itworldcanada.com/news/opinion-disband-the-itu-t-ipv6-group/141380-pg1"&gt;Disband the ITU's IPv6 Group, says expert&lt;/a&gt;” article. I can’t agree more with the title or the first message of the article: there is &lt;a href="http://blog.ioshints.info/2009/11/itu-grabbing-piece-of-ipv6-pie.html"&gt;no reason for the IPv6 ITU group to exist&lt;/a&gt;. However, as my long-time readers know, that’s old news ... and the article is unfortunately so full of technical misinformation and myths and that I hardly know where to begin. Trying to be constructive, let’s start with the points I agree with.&lt;/p&gt;&lt;p&gt;&lt;span style="color: 000000;"&gt;&lt;strong&gt;IPv6 was designed to meet the operational needs that existed 20 years ago.&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: 000000;"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt; Absolutely true. See my &lt;a href="http://blog.ioshints.info/2010/03/more-details-seven-ipv6-myths.html"&gt;IPv6 myths&lt;/a&gt; for more details.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ITU-T has spun up two groups that are needlessly consuming international institutional resources.&lt;/strong&gt; Absolutely in agreement (but still old news). I also deeply agree with all the subsequent remarks about ITU-T and needless politics (not to mention the dire need of most of ITU-T to find some reason to continue existing). That part of the article should become a required reading for any standardization body.&lt;/p&gt;&lt;p&gt;And now for (some of) the blunders:&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;IPv6 was a geek response to IAB’s adoption of CLNP. &lt;/strong&gt;First of all, I don’t remember IAB every adopting CLNP. It did adopt IS-IS (which is the routing protocol used by CLNP) – an excellent decision that resulted in the only standardized multi-protocol IGP available today (that’s why all &lt;a href="http://blog.ioshints.info/2010/08/trill-and-8021aq-are-like-apples-and.html"&gt;Shortest Path Bridging proposals including TRILL and 802.1aq&lt;/a&gt; use IS-IS). I can only hope that the loss of &lt;a href="http://blog.ioshints.info/2009/06/is-is-is-not-running-over-clnp.html"&gt;distinction between IS-IS and CLNP&lt;/a&gt; was a result of the editorial process, not a statement by the author (in which case I would have to start doubting his expertise).&lt;/p&gt;&lt;p&gt;Next, one of the proposals for next-generation IP (&lt;a href="http://tools.ietf.org/html/rfc1347"&gt;TUBA&lt;/a&gt; – TCP and UDP over Big Addresses) was indeed &lt;a href="http://tools.ietf.org/html/rfc1561"&gt;based on CLNP&lt;/a&gt;, but it was &lt;a href="http://tools.ietf.org/html/rfc1752"&gt;decided to move forward in a way that was more familiar to the IP world&lt;/a&gt; (as you know, regardless of window dressing, IPv6 is really IPv4 with minor fixes and longer addresses). &lt;/p&gt;&lt;p&gt;To put my statements in perspective: I was a devote supporter of TUBA and was deeply disappointed when IETF decided to reinvent the wheel instead of using a protocol that was already available, implemented by numerous vendors and field-tested. However, with 20 years of layer 8-10 experience behind me, I can understand that the totally different routing paradigm of CLNP and its variable-length addresses scared the IP gurus ... and it’s always nicer to reinvent the wheel and get the credit for the shiny new toy than to adopt someone else’s work.&lt;/p&gt;&lt;p&gt;Last, I wouldn’t use a pop book that was published 15 years after the events as a reliable source. When I was &lt;a href="http://blog.ioshints.info/2010/03/ftp-butterfly-effect.html"&gt;stupid enough to believe an “expert” who explained in vivid details what a catastrophe FTP is&lt;/a&gt;, numerous readers pointed out that FTP was, in fact, a well designed tool for the job it was supposed to be solving.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;When IPv6 was finally adopted, many in industry made it clear they were not going to use the protocol.&lt;/strong&gt; Of course, what else would you expect? It was much simpler to create private IP addresses and add NAT on top of IPv4 (all of which was solved within the network layer) than to wait for the rest of the IT industry to implement new protocol stack on all the hosts, persuade all the developers to change the way they open sockets (using the &lt;a href="http://blog.ioshints.info/2009/08/what-went-wrong-socket-api.html"&gt;broken API&lt;/a&gt;) and fix all the outstanding applications. It took OS vendors more than a decade to finally implement IPv6 properly and several more years for the off-the-shelf applications to become reasonably IPv6-aware. Who knows what’s lurking in hidden depths of home-baked enterprise code?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;After 16 years of evangelization, the "father of the Australian Internet," Geoff Huston, who became tired of the endless IPv6 hype, demonstrated in 2008 that only 0.4 per cent of the TCP/IP traffic was IPv6.&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;What else would you expect? See above. And, just as an aside, if someone would truly invest 16 years in evangelizing IPv6, we might have seen some results. The sad fact was that IPv6 was largely forgotten after everyone implemented RFC 1918 and NAT.&lt;/p&gt;&lt;p&gt;&lt;span style="color: 000000;"&gt;&lt;strong&gt;Governments ... seem obsessed with continuing to drive IPv6 as some kind of panacea.&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: 000000;"&gt; It would be really good to hear from the same self-professed expert what his solution to the IPv4 public address depletion is. Carrier-grade NAT? CLNP? X.25?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: 000000;"&gt;Unfortunately, those few government agencies that can see beyond the next elections had to start the IPv6 push because the whole IT industry focused on quarterly results was in a state of denial (not dissimilar to the car industry’s handling of global warming). Without the government-sponsored push, there would be little (if any) IPv6 deployment today and we would be even more unprepared for the IPv4 address depletion.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: 000000;"&gt;20 years ago governments pushed CLNP because everyone believed it was the right protocol (IP was a geek toy). History proved them wrong. Lesson learned: don’t trust a protocol designed by a committee? Now they are pushing IPv6 because the only alternative is the breakdown of the end-to-end Internet.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: 000000;"&gt;&lt;strong&gt;LISP ... provides a compelling direction that IPv4 or IPv6 lack.&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: 000000;"&gt; LISP is a necessary hack because &lt;/span&gt;&lt;a href="http://blog.ioshints.info/2010/07/tcpip-is-like-mainframe-you-cant-change.html"&gt;we can’t change what should truly be changed: the end hosts&lt;/a&gt;&lt;span style="color: 000000;"&gt;. I like LISP and the approach it takes to solving multi-homing and traffic engineering problems, but all those problems wouldn’t exist if someone would have taken the time to fix the &lt;/span&gt;&lt;a href="http://blog.ioshints.info/2009/08/what-went-wrong-tcpip-lacks-session.html"&gt;broken TCP/IP architecture&lt;/a&gt;&lt;span style="color: 000000;"&gt;. What we’re doing today is introducing another layer of indirection at the network layer because we can’t change the things that are really broken.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: 000000;"&gt;&lt;strong&gt;A trusted implementation of LISP will provide a level of attribution and routing security that does not exist in the present architecture&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: 000000;"&gt;. Wishful dreams. To start with, LISP relies on underlying IPv4 or IPv6 global transport, which will be still implemented with current tools (BGP) and will thus &lt;/span&gt;&lt;a href="http://blog.ioshints.info/2010/08/bgp-time-to-grow-up.html"&gt;stay as “secure” as it is today&lt;/a&gt;&lt;span style="color: 000000;"&gt;. Second, if we would be truly interested in routing security, we could have &lt;/span&gt;&lt;a href="http://blog.ioshints.info/2010/03/secure-bgp.html"&gt;implemented secure BGP a long time ago&lt;/a&gt;&lt;span style="color: 000000;"&gt;, but it didn’t happen for a simple reason: those people that would benefit from it (content providers) were in no rush to pay those people that would have to implement it (ISPs). &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: 000000;"&gt;To give you another example: it took almost a decade to develop and implement DNSSEC, even though we’ve experienced some very interesting DNS-based attacks in the meantime. Why would LISP be any different?&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-890083241080584592?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/890083241080584592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=890083241080584592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/890083241080584592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/890083241080584592'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/09/ipv6-experts-strike-again.html' title='The IPv6 “experts” strike again'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-3849238438670022003</id><published>2010-08-31T07:26:00.003+02:00</published><updated>2010-09-01T09:34:34.734+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BGP'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='What went wrong'/><title type='text'>BGP: time to grow up</title><content type='html'>&lt;p&gt;If you’re in the Service Provider business, this is (hopefully) old news: on Friday, &lt;a href="http://www.merit.edu/mail.archives/nanog/msg11505.html"&gt;RIPE decided to experiment with the Internet&lt;/a&gt; causing &lt;a href="http://www.cisco.com/en/US/products/products_security_advisory09186a0080b4411f.shtml"&gt;routers running IOS-XR to hiccup&lt;/a&gt;. They stopped the experiment in less than half an hour and &lt;a href="http://www.renesys.com/blog/2010/08/house-of-cards.shtml"&gt;only 2% of the Internet was affected according to Renesys analysis&lt;/a&gt; (a nice side effect: &lt;a href="http://ccie-in-3-months.blogspot.com/2010/08/decoding-ripe-experiment.html"&gt;Tassos had great fun decoding the offending BGP attribute from hex dumps&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;My first gut reaction was “something’s doesn’t feel right”. A BGP bug in IOS-XR affects only 2% of the Internet? Here are some possible conclusions:&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;ul class="ListParagraph"&gt;&lt;li&gt;Most other intermediate routers (IOS and JunOS based, one would assume) decided to silently drop the offending attribute and thus only those IOS XR routers directly peering with RIPE were exposed. Not likely, that would be a direct violation of current BGP standards.&lt;/li&gt;&lt;li&gt;IOS XR is not widely used (read: not many people have CRS routers). Not likely, at least some very big providers have them.&lt;/li&gt;&lt;li&gt;Most people don’t run BGP on IOS XR and use the high-end boxes only in their IP+MPLS core.&lt;/li&gt;&lt;li&gt;IOS XR is typically not in the BGP update propagation path. If your core routers are receiving BGP updates solely from the BGP route reflector, there’s nobody behind them and nobody would notice the malformed updates (yet another reason to have good network design).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;On a more serious note: the experiment has unintentionally exposed another long-term problem we’re facing: anyone can obviously attach any garbage to a BGP prefix and cause global memory consumption. The only thing you’d notice is increased BGP memory utilization that would be extremely hard to troubleshoot manually. Cisco IOS and IOS XR have no relevant filtering or scrubbing mechanisms (like they have for BGP communities) that you could use to protect yourself (and JunOS is probably no better).&lt;/p&gt;&lt;p&gt;The first line of defense could be BGP monitoring services like bgpmon.net. They could detect unknown transitive BGP attributes and report all memory-consuming attributes. &lt;/p&gt;&lt;p&gt;However, it’s high time we get away from “everyone is a trusted good guy” model BGP uses today and (at least) get a knob in BGP implementations that allows us to drop unknown attributes (today, unknown transitive attributes are silently propagated). Ideally, we would have a route-map/route-policy mechanism that would allow us to match BGP attributes based on their ID and accept BGP routes with select unknown attributes based on the attribute ID and its length.&lt;/p&gt;&lt;p&gt;Last but not least (before someone starts yelling at me): I know the “drop unknown attributes” knob will make all the future extensions to BGP harder to deploy, but the alternative is worse.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;strong&gt; (2010-09-01)&lt;/strong&gt;: Russell Heilling makes a very good point in his &lt;a href="http://perlmonkey.blogspot.com/2010/08/unexpected-consequences.html"&gt;&lt;em&gt;Unexpected Consequences &lt;/em&gt;post&lt;/a&gt;: it would be better to drop IP prefixes with unknown (or oversized) attributes than to silently scrub the attributes. In any case, we need conditions in the route maps/route policies that can match unknown attributes and the size of unknown (or all) attributes of a BGP route; the action to take (drop/permit/scrub) can then be specified in the route map/route policy.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-3849238438670022003?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/3849238438670022003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=3849238438670022003' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/3849238438670022003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/3849238438670022003'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/bgp-time-to-grow-up.html' title='BGP: time to grow up'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-553770866004884110</id><published>2010-08-30T07:19:00.015+02:00</published><updated>2010-08-30T09:50:06.831+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FCoE'/><category scheme='http://www.blogger.com/atom/ns#' term='SAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Center'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Multihop FCoE 101</title><content type='html'>&lt;p&gt;The FCoE confusion spread by networking vendors has reached new heights with contradictory claims that you &lt;a href="http://www.channelregister.co.uk/2010/08/10/fcoe_trill/"&gt;need TRILL to run multihop FCoE (or maybe you don’t)&lt;/a&gt; and that &lt;a href="http://blogs.cisco.com/datacenter/comments/when_are_fcoe_standards_done/#comments"&gt;you don’t need congestion control specified in 802.1Qau standard (or maybe you do)&lt;/a&gt;. Allow me to add to your confusion: they are all correct ... depending on how you implement FCoE.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;Before going into details, you need to know some FC and FCoE port terminology:&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" class="codeTable"&gt;&lt;tr class="TRFirst "&gt;&lt;th valign="top" class="TDHead" style="width: 20%"&gt;&lt;p&gt;FC/FCoE term&lt;/p&gt;&lt;/th&gt;&lt;th valign="top" class="TDHead "&gt;&lt;p&gt;Translated into plain English&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;N_Port&lt;/p&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;Fiber channel port on a server or storage&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;F_Port&lt;/p&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;Fiber channel port on a switch &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;E_Port&lt;/p&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;FC port on a switch that can be used to interconnect switches&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;Domain&lt;/p&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;FC switch&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;VN_Port&lt;/p&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;Virtual N_Port. Created on a FCoE node (server or storage) to enable FCoE communication with a FCoE switch&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;VF_Port&lt;/p&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;Virtual F_port on a switch, created as needed to establish connection with an end-node (N_Port)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="TRLast"&gt;&lt;td valign="top" class="TDLast"&gt;&lt;p&gt;VE_Port&lt;/p&gt;&lt;/td&gt;&lt;td valign="top" class="TDLast"&gt;&lt;p&gt;Virtual E_port, created on an FCoE switch to link it with another FCoE switch&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;In the simplest FCoE topology, a server with CNA (converged network adapter; a card that can send both Ethernet and FCoE traffic over the same gigabit Ethernet uplink) is connected to an FCoE-enabled switch, which has a direct connection into the legacy FC network.&lt;/p&gt;&lt;p style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_K_pkZO5-tTg/THlHjS70MyI/AAAAAAAAENI/_rJEh3hbTZA/s1600/FCoE+101+SingleHop.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://3.bp.blogspot.com/_K_pkZO5-tTg/THlHjS70MyI/AAAAAAAAENI/_rJEh3hbTZA/s400/FCoE+101+SingleHop.png" width="400" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The muddy waters start to appear when you have to insert intermediate switches between the servers (VN_ports) and legacy FC fabric. HP and NetApp work with the assumption that the intermediate switches don’t run FC protocol stack and only support Data Center Bridging (DCB) standards. Congestion control becomes mandatory in large networks and network stability is of paramount importance (thus NetApp’s recommendation to use TRILL).&lt;/p&gt;&lt;p style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_K_pkZO5-tTg/THlHjCBwb6I/AAAAAAAAENE/_wyiZLeFcSU/s1600/FCoE+101+MH+DCB.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://4.bp.blogspot.com/_K_pkZO5-tTg/THlHjCBwb6I/AAAAAAAAENE/_wyiZLeFcSU/s400/FCoE+101+MH+DCB.png" width="400" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Cisco, on the other hand, is pushing another design: every intermediate switch is a full-blown FC switch, running full FC protocol stack and participating in FSPF (FC routing). In this case, you don’t need congestion control (congestion is handled by the FC protocol stack) and you totally bypass bridging, so you don’t care whether bridging uses spanning tree, TRILL or something else.&lt;/p&gt;&lt;p style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_K_pkZO5-tTg/THlHidkTs8I/AAAAAAAAENA/k0aym6QLex4/s1600/FCoE+101+fullFC.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://4.bp.blogspot.com/_K_pkZO5-tTg/THlHidkTs8I/AAAAAAAAENA/k0aym6QLex4/s400/FCoE+101+fullFC.png" width="400" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The truly confusing part of the whole story: both designs (and any combination of them) are valid according to the FC-BB-5 standard; I’ll try to point out some of their benefits and drawbacks in future posts.&lt;/p&gt;&lt;p&gt;If you liked this explanation and would like to get a more thorough introduction to new LAN, storage and server virtualization technologies, register for my &lt;a href="http://datacenter20.eventbrite.com/"&gt;Data Center 3.0 for Networking Engineers&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/23021255-553770866004884110?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/553770866004884110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=553770866004884110' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/553770866004884110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/553770866004884110'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/multihop-fcoe-101.html' title='Multihop FCoE 101'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_K_pkZO5-tTg/THlHjS70MyI/AAAAAAAAENI/_rJEh3hbTZA/s72-c/FCoE+101+SingleHop.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-5308954241088252937</id><published>2010-08-29T07:34:00.000+02:00</published><updated>2010-08-29T07:34:26.560+02:00</updated><title type='text'>Interesting links (2010-08-29)</title><content type='html'>&lt;p&gt;In his &lt;a href="http://www.jeremyfilliben.com/2010/08/hsrp-vpc-and-vpc-peer-gateway-command.html"&gt;HSRP, vPC and the vPC peer-gateway command&lt;/a&gt; post &lt;a href="http://www.jeremyfilliben.com/"&gt;Jeremy Filliben&lt;/a&gt; documents how the storage vendors ignore RFCs and implement what they think is proper ARP handling, causing havoc in a redundant network.&lt;/p&gt;&lt;p&gt;&lt;a href="http://revolutionwifi.blogspot.com/"&gt;Andrew Vonnagy&lt;/a&gt; writes about another &lt;span style='text-decoration: line-through'&gt;extreme stupidity&lt;/span&gt; customer convenience &lt;a href="http://msdn.microsoft.com/en-us/library/dd815243(VS.85).aspx"&gt;Microsoft managed to implement&lt;/a&gt;: you can &lt;a href="http://revolutionwifi.blogspot.com/2010/08/virtual-aps-will-make-you-look-like.html"&gt;turn any Windows 7 into a rogue Access Point&lt;/a&gt;. Like we didn’t have enough problems already.&lt;/p&gt;&lt;p&gt;And then there’s &lt;a href="http://www.antipope.org/charlie/blog-static/"&gt;Charles Stross&lt;/a&gt;, taking the “&lt;a href="http://blog.ioshints.info/search/label/What%20went%20wrong"&gt;where we went wrong&lt;/a&gt;” &lt;span style='text-decoration: line-through'&gt;rants&lt;/span&gt; observations to a completely new level. While I’m complaining about &lt;a href="http://blog.ioshints.info/2009/08/what-went-wrong-tcpip-lacks-session.html"&gt;lack of session layer in TCP/IP&lt;/a&gt; and &lt;a href="http://blog.ioshints.info/2009/08/what-went-wrong-socket-api.html"&gt;broken socket API&lt;/a&gt;, &lt;a href="http://www.antipope.org/charlie/blog-static/2010/08/where-we-went-wrong.html"&gt;he’s taking on Von Neumann architecture&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/23021255-5308954241088252937?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/5308954241088252937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=5308954241088252937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/5308954241088252937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/5308954241088252937'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/interesting-links-2010-08-29.html' title='Interesting links (2010-08-29)'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-2521195712557653243</id><published>2010-08-26T07:07:00.001+02:00</published><updated>2010-08-26T07:07:00.434+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Center'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Storage networking is different</title><content type='html'>&lt;p&gt;The storage industry has a very specific view of the networking protocols – they expect the network to be extremely reliable, either by &lt;a href="http://etherealmind.com/myth-fibrechannel-over-token-ring/"&gt;making it lossless&lt;/a&gt; or by using a transport protocol (TCP + embedded iSCSI checksums) that was only &lt;a href="http://blog.ioshints.info/2010/05/iscsi-moores-law-won.html"&gt;recently made decently fast&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;Some of their behavior can be easily attributed to &lt;a href="http://blog.ioshints.info/2009/12/iscsi-and-san-two-decades-of-rigid.html"&gt;network-blindness&lt;/a&gt; and attempts to support legacy protocols that were designed for a completely different environment &lt;a href="http://en.wikipedia.org/wiki/SCSI#History"&gt;25 years ago&lt;/a&gt;, but we also have to admit that the server-to-storage sessions are way more critical than the user-to-server application sessions.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;Storage session loss can result in large-scale data corruption. &lt;/strong&gt;If an end-user’s application session fails, you’ll hear some foul language, but the data will remain in a consistent state (assuming, of course, your application uses a decent database server with rollback capabilities). If a storage session is lost, the disk data could be left in some indeterminate state and might be permanently corrupted. Databases are quite good at recovering data; for whatever weird reason file systems are sometimes less robust.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Loss of a disk device can crash the server&lt;/strong&gt;. If your server loses its network connection, all the user sessions are gone, there will be some data loss, but you’ll probably end with consistent data (transactions that have not been completed will be rolled back). The server will happily continue its (now largely non-existent) work.&lt;/p&gt;&lt;p&gt;If your server loses its disk, a panicky crash is almost unavoidable. Dual HBA (storage adapters) and dual paths to the storage are thus a requirement in a decent data center.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Impact of lost storage is extremely high&lt;/strong&gt;. Imagine a web server with thousands of concurrent users, tens of web server worker processes and a database server (or you could have the components distributed if you so wish). If you lose an end-user session, a single user will be impacted. If you lose the session with the database server, some web worker processes will be impacted (others might continue working if you have a redundant setup). If you lose connectivity to your disk, all bets are off.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Storage is, well, permanent.&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;If there’s an undetected error in your application session, your program might crash; if the incorrect data is written to a disk, it stays there indefinitely.&lt;/p&gt;&lt;p&gt;However, every decent layer-2 protocol has checksums that should detect transmission errors. IP and TCP also try to detect gross negligence in routers (although these attempts are pretty lame). One has to wonder why the storage people insist on another layer of checksums, be it in iSCSI or FCoE. &lt;/p&gt;&lt;p&gt;The answer is simple: the only end-to-end error detection mechanisms in an IP network are IP and TCP checksums and these are not good enough to detect potential router problems. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Anything else?&lt;/strong&gt; I’ve probably missed a hundred other reasons why we have to treat storage networks more carefully. Please feel free to add them in the comments.&lt;/p&gt;&lt;p&gt;And the usual addendum: storage networking is just one of the topics described in my &lt;a href="http://www.ioshints.info/DataCenterIntro"&gt;Data Center 3.0 for Networking Engineers&lt;/a&gt; webinar (&lt;a href="http://datacenter20.eventbrite.com/"&gt;register here&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/23021255-2521195712557653243?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/2521195712557653243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=2521195712557653243' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/2521195712557653243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/2521195712557653243'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/storage-networking-is-different.html' title='Storage networking is different'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-5606271071948065667</id><published>2010-08-25T07:17:00.001+02:00</published><updated>2010-08-25T07:17:00.343+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FCoE'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Center'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='bridging'/><title type='text'>FCoE and DCB standards</title><content type='html'>&lt;p&gt;The debate whether the &lt;a href="http://blogs.cisco.com/datacenter/comments/when_are_fcoe_standards_done/"&gt;DCB standards are complete&lt;/a&gt; or not and thus whether &lt;a href="http://blogs.cisco.com/datacenter/comments/will_the_real_fcoe_standards_please_stand_up/"&gt;FCoE is a standard-based technology&lt;/a&gt; are entering the metaphysical space (just a few more blog posts and they will join the eternal angels-on-a-hairpin problem), but somehow the vendors are not yet talking about the real issues: when will we see the standards implemented in shipping products and will there be a need to upgrade the hardware.&lt;/p&gt;&lt;p&gt;&lt;a href="http://etherealmind.com/fcoe-and-standards/"&gt;Read more ...&lt;/a&gt; (yet again @ &lt;a href="http://etherealmind.com/"&gt;etherealmind.com&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/23021255-5606271071948065667?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://etherealmind.com/fcoe-and-standards/' title='FCoE and DCB standards'/><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/5606271071948065667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=5606271071948065667' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/5606271071948065667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/5606271071948065667'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/fcoe-and-dcb-standards.html' title='FCoE and DCB standards'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-9139809735008739207</id><published>2010-08-24T07:16:00.003+02:00</published><updated>2010-08-24T07:16:00.351+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IPv6'/><title type='text'>Tweak the Search Engine rankings to push IPv6</title><content type='html'>&lt;p&gt;We all know that IPv6 deployment is a chicken-and-egg problem: Service Providers are slow to adopt IPv6 (there are some notable exceptions, including &lt;a href="http://blog.ioshints.info/2010/05/comcast-signs-first-ipv6-corporate.html"&gt;Comcast&lt;/a&gt;) because they can’t charge for it and the content providers don’t care because there are no IPv6 customers.&lt;/p&gt;&lt;p&gt;My good friend Jan Žorž got a great idea during the &lt;a href="http://blog.ioshints.info/2010/06/slovenians-presenting-leading-edge-ipv6.html"&gt;Google IPv6 Implementers Conference&lt;/a&gt; and finally managed to write it down: all we need is a &lt;a href="http://go6.si/2010/08/suggestion-for-internet-search-engines-proposed-ipv6-impact-on-search-engine-scoring-algorithms/"&gt;slight search engine preference for sites reachable over IPv4 &lt;em&gt;and &lt;/em&gt;IPv6&lt;/a&gt;. A small well-publicized tweak in Google’s scoring algorithm would push the content providers toward IPv6 and force web hosting companies to roll out IPv6 support immediately.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-9139809735008739207?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/9139809735008739207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=9139809735008739207' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/9139809735008739207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/9139809735008739207'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/tweak-search-engine-rankings-to-push.html' title='Tweak the Search Engine rankings to push IPv6'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-5663436673293871270</id><published>2010-08-23T15:00:00.000+02:00</published><updated>2010-08-23T15:00:59.356+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IPv6'/><title type='text'>Enterprise IPv6: still not ready for prime time</title><content type='html'>&lt;p&gt;Almost a year ago I wrote a blog post listing &lt;a href="http://blog.ioshints.info/2009/11/ipv6-in-data-center-is-cisco-ready.html"&gt;various enterprise networking devices from Cisco lacking IPv6 support&lt;/a&gt;. As Jessica Scarpati found out (quoting, among other sources, my articles), &lt;a href="http://searchenterprisewan.techtarget.com/news/article/0,289142,sid200_gci1518449,00.html"&gt;not much has changed in the meantime&lt;/a&gt; and Cisco is not the only myopic company. For example, according to her article, Riverbed spokesman has “declined a request to discuss how the WAN optimization vendor will help customers with IPv6 migrations, saying the company was not ready to speak publicly about its strategy.” No wonder enterprises are not rushing to join the IPv6 crowd (although &lt;a href="http://blog.ioshints.info/2010/08/more-ipv6-fud-being-thrown-cfos.html"&gt;there’s no excuse for not having an IPv6-enabled public web site&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;To make matters worse, there’s another roadblock to enterprise IPv6 deployment: MPLS VPN services supporting native IPv6 are still rare (and in most cases you can’t have any other routing protocol but EBGP).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-5663436673293871270?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/5663436673293871270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=5663436673293871270' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/5663436673293871270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/5663436673293871270'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/enterprise-ipv6-still-not-ready-for.html' title='Enterprise IPv6: still not ready for prime time'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-8100753643415709273</id><published>2010-08-21T20:32:00.003+02:00</published><updated>2010-08-21T21:08:00.201+02:00</updated><title type='text'>Interesting links (2010-08-21)</title><content type='html'>&lt;p&gt;Two interesting QoS-focused posts from last week: Brad Hedlund was &lt;a href="http://bradhedlund.com/2010/08/16/cisco-ucs-qos-vs-hp-virtual-connect-rate-limiting/"&gt;explaining the difference between UCS and HP Virtual Connect QoS&lt;/a&gt; (short summary: one does queuing, the other one rate-limiting) and Russell Heilling &lt;a href="http://perlmonkey.blogspot.com/2010/08/when-is-video-prioritisation-good-vs.html"&gt;nicely described the QoS problems encountered in a Service Provider network&lt;/a&gt; (he’s coming to the same conclusion as I did: &lt;a href="http://blog.ioshints.info/2010/07/p2p-traffic-is-bad-for-network.html"&gt;we need per-user queuing&lt;/a&gt;, but describes it way more eloquently).&lt;/p&gt;&lt;p&gt;After I’d stumbled upon &lt;a href="http://perlmonkey.blogspot.com/"&gt;Russell’s blog&lt;/a&gt;, I started reading his older posts and found a nice in-depth explanation of &lt;a href="http://perlmonkey.blogspot.com/2010/08/paved-with-good-intentions.html"&gt;one potential road to Net Neutrality hell paved with good intentions&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;And, in a blitz of late news, &lt;a href="http://www.theregister.co.uk/2010/08/10/coraid_esg/"&gt;ATAoE has resurrected like Phoenix from its ashes&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/23021255-8100753643415709273?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/8100753643415709273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=8100753643415709273' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/8100753643415709273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/8100753643415709273'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/interesting-links-2010-08-21.html' title='Interesting links (2010-08-21)'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-3379626845313133498</id><published>2010-08-20T07:00:00.023+02:00</published><updated>2010-08-20T07:33:27.340+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='IPv6'/><title type='text'>More IPv6 FUD being thrown @ CFOs</title><content type='html'>&lt;p&gt;The CFO magazine has recently published a FUDful article “&lt;a href="http://www.cfo.com/article.cfm/14517199"&gt;Trouble Looms for Company Websites&lt;/a&gt;” (read it to see what CFOs have to deal with). Obviously, some people think it’s a good idea to throw FUD at CFOs to get the budget to implement IPv6. Long term, it’s a losing strategy; your CFO will become immune to anything coming from the IT department and ignore the real warnings.&lt;/p&gt;&lt;p&gt;Yes, it's time to make your content reachable over IPv4 and IPv6, more so if you’re in the eyeballs business. Google knows that. So does Facebook. Twitter doesn’t seem to care. Maybe because they’re not selling ads?&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;Yes, you should go and implement IPv6 in your DMZ. Yes, you should start planning and budgeting today. But today the problems are as real as the Y2K ones were on Cisco IOS.&lt;/p&gt;&lt;p&gt;Eventually (in a decade) &lt;a href="http://blog.ioshints.info/2010/02/my-customers-are-not-interested-in-ipv6.html"&gt;you’ll be dead if you won’t have IPv6&lt;/a&gt;, as every Service Provider will stop caring about your obsolete protocol and discontinue the &lt;a href="http://blog.ioshints.info/2010/07/nat444-ds-lite-ap-and-nat64-explained.html"&gt;translation services&lt;/a&gt;. In the meantime, the problems will appear gradually ... faster for people that have fancy two-way applications or broken web sites (for example, tracking users by their IP addresses or doing sloppy load balancing), slower for those that have more traditional applications using HTTP the way it was designed to be used (including, interestingly, Netflix).&lt;/p&gt;&lt;p&gt;The article is also full of NATty FUD. Without ever calling NAT64 by its name, it implies that a “connection through a gateway probably won't perform nearly as well as users have come to expect”. Come on, almost every enterprise user accessing the Internet is using some form of NAT. Why would NAT work well today and so badly in the future when it has to &lt;a href="http://blog.ioshints.info/2010/05/role-of-nat-in-transition-to-ipv6.html"&gt;convert IPv6 addresses into IPv4 addresses&lt;/a&gt;? Admittedly it’s true that my (or their) claims are not verifiable since there’s no publicly-available large-scale production-grade NAT64 device (but &lt;a href="http://blog.ioshints.info/2010/05/cgv6-how-real-is-it.html"&gt;there are some in field trials&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;On a more positive note, you’ll find a universal truth in the article (courtesy of Martin Levy): “You can either do a planned, careful migration, or you can do it in a panic. And you should know full well that panicking is more expensive.” I’ll definitely use it in &lt;a href="http://blog.ioshints.info/2010/05/nat64-and-dns64-in-30-minutes.html"&gt;my presentations&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Last but not least, offering early IPv6 access to your content is not a big deal: &lt;a href="http://blog.ioshints.info/2010/06/easy-deployment-of-ipv6-content.html"&gt;Facebook did it pretty quickly&lt;/a&gt; and so can you ... assuming you have an IPv6-capable load balancer (some companies are &lt;a href="http://blog.ioshints.info/2009/11/ipv6-in-data-center-is-cisco-ready.html"&gt;still pretending you don’t need them&lt;/a&gt;). If you don’t, why don’t you go over to F5 web site and &lt;a href="https://www.f5.com/trial/secure/"&gt;download their 90-day trial virtual machine&lt;/a&gt;? Or use NAT-PT in a standalone Cisco IOS box (I’m positive you have a few lying around) for a trial deployment? Just make sure you &lt;a href="http://blog.ioshints.info/2010/01/nat-pt-is-totally-broken-in-late-ios.html"&gt;understand the caveats&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Would you like to hear more about my (potentially biased) perspective on enterprise IPv6 deployments? &lt;a href="http://www.ioshints.info/Contact"&gt;Get in touch with me&lt;/a&gt; and let’s organize an &lt;a href="http://www.ioshints.info/Enterprise_IPv6_Deployment_Workshop"&gt;&lt;em&gt;Enterprise IPv6 Deployment&lt;/em&gt;&lt;/a&gt; workshop for your team.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-3379626845313133498?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/3379626845313133498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=3379626845313133498' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/3379626845313133498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/3379626845313133498'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/more-ipv6-fud-being-thrown-cfos.html' title='More IPv6 FUD being thrown @ CFOs'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-5856091911541915438</id><published>2010-08-19T07:04:00.007+02:00</published><updated>2010-08-19T07:41:08.993+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Center'/><category scheme='http://www.blogger.com/atom/ns#' term='firewalls'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>I don’t need no stinking firewall ... or do I?</title><content type='html'>&lt;p&gt;Brian Johnson started a lively “&lt;a href="http://markmail.org/thread/fvordsbnuc74fuu2"&gt;&lt;em&gt;I don’t need no stinking firewall&lt;/em&gt;&lt;/a&gt;” discussion on NANOG mailing list in January. I wanted to write about the topic then, but somehow the post slipped through the cracks (thank you, Pavel, for a &lt;a href="http://blog.ioshints.info/2010/08/rest-in-peace-my-waf-friend.html#jsid-1280938787-466"&gt;kindly reminder&lt;/a&gt;!) ... and I’m glad it did, as I’ve learned a few things in the meantime, including the (now obvious) fact that no two data centers are equal (the original debate had to do with protecting servers in large-scale data center).&lt;/p&gt;&lt;p&gt;First let’s rephrase the provocative headline from the discussion. The real question is: do I need a stateful firewall or is a stateless one enough?&lt;/p&gt;&lt;p style="clear: both; text-align: center;"&gt;&lt;a href="http://picasaweb.google.com/lh/photo/i6FV_-suun0FCJ1c3HRm8sh1SULQCbwzWL6IH5NBoZg?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_K_pkZO5-tTg/TGpV23jYSfI/AAAAAAAAEM8/ZY5wyjzDrSc/s400/FirewallsOrRouters.png.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p class="note"&gt;Stateless firewalling is implemented quite easily with router access lists and thus works at line speed in most routers. Stateful firewalls implemented in routers are usually suitable for low-speed remote offices; you should use dedicated firewall devices in data centers. &lt;/p&gt;&lt;h4&gt;Technology issues&lt;/h4&gt;&lt;p&gt;Stateful firewall is the only option if you’re trying to tightly protect applications that use dynamic port numbers, including everything from peer-to-peer applications (including SIP) to RPC-based applications (let’s try not to call them &lt;em&gt;broken &lt;/em&gt;... how about &lt;em&gt;unpredictable applications&lt;/em&gt;). &lt;/p&gt;&lt;p class="note"&gt;You can &lt;a href="http://blog.ioshints.info/2010/05/update-make-ftp-server-slightly-more.html"&gt;limit the dynamic port range for some of these applications&lt;/a&gt; and allow all ports in that range through the firewall ... while hoping that some other service on your server won’t grab one of those ports and expose itself unnecessarily.&lt;/p&gt;&lt;p&gt;If your applications use only well-known fixed port numbers (let’s call them &lt;em&gt;fixed-port applications&lt;/em&gt;), you don’t have to inspect the application data stream and can match the applications with access lists; stateless solutions seem appropriate.&lt;/p&gt;&lt;p&gt;However, some stateful firewalls can add value even in &lt;em&gt;fixed-port &lt;/em&gt;environments: they can delay the commitment of server resources to TCP sessions with &lt;a href="http://en.wikipedia.org/wiki/SYN_cookies"&gt;TCP SYN cookies&lt;/a&gt; (also available in numerous server operating systems) and check the validity of TCP sessions.&lt;/p&gt;&lt;p class="note"&gt;You might think that there are no vulnerabilities left in TCP that could be exploited. A long while ago, everyone thought it was impossible to establish one-way spoofed TCP sessions even though there were known vulnerabilities in TCP sequence number generation ... until Kevin Mitnick proved them wrong.&lt;/p&gt;&lt;p&gt;Last but not least, stateful firewall in front of a server can block &lt;a href="http://en.wikipedia.org/wiki/TCP/IP_stack_fingerprinting"&gt;TCP fingerprinting&lt;/a&gt; attempts. Sometimes you simply don’t want the attacker to know too much about your infrastructure.&lt;/p&gt;&lt;h4&gt;Design choices&lt;/h4&gt;&lt;p&gt;There are two extremes you can be facing in a data center:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Unified large-scale infrastructure using fixed-port applications&lt;/strong&gt;, including Google, Yahoo, Facebook, Twitter and a few others. You would expect to see from tens to thousands of almost-identical servers with standardized and identically-configured operating system in these environments. It’s quite manageable to harden and patch these servers and combined with &lt;em&gt;fixed-port &lt;/em&gt;applications these environments usually offer, it makes perfect sense to be satisfied with router ACLs (and that was the case the proponents of “get rid of the firewall” line of thinking were promoting in the NANOG discussion).&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Dynamic hodgepodge of servers, operating systems and application&lt;/strong&gt; encountered in a usual enterprise data center. Server hardening is mission impossible (as you have so many different operating systems and/or versions of the same operating system), patching is the responsibility of individual server administrators (and they might not even be a unified team) and the applications are a nightmare from the security perspective. For example, &lt;a href="http://support.microsoft.com/kb/259240"&gt;early Outlook Web Access was easy to firewall&lt;/a&gt; but even then &lt;a href="http://articles.techrepublic.com.com/5100-10878_11-5112761.html"&gt;some people advocated putting OWA in the inside network&lt;/a&gt; (I wish I were blogging at that time, I would have had so much fun debunking that article). I was not able to find anything from Microsoft telling me how to configure my firewall to support OWA for Exchange Server 2010; the cynical response I got from a (non-Microsoft) security engineer a few days ago was “nobody can figure out which ports it uses”.&lt;/p&gt;&lt;h4&gt;Now what?&lt;/h4&gt;&lt;p&gt;Obviously you’re the only one who can decide where your Data Center environment is and which measures you’d like to implement, but as a generic rule, the more exposed (and the worse managed) a server is, the more you should lean toward a stateful firewall in front of it. Most enterprise data centers make heavy use of stateful firewalls and that’s also what we’re recommending to most of our customers.&lt;/p&gt;&lt;p&gt;To get insight into typical Data Center architectures (including load balancing and firewalling) and emerging DC technologies, &lt;a href="http://datacenter20.eventbrite.com/"&gt;register for my Data Center 3.0 for Networking Engineers webinar&lt;/a&gt;. For an in-depth solution, you might want to consider the benefits of our &lt;a href="http://www.nil.si/go/hypercenter"&gt;Hypercenter architecture&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/23021255-5856091911541915438?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/5856091911541915438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=5856091911541915438' title='37 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/5856091911541915438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/5856091911541915438'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/i-dont-need-no-stinking-firewall-or-do.html' title='I don’t need no stinking firewall ... or do I?'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_K_pkZO5-tTg/TGpV23jYSfI/AAAAAAAAEM8/ZY5wyjzDrSc/s72-c/FirewallsOrRouters.png.jpg' height='72' width='72'/><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-1701372014691543933</id><published>2010-08-18T07:16:00.001+02:00</published><updated>2010-08-20T14:44:08.272+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Center'/><category scheme='http://www.blogger.com/atom/ns#' term='switching'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>Port or Fabric Extenders?</title><content type='html'>&lt;p&gt;Among other topics discussed during the &lt;a href="http://packetpushers.net/show-16-big-hot-heavy-part-1/"&gt;&lt;em&gt;Big Hot and Heavy Switches (Part 1)&lt;/em&gt;&lt;/a&gt; podcast (if you haven’t listened to it yet, it’s high time you do), we’ve mentioned port extenders. As our virtual whiteboard is not always clearly visible during the podcast (although we scribble heavily on it), here’s the big-picture architecture:&lt;/p&gt;&lt;p style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_K_pkZO5-tTg/TGpR8mPNTOI/AAAAAAAAEMs/E1jk0KEoNUI/s1600/Port+Extenders.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="276" src="http://2.bp.blogspot.com/_K_pkZO5-tTg/TGpR8mPNTOI/AAAAAAAAEMs/E1jk0KEoNUI/s400/Port+Extenders.png" width="400" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;After the podcast I wanted to dig into a few minor technical details (just in case someone throws me a curveball during the &lt;a href="http://datacenter20.eventbrite.com/"&gt;Data Center webinar&lt;/a&gt;) and stumbled into a veritable &lt;a href="http://www.dilbert.com/blog/entry/confusopolies/"&gt;confusopoly&lt;/a&gt;.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;Port or Fabric?&lt;/strong&gt; Cisco uses the term &lt;em&gt;fabric extender&lt;/em&gt;; &lt;em&gt;port extender &lt;/em&gt;is used in the IEEE 802.1Qbh standard. Obviously one is a technology term, the other one a marketing term (or product name). It looks like everything in the Data Center is *Fabric*, everything in WAN is *Borderless*. Slowly I might get used to it.&lt;/p&gt;&lt;p&gt;Another explanation I found says “Fabric Extender is a standalone implementation of a Port Extender”. I’m not buying it; see the &lt;a href="http://www.ieee802.org/1/files/public/docs2010/bh-pelissier-draft00intro-0110.pdf"&gt;802.1Qbh introduction&lt;/a&gt; (from Cisco) for details; it's very clear they are not talking about a virtualized environment.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Standardized or not?&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;Cisco brought the idea of port extenders to IEEE 802.1 and effectively started the 802.1Qbh working group. However, 802.1Qbh specifies only the control protocol between the &lt;em&gt;controlling bridge &lt;/em&gt;and the &lt;em&gt;port extender&lt;/em&gt;. It refers to 802.1Qbg for the specification of the tagging on the link between them. 802.1Qbg (which is close to VNTag/VNLink idea from Cisco) refers to 802.1Qbc standard (well hidden behind the paywall) which specifies the actual encapsulation mechanism. The claim that “Cisco has pioneered the VNTag scheme and IEEE 802.1Qbh will use it as a base for the standard” (Cisco Unified Computing System, Cisco Press 2010, page 85) is thus somewhat dubious.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;VNTag or not?&lt;/strong&gt; I was not able to find any authoritative information on the encapsulation format used between fabric extender and controlling bridge. There are plenty of allusions floating around, but nothing very explicit.&lt;/p&gt;&lt;p&gt;There’s also a slight nesting problem: if a fabric extender (Cisco UCS 2100 Fabric Extender) uses VNtag toward the controlling bridge &lt;em&gt;and &lt;/em&gt;the UCS blade NIC (Cisco Palo) uses VNtag toward the controlling bridge, we might end with two stacked VNtags.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Fabric Extender limitations&lt;/strong&gt;. Compared to IEEE 802.1Qbh draft that Cisco started, fabric extenders are extremely limited. For example, the standard aims to provider:&lt;/p&gt;&lt;ul class="ListParagraph"&gt;&lt;li&gt;&lt;strong&gt;Autodiscovery of port extenders&lt;/strong&gt;. Not available in the Nexus software; you have to manually configure the &lt;strong&gt;switchport type&lt;/strong&gt;&lt;strong&gt;&lt;em&gt; &lt;/em&gt;&lt;/strong&gt;and FEX ID on the interface to which the fabric extender is connected.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Chaining of port extenders&lt;/strong&gt;. A port extender can be connected to another port extender, creating a hierarchy. Not available with Nexus 2000 series.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Port extender transparency&lt;/strong&gt;. You can connect anything (host or another bridge) to a port extender physical port. Nexus 2000 products allow only hosts to be connected to the downstream ports; BPDU guard is automatically configured on those ports.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Fabric Extender enhancements&lt;/strong&gt;. As always, Cisco offers more than the standard it has launched. For example, you can use Virtual Port Channel to have dual-homed fabric extenders.&lt;/p&gt;&lt;h4&gt;More Data Center-related technologies&lt;/h4&gt;&lt;p&gt;&lt;a href="http://www.ioshints.info/DataCenterIntro"&gt;Data Center 3.0 for Networking Engineers&lt;/a&gt; webinar (&lt;a href="http://datacenter20.eventbrite.com/"&gt;register here&lt;/a&gt;) covers a wide range of Data Center technologies, including port extenders, VNTags, FabricPath and TRILL.&lt;/p&gt;&lt;p&gt;If you'd enjoy a &lt;a href="http://ioshintsdatacenter.eventbrite.com/"&gt;live Data Center design session&lt;/a&gt; hosted by two top-notch CCIEs, why don't you &lt;a href="http://www.ioshints.info/IOSHints_Live_San_Jose"&gt;join us @ IOSHints Live in San Jose&lt;/a&gt; on September 15th?&lt;/p&gt;&lt;h4&gt;Further reading&lt;/h4&gt;&lt;ul class="ListParagraph"&gt;&lt;li&gt;&lt;a href="http://www.cciezone.com/?p=231"&gt;Introducing the Nexus 2148T (Fabric Extenders)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cciezone.com/?p=235"&gt;Methods for connecting FEXs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cciezone.com/?p=259"&gt;Why EtherChannels should be used for FEX interfaces&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-1701372014691543933?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/1701372014691543933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=1701372014691543933' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/1701372014691543933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/1701372014691543933'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/port-or-fabric-extenders.html' title='Port or Fabric Extenders?'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_K_pkZO5-tTg/TGpR8mPNTOI/AAAAAAAAEMs/E1jk0KEoNUI/s72-c/Port+Extenders.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-1492093293143144608</id><published>2010-08-17T06:56:00.001+02:00</published><updated>2010-08-17T06:56:00.119+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Center'/><category scheme='http://www.blogger.com/atom/ns#' term='switching'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Packet Filters on a Nexus 7000</title><content type='html'>&lt;p&gt;We’re always quick to criticize ... and usually quiet when we should praise. I’d like to fix one of my omissions: a few days ago I was trying to figure out whether Nexus 7000 supports IPv6 access lists (one of the presentations I was looking at while researching the details for my &lt;a href="http://www.ioshints.info/DataCenterIntro"&gt;upcoming Data Center webinar&lt;/a&gt; implied there might be a problem) and was pleasantly surprised by the breadth of packet filters offered on this platform. Let’s start with a diagram.&lt;/p&gt;&lt;p style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_K_pkZO5-tTg/TGfInJMnl2I/AAAAAAAAEMo/vBXAQ-MlzsE/s1600/Nexus+7000+Packet+Filters.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://3.bp.blogspot.com/_K_pkZO5-tTg/TGfInJMnl2I/AAAAAAAAEMo/vBXAQ-MlzsE/s400/Nexus+7000+Packet+Filters.png" width="400" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;Every packet traversing a Nexus 7000 goes through a number of filters:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Inbound port filters&lt;/strong&gt;. You can specify IPv4, IPv6 and MAC filters.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;VLAN filters&lt;/strong&gt;. Whenever a packet is bridged within a VLAN, &lt;strong&gt;vlan access-map &lt;/strong&gt;is applied. VLAN access maps can match on IPv4, IPv6 and MAC addresses (using already-defined access-lists) and even redirect a packet to another interface for further analysis. VLAN filters can be applied to a range of VLANs to improve configuration scalability.&lt;/p&gt;&lt;p&gt;Obviously this step is skipped if the inbound interface is a layer-3 interface.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Routed port ACL&lt;/strong&gt;. Whenever a packet enters or exits the layer-3 forwarding engine, it can be filtered with inbound/outbound ACL. Yet again, both IPv4 and IPv6 ACL are supported. If the packet is forwarded between two VLANs, the destination VLAN filter is also applied.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;TrustSec Security Group&lt;/strong&gt;. Last but not least, every packet traversing the Nexus 7000 is checked by TrustSec security group ACL (SGACL).&lt;/p&gt;&lt;p&gt;I would love to go into so many details in my &lt;a href="http://www.ioshints.info/DataCenterIntro"&gt;Data Center 3.0 for Networking Engineers&lt;/a&gt; webinar (&lt;a href="http://datacenter20.eventbrite.com/"&gt;register here&lt;/a&gt;) but it’s quite impossible due to timing constraints and the breadth of technologies we’re covering. The “further reading” list I’m already preparing should help you find in-depth information on the topics discussed in the webinar. If, however, you'd enjoy a live design session hosted by two top-notch CCIEs, why don't you join us @ &lt;a href="http://www.ioshints.info/IOSHints_Live_San_Jose"&gt;IOSHints Live in San Jose on September 15&lt;sup&gt;th&lt;/sup&gt;&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/23021255-1492093293143144608?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/1492093293143144608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=1492093293143144608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/1492093293143144608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/1492093293143144608'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/packet-filters-on-nexus-7000.html' title='Packet Filters on a Nexus 7000'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_K_pkZO5-tTg/TGfInJMnl2I/AAAAAAAAEMo/vBXAQ-MlzsE/s72-c/Nexus+7000+Packet+Filters.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-3201127645930108874</id><published>2010-08-16T06:50:00.000+02:00</published><updated>2010-08-16T06:50:00.151+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firewalls'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>WAF musings ... not again?</title><content type='html'>&lt;p&gt;Following my &lt;a href="http://blog.ioshints.info/2010/08/rest-in-peace-my-waf-friend.html"&gt;obituary for Cisco’s WAF&lt;/a&gt;, Packet Pushers did a really great WAF-focused podcast with Raven Alder, appropriately named &lt;a href="http://packetpushers.net/show-15-saving-the-web-with-dinky-putt-putt-firewalls/"&gt;&lt;em&gt;Saving the Web with Dinky Putt Putt Firewalls&lt;/em&gt;&lt;/a&gt;&lt;em&gt;. &lt;/em&gt;If you have more than a fleeting interest in protecting business web applications, you should definitely listen to it. Just as an aside: when they were recording the podcast, I was writing my &lt;a href="http://blog.ioshints.info/2010/08/to-waf-or-not-to-waf.html"&gt;To WAF or not to WAF post&lt;/a&gt; ... and it’s nice to see we’re closely aligned on most points.&lt;/p&gt;&lt;p&gt;There’s just a bit I’d like to add to their ponderings. What Raven describes is the “proper” (arduous, time-consuming and labor-intensive) use of WAF that we’re used to from the layer-3/4 firewalls: learning what your web application does (&lt;em&gt;learning &lt;/em&gt;because the design specs were never updated to reflect reality) and then applying the knowledge to filter everything else (what I sometimes call &lt;em&gt;the fascist mode &lt;/em&gt;– whatever is not explicitly permitted is dropped).&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;You could also use a WAF in a “catch the known exploits” mode, similar to what we do with IDS and virus scanners: most WAF products come preloaded with patterns matching well-known exploits (like SQL injections or XSS attacks). These patterns will stop most of the attacks that use “common knowledge” exploits; they will be (obviously) unable to stop those attacks that are crafted with the knowledge of the business logic of your web application. &lt;/p&gt;&lt;p&gt;Did I just embrace the “quick-and-dirty just good enough” mentality? I must be going nuts.&lt;/p&gt;&lt;p&gt;Last but not least, now that I’ve mentioned IDS: some people think that you can program your IDS to provide functionality similar to WAF. Forget it; as I’ve explained more than a year ago, &lt;a href="http://blogs.nil.com/blog/2008/12/11/what-is-a-web-application-firewall/"&gt;HTTP+HTML provide too many ways of obfuscating the content you want to sneak past the IDS&lt;/a&gt;, or as Raven put it (approximately): “the moment you start writing IDS rules that emulate WAF, you’ve started developing a completely new product”.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-3201127645930108874?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/3201127645930108874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=3201127645930108874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/3201127645930108874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/3201127645930108874'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/waf-musings-not-again.html' title='WAF musings ... not again?'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-8319407054506508423</id><published>2010-08-14T16:20:00.000+02:00</published><updated>2010-08-14T16:20:44.937+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='http'/><category scheme='http://www.blogger.com/atom/ns#' term='SAN'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Interesting links (2010-08-14)</title><content type='html'>&lt;p&gt;A few days ago I wrote that you should always strive to understand the technologies beyond the reach of your current job. Stephen Foskett is an amazing example to follow: although he’s a storage guru, he knows way more about HTTP than most web developers and details of the web server architecture that most server administrators are not aware of. Read his &lt;a href="http://blog.fosketts.net/2010/07/30/high-performance-memory-apache-php-virtual-private-server/"&gt;High-Performance, Low-Memory Apache/PHP Virtual Private Server&lt;/a&gt;; you’ll definitely enjoy the details. &lt;/p&gt;&lt;p&gt;And then there’s the ultimate weekend fun: reading Greg’s perspectives on storage and FCoE. It starts with his &lt;a href="http://etherealmind.com/myth-fibrechannel-over-token-ring/"&gt;Magic of FCoTR&lt;/a&gt; post (forget the FCoTR joke and focus on the futility of lossless layer-2 networks) and continues with Rivka’s &lt;a href="http://itknowledgeexchange.techtarget.com/networkhub/fibre-channel-over-token-ring-converged-storage-dilemma-solvedd/"&gt;hilarious report on the FCoTR progress&lt;/a&gt;. Oh, and just in case you never knew what TR was all about – it was “somewhat” different, but never lossless, so it would be as bad a choice for FC as Ethernet is.&lt;/p&gt;&lt;p&gt;Last but not least, there’s Kevin Bovis, the veritable fountain of common sense, this time delving with the &lt;a href="http://etherealmind.com/the-ancient-and-noble-art-of-troubleshooting/"&gt;ancient and noble art of troubleshooting&lt;/a&gt;. A refreshing must-read.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-8319407054506508423?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/8319407054506508423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=8319407054506508423' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/8319407054506508423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/8319407054506508423'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/interesting-links-2010-08-14.html' title='Interesting links (2010-08-14)'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-5271852145720555905</id><published>2010-08-13T10:05:00.000+02:00</published><updated>2010-08-13T10:05:50.696+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Service Providers'/><category scheme='http://www.blogger.com/atom/ns#' term='IPv6'/><title type='text'>Deploying IPv6 article @ SearchTelecom</title><content type='html'>&lt;p&gt;Following my &lt;a href="http://blog.ioshints.info/2010/07/nat444-ds-lite-ap-and-nat64-explained.html"&gt;“&lt;em&gt;Transition to IPv6&lt;/em&gt;” articles&lt;/a&gt;, Jessica Scarpati from SearchTelecom.com wrote a series of articles covering the telecom transition plans and the problems they’re experiencing with the vendors and content providers.&lt;/p&gt;&lt;p&gt;In the second article of the series, “&lt;a href="http://searchtelecom.techtarget.com/news/article/0,289142,sid103_gci1517779,00.html"&gt;&lt;em&gt;Deploying IPv6? Demand responsiveness from vendors, content providers&lt;/em&gt;&lt;/a&gt;”, she’s quoting John Jason Brzozowski from Comcast, John Curran from ARIN, Matt Sewell from Global Crossing and myself. My key message: vote with your money and take your business elsewhere if the vendors don’t get their act together.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-5271852145720555905?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://searchtelecom.techtarget.com/news/article/0,289142,sid103_gci1517779,00.html' title='Deploying IPv6 article @ SearchTelecom'/><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/5271852145720555905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=5271852145720555905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/5271852145720555905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/5271852145720555905'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/deploying-ipv6-article-searchtelecom.html' title='Deploying IPv6 article @ SearchTelecom'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-4361657981199036288</id><published>2010-08-12T13:14:00.001+02:00</published><updated>2010-08-12T13:15:41.589+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Center'/><category scheme='http://www.blogger.com/atom/ns#' term='Workshop'/><title type='text'>IOSHints Live San Jose 2010 with Etherealmind</title><content type='html'>&lt;p&gt;I have fantastic news for the engineers attending the &lt;a href="http://www.ioshints.info/IOSHints_Live_San_Jose"&gt;IOSHints Live event in San Jose&lt;/a&gt;: Greg Ferro (of &lt;a href="http://etherealmind.com/"&gt;Etherealmind&lt;/a&gt; and &lt;a href="http://packetpushers.net/"&gt;Packet Pushers&lt;/a&gt; fame) will join me as co-presenter in the &lt;a href="http://ioshintsdatacenter.eventbrite.com/"&gt;Data Center session&lt;/a&gt;. This will ensure a lively discussion as we sometimes have different perspectives on Data Center technologies and architectures (one of us supposedly &lt;a href="http://blog.ioshints.info/2010/07/extremely-off-topic-another-recognition.html"&gt;lives in an ivory tower&lt;/a&gt; and the other one is a &lt;a href="http://blogs.cisco.com/datacenter/comments/another_day_another_skeptic/"&gt;perpetual skeptic&lt;/a&gt;) and we’ll enjoy analyzing various network designs you’ll bring with you from multiple angles. &lt;/p&gt;&lt;p&gt;With Greg on board, we’ll definitely jump deep into FCoE and DCB waters, hear a few lovely words about Checkpoint firewalls and discuss the potential merits of &lt;a href="http://etherealmind.com/vmware-vfabric-data-centre-network-design/"&gt;vFabric&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://ioshintsdatacenter.eventbrite.com/"&gt;Register here&lt;/a&gt; or &lt;a href="http://www.ioshints.info/IOSHints_Live_San_Jose"&gt;read more about the event&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/23021255-4361657981199036288?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://ioshintsdatacenter.eventbrite.com/' title='IOSHints Live San Jose 2010 with Etherealmind'/><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/4361657981199036288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=4361657981199036288' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/4361657981199036288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/4361657981199036288'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/ioshints-live-san-jose-2010-with.html' title='IOSHints Live San Jose 2010 with Etherealmind'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-3503546598066773321</id><published>2010-08-11T13:41:00.000+02:00</published><updated>2010-08-11T13:41:54.982+02:00</updated><title type='text'>Vendor performance tests</title><content type='html'>&lt;p style='text-align: center'&gt;&lt;a href="http://dilbert.com/strips/comic/2010-08-11/" title="Dilbert.com"&gt;&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/90000/7000/100/97127/97127.strip.gif" border="0" alt="Dilbert.com" style="width: 540px;"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Any comment would be superfluous.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-3503546598066773321?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/3503546598066773321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=3503546598066773321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/3503546598066773321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/3503546598066773321'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/vendor-performance-tests.html' title='Vendor performance tests'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-853231784044195045</id><published>2010-08-11T07:15:00.001+02:00</published><updated>2010-08-11T07:30:51.691+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><title type='text'>Custom-written DNS servers: Learn to love them</title><content type='html'>&lt;p&gt;A cryptic e-mail message from one of my readers telling me that &lt;em&gt;blog.ioshints.info &lt;/em&gt;does not resolve into an IP address (yet again, thank you Igor!) set just the right mood for my Monday morning. As I had about 30 minutes before rushing off to a day-long countryside family event, all I could do was run a few quick tests (of course it worked for me) and take my iPad with me (luckily, it’s a 3G model and the coverage in Slovenia is decent).&lt;/p&gt;&lt;p&gt;During the day, Igor was able to supply more details: the DNS hosting company I was using suddenly decided to return NXDOMAIN error code on every CNAME record unless the query type was CNAME, while providing the results in the response at the same time. Here’s a sample of their bizarre reasoning:&lt;/p&gt;&lt;pre class="code"&gt;$ &lt;strong&gt;dig @ns1.domaindiscover.com xml.ioshints.info&lt;/strong&gt;&lt;br /&gt;;; Got answer:&lt;br /&gt;;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: &lt;span style="color: #FF0000;"&gt;&lt;strong&gt;NXDOMAIN&lt;/strong&gt;&lt;/span&gt;, id: 14206&lt;br /&gt;;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0&lt;br /&gt;;; WARNING: recursion requested but not available&lt;br /&gt;&lt;br /&gt;;; QUESTION SECTION:&lt;br /&gt;;xml.ioshints.info.             IN      A&lt;br /&gt;&lt;br /&gt;;; ANSWER SECTION:&lt;br /&gt;xml.ioshints.info.      0       IN      CNAME   ghs.google.com.&lt;/pre&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;Correct answer is obviously somewhere along the lines of the following printout (I will not waste my time reading the RFCs to figure out all the potential correct answers ;). The authoritative name server supplies just the CNAME, not the final answer (it has no authority to do it) and obviously has to return the success code (as it found the name we were looking for).&lt;/p&gt;&lt;pre class="code"&gt;$ &lt;strong&gt;dig @ns.nil.si blog.ioshints.info&lt;/strong&gt;&lt;br /&gt;;; Got answer:&lt;br /&gt;;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 59148&lt;br /&gt;;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 12&lt;br /&gt;;; WARNING: recursion requested but not available&lt;br /&gt;&lt;br /&gt;;; QUESTION SECTION:&lt;br /&gt;;blog.ioshints.info.            IN      A&lt;br /&gt;&lt;br /&gt;;; ANSWER SECTION:&lt;br /&gt;blog.ioshints.info.     0       IN      CNAME   ghs.google.com.&lt;/pre&gt;&lt;h4&gt;Be liberal in what you accept&lt;/h4&gt;&lt;p&gt;The worst part of the puzzle was that I was able to reach the blog throughout the day (ensuring the DNS TTL of the CNAME record in the server I was using did expire) even using different Service Providers (and DNS servers). In the afternoon, as I was finally able to get hold of a reasonable PC (for whatever reason, I don’t think iPad is the proper platform to write longer texts) I tried to figure out the difference between Igor and myself and polled my Twitter friends. &lt;/p&gt;&lt;p&gt;Only a few of them had problems (weird) and Ethan was kind enough to help me with my troubleshooting efforts. It looks like most recursive DNS servers (including Google’s 8.8.8.8 and OpenDNS) don’t bark at NXDOMAIN error if the answer is included in the reply and happily continue the resolution process, while a few servers decide NXDOMAIN means what it should mean and return an error to the client.&lt;/p&gt;&lt;h4&gt;Let’s fake authority&lt;/h4&gt;&lt;p&gt;Digging further, Igor uncovered another stupidity: the programmers working for DomainDiscover decided to make their life extremely easy and generate fake SOA records. This is what they claim the authority for &lt;em&gt;google.com &lt;/em&gt;is:&lt;/p&gt;&lt;pre class="code"&gt;$ &lt;strong&gt;dig @ns1.domaindiscover.com xml.ioshints.info&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;... deleted ...&lt;br /&gt;&lt;br /&gt;;; AUTHORITY SECTION:&lt;br /&gt;google.com.         3600    IN      SOA     ns1.tierra.net.&lt;br /&gt;                    hostmaster.tierra.net. 2010080701 7200 1800 604800 28800&lt;/pre&gt;&lt;p&gt;One must wonder what these guys will do when DNSSEC comes knocking on their doors. I decided I don’t want to be there when that happens and moved my DNS server today.&lt;/p&gt;&lt;h4&gt;Conclusions&lt;/h4&gt;&lt;p&gt;I am sad to be forced to leave DomainDiscover. They were working perfectly for the last 5+ years I was using them, but obviously the load they were handling (and the pricing wars in the domain registration business) pushed them to cut a few corners too many.&lt;/p&gt;&lt;p&gt;Unfortunately, we can only expect to see more failures like this one as the industry goes through endless cycles of &lt;em&gt;doing more with less&lt;/em&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-853231784044195045?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/853231784044195045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=853231784044195045' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/853231784044195045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/853231784044195045'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/custom-written-dns-servers-learn-to.html' title='Custom-written DNS servers: Learn to love them'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-6368750903212086686</id><published>2010-08-10T13:44:00.002+02:00</published><updated>2010-08-12T13:03:13.189+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPN'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Center'/><title type='text'>First ever Ioshints Live event (San Jose, September 2010)</title><content type='html'>&lt;p&gt;Webinars are great (say most of the attendees ;) but I miss meeting people. Webinars are just the right mechanism for &lt;a href="http://spmarkettrends.eventbrite.com/"&gt;brief technology updates&lt;/a&gt;, &lt;a href="http://nextgenerationipservices.eventbrite.com/"&gt;overviews&lt;/a&gt; or &lt;a href="http://dmvpn.eventbrite.com/"&gt;in-depth configuration discussions&lt;/a&gt;, but it’s nearly impossible to do a lively design discussion involving a reasonably-sized group of engineers over the web. The desire to do a live event was thus slowly brewing for almost a year and finally turned into reality: on September 15&lt;span style="vertical-align: super; font-size: 80%;"&gt;th&lt;/span&gt; you can join me in San Jose for the first ever &lt;a href="http://www.ioshints.info/IOSHints_Live_San_Jose"&gt;&lt;em&gt;Ioshints Live&lt;/em&gt;&lt;/a&gt; event.&lt;/p&gt;&lt;p&gt;We’ll discuss two hot topics: &lt;a href="http://ioshintsdatacenter.eventbrite.com/"&gt;data centers&lt;/a&gt; (I simply had to use the vapor word in the title) and &lt;a href="http://ioshintsvpn.eventbrite.com/"&gt;VPN solutions&lt;/a&gt;. Both sessions will be focused on design issues and your real-life needs. &lt;a href="http://www.ioshints.info/IOSHints_Live_San_Jose"&gt;The registration is open&lt;/a&gt;; if you decide to join us for the whole day, just register for both sessions.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-6368750903212086686?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/6368750903212086686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=6368750903212086686' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/6368750903212086686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/6368750903212086686'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/first-ever-ioshints-live-event-san.html' title='First ever &lt;em&gt;Ioshints Live&lt;/em&gt; event (San Jose, September 2010)'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-4799860552290177933</id><published>2010-08-09T07:23:00.003+02:00</published><updated>2010-08-09T07:23:00.571+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firewalls'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>To WAF or not to WAF?</title><content type='html'>&lt;p&gt;Extremely valid comment made by Pavel Skovajsa in response to my “&lt;a href="http://blog.ioshints.info/2010/08/rest-in-peace-my-waf-friend.html"&gt;&lt;em&gt;Rest in peace, my WAF friend&lt;/em&gt;&lt;/a&gt;” post beautifully illustrates the compartmentalized state some IT organizations face; before going there, let’s start with the basic questions.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Do we need WAF&lt;/strong&gt; ... &lt;a href="http://jeremiahgrossman.blogspot.com/2009/04/disagree-with-concept-or-implementation.html"&gt;as a function, not as a box or a specific product&lt;/a&gt;? It’s the same question as “do we need virus scanners” or “do we need firewalls” in a different disguise. In an ideal world where all the developers would be security-conscious and there would be no bugs, the answer is “NO”. As we all know, we’re in a different dimension and getting further away from the heavens every time someone utters “just good enough” phrase or any other such &lt;a href="http://www.bullshitbingo.net/cards/bullshit/"&gt;bingo-winning slogan&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;It’s popular to bash IT vendors’ lack of security awareness (Microsoft comes to mind immediately), but they’re still far ahead of a typical web application developer. At least they get huge exposure, which forces them to implement security frameworks. &lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;The exposure a typical web application gets is low (unless you’re working for Google, Facebook, Twitter, Amazon or a few others) and the vulnerabilities are thus hidden until someone takes advantage of them. Not surprisingly, hacking accounts for more than 90% of stolen data records in 2009 and within that category, SQL injection is responsible for almost 90% of the stolen goods (source: Verizon’s &lt;a href="http://www.verizonbusiness.com/resources/reports/rp_2010-DBIR-combined-reports_en_xg.pdf"&gt;2010 Data Breach Investigation Report&lt;/a&gt;). &lt;a href="http://jeremiahgrossman.blogspot.com/2007/02/we-need-web-application-firewalls-to.html"&gt;All this has been known years ago&lt;/a&gt;, but still most web sites don’t use a WAF. The situation is similar to the behavior of early Internet adopters around the time the &lt;a href="http://www.wilyhacker.com/1e/"&gt;Firewalls and Internet Security&lt;/a&gt; book was published, but with infinitely more money at stake.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Web server module or standalone solution?&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;When you mention standalone WAF to the web community, the typical response is “we don’t need it; there’s &lt;a href="http://www.modsecurity.org/projects/modsecurity/apache/"&gt;mod_security&lt;/a&gt; for Apache”. They might be partially correct: if you write your application in an &lt;a href="http://www.php.net/"&gt;open-source language&lt;/a&gt; running within an &lt;a href="http://httpd.apache.org/"&gt;open-source web server&lt;/a&gt; on an &lt;a href="http://www.linux.org/"&gt;open-source operating system&lt;/a&gt; it makes sense to use yet another open-source firewall product ... just make sure you &lt;a href="http://bugs.php.net/bug.php?id=50696"&gt;understand the support model&lt;/a&gt;. The good-enough open-source solutions also explain (at least partially) Cisco’s failure in this market segment. However, the choice of the product (and its licensing methodology) should have no impact on the &lt;em&gt;embedded or standalone&lt;/em&gt;&lt;em&gt; &lt;/em&gt;question. &lt;/p&gt;&lt;p&gt;There are tons of good reasons favoring standalone solution and only a single one favoring the embedded module (it’s cheaper). In the world of virtual servers and virtual appliances deploying another virtual machine carries little incremental cost, so even the cost argument is gone.&lt;/p&gt;&lt;p&gt;And now let’s get to the behavior problems described in Pavel’s comment.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Application folks usually get to choose stuff protecting their application.&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;True, but completely wrong. It’s the same idea as server people choosing the firewall to protect them. BTW, don’t even try to launch the “if they knew something about security, we wouldn’t need a WAF” argument; it will not make you popular.&lt;/p&gt;&lt;p&gt;WAF security should be a Data Center-wide function like firewalls and load balancers and whoever is made responsible for it should choose the best solution for the job, not the one the application people are most familiar with.&lt;/p&gt;&lt;p&gt;Last but not least, there’s always the “checks and balances” question.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Application people usually choose server-based protection.&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;Of course they do, as they already have the web server up and running (see above). One should also consider that they’ll usually deploy tons of web servers for isolation, scalability and redundancy reasons ... and some web servers (or Web UI interfaces embedded in other software products) might not even have a WAF module. &lt;/p&gt;&lt;p&gt;Now step back a bit and look at the bigger picture: is it easier to manage, configure, patch and upgrade tens of modules on individual web servers (with different users having administrative rights) or a single centralized device?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Putting L7 devices managed by network guys in front of public facing servers is a bad idea due to the "&lt;/strong&gt;&lt;strong&gt;&lt;em&gt;it's not our fault&lt;/em&gt;&lt;/strong&gt;&lt;strong&gt;" tendency.&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;If this applies to your IT organization, it might be time to polish your resume and consider looking around. If your managers don’t understand &lt;a href="http://chucksblog.emc.com/chucks_blog/2010/04/the-10-big-ideas-that-are-shaping-it-infrastructure-today.html"&gt;where the industry is going&lt;/a&gt;, and what they should do to adapt, your users will eventually give up, try to bypass you and move to public cloud services. &lt;a href="http://chucksblog.emc.com/service_provider_insider/2010/06/why-public-clouds-will-never-appeal-to-enterprises.html"&gt;Definitely a bad idea&lt;/a&gt;, but it will happen eventually.&lt;/p&gt;&lt;p&gt;BTW, second part of &lt;a href="http://chucksblog.emc.com/chucks_blog/2009/06/the-future-is-here.html"&gt;&lt;em&gt;The Future is Here&lt;/em&gt; post by Chuck Hollis&lt;/a&gt; has some useful ideas; I know I’ve read something even better, but (as usual) can’t find it when needed.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-4799860552290177933?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/4799860552290177933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=4799860552290177933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/4799860552290177933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/4799860552290177933'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/to-waf-or-not-to-waf.html' title='To WAF or not to WAF?'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-780811496243729707</id><published>2010-08-08T12:01:00.000+02:00</published><updated>2010-08-08T12:01:27.127+02:00</updated><title type='text'>Interesting links (2010-08-08)</title><content type='html'>&lt;p&gt;Several interesting blog posts I’ve stumbled upon in the last few days:&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.serverfault.com/post/893001713/should-developers-have-access-to-production"&gt;Should developers have access to production?&lt;/a&gt; A really good analysis of pros and cons (including a pinch of “this is how it’s always been done”).&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jeremyfilliben.com/2010/08/migrating-from-catalyst-to-nexus.html"&gt;Migrating from Catalyst to Nexus&lt;/a&gt;. As usual, there are hidden gotchas and varying default settings that make the migration more interesting than expected.&lt;/p&gt;&lt;p&gt;&lt;a href="http://itblog.emc.com/2010/04/26/justifying-vdi-%E2%80%93-part-one/"&gt;Justifying VDI&lt;/a&gt;. VMware has decided to deploy virtual desktops; they describe what they’ve learnt and how you should approach VDI projects.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-780811496243729707?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/780811496243729707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=780811496243729707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/780811496243729707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/780811496243729707'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/interesting-links-2010-08-08.html' title='Interesting links (2010-08-08)'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-6507896433462942144</id><published>2010-08-06T13:32:00.001+02:00</published><updated>2010-08-06T13:41:41.169+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TRILL'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Center'/><category scheme='http://www.blogger.com/atom/ns#' term='bridging'/><title type='text'>How many large-scale bridging standards do we need?</title><content type='html'>&lt;p&gt;Someone had a “borderless data center mobility” dream a few years ago and managed to infect a few other people, resulting in a networking industry pandemic that is usually exhibited by the following “facts”:&lt;/p&gt;&lt;ul class="ListParagraph"&gt;&lt;li&gt;&lt;em&gt;Unhindered Virtual Machine mobility across the globe is the absolute prerequisite for any business agility.&lt;/em&gt; Wrong. There are other field-proven solutions and although inter-site VM mobility has been demonstrated, it’s still a half-baked idea and has many caveats.&lt;/li&gt;&lt;li&gt;&lt;em&gt;You can only reach that Holy Grail by extending your layer-2 domains across vast distances.&lt;/em&gt; Totally wrong. It would be easier to fix L3 routing and signaling protocols than to invent completely new technologies trying to fix L2 problems. Users of &lt;a href="http://blogs.nil.com/blog/2009/07/30/microsoft-network-load-balancing-nlb-functionality-does-not-play-nicely-with-cisco-switches/"&gt;Microsoft NLB&lt;/a&gt; are might disagree ... in which case I wish them luck in scaling their architecture.&lt;/li&gt;&lt;li&gt;&lt;em&gt;Large-scale bridging is absolutely mandatory if you want to build cloud solutions with tens of thousands of servers.&lt;/em&gt; Not sure about that. Google is there, Facebook, Twitter and Amazon are (at least) close, large web hosting providers have been around for years ... and yet they somehow managed to survive with existing technologies and good network designs.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Just today &lt;a href="http://xkcd.com/776/"&gt;XKCD published a very relevant comic&lt;/a&gt;, so I can skip my usually sarcastic comments and focus on the plethora of emerging large-scale bridging standards and implementations. Let’s walk through them:&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;Traditional Service Provider solutions&lt;/strong&gt;: pseudowires (with EoMPLS or L2TPv3) and VPLS. Both of them are covered from the SP perspective in the &lt;a href="http://spmarkettrends.eventbrite.com/"&gt;&lt;em&gt;Market Trends in Service Provider Networks&lt;/em&gt;&lt;/a&gt; webinar and from the user perspective in the &lt;a href="http://choosevpn.eventbrite.com/"&gt;&lt;em&gt;Choose the Optimal VPN Service&lt;/em&gt;&lt;/a&gt; webinar.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Do-it-yourself solutions&lt;/strong&gt; relying on IP core: L2TPv3 or &lt;a href="http://www.ietf.org/id/draft-hasmit-otv-00.txt"&gt;OTV&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Shortest-path bridging&lt;/strong&gt;: &lt;a href="http://blog.ioshints.info/2010/08/trill-and-8021aq-are-like-apples-and.html"&gt;TRILL and 802.1aq&lt;/a&gt;. Within 802.1aq, you have two incompatible implementations of the forwarding plane: &lt;a href="#Shortest_Path_Bridging-VID_-_SPBV"&gt;SPBV&lt;/a&gt; and &lt;a href="#Shortest_Path_Bridging-MAC_-_SPBM"&gt;SPBM&lt;/a&gt;. And then there’s Cisco’s FabricPath, which looks to be enhanced 802.1aq at the moment. I’ll briefly describe these technologies in the &lt;a href="http://datacenter20.eventbrite.com/"&gt;&lt;em&gt;Data Center 3.0 for Networking Engineers&lt;/em&gt;&lt;/a&gt; webinar.&lt;/p&gt;&lt;p&gt;While these technologies supposedly target large-scale LAN networks, they’ll soon escape into the WAN (why couldn’t you run 802.1aq SPBM or TRILL over VLPS, for example).&lt;/p&gt;&lt;p&gt;&lt;strong&gt;There’s more to come&lt;/strong&gt;. As if the existing solutions wouldn’t be enough, Juniper &amp;amp; Alcatel-Lucent created their own &lt;a href="http://tools.ietf.org/html/draft-raggarwa-mac-vpn-01"&gt;BGP MPLS Based MAC VPN&lt;/a&gt;, which looks to be their response to OTV. As &lt;a href="http://en.wikipedia.org/wiki/Andrew_S._Tanenbaum"&gt;Andrew S. Tanenbaum&lt;/a&gt; &lt;a href="http://en.wikiquote.org/wiki/Andrew_S._Tanenbaum"&gt;said&lt;/a&gt; “The nice thing about standards is that you have so many to choose from.”&lt;/p&gt;&lt;p&gt;While it’s wonderful to see the explosive bursts of innovation, it might be high time for the IT vendors to stop their market-share-focused jostling and me-too technology launches and focus on what their customers need: stable field-proven interoperable standardized solutions. Everything else will just increase the FUD level ... or maybe that’s not a bad idea considering that I work for a consulting/system integration company. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-6507896433462942144?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/6507896433462942144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=6507896433462942144' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/6507896433462942144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/6507896433462942144'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/how-many-large-scale-bridging-standards.html' title='How many large-scale bridging standards do we need?'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23021255.post-1688649382174614310</id><published>2010-08-05T15:02:00.002+02:00</published><updated>2010-08-05T15:02:24.366+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Center'/><title type='text'>Look beyond your cubicle</title><content type='html'>&lt;p&gt;The Packet Pushers Episode 11 (&lt;a href="http://packetpushers.net/episode-11-if-you-cant-be-replaced-you-cant-be-promoted/"&gt;If You Can’t Be Replaced, You Can’t Be Promoted&lt;/a&gt;) contains numerous highly valuable career advices. I won’t spoil the fun by telling you what they are (listen to the podcast if you haven’t done so already); I’ll just add one to their long list: always look beyond what you’re doing at the moment. For example, a networking engineer working anywhere near a Data Center environment should be very familiar with the server and storage technologies.&lt;/p&gt;&lt;p&gt;&lt;a href="http://etherealmind.com/network-engineer-know-about-servers-storage/"&gt;Read more ...&lt;/a&gt; (this time @ etherealmind.com)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23021255-1688649382174614310?l=blog.ioshints.info' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://etherealmind.com/network-engineer-know-about-servers-storage/' title='Look beyond your cubicle'/><link rel='replies' type='application/atom+xml' href='http://blog.ioshints.info/feeds/1688649382174614310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23021255&amp;postID=1688649382174614310' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/1688649382174614310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23021255/posts/default/1688649382174614310'/><link rel='alternate' type='text/html' href='http://blog.ioshints.info/2010/08/look-beyond-your-cubicle.html' title='Look beyond your cubicle'/><author><name>Ivan Pepelnjak</name><uri>http://www.blogger.com/profile/13457151406311272386</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15208754866265736101'/></author><thr:total>1</thr:total></entry></feed>