Lets go down another layer in your proposed BGP solution.  

The core topology will be along the lines of 5-10 routers
in a ring.  Lets say 7 routers, R1, R2, R3, R4, R5, R6 and
R7 are connected in a p2p ring topology.  Assume that there's
one or more direct connections between R1 and R4.

R4 has 3 other interfaces for networks A, B, and C.  Each is
a different service.

Assume that R1 is connected to another cloud of routers and
that traffic to networks A, B, and C will originate from this
other cloud.

The service routing requirements are as follows (from R1's
perspective):

* traffic to A should go follow the R1-R2-R3-R4 and/or the
R1-R7-R6-R5-R4 path.
* traffic to B and C should follow the R1-R4 path
* when the link between R1 and R4 fails, B should be routed over
the R1-R2-R3-R4 and/or R1-R7-R6-R5-R4 path.  Traffic to C should
stop.

Provide some sample configs snipets for R1, R4 and an intermediate
router which demonstrates how the proposed BGP solution would
support the policy requirements.

Thanks



Zsombor Papp wrote:
> 
> I am not sure what's the significance of the existing routing
> setup. Is there a desire to preserve any part of it?
> 
> Your new example is pretty much the same as I described the
> problem, isn't it? So running BGP over I1 and I2 (just directly
> to the neighbor routers) would still work.
> 
> Or is the requirement to be able to make such a decision at
> every single hop, not only at the end point? If so, using MPLS
> and Traffic Engineering might really be a better option,
> depending on how flexible your solution needs to be (ie. if
> there are thousands of possible paths and you want to allow
> only a few hundred, then that will be a nightmare even with TE).
> 
> But let's consider a non-MPLS solution first. That would be
> what you call the "BGP as IGP" approach (although I assume you
> would still want to keep OSPF running to provide connectivity
> between the routers). The most important issue here is how you
> will make sure that the BGP sessions go up and down together
> with the links they correspond to. With eBGP, this is easy as
> you have direct control over the TTL of the BGP packets. With
> iBGP, you would probably have to use the physical interfaces'
> IP addresses for the BGP sessions (instead of the loopbacks, as
> it probably is currently). Unless you can limit the TTL of the
> iBGP packets (I don't remember if there is a way to do this in
> IOS).
> 
> Another issue with iBGP is that routes learned from an iBGP
> peer are not advertised to another iBGP peer unless the local
> router is a route-reflector, so you would probably end up
> configuring every router except the end-points as a
> route-reflector. On a second thought, this is probably not a
> big issue, but I'll mention it anyway, maybe it rings an alarm
> bell in someone else's mind. :)
> 
> I am not sure if setting the next-hop at every router would be
> necessary. The fact that in case of a link failure -- thanks to
> the filters applied to the BGP sessions corresponding to the
> still functional links -- there simply wouldn't be any routes
> advertised, seems to be sufficient. If so, the advantage of
> using iBGP would be that you could still rely on OSPF to select
> the path for the services that are still functioning. Of
> course, if a certain type of traffic is allowed on multiple
> links, then you will have to make sure that the OSPF metric is
> set so that the preferred link will be picked in case multiple
> links are available.
> 
> Yes, maintaining the filters won't be great fun, but I suspect
> that it would be easier to comprehend than a per-serivce OSPF
> topology.
> 
> The "one AS per router" requirement for eBGP doesn't seem to be
> very scary. An AS number is just a number, like the RID in
> OSPF, which you have one per router, so unless you expect to
> have 65000+ routers in this network, I don't see a problem with
> that. Also, you can prepend AS numbers to emulate the IGP cost.
> The bottle-neck of this approach might be the max allowed
> length for AS_PATH attribute. I seem to remember that it's 128,
> which is not a lot, but it's still better than old-style
> metrics in ISIS...
> 
> Speaking of scaling, do you think that one OSPF process per
> service will scale? Since you will probably want to run all the
> OSPF processes on almost every link and pretty much every
> router, the load of running OSPF will be proportional to the
> number of services. Will the routers be able to keep up? What
> if they decide to add yet another service? Or three more?
> 
> As for the ACLs, technically speaking, they do satisfify the
> requirement that the end-points need to be notified. There will
> be ICMP messages to this effect. You could extend the
> application to look for those (or write a separate small
> application). This might sound a bit crazy, but looking at the
> other options, I am not sure this is the worst one... :)
> 
> Thanks,
> 
> Zsombor
> 
> p b wrote:
> > 
> > 
> > Here's some more detail.
> > 
> > Yes, assume the destination address (networks) represent
> > the corresponding service.
> > 
> > This is an existing production network where OSPF and iBGP are
> > already in use for the existing (single) service.  OSPF
> carries
> > p2p and loopbacks; iBGP carries customer end-point networks.
> > 
> > We want to overlay two other services.  The paths the packets
> > take to their destination, even if hosted on the same router,
> > will be different.   Further, when there's a failure in the
> > network, the manner in which traffic gets re-routed will be
> > specific to each service.
> > 
> > An example might help.  Consider some router R1 in this
> network.
> > It has several connections to other routers in the network. 
> It
> > also has three interfaces each with a network assigned to it.
> > Lets call these networks A, B and C and each is for a
> different
> > service.   Under normal conditions, traffic to A comes in via
> > interface I1 and traffic to B and C comes in via interface I2.
> > Now assume I2 fails.  Traffic for A and B should come in over
> I1
> > and traffic to C stops being delivered. 
> > 
> > ACLs won't work in this situation for a number of reasons. 
> > Besides
> > the configuration and operational issues, another requirement
> > is
> > that the end-points generating traffic to destinations in C 
> > will want to know when C is unavailable via I2.  They'll want
> to
> > know this so they can stop generating traffic or leverage some
> > higher level (service specific) mechanism to address the
> > failure.
> > 
> > Running BGP as the IGP might work, but I'm not sure.  I think
> it
> > might need to operate in iBGP mode and I think it would
> require
> > lots of policy filters on all outgoing advertisements and
> would
> > probably require setting the next hop at each router.   These
> > are
> > both typically not done when operating in iBGP mode.  Further,
> > I think one would lose the concept of IGP cost; the iBGP
> > mechanism
> > might allow one to construct a path between two end-points
> which
> > satisfies the service policy, but if multiple paths exist, the
> > concept of link cost would not be available.    I guess
> running
> > eBGP as the IGP could also work, but now we're talking
> > configuring
> > a unique AS for each router (which doesn't scale).  One could
> > see
> > the path selected through the network via the AS_PATH
> attribute,
> > but there still would be no concept of IGP cost.  
> > 
> > I've not come up with a way to solve this without moving to 
> > a model where theres an IGP and thus SPT for each service,
> > which implies multiple OSPF processes.  
> > 
> > But I'm interested in other thoughts or options on this...
> > 
> > 
> > 
> > Zsombor Papp wrote:
> > > 
> > > Since you say you want to run one OSPF process for each
> > traffic
> > > type, I assume the type of the traffic is defined by
> > > destination IP address. If this is not correct, then I would
> > be
> > > curious to know what a "traffic type" is and how you will
> > > associate a traffic type with an OSPF process.
> > > 
> > > If however my assumption is correct, then I can see several
> > > ways to solve the problem you cited as an example, with BGP
> or
> > > with a single OSPF process.
> > > 
> > > Let me restate the problem for N=1: suppose there are 3
> > > routers, R1, R2, R3, connected in a triangle. Both traffic A
> > > and B usually go directly from R1 to R2, but when that link
> > > fails, traffic A should go from R1 to R3 to R2, and traffic
> B
> > > should be dropped at R1.
> > > 
> > > Solution with BGP: run BGP between R1-R2 and R1-R3, make the
> > > routes coming from R2 preferred, and filter out the routes
> > > corresponding to traffic B from the advertisements R3 sends
> to
> > > R1.
> > > 
> > > Solution with single OSPF process: configure an access list
> on
> > > the link between R1-R3 that drops traffic B. :)
> > > 
> > > Of course I might be missing something, so feel free to
> point
> > > out why these wouldn't work in your case.
> > > 
> > > Thanks,
> > > 
> > > Zsombor
> > > 
> > > p b wrote:
> > > > 
> > > > 
> > > > Using multiple processes might provide a way to implement
> > > > policy at the link level.   Typically, when one thinks of
> > > > policy,
> > > > one thinks of BGP.  But what if your policy requires the
> > > ability
> > > > to control what traffic can or can't go over a particular
> > > > link?  For example, consider two routers, that are
> > > > interconnected
> > > > by a direct link and a N-hop L3 path.  Suppose traffic
> types
> > > > A and B should typically go over the direct link but, if
> the
> > > > direct link fails, traffic type A should be routed over
> the
> > > > N-hop L3 path and traffic type B should not be forwarded.
> > > > 
> > > > I don't believe there's a way to get this level of policy
> > from
> > > > a single OSPF process or a single OSPF process coupled
> with
> > > BGP.
> > > > 
> > > > However, if you run multiple OSPF processes, say one for
> > each
> > > > interesting traffic type, and if you use BGP to set a
> > > network's
> > > > next-hop to match the right OSPF RID, and for each link
> > define
> > > > a sub-interface (or not) for each OSPF process, then I
> think
> > > the
> > > > above routing requirements might be supported. 
> > > > 
> > > > MPLS might work here, but I'm not sure.  
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > Suppose you have certain types
> > > > of traffic that
> > > > 
> > > > Zsombor Papp wrote:
> > > > > 
> > > > > What are you trying to achieve with these ~3 OSPF
> routing
> > > > > processes?
> > > > > 
> > > > > Thanks,
> > > > > 
> > > > > Zsombor
> > > > > 
> > > > > p b wrote:
> > > > > > 
> > > > > > 
> > > > > > I'm considering a routing architecture where devices
> in
> > > the
> > > > > > network would run ~3 OSPF routing processes.
> > > > > > 
> > > > > > I think each routing process will be handling the
> > routing
> > > > > > of non-overlapping address blocks and thus the routes
> > they
> > > > > > give to the forwarding table should be disjoint.
> > > > > > 
> > > > > > However, I'd like to understand what happens if two
> > > > processes
> > > > > > each were to provide the same prefix to the forwarding
> > > > table.
> > > > > > Specifically, what are the rules to determine which
> > prefix
> > > > > > is put into the routing table?
> > > > > > 
> > > > > > Also be interested in any learnings folks might have
> had
> > > > when
> > > > > > they've run multiple OSPF processes.
> > > > > > 
> > > > > > Thanks
> > > > > > 
> > > > 
> > > > 
> > 
> > 




Message Posted at:
http://www.groupstudy.com/form/read.php?f=7&i=73830&t=73727
--------------------------------------------------
**Please support GroupStudy by purchasing from the GroupStudy Store:
http://shop.groupstudy.com
FAQ, list archives, and subscription info: http://www.groupstudy.com/list/cisco.html

Reply via email to