Brian, & Scott,
Brilliant write up. Full of technical details, RFC references, real world
relevance, but most of all, lab exam implications.
Great stuff...
On Tue, Mar 29, 2011 at 7:23 PM, Brian McGahan <bmcgahan_at_ine.com> wrote:
> Actually you don't get stuck in EXSTART. The neighbors will be FULL but
> the database won't be fully synchronized everywhere. A common case for this
> would be if some routers on a LAN are using large frame sizes for GigE, but
> not all of them. Ultimately it depends on how large the LSAs are that need
> to be sent. If they exceed the MTU of the larger side and need
> fragmentation, then the side with the smaller MTU won't be able to receive
> them. The key to this design problem is that sometimes it will happen with
> an MTU mismatch, but not always. The result is non-deterministic which
> makes it difficult to troubleshoot. In a case like this, using "ip ospf
> mtu-ignore" would not help you, it would actually make the problem less
> obvious to solve.
>
> Test it out and see for yourself. It's always been a known design problem
> for OSPF, that's the the MTU check is there to begin with.
>
> Brian McGahan, CCIE #8593 (R&S/SP/Security)
> bmcgahan_at_INE.com
>
> Internetwork Expert, Inc.
> http://www.INE.com
>
>
>
> -----Original Message-----
> From: nobody_at_groupstudy.com [mailto:nobody_at_groupstudy.com] On Behalf Of
> Scott Morris
> Sent: Tuesday, March 29, 2011 5:36 PM
> To: ccielab_at_groupstudy.com
> Subject: Re: Command Preference?
>
> Great write up!
>
> But what you are describing is exactly the reason that the "ip ospf
> mtu-ignore" command was created. Yes, you'll drop packets, and yes,
> you will get stuck in an EXSTART phase as one side is discarding the
> packets received that are too large.
>
>
> http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080093f0d.shtml
>
> But making a conscious choice to use this command in order to overcome
> this will not have any adverse effects. Unless you are using it in a
> situation that involves someone else's links in the middle (L2?) that
> have constrained MTUs and will drop things.... And you'd recognize that
> fairly quickly anyway by the idea that you wouldn't attain a full
> synchronization! :) (In other words, do homework first, then test
> appropriately... But in non-CCIE-esque topologies, problems should not
> be seen)
>
> Is it nice that MTUs match everywhere? Probably a good thing, it's
> there for a reason. Are there other methods (like "system mtu routing
> 1500" on your cat's)??? Yup. Should you know what problem you're
> seeing and solve it within the constraints of the lab? Yup.
>
> Should you worry about the after effects of implementing this command?
> Nope. Not if you've done the homework before implementing it.
>
> Just my two cents for the evening....
>
>
>
>
> *Scott Morris*, CCIE/x4/ (R&S/ISP-Dial/Security/Service Provider) #4713,
>
> CCDE #2009::D, JNCIE-M #153, JNCIE-ER #102, CISSP, et al.
>
> CCSI #21903, JNCI-M, JNCI-ER
>
> swm_at_emanon.com
>
>
> Knowledge is power.
>
> Power corrupts.
>
> Study hard and be Eeeeviiiil......
>
>
> On 3/29/11 6:49 PM, Brian McGahan wrote:
> > Actually it *can* harm the network. The issue is that the OSPF
> HELLO, Database Description (DBD), Link-State Request (LSR), and Link-State
> Acknowledgement (LSAck) packets are generally small, but the Link-State
> Update (LSU) packets are generally not.
> >
> > When establishing a new neighbor, the DBD packet is used to tell
> the neighbors what LSAs are in the database, but not to give the details
> about them. Specifically the DBD contains the LSA Header information, but
> not the actual LSA payload. The idea behind this is to optimize flooding in
> the case that the receiving router already received the LSA from another
> neighbor, in which case flooding does not need to occur during adjacency
> establishment.
> >
> > For example, suppose that you and I, routers A and B, both have
> neighbors C and D, and the database is synchronized. If you and I form a
> new adjacency, my DBD exchange to you will say that I have LSAs A, B, C, and
> D in my database. Since you are already adjacent with C and D, and I am
> adjacent with them, you already have all of my LSAs, possibly with the
> exception of the new link that connects us. This means that even though I
> describe LSAs A and B to you with my DBD packet, you don't send an LSR to me
> for them, which means I don't send you an LSU about them. This is the
> normal optimization of how the database is exchanged so that excessive
> flooding doesn't occur. The problem with MTU mismatch however, is when you
> and I establish an adjacency and *don't* already know anything about each
> others' database, which means that a full flooding procedure must occur.
> >
> > Suppose now that you, router A, know about LSAs A1 through An in
> your database, and I, router B, know about LSAs B1 through Bn. When we
> establish adjacency your DBD to me will describe A1-An, while mine will
> describe B1-Bn. Since I don't have A1-An, I will send you an LSR about
> them, and likewise since you don't have B1-Bn, you will send an LSR about
> those to me. When you reply back to me with the LSUs about A1-An, it is
> highly likely that the LSU packet itself will contain more than one LSA in
> the payload, potentially up to your MTU when the packet is generated. The
> idea behind this is that since you need to send me more than one LSA, it's
> more efficient to send them in as few LSUs as possible, instead of sending
> one LSA per LSU. The problem occurs in this flooding procedure when your
> MTU is larger than mine.
> >
> > If your MTU is 1500 bytes, and my MTU is 1000 bytes, any LSU you
> send me over 1000 bytes will be dropped as I receive it. This is not a
> transmission problem on your side, but is a receiving problem on my side.
> The result will be that our adjacency forms, but our databases do not
> become synchronized. The best case scenario will be that I can't send
> traffic to certain destinations; the worst case scenario is that SPF
> calculation fails and a loop occurs in the topology.
> >
> > To prevent this case, the DBD packets contains each of our MTUs.
> This allows to routers to decide whether they should even bother flooding
> in the first place. If you send me your DBD and the MTU says 1500 bytes,
> and my DBD sent to you says 1000 bytes, we won't bother sending LSRs or LSUs
> to each other, because we know that it is likely that database
> synchronization will fail.
> >
> > The reason that this matters is that the "ip ospf mtu-ignore"
> command is not a fix to the underlying problem. Instead it is simply an
> exception to the OSPF adjacency state machine. Per RFC 2328, OSPF Version
> 2, the following should occur:
> >
> >
> > 10.6. Receiving Database Description Packets
> >
> > This section explains the detailed processing of a received
> > Database Description Packet.
> > <snip>
> > If the Interface MTU field in the Database Description packet
> > indicates an IP datagram size that is larger than the router can
> > accept on the receiving interface without fragmentation, the
> > Database Description packet is rejected. Otherwise, if the
> > neighbor state is:
> > <snip>
> >
> > This means that if you configure "ip ospf mtu-ignore", the DBD
> state machine skips the MTU check. This however, does not mean that the
> database will properly synchronize. So like Tyson said, "Preferably you
> will fix the underlying issues by fixing the design instead of applying
> 'CCIE' tactics to work around issues."
> >
> > Within the scope of the lab, yes you should understand what this
> command does. Within the scope of a real OSPF design, no, you should not
> use it. Instead you should ensure that the MTUs actually *do* match in the
> network, which would prevent the case of a failure of the database to
> synchronize.
> >
> >
> > HTH,
> >
> > Brian McGahan, CCIE #8593 (R&S/SP/Security)
> > bmcgahan_at_INE.com
> >
> > Internetwork Expert, Inc.
> > http://www.INE.com
> >
> >
> > -----Original Message-----
> > From: nobody_at_groupstudy.com [mailto:nobody_at_groupstudy.com] On Behalf Of
> Vitali Aivazov
> > Sent: Tuesday, March 29, 2011 8:49 AM
> > To: Tyson Scott
> > Cc: Larry Hadrava; Narbik Kocharians; Cisco certification; ALL From_NJ
> > Subject: Re: Command Preference?
> >
> > What if MTU was changed on purpose, so to modify MTU value just for OSPF
> > adjacency to be formed is risky unless the reason of initial MTU change
> is
> > clear.
> >
> > In real life scenario I would use ignore MTU check on OSPF to get
> adjacency
> > formed, at least this will not harm existing network. However, in a lab
> > scenario it all depends on wording of a question.
> >
> >
> > Blogs and organic groups at http://www.ccie.net
> >
> > _______________________________________________________________________
> > Subscription information may be found at:
> > http://www.groupstudy.com/list/CCIELab.html
> >
> >
> > Blogs and organic groups at http://www.ccie.net
> >
> > _______________________________________________________________________
> > Subscription information may be found at:
> > http://www.groupstudy.com/list/CCIELab.html
>
>
> Blogs and organic groups at http://www.ccie.net
>
> _______________________________________________________________________
> Subscription information may be found at:
> http://www.groupstudy.com/list/CCIELab.html
>
>
> Blogs and organic groups at http://www.ccie.net
>
> _______________________________________________________________________
> Subscription information may be found at:
> http://www.groupstudy.com/list/CCIELab.html
Blogs and organic groups at http://www.ccie.net
Received on Tue Mar 29 2011 - 20:06:42 ART
This archive was generated by hypermail 2.2.0 : Fri Apr 01 2011 - 06:35:42 ART