Implementation of RIPE-181++
Tony Bates
Mon Oct 3 17:32:42 CET 1994
Okay,
	I went round this a few times with Marten today and added a
load of stuff then took it out again. Please comment on this. Still
not sure if this makes sense. Here's the text...I would rather we just
made it - ALL polices should be explicitly mention and the sum of
interas policiy must equal global as policy.
			==Tony.
.....
Descriptions of interas policies do  not  replace  the  global  pol-
icy  described   in  as-in, as-out and other policy attributes which
should be specified  too.   If  the  global  policy  mentions   more
routes   than the combined local policies then local preferences for
these routes are assumed to be equal for all links.
ripe-181.txt                                           October, 1994
^L                               - 28 -
Any route specified in interas-in/out and not specified in as-in/out
is  assumed not accepted/announced between the ASes concerned. Diag-
nostic tools should flag this inconsistency as an error.  It  should
be  noted  that  if an interas-in or interas-out policy is specified
then it is mandatory to specify the corresponding global  policy  in
the  as-in  or as-out line. Please note there is no relevance in the
cost associated with as-in and the preferences used in interas-in.
 
The interaction of interas-in/interas-out with as-in/as-out
Although stated above, the rules associated with policy described in
terms of interas-in and interas-out with respect to as-in and as-out
are worthy of clarification for implementation.
When using interas-in or interas-out policy descriptions,  one  must
always  make  sure the set of policies described between two ASes is
always equal to or a sub-set of the policy described in  the  global
as-in  or  as-out  policy.  When a sub-set is described remember the
remaining routes are implicitly shared across all connections.
When defining interas based policy one should always ensure that any
possible ambiguites are not present by explicitly defining your pol-
icy with respect to the global as-in and as-out policy.
If we look at a simple example, taking just  in-bound  announcements
to simplify things. If we have the following global policy:
aut-num: AS1
as-in: from AS2 10 accept AS100 OR {10.0.0.0/8}
Suppose there are three connections (here connections can mean  peer
sessions  or physical connections) between them, known as L1-R1, L2-
R2 and L3-R3 respectively. The actual policy of these connections is
to  accept  AS100  equally  on  these  three  links  and  just route
10.0.0.0/8 on L3-R3. Then the interas-in policy  should  be  written
as:
interas-in: from AS2 L1 R1 (pref=100) accept AS100
interas-in: from AS2 L2 R2 (pref=100) accept AS100
interas-in: from AS2 L3 R3 (pref=100) accept AS100 OR {10.0.0.0/8}
Whilst this may at first sight seem obvious, the problem arises when
not all connections are mentioned. For example, if we specified only
an interas-in line for L3-R3 as below:
aut-num: AS1
as-in: from AS2 10 accept AS100 OR {10.0.0.0/8}
interas-in: from AS2 L3 R3 (pref=100) accept AS100 OR {10.0.0.0/8}
then the policy for the other links according  to  the  rules  above
ripe-181.txt                                           October, 1994
^L                               - 29 -
would mean they were equal to the global policy minus the sum of the
local  policies  (i.e.  ((AS100  OR  {10.0.0.0/0})   /   (AS100   OR
{10.0.0.0/0}))  =  empty)  which  in this case would mean nothing is
accepted on conections L1-R1 and L2-R2 which is incorrect.
If we for example, we only registered  the  policy  for  link  L2-R2
(i.e.  accept AS100), according to the rules above, the derived pol-
icy for both L1-R1 and L3-R3 would be as follows:
interas-in: from AS2 L1 R1 (pref=100) accept {10.0.0.0/8}
interas-in: from AS2 L3 R3 (pref=100) accept {10.0.0.0/8}
This is derived as the set of  global  policies  minus  the  set  of
interas-in  policies  (in  this case just accept AS100 as it was the
L2-R2 interas-in policy we  registered)  with  equal  cost  for  the
remaining connectiosn. This again is clearly incorrect.
We strongly recommend that you always mention all policies  for  all
interas  connections explicitly, to avoid these possible errors. One
should always ensure the set of the interas policies is equal to the
global policy.
It should also be noted there is no direct realtionship between  the
cost used in as-in and the preference used in interas-in.
-------- Logged at  Tue Oct 4 10:20:24 MET 1994  ---------
[ rr-impl Archive ]