[Euro-ix-rs-vwg] New release 1.2.0
Mikhail A. Grishin
magr at ripn.net
Thu Jan 28 10:54:03 CET 2010
Ondrej Zajicek пишет:
> On Wed, Jan 27, 2010 at 04:49:45PM +0300, Mikhail A. Grishin wrote:
>>> Handling of no-export community is hardcoded in BIRD, so such routes are not
>>> exported to the external neighbors, as it is expected. I can send you a patch
>>> that causes BIRD to ignore well-known communities (and leaves such behavior
>>> to configured filters) and we will make this behavior configurable in the
>>> next version.
>>>
>> Yes, it would be nice, please send me a patch.
>> We expected that we could choose, which well-known communities must go
>> through RS, which is not.
>> Right now we only interested in transparency for "no-export".
>
> Here is the patch that removes hardcoded handling of well-known
> communities. If you want the other well-known communities to
> work, you have to add appropriate code to export filters.
>
>
Hi,
First of all, thank you for patch and for fast respond!
After applying both patches (date patch and well-known communities) on
production server, we got some strange errors:
Jan 28 12:02:04 msk-rsm2 bird: R34485x1: Error: Finite state machine error
Jan 28 12:02:17 msk-rsm2 bird: R13174x1: Error: Finite state machine error
Jan 28 12:02:28 msk-rsm2 bird: R3218x1: Error: Finite state machine error
Jan 28 12:02:30 msk-rsm2 bird: R41842x1: Error: Finite state machine error
Jan 28 12:03:09 msk-rsm2 bird: R34485x1: Error: Finite state machine error
Jan 28 12:03:26 msk-rsm2 bird: R41842x1: Error: Finite state machine error
Jan 28 12:03:29 msk-rsm2 bird: R13174x1: Error: Finite state machine error
Jan 28 12:03:37 msk-rsm2 bird: R3218x1: Error: Finite state machine error
What does it mean?
These peers worked fine before applying the patches.
Debug:
===================
Jan 28 12:40:17 msk-rsm2 bird: R41842x1: Incoming connection from
193.232.246.200 (port 20880) rejected
Jan 28 12:40:19 msk-rsm2 bird: R41842x1: Started
Jan 28 12:40:19 msk-rsm2 bird: R41842x1: Connect delayed by 60 seconds
Jan 28 12:40:36 msk-rsm2 bird: R41842x1: Incoming connection from
193.232.246.200 (port 33675) accepted
Jan 28 12:40:36 msk-rsm2 bird: R41842x1: Sending
OPEN(ver=4,as=8631,hold=180,id=c1e8f664)
Jan 28 12:40:36 msk-rsm2 bird: R41842x1: Got
OPEN(as=41842,hold=180,id=4df660a0)
Jan 28 12:40:36 msk-rsm2 bird: R41842x1: Sending KEEPALIVE
Jan 28 12:40:36 msk-rsm2 bird: R41842x1: Got UPDATE
Jan 28 12:40:36 msk-rsm2 bird: R41842x1: Error: Finite state machine error
Jan 28 12:40:36 msk-rsm2 bird: R41842x1: Sending NOTIFICATION(code=5.0)
Jan 28 12:40:36 msk-rsm2 bird: R41842x1: Down
Jan 28 12:40:36 msk-rsm2 bird: R41842x1: Starting
Jan 28 12:40:36 msk-rsm2 bird: R41842x1: Startup delayed by 300 seconds
=====================
Config for one of that peers:
#---------------------------------------------------------
# Client 'media', AS 41842
table T41842;
filter bgp_in_AS41842
prefix set allnet;
# AS_PATH filter is temporary disabled
#int set allas;
{
if ! (avoid_martians()) then reject;
if (bgp_path.first != 41842 ) then reject;
# AS_PATH filter is temporary disabled
# allas = [ 47445, 45018, 44522, 45029, 44597, 42728, 42139, 42385 ];
# if ! (bgp_path.last ~ allas) then reject;
allnet = [ 62.105.32.0/19, 62.105.48.0/20, 62.109.0.0/20,
62.109.0.0/21, 62.109.8.0/21, 62.109.16.0/21, 62.109.24.0/22,
62.109.28.0/22, 77.236.224.0/19, 77.236.224.
0/20, 77.236.240.0/21, 77.236.248.0/21, 77.246.96.0/21, 77.246.104.0/21,
77.246.144.0/21, 77.246.148.0/22, 78.24.216.0/21, 79.98.136.0/21,
79.174.32.0/19, 79.174.32.0
/20, 79.174.48.0/20, 80.244.224.0/20, 80.253.30.0/24, 80.253.31.0/24,
82.114.96.0/19, 82.114.96.0/20, 82.114.99.0/24, 82.114.112.0/21,
82.114.120.0/21, 82.146.32.0/21
, 82.146.37.0/24, 82.146.40.0/21, 82.146.48.0/21, 82.146.56.0/21,
85.249.0.0/21, 87.255.0.0/23, 87.255.2.0/23, 87.255.2.0/24,
87.255.3.0/24, 87.255.4.0/22, 87.255.8.0
/22, 87.255.8.0/24, 87.255.9.0/24, 87.255.9.252/30, 87.255.10.0/23,
87.255.12.0/22, 87.255.16.0/21, 87.255.24.0/21, 88.210.52.0/22,
89.255.64.0/21, 89.255.68.0/22, 89
.255.72.0/21, 89.255.80.0/22, 89.255.94.0/23, 89.255.95.0/24,
91.192.244.0/22, 91.200.28.0/22, 91.200.28.0/23, 91.200.30.0/23,
91.204.108.0/22, 91.206.14.0/23, 91.210
.84.0/22, 91.210.228.0/22, 91.210.228.0/23, 91.210.230.0/24,
91.210.231.0/24, 92.63.96.0/21, 92.63.104.0/22, 92.63.108.0/22,
92.63.108.0/24, 93.92.32.0/21, 93.186.48.
0/20, 94.28.112.0/22, 94.28.116.0/22, 94.158.160.0/20, 94.158.160.0/21,
94.158.168.0/21, 94.159.0.0/17, 95.128.176.0/22, 95.128.178.0/23,
188.120.32.0/20, 188.120.32.
0/21, 188.120.40.0/22, 188.120.44.0/22, 188.120.224.0/20,
188.120.240.0/21, 188.120.248.0/21, 188.133.136.0/21, 188.133.152.0/21,
193.169.32.0/23, 193.169.96.0/23, 19
3.169.174.0/23, 193.192.128.0/20, 193.192.144.0/20, 193.192.144.0/24,
193.192.144.0/25, 193.192.145.0/24, 194.9.224.0/20, 194.54.176.0/22,
194.107.23.0/24, 194.110.25
3.0/24, 195.62.62.0/23, 195.62.62.0/24, 195.62.63.0/24, 195.88.92.0/23,
195.88.170.0/23, 195.88.170.0/24, 195.88.171.0/24, 195.216.241.0/24,
195.218.134.0/24, 212.16.
0.0/19, 212.16.0.0/20, 212.16.16.0/20, 213.5.184.0/21, 213.33.198.0/24,
213.79.0.0/19, 213.79.0.0/20, 213.79.16.0/23, 213.79.18.0/24,
213.79.19.0/24, 213.79.20.0/22,
213.79.24.0/21, 213.108.128.0/21, 213.221.4.128/26, 217.78.176.0/20,
217.117.112.0/20, 217.117.127.0/24 ];
if ! (net ~ allnet) then reject;
bgp_next_hop = 193.232.246.200;
accept;
}
protocol pipe P41842 {
table master;
mode transparent;
peer table T41842;
import filter bgp_in_AS41842;
export where bgp_out(41842);
}
protocol bgp R41842x1 {
local as myas;
neighbor 193.232.246.200 as 41842;
hold time 180;
startup hold time 180;
# connect retry time 120;
# path metric 1; # Prefer routes with shorter paths (like
Cisco does)
# default bgp_med 0; # MED value we use for comparison when
none is defined
# default bgp_local_pref 0; # The same for local preference
import all;
export all;
table T41842;
rs client;
start delay time 60;
}
#---------------------------------------------------------
...
# BGP output filter (based on communities)
function bgp_out(int peeras)
{
if ! (source = RTS_BGP ) then return false;
if (0,peeras) ~ bgp_community then return false;
if (myas,peeras) ~ bgp_community then return true;
if (0, myas) ~ bgp_community then return false;
return true;
}
#---------------------------------------------------------
--
Mikhail A. Grishin E-mail: magr at ripn.net
More information about the Bird-users
mailing list