Ripe 181
Cengiz Alaettinoglu
Thu Oct 13 19:46:41 CET 1994
Let me make sure I understand this right.
There are cascade of two orderings.
A router L1 prefers a route from its peer R1
over its other peer R2 if
1) R1's AS != R2's AS
and the as-in preference of this route via R1's AS
is less than or equal to
the as-in preference of this route via R2's AS
2) R1's AS == R2's AS
and the interas-in preference of this route via R1
is less than or equal to
the interas-in preference of this route via R2.
This is almost but not equivalent to the following:
Assume all preference values are in the range 0...Range
a route is accepted from a peer with gated preference of
as-in preference * Range + interas-in preference
(in addition you map smallest of these numbers to 1, next
smallest to 2 and so on).
Is this right? The cascade of two orderings is news to me.
Having a cascade has pros and cons.
Some minor comments below:
Daniel Karrenberg (Daniel.Karrenberg at ripe.net) on October 13:
> ...
> It also does not make sense to compare local (interas-in) preferences
> between different peer ASes! The preferences between the peers are defined
> in as-in. The local preferences only differentiate between different
> peerings to the same AS.
I wish these were the words in Ripe-181. There would not be any
confusion.
>
> A suitable algorithm to derive gated preferences would be
>
>
> for all ASes referenced in as-in attributes
>
> build an ordered list of peers by preference
>
> for all ASes referenced in interas-in attributes
>
> ERROR if ordered list for route cannot be found
>
> replace the peer entry in the ordered list above
> by an ordered list of peering sessions to this peer
>
> for all ordered lists thus generated
>
> output preference statements with increasing integers
> per list element
> - for any specific peering mentioned
> - for all peerings to the neighbor if no specific
> peering is mentioned
>
>
>
> > 2)
> > Example topology:
> > AS1 is connected to AS2 through L1 R1, L1 R2.
> > AS1 is connected to AS3 through L1 R3.
> >
> > aut-num: AS1
> > as-in: from AS2 10 accept AS100 OR AS200
>
> Makes lists:
>
> AS100: AS2
> AS200: AS2
>
> > as-in: from AS3 11 accept AS100 OR AS200
>
> AS100: AS2 AS3
> AS200: AS2 AS3
>
> > interas-in: from AS2 L1 R1 (pref=100) AS100
>
> AS100: AS2/L1R1 AS3
> AS200: AS2 AS3
>
> > preference for routes of AS100 learned from R1 is 100.
> > preference for routes of AS100 learned from R2: not valid.
> > preference for routes of AS100 learned from R3 is 11.
> > preference for routes of AS200 learned from R1 is XXX.
> > preference for routes of AS200 learned from R2 is XXX.
> > preference for routes of AS200 learned from R3 is 11.
>
> preference for routes of AS100 learned from R1 1
> preference for routes of AS100 learned from R3 2
> preference for routes of AS200 learned from R1 1
> preference for routes of AS200 learned from R2 1
> preference for routes of AS200 learned from R3 2
>
> > The value of XXX is not specified in Ripe181. Literally speaking this
> > means a random value.
>
> ripe-181 says that the preferences are equal across all peerings
> to the sam neighbor and consistent with as-in (global) policy. In this case
> the preference value in interas-in is not relevant and can be undefined.
> This does not mean that a configuration tool cannot derive an appropriate
> value depending on the output language.
Ripe-181 does not say they are consistent. It says there is no
relevance.
>
> > In one of your examples [Ref 1. below], you have used
> > the value used in the other interas-in statement. Which makes:
> > XXX = 100.
> > Daniel [Ref 2.] suggests it should be greater than any value mentioned
> > in an interas-in statement. Which makes:
> > XXX >= 101.
>
> My brain was disengaged when I wrote this and it fell into the same
> trap as Cengiz. The value is immaterial
Exactly. This is because our brains read and interpret the ripe-181
document where the cascade of two orderings is neither explicit nor
implicit.
There is one problem that I foresee with your algorithm. You are
trying to come-up with one total ordering (per route) whereas your
input has cascade of two partial orderings.
What do you do below:
aut-num: AS1
as-in: from AS2 10 accept AS100
as-in: from AS3 10 accept AS100
interas-in: from AS2 L1R1 10 accept AS100
interas-in: from AS2 L1R2 11 accept AS100
interas-in: from AS3 L1R3 12 accept AS100
interas-in: from AS3 L1R4 13 accept AS100
Obviously there is no total ordering with these values.
A partial ordering is fine as long as gated is concerned.
However, I am not 100% sure that
one can come up with "one" partial ordering
unless you compare interas-in preferences for different ASs
(i.e. 10 with 12).
Gated does not support two partial orderings.
Cengiz
--
Cengiz Alaettinoglu Information Sciences Institute
cengiz at isi.edu University of Southern California
-------- Logged at Fri Oct 14 12:31:04 MET 1994 ---------
[ rr-impl Archive ]