[j-nsp] Route Reflecting & Next-Hop Self
Dan Armstrong
dan at beanfield.com
Tue Sep 9 18:05:16 EDT 2008
Those people <ahem> that first planted this notion in my head is
watching this list - they're free to chime in anytime. :-)
James Jun wrote:
> Well, given the fact that BGP uses IGP information (metric) to make
> best-path decision, you should include inter -AS xfernets in your IGP
> if you want to do decent deterministic traffic engineering toward your
> nexthops.
>
> I think the whole notion of "my IPs in IGP only" is silly..
>
> James
>
> Sent from my iPhone
>
> On Sep 9, 2008, at 4:01 PM, Dan Armstrong <dan at beanfield.com> wrote:
>
>> A hotly debated topic among BGP nerds.... I honestly don't know
>> how I feel about it either way.
>>
>>
>> Many people think that because the IPs that you often use between
>> yourself and a transit provider belong to your transit provider, they
>> have no business being in your IGP.... "My IGP is for MY address
>> space". At the end of the day I don't think it really matters, but
>> you know how passionate some people can be.
>>
>>
>>
>>
>> Amos Rosenboim wrote:
>>> Hello Dan,
>>>
>>> You can also work around all of this by simply adding the inter-AS
>>> prefix into your IGP by adding this interface as a passive interface
>>> for the IGP.
>>> This will eliminate the need for next hop self in the first place.
>>> This seems simpler to me, am I missing any reason not to use this?
>>>
>>> Regards
>>>
>>> Amos Rosenboim
>>> amos at oasis-tech.net <mailto:amos at oasis-tech.net>
>>>
>>>
>>>
>>> On Sep 6, 2008, at 12:46 AM, Dan Armstrong wrote:
>>>
>>>> EUREKA you're a genius!
>>>>
>>>> Thanks... That works perfectly.
>>>>
>>>> And thanks to all who replied!
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Kevin Hodle wrote:
>>>>> Hi Dan,
>>>>>
>>>>> Instead of 'from external' you need 'from route-type external',
>>>>> like so:
>>>>>
>>>>> term external-nexthopself {
>>>>> from {
>>>>> protocol bgp;
>>>>> route-type external;
>>>>> }
>>>>> then {
>>>>> next-hop self;
>>>>> accept;
>>>>> }
>>>>> }
>>>>>
>>>>> HTH,
>>>>> Kevin
>>>>>
>>>>> On Fri, Sep 5, 2008 at 9:26 AM, Dan Armstrong <dan at beanfield.com
>>>>> <mailto:dan at beanfield.com>> wrote:
>>>>>
>>>>>
>>>>>> I was trying to make a generic policy statement that I could
>>>>>> deploy across all our boxes... this is not possible if we name
>>>>>> ebgp peers specifically, and if we change transit providers - we
>>>>>> have to keep track of changing policy statements as well... kind
>>>>>> of messy.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Chuck Anderson wrote:
>>>>>>
>>>>>>
>>>>>>> On Thu, Sep 04, 2008 at 10:08:45PM -0400, Dan Armstrong wrote:
>>>>>>>
>>>>>>>
>>>>>>>> In IOS, if I set next-hop self in a neighbor relationship with
>>>>>>>> an RR-Client, it sets the next-hop to itself for routes
>>>>>>>> learned from local eBGP sessions, but leaves the next-hop
>>>>>>>> unchanged for routes that it's passing on from other fellow
>>>>>>>> route-reflectors...
>>>>>>>>
>>>>>>>> The *problem* is that in JunOS, if I set next-hop self on a
>>>>>>>> neighbor relationship with an RR-Client, it sets the next-hop
>>>>>>>> to itself all the time, even on routes it's passing on from
>>>>>>>> other fellow route-reflectors, effectively sucking all traffic
>>>>>>>> into the route reflector and totally defeating the purpose of
>>>>>>>> route reflecting.
>>>>>>>>
>>>>>>>>
>>>>>>> That's just the way it is in JunOS--not much policy-related
>>>>>>> behavior is hard-coded into JunOS like it might be in other
>>>>>>> vendors. This gives you the most flexibility in writing policy
>>>>>>> to do exactly what you want.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Now, of course we can policy-statement our way out of this -
>>>>>>>> with big messy kludgey stuff, but it seems to me that there
>>>>>>>> has to be a fairly simple and elegant way to do this, since
>>>>>>>> it's pretty common, no?
>>>>>>>>
>>>>>>>> (My current kludge is to set an import policy on my eBGP
>>>>>>>> sessions that tag each route with a community called "HERE",
>>>>>>>> have an export policy towards all my iBGP neighbors to set
>>>>>>>> next-hop self if the route is tagged with the community
>>>>>>>> "HERE", then strip it off - so that the community "HERE" never
>>>>>>>> leaves any box.)
>>>>>>>>
>>>>>>>>
>>>>>>> That is one recommended method. The other is to match the eBGP
>>>>>>> neighbor and only apply next-hop self to routes from your eBGP
>>>>>>> peers.
>>>>>>>
>>>>>>> e.g. in your IBGP export policy (from the JNCIP study guide):
>>>>>>>
>>>>>>> term 3 {
>>>>>>> from {
>>>>>>> protocol bgp;
>>>>>>> neighbor [ 172.16.0.14 172.16.0.18 ];
>>>>>>> }
>>>>>>> then {
>>>>>>> next-hop self;
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>> where 172.16.0.14 and 17.16.0.18 are eBGP peer addresses.
>>>>>>> _______________________________________________
>>>>>>> juniper-nsp mailing list juniper-nsp at puck.nether.net
>>>>>>> <mailto:juniper-nsp at puck.nether.net>
>>>>>>> https://puck.nether.net/mailman/listinfo/juniper-nsp
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> juniper-nsp mailing list juniper-nsp at puck.nether.net
>>>>>> <mailto:juniper-nsp at puck.nether.net>
>>>>>> https://puck.nether.net/mailman/listinfo/juniper-nsp
>>>>>>
>>>>>>
>>>>
>>>> _______________________________________________
>>>> juniper-nsp mailing list juniper-nsp at puck.nether.net
>>>> <mailto:juniper-nsp at puck.nether.net>
>>>> https://puck.nether.net/mailman/listinfo/juniper-nsp
>>>
>>
>> _______________________________________________
>> juniper-nsp mailing list juniper-nsp at puck.nether.net
>> https://puck.nether.net/mailman/listinfo/juniper-nsp
More information about the juniper-nsp
mailing list