Problem to receive an announcement in BIRD.
Dear, I have a topology with many ASes using BIRD except one. This AS(called SDNRTR) is using a SDN technology and it is programmed to announce some prefixes. When it announces, some of it neighbors(BIRD ASes) are rejecting the announcement. Follow the line in BIRD logs. 2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > removed [replaced] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR: Sending UPDATE 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE 2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > removed [sole] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR: Sending UPDATE 2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> R8 < rejected by protocol 10.3.1.0/24 unicast It is showing "rejected by protocol". Do you know what it means? How could i solve this trouble?
On September 1, 2018 11:23:40 PM GMT+02:00, Marcio <marciovinicius.santos@uniriotec.br> wrote:
Dear,
I have a topology with many ASes using BIRD except one. This AS(called SDNRTR) is using a SDN technology and it is programmed to announce some prefixes. When it announces, some of it neighbors(BIRD ASes) are rejecting the announcement. Follow the line in BIRD logs.
2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > removed [replaced] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR: Sending UPDATE 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE 2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > removed [sole] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR: Sending UPDATE 2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> R8 < rejected by protocol 10.3.1.0/24 unicast
It is showing "rejected by protocol". Do you know what it means? How could i solve this trouble?
R8 added best route, it was exported to others and BIRD also tries to export the best route to the source protocol itself (R8 for now). It is normal behavior and I don't see any problem there. Maria
Do you know why SDNRTR route was added as the best and, after that, it was rejected? Em dom, 2 de set de 2018 02:08, Maria Jan Matějka <jan.matejka@nic.cz> escreveu:
On September 1, 2018 11:23:40 PM GMT+02:00, Marcio < marciovinicius.santos@uniriotec.br> wrote:
Dear,
I have a topology with many ASes using BIRD except one. This AS(called SDNRTR) is using a SDN technology and it is programmed to announce some prefixes. When it announces, some of it neighbors(BIRD ASes) are rejecting the announcement. Follow the line in BIRD logs.
2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > removed [replaced] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR: Sending UPDATE 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE 2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > removed [sole] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR: Sending UPDATE 2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> R8 < rejected by protocol 10.3.1.0/24 unicast
It is showing "rejected by protocol". Do you know what it means? How could i solve this trouble?
R8 added best route, it was exported to others and BIRD also tries to export the best route to the source protocol itself (R8 for now). It is normal behavior and I don't see any problem there.
Maria
Now there is one route originated from R.
2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE
Here S added better route and it was propagated to kernel and R. S doesn't send it back.
2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > removed [replaced] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR: Sending UPDATE 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE
Here S sent another route (replacing its previous one) which came out worse even than the previous from R. So the R's route is announced to S and withdraw to R.
2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > removed [sole] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR: Sending UPDATE
R8 withdraws its route.
2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> R8 < rejected by protocol 10.3.1.0/24
R8 sends a route and BIRD sends update to S. Everything in the log is OK, just the peers (R and S) are doing quite strange things. Don't you have loops in your routing? Maria
Yes, i have. This is a problem? BGP don't avoid loops automatically finding it own ASN in AS PATH? Em dom, 2 de set de 2018 03:27, Maria Jan Matějka <jan.matejka@nic.cz> escreveu:
Now there is one route originated from R.
2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE
Here S added better route and it was propagated to kernel and R. S doesn't send it back.
2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > removed [replaced] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR: Sending UPDATE 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE
Here S sent another route (replacing its previous one) which came out worse even than the previous from R. So the R's route is announced to S and withdraw to R.
2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > removed [sole] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR: Sending UPDATE
R8 withdraws its route.
2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> R8 < rejected by protocol 10.3.1.0/24
R8 sends a route and BIRD sends update to S.
Everything in the log is OK, just the peers (R and S) are doing quite strange things. Don't you have loops in your routing?
Maria
By default yes. I don't know why your peers do announce the actual routes and what is written in your config and what you want. What you provided, seems legit by default. Maria On September 2, 2018 8:59:17 AM GMT+02:00, Marcio <marciovinicius.santos@uniriotec.br> wrote:
Yes, i have. This is a problem? BGP don't avoid loops automatically finding it own ASN in AS PATH?
Em dom, 2 de set de 2018 03:27, Maria Jan Matějka <jan.matejka@nic.cz> escreveu:
Now there is one route originated from R.
2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > added [best]
10.3.1.0/24
unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE
Here S added better route and it was propagated to kernel and R. S doesn't send it back.
2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > removed [replaced] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR: Sending UPDATE 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE
Here S sent another route (replacing its previous one) which came out worse even than the previous from R. So the R's route is announced to S and withdraw to R.
2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > removed [sole] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR: Sending UPDATE
R8 withdraws its route.
2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> R8 < rejected by protocol 10.3.1.0/24
R8 sends a route and BIRD sends update to S.
Everything in the log is OK, just the peers (R and S) are doing quite strange things. Don't you have loops in your routing?
Maria
-- Sent from my Android device with K-9 Mail. Please excuse my brevity.
I will send you the detailed topology and explain what is the expected behavior, that is not occuring. Em dom, 2 de set de 2018 04:53, Maria Jan Matějka <jan.matejka@nic.cz> escreveu:
By default yes. I don't know why your peers do announce the actual routes and what is written in your config and what you want. What you provided, seems legit by default.
Maria
On September 2, 2018 8:59:17 AM GMT+02:00, Marcio < marciovinicius.santos@uniriotec.br> wrote:
Yes, i have. This is a problem? BGP don't avoid loops automatically finding it own ASN in AS PATH?
Em dom, 2 de set de 2018 03:27, Maria Jan Matějka <jan.matejka@nic.cz> escreveu:
Now there is one route originated from R.
2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE
Here S added better route and it was propagated to kernel and R. S doesn't send it back.
2018-09-01 21:21:08.000 <TRACE> SDNRTR: Got UPDATE 2018-09-01 21:21:08.000 <TRACE> SDNRTR > removed [replaced] 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> kernel1 < replaced 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < rejected by protocol 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> R8 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.000 <TRACE> SDNRTR: Sending UPDATE 2018-09-01 21:21:08.000 <TRACE> R8: Sending UPDATE
Here S sent another route (replacing its previous one) which came out worse even than the previous from R. So the R's route is announced to S and withdraw to R.
2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > removed [sole] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < removed 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR: Sending UPDATE
R8 withdraws its route.
2018-09-01 21:21:08.001 <TRACE> R8: Got UPDATE 2018-09-01 21:21:08.001 <TRACE> R8 > added [best] 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> kernel1 < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> SDNRTR < added 10.3.1.0/24 unicast 2018-09-01 21:21:08.001 <TRACE> R8 < rejected by protocol 10.3.1.0/24
R8 sends a route and BIRD sends update to S.
Everything in the log is OK, just the peers (R and S) are doing quite strange things. Don't you have loops in your routing?
Maria
-- Sent from my Android device with K-9 Mail. Please excuse my brevity.
participants (2)
-
Marcio -
Maria Jan Matějka