db-wg
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1999 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1998 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1997 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1996 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1995 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1994 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1993 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1992 -----
- December
- November
- October
February 1993
- 6 participants
- 6 discussions
> Piet.Beertema(a)mcsun.EU.net writes:
>
> I don't like the idea of *by default* getting all or even
> upto 20 (or some other limit) changed objects reported.
> However, in some cases I would like to have this feature.
> How about making it depend on the presence of the "ACK"
> keyword in the Subject: line?
OK, this sounds reasonable. I have implemented this using the
string LONGACK rather than ACK which might legitimately be in the
subject line.
If you send us an update with the string LONGACK (in capitals)
somewhere in the Subject:-line, the acknowledgements will contain
a line saying
Update OK: <object-name>
for each update which generated no messages. The updates generating
messages will return the full object and messages as before. Please
let us know your experiences and suggestions.
Daniel
1
0
Effective immediately the acknowledgements we send out for database
updates will mention the "Subject" of the update mail message being
acknowledged in addition to the "Message-ID". This should allow easier
matching of acknowledgements to update requests. Please let us know if
you see any wrong behaviour of this new feature.
We also have had requests to mention the names of all objects updated
e.g. person, network, domain etc.. We have refrained from doing this
as it would produce *very* long acknowledgements in some cases. We were
thinking of providing it for updates containing less objects than a
threshold of -say- 20. Anyone who wants this in addition to the
Subject please speak up with an explanation why to the list. Then we
can make a decision whether it is worthwhile.
Daniel
1
0
I think Blasco ghas a point there and will implement this
unless someone cries "stop".
Daniel
------- Forwarded Message
Date: Fri, 19 Feb 93 18:49:25 MET
From: bonito(a)nis.garr.it (Antonio_Blasco Bonito)
To: ripe-dbm(a)ripe.net
cc: staff(a)nis.garr.it
Subject: zone-c tag
Hello NCC people,
I think the update procedure is not right giving the following error:
> domain: fis.uniurb.it
> descr: Universita' degli Studi di Urbino
> descr: Istituto di Fisica
> remarks: It is a public institution devoted to researches in some fields
> remarks: of Physics and Biomedical Engineering and teaching
> admin-c: Filippo Martelli
> tech-c: Flavio Vetrano
> tech-c: Pietro Dominici
> remarks: MX-only
> source: RIPE
> changed: domain(a)nis.garr.it 930217
> WARNING: mandatory attribute "zone-c" missing in object
A MX-only domain has no nameserver and therefore cannot have a zone-c
contact information.
I think that zone-c should not be considered a mandatory attribute.
All my best.
- ---------- ----------
Antonio_Blasco Bonito E-Mail: bonito(a)nis.garr.it
GARR - Network Information Service c=it;a=garr;p=garr;o=nis;s=bonito
c/o CNUCE - Istituto del CNR Tel: +39 (50) 593246
Via S. Maria, 36 Telex: 500371 CNUCE I
56126 PISA Italy Fax: +39 (50) 904052
- ---------- ----------
------- End of Forwarded Message
4
4
rv(a)deins.informatik.uni-dortmund.de writes:
* Hello,
*
* recently I mentioned to Daniel on the phone, that it looks like some
* "connect:" fields are filtered (without warning) in the RIPE data base.
* I just came across an example (I will keep looking), the record for
* network 139.1:
I'm very sorry to say that this is all my fault, and it was even worse than
some "connect:" fields dissapearing ...
In fact what happened is that all LOCAL connect fields dissapeared from the
database because of an(other) error in the procedure that adds the routing
tags to the database.
I have done the following to correct this:
- modified the script that adds the routing tags to leave the connect fields
in,
- rebuild the database, and added a "connect: LOCAL" field to any network
that had no connect tag in the current database. I have checked this
extensively and are sure that ONLY "connect: LOCAL" fields dissapeared. All
other connect fields were not removed, and still have their old value.
My apologies for this error. If you do find any inconsistencies, please
inform us, and we will process with the highest priority.
-Marten
1
0
Please find enclosed a small propsed additional tag that I would like
to get put into the next and perhaps final round of the documet due out
early next. Also note that so far I have had little feedback on the paper
as it stands. I have already made some changes in terms of cosmetics and
some of the remaining holes but would still be interested in any comments.
--Tony.
Addition of a "default: " tag to the Proposed "aut-sys" database object.
------------------------------------------------------------------------
Currently, in the paper the method for detailing default routing is by
use of the KEYWORD "DEFAULT" as I call it in the routing policy expression.
However, upon reflection we feel it may be useful to to express this is
terms of a tag itself. Basically, this details which AS neighbor you choose
to select default routing to.
So the format of the default tag would be.
default: <as-num> <preference>, multiple lines, optional
So for example if you are AS1 with two connections to the outside world,
AS 2 and AS 4.
And generally you take some transit networks in on both paths but select
default for one (say AS 4) and if this goes away use AS 2 as backup this you
would express it something like this.
AS 3
|
| ---------------
AS 1------------AS 2-------------( Global )
| ( )
| ( Internet )
+------------AS 4-------------(_______________)
|
|
|
AS 5
The routing policy description would be as follows:
aut-sys: AS1
as-in: AS2 100 AS2 AS3
as-out: AS2 AS1
as-in: AS4 100 AS4 AS5
as-out: AS4 AS1
default: AS4 100
default: AS2 150
<administrative stuff >
If equal preferences are given this is also fine but of course the matter is
purely local as to how this may be implemented. We also make distinction as to
how default is reached (i.e. by a given network or use of 0.0.0.0, etc) as
again this is purely a local bi-lateral matter and very much implementation
dependent.
1
1
Please find below the latest version of the routing paper. There are still
some sections to be done. These are marked between chevrons ">>>"'s although
there is not too much to be added..
We intend to release an updated and possibly the last draft early next week
so please can I have all comments a.s.a.p.
As an update there is already a proto-protoype parser that can parse the
new proposed database formats and generate both gated and cisco access-lists
(using NLC).
We (Marten and I) intend to start a very small local pilot using these
objects next week.
--Tony.
-------------------------------------------
Representation of IP Routing Policies
in the RIPE Database
Tony Bates
Jean-Michel Jouanigot
Daniel Karrenberg
Peter Lothberg
Marten Terpstra
(Version 0.2)
1. Background
RIPE is a collaborative body of European Regional IP network
operators and service providers. European IP networking
through its natural evolvement has grown into an extremely
complex infrastructure and topology which in essence has
even today no real single `co-ordinated core'. Conse-
quently, there are many differing routing policies used
within Europe. The RIPE Routing Working Group was formed to
tackle many of the issues involved in large scale routing
collaboration as is needed within Europe. To achieve the
needed global connectivity the network operators and service
providers need a way to easily and clearly express the vari-
ous routing policies and provide a method for problem diag-
nosis and trouble shooting when problems occur.
A RIPE recommendation paper known as `ripe-60', titled "Pol-
icy based routing within RIPE" was the outcome of a large
amount of effort and discussion within the RIPE Routing
Working Group. This tackled many of the issues relevant to
the representation of IP routing polices and policy based
routing within the RIPE community. It cites many of the per-
tinent documents addressing the issues of policy based rout-
ing and also proposes a method for representing routing pol-
icy within the RIPE database. At the time of writing of
`ripe-60' it was very unclear as to what direction the Euro-
pean IP infrastructure and also routing implementations
would take and was focused very much in terms of generality.
It has become apparent that some of the
problems with `ripe-60' is its generalised approach and
perhaps somewhat abstract notation that in practice is not
February 3, 1993
- 2 -
easy for network operators to understand. Consequently, the
authors of this document feel some clarification is needed
and also some enhancement in terms of the current update in
routing technology. A conscious effort has also been made to
be somewhat less general.
2. Requirements
This section describes the requirements of a scheme for
representing routing information in the RIPE database.
Clarity
The representation must be easily explainable to network
operators. If it is not, then it will not be used or worse
will be used incorrectly. This also includes that it must
either map well to the way network operators think about
routing policy or provide them with a convenient way to
start thinking about it.
Translatability
The representation must be translatable to and from router
configuration files. The resulting configurations must be
efficient in the sense that they are implementable with
current router resources even in complex environments. If
this requirement is not met there will be too many incon-
sistencies between the published and the implemented poli-
cies which will in turn cause hard to detect routing prob-
lems.
Checkability
It must be possible to check the consistency of the pub-
lished policies. Thus some level of redundancy is welcome if
it adds value by making it possible to reveal inconsisten-
cies.
Applicability
It must be possible to easily build diagnostic tools which
help network operators to diagnose problems by making use of
the policy information. These tools should answer questions
like:
"Which paths between network A and B are allowed by pub-
lished policies ?"
February 3, 1993
- 3 -
"Which path will traffic between networks, network A and
network B take when a certain routing path cannot be used
for transit ?"
"Does network A somehow have connectivity to all other net-
work within RIPE ?"
Generality
The "Clarity" and "Translatability" requirements may push
the design into the direction of large aggregations of net-
works by routing and administrative domains. While this
serves those requirements well the representation must make
it possible to specify particular policies down to network
granularity. Especially it should be possible to specify
forwarding restrictions. <Hmm.... needs to be explained
better I fear>
3. General Representation of Policy Information
Networks, Network Operators and Autonomous Systems
Throughout this document an effort is made to be consistent
with terms so as not to confuse the reader.
When we talk about networks we mean physical networks which
have a unique IP network number: Layer 3 entities. We do not
mean organisations.
We call the organisations operating networks "network opera-
tors". For the sake of the examples we divide network
operators into two categories: "service providers" and "cus-
tomers". A "service provider" is a network operator who
operates a network to provide Internet services to different
organisations, its "customers". The distinction between
service providers and customers is not clear cut. A national
research networking organisation frequently acts as a ser-
vice provider to universities and other academic organisa-
tions, but in most cases it buys international connectivity
from another service provider. A University networking
department is a customer of the research networking organi-
sation but in turn may regard university departments as its
customers.
An Autonomous System (AS) is a group of IP networks having a
single clearly defined routing policy which is run by one or
more network operators. Inside ASes IP packets are routed
using one or more Interior Routing Protocols (IGP). In most
cases interior routing decisions are based on metrics
derived from technical parameters like topology, link speeds
and load (1).
February 3, 1993
- 4 -
ASes exchange routing information with other ASes using
Exterior Routing Protocols (EGP). Exterior routing decisions
are frequently based on policy based rules rather than
purely on technical parameters. Until now there are no
tools to configure complex policies and to communicate those
policies between ASes while still ensuring proper operation
of the Internet as a whole. Some EGPs like BGP-3/4 provide
tools to filter routing information according to policy
rules and more. None of them provides a mechanism to publish
or communicate the policies themselves. Yet this is critical
for operational coordination and fault isolation among net-
work operators and thus for the operation of the global
Internet as a whole.
This paper proposes to use the RIPE database as a repository
for publishing the policies of European ASes.
There are two types of policy information which need to be
represented in the database. These are "routing policies"
and "access policies".
Routing Policies
The exchange of routing information between ASes is subject
to routing policies. Consider the case of two ASes, X and Y
exchanging routing information:
NET1 ...... ASX <---> ASY ....... NET2
ASX knows how to reach a network called "NET1". It does not
matter whether NET1 is belonging ASX or some other AS which
exchanges routing information with ASX either directly or
indirectly; we just assume that ASX knows how to direct
packets towards NET1. Likewise ASY knows how to reach NET2.
In order for traffic from NET2 to NET1 to flow between ASX
and ASY connection, ASX has to announce NET1 to ASY. This
states that ASX is willing to accept traffic directed to
NET1 from ASY. Policy thus comes into play first in the
decision of ASX to announce NET1 to ASY.
_________________________
(1) The entity we refer to as an AS is frequently and
more generally called a routing domain with the AS just
being an implementation vehicle. We have decided to use
the term AS exclusively because it relates more direct-
ly with the database objects and routing tools. By us-
ing only one term we hope to reduce the number of con-
cepts and to avoid confusion. The academically inclined
reader may forgive us.
February 3, 1993
- 5 -
In addition ASY has to accept this routing information and
use it. It is ASY's privilege to either use or disregard
the information that ASX is willing to accept traffic for
NET1. ASY might decide not to use this information if it
does not want to send traffic to NET1 at all or if it con-
siders another way more appropriate to reach NET1.
So in order for traffic in the direction of NET1 to flow
between ASX and ASY, ASX must announce it to ASY and ASY
must accept it from ASX:
resulting packet flow towards NET1
<<===================================
|
|
announce NET1 | accept NET1
--------------> + ------------->
|
AS X | AS Y
|
<------------- + <--------------
accept NET2 | announce NET2
|
|
resulting packet flow towards NET2
===================================>>
Ideally, and seldom practically, the announcement and accep-
tance policies of ASX and ASY are identical.
In order for traffic towards NET2 to flow announcement and
acceptance of NET2 must be in place the other way round. For
almost all applications connectivity in just one direction
is not useful at all.
It is important to realise that with current destination
based forwarding technology routing policies must eventually
be expressed in these terms. It is relatively easy to formu-
late reasonable policies in very general terms which CANNOT
be expressed in terms of announcing and accepting networks.
With current technology such policies are almost always
impossible to implement.
Usually separate policies are not configured for each net-
work separately but for groups of networks. In practise
these groups are almost always defined by the networks form-
ing one or more ASes.
By expressing routing policy in this way it should be noted
that this information is only of use when you have full
information for all networks within the global Internet.
Equally, the current detail is only limited to the RIPE
February 3, 1993
- 6 -
database and for an AS exchanging routing reachability
information for an AS whose information is not in the data-
base we obviously cannot give a full representation of the
ASes routing policy.
Access Policies
Access policies contrary to routing policies are not neces-
sarily defined in terms of ASes. The very simplest type of
access policy is to block packets from a specific network S
from being forwarded to another network D. A common example
is when some unappropriate use of resources on network D has
been made from network S and the problem has not been
resolved yet. Other examples of access policies might be
resources only accessible to networks belonging to a partic-
ular disciplinary group or community of interest.. While
most of these policies are better implemented at the host or
application level, network level access policies do exist
and are a source of connectivity problems which are some-
times hard to diagnose. Therefore they should also be docu-
mented in the database according to similar requirements as
outlined above..
4. Proposed Database Objects
Autonomous System (AS)
An Autonomous System (AS) is a group of IP networks run by
one or more network operators which has a single and clearly
defined routing policy.
In routing terms an AS will normally use an interior gateway
protocol and some sort of common agreed metrics when
exchanging network information within its own AS.
An AS has a unique number associated with it which is used
in both exchange of exterior routing information (i.e. net-
work reachability information between ASes) and as an iden-
tifier of the AS itself. Exterior routing protocols such as
BGP are used to exchange routing information between ASes.
The term AS is often confused or even misused as a con-
venient way of grouping together a set of networks which
belong under the same administrative umbrella even if within
that group of networks there are various different routing
policies.
The creation of an AS should be done in a conscious and well
February 3, 1993
- 7 -
co-ordinated manner to avoid creating ASs for the sake of
it, perhaps resulting in the worst case scenario of one AS
per IP network number. It should be noted that there is a
limited number of AS numbers available. This may mean that
by applying the general rules for the creation and alloca-
tion of as an AS below some re-engineering may be needed.
However, this may be the only way to actually implement the
desired routing policy anyway. The creation and allocation
of an AS should be done with the following recommendations
in mind:
o Creation of an AS is only required when exchanging
routing information with other ASes. Some router imple-
mentations make use of a AS number as a form of tagging
to identify the routing process. However, it should be
noted that this key does not need to be unique unless
exchanging routing information with other ASes.
o An IP network number can and must only belong to one
AS. This is a direct consequence of the fact that at
each point in the Internet there can be exactly one
routing policy for traffic destined to each network. In
the case of the IP network which is used in neighbor
peering between two ASs, say at the border between two
ASs, a conscious decision must be made as to which AS
this IP network number actually resides in.
o For a simple case of customer networks connected to a
single service provider, the IP network should be under
the AS of the service provider. In terms of routing
policy the IP network has exactly the same policy as
the service provider and there is no need to make any
distinction in routing information. This idea may at
first seem slightly alien to many but it highlights a
clear to distinction in the use of the AS number as a
representation of routing policy as opposed to some
form of administrative use.
o If a network operator connects to more than one AS with
different routing policies then they need to create
their own AS. In the case of multi-homed customer net-
works connected to two service providers say for exam-
ple where a network operator is initially connected to
a single service provider and then decides for whatever
reason to connect to another service provider there are
now at least two different routing policies to a given
customer network. At this point the customer networks
will be part of a single AS and this AS would be dis-
tinct from either of the service providers ASes. This
allows the customer the ability of having a different
February 3, 1993
- 8 -
representation of policy and preference to the dif-
ferent service providers. This is the only case where a
network operator should create it own AS number.
o When creating an AS you should always try to populate
the AS with as many IP networks as possible providing
all IP networks conform to the same routing policy.
With the above rules in mind it means that if for example,
when a network operator changes service provider it will
move from one AS to another. Once the database is being used
as hoped for routing then a clear procedure is needed for
making sure this AS transition takes place in a smooth and
transparent manner without any loss of connectivity. See
Appendix C for detail of how this should be done.
Each AS is represented in the RIPE database by both an AS
object and AS tags on the network objects representing the
networks belonging to the AS. The AS objet stores descrip-
tive, administrative and contact information about the AS as
well as the routing policies of the AS in relation to all
neighboring ASes.
The AS tags on the network objects define the set of net-
works belonging to an AS. Each network can have exactly one
AS tag. The AS tags can only be created and updated by the
"guardian" of the AS and not by those immediately responsi-
ble for the particular network. This ensures that operators,
especially service providers, remain in control of AS
membership. The example below shows how this would be
represented in terms of the network object. The tag "aut-
sys" is used. Refer to `ripe-50' for a complete description
of the network object in the RIPE database.
Example:
inetnum: 192.87.45.0
netname: RIPE-NCC
descr: RIPE Network Coordination Centre
descr: Amsterdam, Netherlands
country: NL
admin-c: Daniel Karrenberg
tech-c: Marten Terpstra
connect: RIPE NSF
aut-sys: AS1104
rev-srv: ns.ripe.net
changed: marten(a)ripe.net 930121
source: RIPE
February 3, 1993
- 9 -
The AS object itself is used to represent a description of
administrative details and the routing policies of the AS
itself. The AS object definition will be depicted as fol-
lows.
Example:
aut-sys: AS1104
descr: NIKHEF-H Autonomous system
as-in: AS1213 100 AS1213
as-in: AS1913 100 AS1913
as-in: AS1755 150 ANY
as-out: AS1213 ANY
as-out: AS1913 ANY
as-out: AS1755 AS1104 AS1913 AS1213
tech-c: Rob Blokzijl
admin-c: Eric Wassenaar
guardian: as-guardian(a)nikhef.nl
source: RIPE
changed: k13(a)nikhef.nl 920713
changed: ripe-dbm(a)ripe.net 920910
See Appendix A for a complete definition of the "aut-sys"
syntax.
It should be noted that this representation provides two
things:
- a set of networks
- a description of administrivia and routing policies
The set of networks can be used to generate network list
based configuration information as well as configuration
information for EGPs knowing about ASes. This means an AS
can be defined and is useful even if it does not use routing
protocols which know about the AS concept!
Community
A community is a group of networks that cannot be
represented by an AS or a group of AS numbers. It is in
some circumstances useful to define a group of networks that
have something in common. This could be a special access
policy to a supercomputer centre, a group of networks used
for a specific mission, or a disciplinary group that is
scattered among several autonomous systems. Also these com-
munities could be useful to group networks for the purpose
February 3, 1993
- 10 -
of network statistics.
Communities do not exchange routing information directly,
since they do not represent a autonomous system. More
specifically, communities do not define routing policies,
but access or usage policies.
Contrary to an AS, networks can belong to more than commun-
ity.
Communities should be defined in a strict manner, to avoid
creating as many communities as there are networks, or even
worse. Communities should be define following the following
three rules:
o Communities must have a global meaning. Communities
must have a meaning beyond the local environment Com-
munities that have no global meaning, and are used only
in a local environment must be avoided.
o Communities must not be defined to express non-local
polices. It should be avoided that a community is
created because some other organisation forces a policy
upon your organisation. Communities must only be
defined to express a policy defined by your organisa-
tion.
Community examples
There are some clear examples of communities:
PROVIDER -
all customers of a given service provider even though
they can have various different routing polices and
hence belong to different ASes. This would extremely
useful for statistics collection.
HEPnet -
the High Energy Physics Network currently shares
infrastructure with other organisations, and the insti-
tutes it consists of are scattered all over Europe,
often being part of a non HEPnet autonomous system. To
allow statistics or access policies, a community HEP-
net, consisting of all networks that are part of HEP-
net, nicely groups all these networks.
NSFNET -
the National Science Foundation Networks imposes an
February 3, 1993
- 11 -
acceptable use policy on networks that wish to make use
of it. A community NSFNET could imply the set of net-
works that comply to this policy.
MULTI -
a large multinational corporation that does not have
its own internal infrastructure, but connects to the
various parts of its organisations by using local ser-
vice providers that connect them all together, may
decide to define a community to restrict access to
their networks, only by networks that are part of this
community. This way a corporate network could be
defined on shared infrastructure. Also, this community
could be used by any of the service providers to do
statistics for the whole of the corporation to for
instance to do topology or bandwidth planning.
Each community is represented in the RIPE database by both a
community object and community tags on the network objects
representing the networks belonging to the community. The
community objet stores descriptive, administrative and con-
tact information about the community.
The community tags on the network objects define the set of
networks belonging to a community. Each network can have
multiple one community tags. The community tags can only be
created and updated by the "guardian" of the community and
not by those directly responsible for the particular net-
work. This ensures that communities remain in control of
community membership.
Here's an example of how this might be represented in terms
of the community tags within the network object. Here we
have an example where the network 192.16.199.0 has a single
routing policy (i.e. that of AS 1104), but is part of
several different communities of interest. We use the tag
"comm-list" to represent the list of communities associated
with this network. Nikhef-H uses the service provider SURF-
net (a service provider containing customers with more than
one routing policy), is also part of the High Energy Physics
community as well as having the ability to access the Cray
at CERN (2).
_________________________
(2) The community `CERN-CRAYUSERS' is somewhat notional
but is intended as an example of a possible use of an
access policy constraint.
February 3, 1993
- 12 -
Example:
inetnum: 192.16.199.0
netname: HEFNET
descr: Local Ethernet
descr: NIKHEF section H
descr: Science Park Watergraafsmeer
descr: Amsterdam
descr: The Netherlands
country: NL
admin-c: Eric Wassenaar
tech-c: Rob Blokzijl
aut-sys: 1104
comm-list: HEPNET CERN-CRAYUSERS SURFNET
nsf-in: 1=590
gateway: nih
changed: ripe-dbm(a)ripe.net 920604
source: RIPE
In the above examples some communities have been defined.
The community object itself will take the following format:
Example:
community: JANET
descr: UK Joint Academic Network
authority: The Joint Network Team
guardian: comm-guardian(a)jnt.ac.uk
admin-c: James Hutton
tech-c: Bob Day
changed:ripe-dbm@ripe.net 920604
source: RIPE
For a complete explanation of the syntax please refer to
Appendix B.
5. Representation of Routing Policies
Routing policies of an AS are represented in the autonomous
system object. Initially we show some examples without the
full syntax in place so the reader is familiar with the con-
cept of how routing information is represented, used and
derived. Refer to section X for the full syntax of the "as"
object.
The topology of routing exchanges is represented by listing
February 3, 1993
- 13 -
how routing information is exchanged with each neighboring
AS. This is done separately for both incoming and outgoing
routing information. In order to provide backup and back
door paths a priority is associated with incoming informa-
tion.
Example 1:
AS1------AS2
as: AS1
<administrivia go here>
as-out: AS2 = AS1 # announce all networks in AS1 to AS2
as-in: AS2 = 100 AS2 # accept all AS2 networks from AS2
as: AS2
<administrivia go here>
as-out: AS1 = AS2 # announce all networks in AS2 to AS1
as-in: AS1 = 100 AS1 # accept all AS1 networks from AS1
This specifies a simple routing exchange of two presumably
isolated ASes. Even if either of them has routing informa-
tion about networks in ASes other than AS1 and AS2, none of
that will be announced to the other.
The number 100 in the inbound specifications is a relative
priority. Which is used for backup and back door routes.
The absolute value is of no significance. The relation
between different values within the same AS object is. A
lower value means higher priority. This is consciously simi-
lar to DNS MX RRs.
Example 2:
Now suppose that AS2 is connected to one more AS besides AS1
and let's call that AS3:
AS1------AS2------AS3
February 3, 1993
- 14 -
In this case there are two reasonable routing policies:
a) AS2 just wants to exchange traffic with both AS1 and
AS3 itself without passing traffic between AS1 and AS3.
b) AS2 is willing to pass traffic between AS3 and AS1,
thus acting as a transit AS
Example 2a:
In the first case AS1's representation in the database will
remain unchanged as will be the part of AS2's representation
describing the routing exchange with AS1. A description of
the additional routing exchange with AS3 will be added to
AS2's representation:
as: AS1
<administrivia go here>
as-out: AS2 = AS1 # announce all networks in AS1 to AS2
as-in: AS2 = 100 AS2 # accept all AS2 networks from AS2
as: AS2
<administrivia go here>
as-out: AS1 = AS2 # announce only networks in AS2 to AS1
as-in: AS1 = 100 AS1 # accept all AS1 networks from AS1
as-out: AS3 = AS2 # announce only networks in AS2 to AS3
as-in: AS3 = 100 AS3 # accept all AS3 networks from AS3
as: AS3
<administrivia go here>
as-out: AS2 = AS3 # announce all networks in AS3 to AS2
as-in: AS2 = 100 AS2 # accept all AS2 networks from AS2
Note that in this example AS2 keeps full control over its
resources. Even if AS3 and AS1 were to allow each other's
routes in from AS2, the routing information would not flow
because AS2 is not announcing it. (*)
Example 2b:
If contrary to the previous case, AS1 and AS3 are supposed
to have connectivity to each other via AS2, all AS objects
_________________________
(*) of course AS1 and AS3 could just send traffic to
each other to AS2 even without AS2 announcing the net-
works, hoping that AS2 will forward it correctly. Such
questionable practises however are beyond the scope of
this document.
February 3, 1993
- 15 -
have to change:
as: AS1
<administrivia go here>
as-out: AS2 = AS1 # announce all networks in AS1 to AS2
as-in: AS2 = 100 AS2 AS3 # accept AS2 and AS3 networks from AS2
as: AS2
<administrivia go here>
as-out: AS1 = AS2 AS3 # announce all networks in AS2 and AS3 to AS1
as-in: AS1 = 100 AS1 # accept all AS1 networks from AS1
as-out: AS3 = AS2 AS1
as-in: AS3 = 100 AS3
as: AS3
<administrivia go here>
as-out: AS2 = AS3 # announce all networks in AS3 to AS2
as-in: AS2 = 100 AS1 AS2 # accept AS2 and AS1 networks from AS2
Note that the amount of routing information exchanged with a
neighbor AS is defined in terms of networks belonging to
ASes. In BGP terms this is the AS where the routing infor-
mation originates and the originating AS information carried
in BGP could be used to implement the desired policy. How-
ever using BGP or the BGP AS-path information is not
required to implement the policies thus specified. Confi-
gurations based on network lists can easily be generated
from the database. The BGP derived information can then be
used as an additional checking tool as desired.
The specifications know some special sets and can be
expressed as boolean expressions:
ANY - means any routing information known. For output this
means that all networks an AS knows about are
announced. For input it means that anything is accepted
from the neighbor AS.
DEFAULT -
<explanation of DEFAULT goes here, tell us what's dif-
ferent from ANY!>
February 3, 1993
- 16 -
Example 3:
AS4 is a stub customer AS which only talks to service pro-
vider AS123.
|
|
-----AS123------AS4
|
|
as: AS4 # representation of AS4 in the database
<administrivia>
as-out: AS123 = AS4 # announce only networks in AS4 to AS123
as-in: AS123 = 100 ANY # accept any announcement from AS123
as: AS123 # representation of the service provider AS123
<administrivia>
as-in: AS4 = 100 AS4 # accept routes for customer AS4's networks
as-out: AS4 = ANY # provide all routes to customer AS4
<further neighbors>
Example 4:
AS4 now connects to a different operator, AS5. AS5 uses
AS123 for outside connectivity but has itself no direct con-
nection to AS123. AS5 traffic to and from AS123 thus has to
pass AS4. AS4 agrees to act as a transit AS for this
traffic.
|
|
-----AS123------AS4-------AS5
|
|
February 3, 1993
- 17 -
as: AS4 # representation of AS4 in the database
<administrivia>
as-out: AS123 = AS4 AS5 # own and AS5 networks to AS123
as-in: AS123 = 100 ANY # accept any announcement from AS123
as-out: AS5 = ANY # send all announcements through to AS5
as-in: AS5 = 50 AS5 # accept only AS5 announcements from them
as: AS5
<administrivia>
as-out: AS4 = AS5
as-in: AS4 = 100 ANY
as: AS123 # representation of the service provider AS123
<administrivia>
as-in: AS4 = 100 AS4 AS5 # accept AS4's own and AS5 from AS4
as-out: AS4 = ANY # all to customer AS4 and via it to AS5
<further neighbors>
Now AS4 has two sources of external routing information. AS5
which provides only information about its own networks and
AS123 which provides information about the external world.
Note that accepts information about AS5 from both AS123 and
AS5 although AS5 information cannot come from AS123 since
AS5 is connected only via AS4 itself. The higher priority of
50 for the announcement from AS5 itself compared to 100 from
AS123 ensures that AS5 is still believed even in case AS123
will unexpectedly announce AS5.
Example 5:
In a different example AS4 has a private connection to AS6
which in turn is connected to the service provider AS123:
|
|
-----AS123------AS4
| |
| |
| |
AS6 ---------+
There are a number of policies worth examining in this case:
a) AS4 and AS6 wish to exchange traffic between themselves
exclusively via the private link between themselves;
February 3, 1993
- 18 -
such traffic should never pass through the backbone
(AS123). The link should never be used for transit
traffic, i.e. traffic not both originating in and des-
tined for AS4 and AS6.
b) AS4 and AS6 wish to exchange traffic between themselves
via the private link between themselves. Should the
link fail, traffic between AS4 and AS6 should be routed
via AS123. The link should never be used for transit
traffic.
c) AS4 and AS6 wish to exchange traffic between themselves
via the private link between themselves. Should the
link fail, traffic between AS4 and AS6 should be routed
via AS123. Should the connection between AS4 and AS123
fail, traffic from AS4 to destinations behind AS123 can
pass through the private link and AS6's connection to
AS123.
d) AS4 and AS6 wish to exchange traffic between themselves
via the private link between themselves. Should the
link fail, traffic between AS4 and AS6 should be routed
via AS123. Should the backbone connection of either
AS4 or AS6 fail, the traffic of the disconnected AS
should flow via the other AS's backbone connection.
Example 5a:
as: AS4
as-in: AS123 = 100 NOT AS6 # accept anything besides AS6
as-out: AS123 = AS4 # announce only ourselves to AS123
as-in: AS6 = 50 AS6 # accept AS6 only from AS6
as-out: AS6 = AS4 # announce only own nets to AS6
as: AS123
as-in: AS4 = 100 AS4
as-out: AS4 = ANY
as-in: AS6 = 100 AS6
as-out: AS6 = ANY
<further neighbors>
as: AS6
as-in: AS123 = 100 NOT AS4
as-out: AS123 = AS6
as-in: AS4 = 50 AS4
as-out: AS4 = AS6
February 3, 1993
- 19 -
Note that here the configuration is slightly inconsistent.
AS123 will announce AS6 to AS4 and AS4 to AS6. These
announcements will be filtered out on the receiving end.
This will implement the desired policy. Consistency check-
ing tools might flag these cases however.
Example 5b:
as: AS4
as-in: AS123 = 100 ANY # expect anything from AS123
as-out: AS123 = AS4 # announce only ourselves to AS123
as-in: AS6 = 50 AS6 # accept AS6 only from AS6
as-out: AS6 = AS4 # announce only own nets to AS6
as: AS123
as-in: AS4 = 100 AS4
as-out: AS4 = ANY
as-in: AS6 = 100 AS6
as-out: AS6 = ANY
<further neighbors>
as: AS6
as-in: AS123 = 100 ANY
as-out: AS123 = AS6
as-in: AS4 = 50 AS4
as-out: AS4 = AS6
The thing to note here is that in the ideal operational case
-all links working- AS4 will receive announcements for AS6
from both AS123 and AS6 itself. In this case the announce-
ment from AS6 will be preferred because of its better
(numerically lower) preference and thus the private link
will be used as desired. AS6 is configured as a mirror
image.
Example 5c:
The new feature here is that should the connection between
AS4 and AS123 fail, traffic from AS4 to destinations behind
AS123 can pass through the private link and AS6's connection
to AS123.
February 3, 1993
- 20 -
as: AS4
as-in: AS123 = 100 ANY # expect anything from AS123
as-out: AS123 = AS4 # announce only ourselves to AS123
as-in: AS6 = 50 AS6 # accept AS6 only from AS6
as-in: AS6 = 110 ANY # accept anything from AS6 (worse than AS123)
as-out: AS6 = AS4 # announce only own nets to AS6
as: AS123
as-in: AS4 = 1 AS4
as-out: AS4 = ANY
as-in: AS6 = 1 AS6
as-in: AS6 = 2 AS4 # now also accept AS4 from AS6 in case backup
as-out: AS6 = ANY
<further neighbors>
as: AS6
as-in: AS123 = 100 ANY
as-out: AS123 = AS6 AS4 # for backup also pass AS4 to AS123
as-in: AS4 = 50 AS4
as-out: AS4 = ANY # for backup export all we know to AS4
Note that it is important to make sure to propagate routing
information for both directions in backup situations like
this. Connectivity in just one direction is not useful at
all for almost all applications.
Note also that in case the AS6-AS123 connection breaks, AS6
will only be able to talk to AS4. The symmetrical case (5d)
is left as an exercise to the reader.
6. RIPE Database Update Procedure
This section describes a procedure for updating the routing
attributes in the RIPE database as mentioned in this sec-
tion. These routing tags are essential for the routing of
networks that are known in the RIPE database. Therefore
updates of these attributes must be:
- Properly authorised
- Guarded against typing errors
- Efficient for both maintainers of the attributes and
the maintainers of the whole database
February 3, 1993
- 21 -
The procedure
For each of the AS and Community tags, a list of all net-
works having this attribute is kept separately from the gen-
eral database itself. These lists will be the *only* source
of routing information used in the database. Normal data-
base updates *never* change these attributes. If an update
includes such an attribute and a discrepancy between the
values in the update and those in the database is found, a
diagnostic message will be sent to the originator of the
update. The attributes as defined in the files are incor-
porated in the database at each normal update run. To
ensure proper control and authorisation, we propose to main-
tain the lists on a the central NCC database server, where
each of the guardians of a tag keeps track of his or her own
list. The lists are maintained through individual logins
for each of the guardians. The guardians can themselves
decide in what manner they want to update their list. The
NCC will offer interactive logins, ftp logins or any other
means that might be deemed useful.
File Format
We propose to keep the file format as simple as possible.
The name of the file should indicate the name of the attri-
butes. This means that there cannot be two attributes with
the same name. The format within the file we propose as the
"inetnum:" entry for each of the networks, separated by an
empty line. If a guardian feels that he would want more
fields to identify a network that will get his attribute, he
is free to do so. An attribute will only be added to a net-
work if all fields defined in the list match a network in
the database.
Advantages
The update procedure as proposed above has the following
advantages:
- Authorisation of adding/deleting is guaranteed.
- No need for mailing back and forth of authorisation
messages.
- Simple procedure for both database maintainers and
guardians.
- Guardians keep full control of their attribute.
- Could be implemented at the NCC without too much delay.
February 3, 1993
- 22 -
7. Summary
In summary this paper basically introduces two new RIPE
database objects, the autonomous system -- "aut-sys" and the
community -- "community" object. It attempts to clarify
terms in such a way as to make them easier and more usable
for network operators. It provides a mechanism to easily and
clearly express routing policy and provide a mechanism to
create, maintain and administer network based filter lists
for routing policy.
It introduces the concept of autonomous systems and provides
the tools for routing protocols that can make use of AS
information.
>> >> Still needs more summary text >>
8. Glossary
It is felt useful to include a basic glossary of some of the
terms used within this paper to act as both a reference and
as possible clarification tool.
>> >> To be done >>
9. Author's Addresses
Tony Bates
RIPE Network Coordination Centre
Kruislaan 409
NL-109SJ Amsterdam
+31 20 592 5065
Tony.Bates(a)ripe.net
Daniel Karrenberg
RIPE Network Coordination Centre
Kruislaan 409
NL-109SJ Amsterdam
+31 20 592 5065
D.Karrenberg(a)ripe.net
Jean-Michel Jouanigot
CERN, European Laboratory for Particle Physics
CN division
CH-1211 Geneva 23 Switzerland
+ 41 22 767 4417
jimi(a)dxcoms.cern.ch
Peter Lothberg
STUPI
February 3, 1993
- 23 -
Box 9129
102 72 Stockholm
+46 8 6699720
roll(a)stupi.se
Marten Terpstra
RIPE Network Coordination Centre
Kruislaan 409
NL-109SJ Amsterdam
+31 20 592 5065
M.Terpstra(a)ripe.net
February 3, 1993
- 24 -
Appendix A -- Syntax for the "aut-num" object.
Here is a summary of the tags associated with aut-num object
itself:
aut-num: [mandatory]
descr: [mandatory] [multiple]
as-in: [optional] [multiple]
as-out: [optional] [multiple]
tech-c: [mandatory] [multiple]
admin-c: [mandatory] [multiple]
guardian: [mandatory]
remarks: [optional] [multiple]
changed: [mandatory] [multiple]
source: [mandatory] [RIPE]
Each item has the following syntax:
aut-num:
Autonomous system number.
This must be a uniquely allocated autonomous system number
from a AS registry (i.e. the RIPE NCC or the Inter NIC).
Format: AS<positive integer between 1 and 65336>
Example:
aut-num: AS1104
Status: mandatory
descr:
A short description of the Autonomous system.
Format: free text, one line per entry, multiple lines in sequence
Example:
descr: NIKHEF section H
descr: Science Park Watergraafsmeer
descr: Amsterdam
Stautus: mandatory
as-in:
A description of accepted routing information between other AS peers.
Format: <aut-num> <preference> <routing policy expression>,
on multiple lines.
<aut-num> refers to your AS neighbor.
<preference> is a positive integer used to express a relative
preference of routes learned. The lower the preference the more
February 3, 1993
- 25 -
preferred the route.
<routing policy expression> can take the following formats.
1. A list of of one or more ASes.
Example:
as-in: AS1103 100 AS1103
as-in: AS786 105 AS1103
as-in: AS786 10 AS786
as-in: AS1755 110 AS1103 AS786
2. A set of KEYWORDS.
The following keywords are currently defined.
ANY - this means anything the neighbor AS knows.
DEFAULT - a common agreed default network.
RIPE-DB - any network currently in the RIPE database.
LOCAL - any network in the RIPE database which is part of the
community LOCAL (i.e. no connectivity outside it own
organisation).
3. A logical expression of the above of either 1 or 2 above
The current logical operators are defined as:
AND
OR
NOT
Rules are grouped togethered using parenthesis i.e "(" or ")".
Example:
as-in: AS1755 100 RIPE-DB AND NOT (LOCAL AS1234 AS513)
as-in: AS1755 150 DEFAULT
Stautus: optional
as-out:
A description of generated routing information sent to other AS peers.
Format: <aut-num> <routing policy expression>, multiple lines.
<aut-num> refers to your AS neighbor.
<routing policy expression> is explained in the as-in
definition above.
Example:
as-out: AS1104 AS978
as-out: AS1755 ANY
as-out: AS786 RIPE-DB AND NOT (AS978 LOCAL)
tech-c:
Name of technical contact person.
February 3, 1993
- 26 -
This is someone to be contacted for technical problems
such as misconfiguration, technical problems.
Format: <firstname> <initials> <lastname>, multiple lines.
Example:
tech-c: John E. Doe
Status: mandatory
admin-c:
Name of administrative contact person. This probably be the name of
the guardian but may not be.
Format: <firstname> <initials> <lastname>, multiple lines.
Example:
admin-c: Joe T. Bloggs
Status: mandatory
guardian:
Malibox of the guardian of the Autonomous system.
Format: <email-address>, single line.
Example:
guardian: as1104-guardian(a)nikhef.nl
Status: mandatory
source: RIPE
Source of the information.
This is used to separate information from different sources
kept by the same database software.
Format: RIPE
Status: mandatory
changed:
Who and when changed this last.
Format: <email-address> YYMMDD
Example:
changed: johndoe(a)terabit-labs.nn 900401
Status: mandatory
remark:
Remarks/comments
Format: text string, multiple lines
Example:
February 3, 1993
- 27 -
remark: Multihomed AS talking to AS 1755 and AS786
remark: Will soon connect to AS 1104 also.
Status: optional
February 3, 1993
- 28 -
Appendix B -- Syntax details for the "community" object.
Here is a summary of the tags associated with "community"
object itself:
community: [mandatory]
descr: [mandatory] [multiple]
authority: [mandatory]
guardian: [mandatory]
tech-c: [mandatory] [multiple]
admin-c: [mandatory] [multiple]
remarks: [optional] [multiple]
changed: [mandatory] [multiple]
source: [mandatory] [RIPE]
Each item has the following syntax:
community:
Name of community. Should be as representative of the cummunity as
possible rather than being something obscure.
Format: Text string which cannot start with "AS-" or any of the <routing
policy expression> KEYWORDS. See Appendix A.
Example:
community: WCW
descr:
A short description of the community represented.
Format: free text, one line per entry, multiple lines in sequence
Example:
descr: Science Park Watergraafsmeer
descr: Amsterdam
Stautus: mandatory
authority:
The formal authority for this community. This could be an
organisation, institute, etc.
Format: text
Example:
authority: WCW LAN committee
Stautus: mandatory
guardian:
February 3, 1993
- 29 -
Malibox of the guardian of the community.
Format: <email-address>, single line.
Example:
guardian: wcw-guardian(a)nikhef.nl
Status: mandatory
tech-c:
Name of technical contact person.
This is someone to be contacted for technical problems
such as misconfiguration, technical problems.
Format: <firstname> <initials> <lastname>, multiple lines.
Example:
tech-c: John E. Doe
Status: mandatory
admin-c:
Name of administrative contact person. This probably be the name of
the guardian but may not be.
Format: <firstname> <initials> <lastname>, multiple lines.
Example:
admin-c: Joe T. Bloggs
Status: mandatory
source: RIPE
Source of the information.
This is used to separate information from different sources
kept by the same database software.
Format: RIPE
Status: mandatory
changed:
Who and when changed this last.
Format: <email-address> YYMMDD
Example:
changed: johndoe(a)terabit-labs.nn 900401
Status: mandatory
remark:
Remarks/comments
Format: text string, multiple lines
Example:
February 3, 1993
- 30 -
remark: This a group of institutes at WCW.
remark: Consisting of CWI, SARA and NIKHEF.
Status: optional
February 3, 1993
- 31 -
Appendix C -- Some additional thoughts.
This section is essentially marked as "for further study".
However, the details are felt relevant enough to be covered
in an appendix for those who are interested.
AS Macros
For an AS that doesn't use default routing it may be diffi-
cult for it to keep track of each and every new AS that is
represented in the database. A convenient way around this
create an `AS Macro' which essentially is a convenient way
to groups or aggregate ASes. This would be done so that each
and every AS guardian does not have to add an new AS to it's
as-in or as-out tags for it's AS object.
However, it should be noted that creates an implicit trust
on the guardian of the AS-Macro.
The proposed idea would be to allow an AS-Macro as part of
the <routing policy expression> for the "as-in" and "as-out"
tags. The object could then be used as a list or group of
ASes. So for example we could create an AS object as fol-
lows:
Example:
aut-sys: AS786
as-in: AS1755 100 AS-EBONE AND NOT AS1104
as-out AS1755 AS786
The proposed syntax for an AS macro would be as follows:
as-macro: [mandatory]
descr: [mandatory]
as-list: [mandatory] [multiple]
guardian: [mandatory]
tech-c: [mandatory] [multiple]
admin-c: [mandatory] [multiple]
remarks: [optional] [multiple]
changed: [mandatory] [multiple]
source: [mandatory] [RIPE]
>>> >>> Actual details still to be completed >>>
February 3, 1993
- 32 -
Transitioning from one AS to another.
>>> >>> To be done >>>
February 3, 1993
1
0