Re: [GROW] Dropped Updates in BMP?

2018-03-21 Thread Thomas.Graf
Hi all,

Thank you very much for the updated drafts and presentation at IETF 101 
regarding bmp and Adj-RIB-Out and Local-RIB support. I have been reading the 
updated draft and fully support them.

Regarding route filtering the comment from Reudiger Volk. From a network 
operator point of view, I share Serpil's comments. I also share Paolo's 
concerns bringing in more complexity could potentially lead being less adapted 
by vendors. I share Job's suggestion that this should if being addressed in a 
separate draft.

At current state BMP is able to answer the question at which point (Adj-RIB-In, 
Adj-RIB-Out, Local-RIB) how much and which routes are filtered, passed or when 
passed where the route attributes were modified. What BMP can't answer is why 
these routes where passed or when passed, why where the route attributes 
modified. And as Serpil already explained, for a network operator, if complex 
and historical evolved route-policy configuration is in place, can be quiet 
cumbersome to troubleshoot. Especially as route-policy configuration are not 
standardized and differ between vendors. An there, BMP could bring valuable 
insights in, which we should not ignore.

How about for instance adding three fields to each route in Adj-Post-RIB-In , 
Local-RIB and Adj-Post-RIB-Out:

Action:  Passed, Filtered, Modified
Place:   route-policy name or function within router. An example 
for functions could be: route-target filter
Debug: free text of what has been modified if modified. An example: 
modified next-hop to 1.1.1.1

I fully understood that adding these fields has its price and therefore it 
should be addressed and discussed in a new separate draft, especially since 
Adj-RIB-In is also affected. From my perspective, where I disagree, is that the 
a filtered flag alone would be enough to address the wish to get more visbility 
into the filter behavior since it would not explain why it has been filtered.

Regarding Serpil's question wherever it would be sufficient only to flag routes 
if filtered by route-policy. From my point of view I can confirm that this is 
the most interesting part, but as I described above, I fear that it might be 
not enough when we start going down that road.

Kind regards
Thomas Graf

Network Engineer
Tribe IT Clouds
Telefon +41-58-223 84 01
Mobile   +41-79-728 80 12
thomas.g...@swisscom.com<mailto:thomas.g...@swisscom.com>

Swisscom (Schweiz) AG
IT, Network & Infrastructure
Tribe IT Clouds
Binzring 17
8045 Zürich
www.swisscom.com
Postadresse:
Binzring 17
8045 Zürich


From: GROW [mailto:grow-boun...@ietf.org] On Behalf Of Serpil Bayraktar (serpil)
Sent: Tuesday, March 20, 2018 7:54 PM
To: Paolo Lucente ; Job Snijders 
Cc: grow@ietf.org
Subject: Re: [GROW] Dropped Updates in BMP?

+1

Not knowing which policy is filtering which route has been the #1 reason for 
operators not wanting to touch existing policy configuration on the routers 
AFAIK. Hence the enormous size of policy configs. Not to mention not having an 
easy way to validate whether a new policy is filtering what it is intended to 
filter or not.
If there is any visibility into why a route was filtered that can be relayed 
via BMP, it’d be super useful. I do agree that it should probably be another 
draft as Job suggested.

As for those routes that are dropped before even hitting the policy filters 
(such as due to errors in the path attributes like AS path loops), I think the 
operators need to step in here to indicate how valuable this information is to 
them and whether the vendors can provide them without harming the operation of 
the router or not.

Serpil



From: GROW mailto:grow-boun...@ietf.org>> on behalf of 
Paolo Lucente mailto:pa...@ntt.net>>
Date: Tuesday, March 20, 2018 at 11:20 AM
To: Job Snijders mailto:j...@ntt.net>>
Cc: Grow Mailing List mailto:grow@ietf.org>>
Subject: Re: [GROW] Dropped Updates in BMP?


Minor comment: my understanding is that Reudiger was interested in getting more 
visibility in what happens between Adj-RIB-In pre- and post- policy.

I concur with Tim Evens comment “In order to determine what was 
"dropped/filtered/rejected/whatever" we do a simple diff between pre-policy and 
post-policy", which is essentially the same i replied to Reudiger as in what 
can be done with what we have. Speaking to pmacct users using BMP, the ability 
to diff pre- and post- policy was found good enough as a starting point to 
further research what happened to missing routes (through means external to 
BMP).

It would be nice to get to some sort of increased visibility and have a kind of 
‘exit code’, as Jeff Haas described it, when a route is filtered (‘f’ flag to 
be ported to Adj-RIB-In and Adj-RIB-Out?) and I reckon things may get 
compl

Re: [GROW] Dropped Updates in BMP?

2018-03-20 Thread Serpil Bayraktar (serpil)
+1

Not knowing which policy is filtering which route has been the #1 reason for 
operators not wanting to touch existing policy configuration on the routers 
AFAIK. Hence the enormous size of policy configs. Not to mention not having an 
easy way to validate whether a new policy is filtering what it is intended to 
filter or not.
If there is any visibility into why a route was filtered that can be relayed 
via BMP, it’d be super useful. I do agree that it should probably be another 
draft as Job suggested.

As for those routes that are dropped before even hitting the policy filters 
(such as due to errors in the path attributes like AS path loops), I think the 
operators need to step in here to indicate how valuable this information is to 
them and whether the vendors can provide them without harming the operation of 
the router or not.

Serpil



From: GROW  on behalf of Paolo Lucente 
Date: Tuesday, March 20, 2018 at 11:20 AM
To: Job Snijders 
Cc: Grow Mailing List 
Subject: Re: [GROW] Dropped Updates in BMP?


Minor comment: my understanding is that Reudiger was interested in getting more 
visibility in what happens between Adj-RIB-In pre- and post- policy.

I concur with Tim Evens comment “In order to determine what was 
"dropped/filtered/rejected/whatever" we do a simple diff between pre-policy and 
post-policy", which is essentially the same i replied to Reudiger as in what 
can be done with what we have. Speaking to pmacct users using BMP, the ability 
to diff pre- and post- policy was found good enough as a starting point to 
further research what happened to missing routes (through means external to 
BMP).

It would be nice to get to some sort of increased visibility and have a kind of 
‘exit code’, as Jeff Haas described it, when a route is filtered (‘f’ flag to 
be ported to Adj-RIB-In and Adj-RIB-Out?) and I reckon things may get 
complicated if trying to stretch the concept too much beyond this point. I’d be 
willing to contribute effort if it is found that there is enough interest.

Paolo

On 20 Mar 2018, at 14:52, Job Snijders mailto:j...@ntt.net>> 
wrote:
Hi all,
Reudiger Volk mentioned something interesting at the microphone
yesterday about getting more visiblity into BGP UPDATES that are
rejected/dropped somewhere in the policy chain transitioning from
Adj-RIB-In to Loc-RIB.
To make a crude route-map example:
ip prefix-list allow-ebgp-in permit 192.0.2.0/24
!
route-map ebgp-in permit 10
match ip address prefix-list allow-ebgp-in
!
route-map ebgp-in deny 20
bmp-log-code 21438
It would be great to see what UPDATEs get dropped in "route-map ebgp-in deny 
20".
It would perhaps be quite useful if we can get to the point where you
can even attach custom policy-exit codes to the "Dropped Updates" send
in this new BMP feed. I can see how this makes operational life easier.
RFC 4271 Section 9.1: "The Decision Process selects routes for
subsequent advertisement by applying the policies in the local
Policy Information Base (PIB) to the routes stored in its
Adj-RIBs-In. The output of the Decision Process is the set of
routes that will be advertised to peers; the selected routes will be
stored in the local speaker's Adj-RIBs-Out, according to policy."
Perhaps a series of BMP "PIB" drafts are in order?
Is this worthy of a new BMP draft? Are there volunteers?
Kind regards,
Job
___
GROW mailing list
GROW@ietf.org<mailto:GROW@ietf.org>
https://www.ietf.org/mailman/listinfo/grow

___
GROW mailing list
GROW@ietf.org<mailto:GROW@ietf.org>
https://www.ietf.org/mailman/listinfo/grow

___
GROW mailing list
GROW@ietf.org
https://www.ietf.org/mailman/listinfo/grow


Re: [GROW] Dropped Updates in BMP?

2018-03-20 Thread Paolo Lucente

Minor comment: my understanding is that Reudiger was interested in getting more 
visibility in what happens between Adj-RIB-In pre- and post- policy. 

I concur with Tim Evens comment “In order to determine what was 
"dropped/filtered/rejected/whatever" we do a simple diff between pre-policy and 
post-policy", which is essentially the same i replied to Reudiger as in what 
can be done with what we have. Speaking to pmacct users using BMP, the ability 
to diff pre- and post- policy was found good enough as a starting point to 
further research what happened to missing routes (through means external to 
BMP).

It would be nice to get to some sort of increased visibility and have a kind of 
‘exit code’, as Jeff Haas described it, when a route is filtered (‘f’ flag to 
be ported to Adj-RIB-In and Adj-RIB-Out?) and I reckon things may get 
complicated if trying to stretch the concept too much beyond this point. I’d be 
willing to contribute effort if it is found that there is enough interest. 

Paolo

> On 20 Mar 2018, at 14:52, Job Snijders  wrote:
> 
> Hi all,
> 
> Reudiger Volk mentioned something interesting at the microphone
> yesterday about getting more visiblity into BGP UPDATES that are
> rejected/dropped somewhere in the policy chain transitioning from
> Adj-RIB-In to Loc-RIB.
> 
> To make a crude route-map example:
> 
>ip prefix-list allow-ebgp-in permit 192.0.2.0/24
>!
>route-map ebgp-in permit 10
>match ip address prefix-list allow-ebgp-in
>!
>route-map ebgp-in deny 20
>bmp-log-code 21438
> 
> It would be great to see what UPDATEs get dropped in "route-map ebgp-in deny 
> 20".
> It would perhaps be quite useful if we can get to the point where you
> can even attach custom policy-exit codes to the "Dropped Updates" send
> in this new BMP feed. I can see how this makes operational life easier.
> 
> RFC 4271 Section 9.1: "The Decision Process selects routes for
>subsequent advertisement by applying the policies in the local
>Policy Information Base (PIB) to the routes stored in its
>Adj-RIBs-In. The output of the Decision Process is the set of
>routes that will be advertised to peers; the selected routes will be
>stored in the local speaker's Adj-RIBs-Out, according to policy."
> 
> Perhaps a series of BMP "PIB" drafts are in order?
> 
> Is this worthy of a new BMP draft? Are there volunteers?
> 
> Kind regards,
> 
> Job
> 
> ___
> GROW mailing list
> GROW@ietf.org
> https://www.ietf.org/mailman/listinfo/grow

___
GROW mailing list
GROW@ietf.org
https://www.ietf.org/mailman/listinfo/grow


Re: [GROW] Dropped Updates in BMP?

2018-03-20 Thread Jeffrey Haas
On Tue, Mar 20, 2018 at 04:44:28PM +, Tim Evens (tievens) wrote:
> I believe there is value in possibly adding a new Adj-RIB-In-PostDiff 
> table/conveyance, which would contain ONLY the NLRI's that are 
> filtered/rejected.  If we had this table, we could add flags or something 
> similar to indicate the reason the NLRI is in the diff table, such as 
> rejected due to AS Path loop.   This might get a bit complicated though. 

Even JunOS will have issues depending on types of loops.  In several
circumstances, routes are discarded rather than held as inactive.  E.g. PE
mode for VPN address families and no matching route targets.

This is a circumstance I would simply counsel that routes which are not
stored in the RIB may not be present in BMP output except perhaps in mirror
mode.  (And we don't support mirror mode.)

-- Jeff

___
GROW mailing list
GROW@ietf.org
https://www.ietf.org/mailman/listinfo/grow


Re: [GROW] Dropped Updates in BMP?

2018-03-20 Thread Tim Evens (tievens)
I +1 that this is covered by post-policy, but there are some caveats.   In 
order to determine what was "dropped/filtered/rejected/whatever" we do a simple 
diff between pre-policy and post-policy.  Caveat is that this requires the BMP 
sender implementation to support both pre & post policy at the same time. 
Currently JunOS supports this, but others do not. For BMP senders that do 
not implement both pre & post for the same neighbor/peer, we have to glean the 
post-policy by other means.  

I've run into a few support issues with folks that have been comparing 
Adj-RIB-In pre-policy to what the router shows via CLI (e.g. bgp sum counts).   
They understand the idea of post-policy but they were confused when they saw 
different counts on peers that had no filters/policy applied.   I explained to 
them that it was likely rejected prefixes, not filtered. They were still unsure 
and wanted to have a better understanding why there are so many rejected 
prefixes.   

BMP includes stat counters, such as duplicates, invalidate due to ...   I was 
able to show "quickly" via these counters that if you subtract the 
invalidated/duplicate counts from the total, you get the number of RIB entries 
shown in CLI.   In this case, the issue for them was AS Path loops.  I was able 
to provide them a query to show the pre-policy prefixes that were rejected by 
the router due to AS Path loop.  

In the above example, they didn't have post-policy turned on so we couldn't 
easily do a diff.   Had they had post-policy we could do a diff instead of 
querying for the specific entries that were rejected (known via the stat 
counters). 

Even with pre/post diffs and bmp stat counters, we still don't have a 
reject/filter reason associated per route/prefix.  Instead, we have to 
"determine" the reason based on the diff. 

I also had discussions with users regarding how they are only interested in the 
diff output of pre/post and not the post RIB itself.  

I believe there is value in possibly adding a new Adj-RIB-In-PostDiff 
table/conveyance, which would contain ONLY the NLRI's that are 
filtered/rejected.  If we had this table, we could add flags or something 
similar to indicate the reason the NLRI is in the diff table, such as rejected 
due to AS Path loop.   This might get a bit complicated though. 

Thanks,
Tim


On 3/20/18, 7:14 AM, "GROW on behalf of Jeffrey Haas"  wrote:

Job,


On Tue, Mar 20, 2018 at 01:52:23PM +, Job Snijders wrote:
> Hi all,
> 
> Reudiger Volk mentioned something interesting at the microphone
> yesterday about getting more visiblity into BGP UPDATES that are
> rejected/dropped somewhere in the policy chain transitioning from
> Adj-RIB-In to Loc-RIB.
> 
> To make a crude route-map example:
> 
> ip prefix-list allow-ebgp-in permit 192.0.2.0/24
> !
> route-map ebgp-in permit 10
> match ip address prefix-list allow-ebgp-in
> !
> route-map ebgp-in deny 20
> bmp-log-code 21438
> 
> It would be great to see what UPDATEs get dropped in "route-map ebgp-in 
deny 20".
> It would perhaps be quite useful if we can get to the point where you
> can even attach custom policy-exit codes to the "Dropped Updates" send
> in this new BMP feed. I can see how this makes operational life easier.

The "exit code" is fairly reasonable.  The "dropped updates" can be
problematic depending on what you meant.

If you meant that the routes were discarded and not kept as inactive,
implementations may need mirror mode support since the route would not be
stored in the RIB.

Routes that are simply rejected but stored in the rib (e.g. "keep all" in
JunOS) can be reported as part of post-policy monitor mode.


> 
> RFC 4271 Section 9.1: "The Decision Process selects routes for
> subsequent advertisement by applying the policies in the local
> Policy Information Base (PIB) to the routes stored in its
> Adj-RIBs-In. The output of the Decision Process is the set of
> routes that will be advertised to peers; the selected routes will be
> stored in the local speaker's Adj-RIBs-Out, according to policy."
> 
> Perhaps a series of BMP "PIB" drafts are in order?

PIB docs were mostly left out of scope except as a general abstraction to
talk about in the BGP standardization effort because no one can agree on The
One True Policy Engine.  See similar conversation occurring right now in the
rtgwg policy yang model.

> Is this worthy of a new BMP draft? Are there volunteers?

I'd suggest keeping the scope to the bmp-log-code.

-- Jeff

___
GROW mailing list
GROW@ietf.org
https://www.ietf.org/mailman/listinfo/grow


___
GROW mailing list
GROW@ietf.org
http

Re: [GROW] Dropped Updates in BMP?

2018-03-20 Thread Job Snijders
On Tue, Mar 20, 2018 at 03:18:07PM +, John G. Scudder wrote:
> Pedantry perhaps, but I think you mean "routes" and not "UPDATEs". No
> implementation should literally be dropping UPDATE messages under any
> circumstances (well, unless it closes the session then). For that
> matter, they shouldn't be dropping routes (in the sense of discarding
> them unprocessed), so I think you mean "filtered by policy" and not
> "dropped".

Dear John,

I don't consider this "pedantry" at all. I think it is very important to
get the terminology correct, this helps creating a meeting of the minds :-)

Thanks for the clarification, I indeed mean "routes".

Kind regards,

Job

___
GROW mailing list
GROW@ietf.org
https://www.ietf.org/mailman/listinfo/grow


Re: [GROW] Dropped Updates in BMP?

2018-03-20 Thread John G. Scudder
Pedantry perhaps, but I think you mean "routes" and not "UPDATEs". No 
implementation should literally be dropping UPDATE messages under any 
circumstances (well, unless it closes the session then). For that matter, they 
shouldn't be dropping routes (in the sense of discarding them unprocessed), so 
I think you mean "filtered by policy" and not "dropped".

£0.02,

--John

> On Mar 20, 2018, at 1:52 PM, Job Snijders  wrote:
> 
> Hi all,
> 
> Reudiger Volk mentioned something interesting at the microphone
> yesterday about getting more visiblity into BGP UPDATES that are
> rejected/dropped somewhere in the policy chain transitioning from
> Adj-RIB-In to Loc-RIB.
> 
> To make a crude route-map example:
> 
>ip prefix-list allow-ebgp-in permit 192.0.2.0/24
>!
>route-map ebgp-in permit 10
>match ip address prefix-list allow-ebgp-in
>!
>route-map ebgp-in deny 20
>bmp-log-code 21438
> 
> It would be great to see what UPDATEs get dropped in "route-map ebgp-in deny 
> 20".
> It would perhaps be quite useful if we can get to the point where you
> can even attach custom policy-exit codes to the "Dropped Updates" send
> in this new BMP feed. I can see how this makes operational life easier.
> 
> RFC 4271 Section 9.1: "The Decision Process selects routes for
>subsequent advertisement by applying the policies in the local
>Policy Information Base (PIB) to the routes stored in its
>Adj-RIBs-In. The output of the Decision Process is the set of
>routes that will be advertised to peers; the selected routes will be
>stored in the local speaker's Adj-RIBs-Out, according to policy."
> 
> Perhaps a series of BMP "PIB" drafts are in order?
> 
> Is this worthy of a new BMP draft? Are there volunteers?
> 
> Kind regards,
> 
> Job
> 
> ___
> GROW mailing list
> GROW@ietf.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_grow&d=DwICAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=hLt5iDJpw7ukqICc0hoT7A&m=sDs-eutrXrd8oD5o2L4-hgQq8DGzPAt5gosqFOcsk18&s=XDz9VZoMEh4fZP-HmZroeFV27-iRnvtsLb9SEhfGLfw&e=

___
GROW mailing list
GROW@ietf.org
https://www.ietf.org/mailman/listinfo/grow


Re: [GROW] Dropped Updates in BMP?

2018-03-20 Thread Jeffrey Haas
Job,


On Tue, Mar 20, 2018 at 01:52:23PM +, Job Snijders wrote:
> Hi all,
> 
> Reudiger Volk mentioned something interesting at the microphone
> yesterday about getting more visiblity into BGP UPDATES that are
> rejected/dropped somewhere in the policy chain transitioning from
> Adj-RIB-In to Loc-RIB.
> 
> To make a crude route-map example:
> 
> ip prefix-list allow-ebgp-in permit 192.0.2.0/24
> !
> route-map ebgp-in permit 10
> match ip address prefix-list allow-ebgp-in
> !
> route-map ebgp-in deny 20
> bmp-log-code 21438
> 
> It would be great to see what UPDATEs get dropped in "route-map ebgp-in deny 
> 20".
> It would perhaps be quite useful if we can get to the point where you
> can even attach custom policy-exit codes to the "Dropped Updates" send
> in this new BMP feed. I can see how this makes operational life easier.

The "exit code" is fairly reasonable.  The "dropped updates" can be
problematic depending on what you meant.

If you meant that the routes were discarded and not kept as inactive,
implementations may need mirror mode support since the route would not be
stored in the RIB.

Routes that are simply rejected but stored in the rib (e.g. "keep all" in
JunOS) can be reported as part of post-policy monitor mode.


> 
> RFC 4271 Section 9.1: "The Decision Process selects routes for
> subsequent advertisement by applying the policies in the local
> Policy Information Base (PIB) to the routes stored in its
> Adj-RIBs-In. The output of the Decision Process is the set of
> routes that will be advertised to peers; the selected routes will be
> stored in the local speaker's Adj-RIBs-Out, according to policy."
> 
> Perhaps a series of BMP "PIB" drafts are in order?

PIB docs were mostly left out of scope except as a general abstraction to
talk about in the BGP standardization effort because no one can agree on The
One True Policy Engine.  See similar conversation occurring right now in the
rtgwg policy yang model.

> Is this worthy of a new BMP draft? Are there volunteers?

I'd suggest keeping the scope to the bmp-log-code.

-- Jeff

___
GROW mailing list
GROW@ietf.org
https://www.ietf.org/mailman/listinfo/grow


[GROW] Dropped Updates in BMP?

2018-03-20 Thread Job Snijders
Hi all,

Reudiger Volk mentioned something interesting at the microphone
yesterday about getting more visiblity into BGP UPDATES that are
rejected/dropped somewhere in the policy chain transitioning from
Adj-RIB-In to Loc-RIB.

To make a crude route-map example:

ip prefix-list allow-ebgp-in permit 192.0.2.0/24
!
route-map ebgp-in permit 10
match ip address prefix-list allow-ebgp-in
!
route-map ebgp-in deny 20
bmp-log-code 21438

It would be great to see what UPDATEs get dropped in "route-map ebgp-in deny 
20".
It would perhaps be quite useful if we can get to the point where you
can even attach custom policy-exit codes to the "Dropped Updates" send
in this new BMP feed. I can see how this makes operational life easier.

RFC 4271 Section 9.1: "The Decision Process selects routes for
subsequent advertisement by applying the policies in the local
Policy Information Base (PIB) to the routes stored in its
Adj-RIBs-In. The output of the Decision Process is the set of
routes that will be advertised to peers; the selected routes will be
stored in the local speaker's Adj-RIBs-Out, according to policy."

Perhaps a series of BMP "PIB" drafts are in order?

Is this worthy of a new BMP draft? Are there volunteers?

Kind regards,

Job

___
GROW mailing list
GROW@ietf.org
https://www.ietf.org/mailman/listinfo/grow