Hi Claudio,
Thanks, this has been helpfull. However i really need that bit of control
from the peer's configuration end.
You wouldn't happen to know how i can achieve the following?:
A peer sends the following communities to the RS: 1234:1234 1234:7547
1234:8392
I want the route-server to send the routes received in the communities (yes
they all contain the same routes) to every peer on the RS, except for those
with AS 7547 and 8392.
Was also wondering why you have that prepend rule in #5 while transparent-as
is configured?
Regards,
Hans
On Wed, Oct 29, 2008 at 12:08 PM, Claudio Jeker [EMAIL PROTECTED]wrote:
On Tue, Oct 28, 2008 at 04:24:02PM +0100, Hans Vosbergen wrote:
Hi Misc,
I am trying to make OpenBGPD work as a route-server for a little hobby
project I am working on.
As it's very hard to find configuration examples for this usage on the
web i
have to turn here.
What I am trying to achieve:
- A route-server acting as a transparent route distributor.
- Control by neighbours who their prefixes are announced to, based on
communities.
Making OpenBGP work as a transparent AS was the easy part. However I'm
stuck
in the communities control part.
How it is supposed to work, my route-server has AS1234 in my test
environment.
If a neighbour announces:
1. { community 1234:1234 } -- Their prefixes will be announced to EVERY
other neighbour.
2. { community 1234:as} -- Their prefixes will ONLY be announced to
AS,
ie: 1234:8943 will only send the prefixes to AS8943.
3. { community 1234:1234 1234:AS } -- Their prefixes will be announced
to
every other neighbour EXCEPT AS.
I have been able to achieve the first 2 ways the prefix control should
work,
but I can't manage to get the 3rd to work. Before moving to OpenBGPD I
managed to produce the way I want it to work in Quagga but I simply do
not
want to use that.
Would anyone have an idea on how to make OpenBGPD not announce prefixes
to
specific neighbours if they appear in the 1234:1234 1234:AS list?
The route server I set up uses more or less this config:
# global configuration
AS $ASNUM
router-id $IP
transparent-as yes
network $LAN
group RS {
announce all
max-prefix 5000 restart 15
set nexthop no-modify
# softreconfig in no
neighbor $LAN {
descr RS peer
passive
}
}
# filter out prefixes longer than 24 or shorter than 8 bits
deny from any prefixlen 8 24
# do not accept a default route, multicast and experimental networks
deny from any prefix 0.0.0.0/0
deny from any prefix 10.0.0.0/8 prefixlen = 8
deny from any prefix 127.0.0.0/8 prefixlen = 8
deny from any prefix 169.254.0.0/16 prefixlen = 16
deny from any prefix 172.16.0.0/12 prefixlen = 12
deny from any prefix 192.0.2.0/24 prefixlen = 24
deny from any prefix 192.168.0.0/16 prefixlen = 16
deny from any prefix 224.0.0.0/4 prefixlen = 4
deny from any prefix 224.0.0.0/4 prefixlen = 4
deny from any prefix 240.0.0.0/4 prefixlen = 4
# we set's these communities to identify from where
# it learned a route:
match from any set community $ASNUM:neighbor-as
# 1. Prepend RS $ASNUM to *all* RS-Peers
match from group RS community $ASNUM:65500 set prepend-self 1
# 2. Prepend RS $ASNUM to *selected* RS-Peer N-times
# (N can be 1 to 3)
match to group RS community 65501:neighbor-as set prepend-self 1
match to group RS community 65502:neighbor-as set prepend-self 2
match to group RS community 65503:neighbor-as set prepend-self 3
# 3. Do *not* announce to RS-Peers with AS
deny to group RS community $ASNUM:neighbor-as
# 4. Do *not* announce to *ANY* RS-Peers
deny to group RS community $ASNUM:65535
# 5. Prepend own announcement by one
match to group RS prefix $LAN set prepend-self 1
Works like a champ without any additional per peer config :)
--
:wq Claudio