jinhyeock choi, syam madanapalli 2005.08.04 hppt://diffeo/linkid
DESCRIPTION
DNA Solution: Link Identifier based approach draft-jinchoi-dna-protocol2-01.txt. JinHyeock Choi, Syam Madanapalli 2005.08.04 hppt://www.diffeo.com/LinkId.ppt. Contents. Background Overview Protocol operation Router Operation Host Operation Summary. Background. Background. - PowerPoint PPT PresentationTRANSCRIPT
JinHyeock Choi, Syam Madanapalli2005.08.04
hppt://www.diffeo.com/LinkId.ppt
DNA Solution: Link Identifier based approach
draft-jinchoi-dna-protocol2-01.txt
Contents
• Background• Overview• Protocol operation
– Router Operation– Host Operation
• Summary
Detecting Network Attachment in IPv6 Networks (DNAv6)
DNA Solution: Link Identifier based
approach
Fast Router Discovery with L2
Support
draft-pentland-dna-protocol-01.txt
draft-jinchoi-dna-protocol2-01.txt
draft-jinchoi-dna-frd-01.txt
Component 1: Link
Identification
Landmark + CompleteRA LinkID
Component 2: Fast Router
Advertisement
Hash based FastRA FRD
Background
BackgroundG1 DNA schemes should detect the identity of the currently attached
link to ascertain the validity of the existing IP configuration.– This draft provides the scheme which satisfies G1.
• Link Identifier based approach– To compare links, it’s natural to assign them unique names
and compare them. – We present a new way to assign each link UNIQUE name,
“Link Identifier”. By comparing two LinkIDs, host can easily check for link change.
• LinkID – LinkID is a UNIQUE name assigned to each link. Two different
links have two different LinkID. – Assume a host keeps a LinkID, after while
• If a host sees a different LinkID, it has moved to a different link.
• Landmark– One link can have MULTIPLE landmarks. (Landmark is
assigned to a link such that two different links doesn’t have the same landmark.)
– Assume a host keeps a landmark, after while • If a host sees a different landmark, it doesn’t mean it has moved to
a different link.
LinkID & Landmark Comparison
• Efficient LinkID assignment – How to efficiently assign UNIQUE LinkID to each link.
• Graceful LinkID change– How would hosts cope with LinkID change gracefully.
LinkID Tasks
Basic Idea
• All routers on a link agrees on one (global) prefix to advertise as the LinkID prefix. – Each router collects all the prefixes on the link and picks the
smallest one as the LinkID prefix.– Each router advertises the LinkID prefix with the special LinkID
flag (Identifier bit) in every RA message it sends.
• Hosts keeps the LinkID Prefix to check for link change. – When it receives the same LinkID prefix, it assumes that it
remains at the same link. – When it receives the different LinkID prefix, it assumes that it
moves to a different link.
LinkID Prefix
ValidValid LifetimeLifetime
TypeType LengthLength PrefixPrefix LengthLength AA Res1Res1LL II
PreferredPreferred LifetimeLifetime
Reserved 2Reserved 2
PrefixPrefix
While there are 3 point of attachment, there are only 2 links.
LinkID, rough sketch
Internet
AR1 AR2 AR3
AP1 AP2 AP3
Link 1 Link 2
Router Operations • Collecting the prefixes • Selecting the LinkID prefix • Advertising the LinkID prefix • Graceful LinkID prefix change
Internet
AR1 AR2 AR3
1. AR1 advertises Prefix A::
LinkID, rough sketch
A:: B:: C::, D::
2. AR2 advertises Prefix B::
3. AR3 advertises Prefix C::, D::
4. Each AR generate the set of all the prefixes on the link
{A} {B, C, D} {B, C, D}
5. Each AR picks the smallest prefix of the complete prefix list as LinkID prefix.
AP1 AP2 AP3
Internet
AR1 AR2 AR3
1. AR1 advertises Prefix A::
LinkID, rough sketch
A:: B:: C::, D::
2. AR2 advertises Prefix B::
3. AR3 advertises Prefix C::, D::
4. Each AR generate the set of all the prefixes on the link
{A} {B, C, D} {B, C, D}
5. Each AR picks the smallest prefix of the complete prefix list as LinkID prefix.
6. Each AR puts the LinkID prefix in its RA message.
AP1 AP2 AP3
Internet
AR1 AR2 AR3
1. AR1 advertises Prefix A::
LinkID, rough sketch
A:: B:: C::, D::
2. AR2 advertises Prefix B::
3. AR3 advertises Prefix C::, D::
4. Each AR generate the set of all the prefixes on the link
{A} {B, C, D} {B, C, D}
5. Each AR picks the smallest prefix of the complete prefix list as LinkID prefix.
6. Each AR puts the LinkID prefix in its RA message.
RA1A::
RA2B::
RA3B::
AP1 AP2 AP3
Host Operations • Managing the LinkidPrefixList • Checking for link change
Internet
AR1 AR2 AR3
1. MN is attached to AP1.
LinkID, rough sketch
RA1A::
RA2B::
RA3B::
AP1 AP2 AP3
MN
2. MN receives RA1 from AR1.
Internet
AR1 AR2 AR3
1. MN is attached to AP1.
LinkID, rough sketch
RA2B::
RA3B::
AP1 AP2 AP3
MN
2. MN receives RA1 from AR1.
RA1A::
Internet
AR1 AR2 AR3
1. MN is attached to AP1.
LinkID, rough sketch
RA2B::
RA3B::
AP1 AP2 AP3
MN
2. MN receives RA1 from AR1.
RA1A::
3. MN extracts LinkID prefix A:: from RA1 and keeps it.
{ A }
4. MN moves to AP2 and makes a new link-layer connection.
Internet
AR1 AR2 AR3
1. MN is attached to AP1.
LinkID, rough sketch
RA2B::
RA3B::
AP1 AP2 AP3
2. MN receives RA1 from AR1.
3. MN extracts LinkID prefix A:: from RA1 and keeps it.
MN
{ A }
4. MN moves to AP2 and makes a new link-layer connection.
5. MN receives RA2 from AR2.
Internet
AR1 AR2 AR3
1. MN is attached to AP1.
LinkID, rough sketch
RA3B::
AP1 AP2 AP3
2. MN receives RA1 from AR1.
3. MN extracts LinkID prefix A:: from RA1 and keeps it.
MN
{ A }
4. MN moves to AP2 and makes a new link-layer connection.
5. MN receives RA2 from AR2.
RA2B::
Internet
AR1 AR2 AR3
1. MN is attached to AP1.
LinkID, rough sketch
RA3B::
AP1 AP2 AP3
2. MN receives RA1 from AR1.
3. MN extracts LinkID prefix A:: from RA1 and keeps it.
MN
{ A }
4. MN moves to AP2 and makes a new link-layer connection.
5. MN receives RA2 from AR2.
RA2B::
6. MN extracts LinkID prefix B:: from RA2 and compares it with the existing LinkID prefix A::.
{ B }
7. Because they are different, MN assumes that it has moved to a new link and change its LinkID Prefix to B::.
Internet
AR1 AR2 AR3
1. MN is attached to AP1.
LinkID, rough sketch
RA3B::
AP1 AP2 AP3
2. MN receives RA1 from AR1.
3. MN extracts LinkID prefix A:: from RA1 and keeps it.
MN
{ B }
4. MN moves to AP2 and makes a new link-layer connection.
5. MN receives RA2 from AR2.
RA2B::
6. MN extracts LinkID prefix B:: from RA2 and compares it with the existing LinkID prefix A::.
7. Because they are different, MN assumes that it has moved to a new link and change its LinkID Prefix to B::. 8. MN again moves to AP3 and makes a new link-layer connection.
Internet
AR1 AR2 AR3
1. MN is attached to AP1.
LinkID, rough sketch
RA3B::
AP1 AP2 AP3
2. MN receives RA1 from AR1.
3. MN extracts LinkID prefix A:: from RA1 and keeps it.
4. MN moves to AP2 and makes a new link-layer connection.
5. MN receives RA2 from AR2. 6. MN extracts LinkID prefix B:: from RA2 and compares it with the existing LinkID prefix A::.
7. Because they are different, MN assumes that it has moved to a new link and change its LinkID Prefix to B::. 8. MN again moves to AP3 and makes a new link-layer connection.
MN
{ B } 9. MN receives RA3 from AR3.
Internet
AR1 AR2 AR3
1. MN is attached to AP1.
LinkID, rough sketch
AP1 AP2 AP3
2. MN receives RA1 from AR1.
3. MN extracts LinkID prefix A:: from RA1 and keeps it.
4. MN moves to AP2 and makes a new link-layer connection.
5. MN receives RA2 from AR2. 6. MN extracts LinkID prefix B:: from RA2 and compares it with the existing LinkID prefix A::.
7. Because they are different, MN assumes that it has moved to a new link and change its LinkID Prefix to B::. 8. MN again moves to AP3 and makes a new link-layer connection.
MN
{ B } 9. MN receives RA3 from AR3.
RA3B::
Internet
AR1 AR2 AR3
1. MN is attached to AP1.
LinkID, rough sketch
AP1 AP2 AP3
2. MN receives RA1 from AR1.
3. MN extracts LinkID prefix A:: from RA1 and keeps it.
4. MN moves to AP2 and makes a new link-layer connection.
5. MN receives RA2 from AR2. 6. MN extracts LinkID prefix B:: from RA2 and compares it with the existing LinkID prefix A::.
7. Because they are different, MN assumes that it has moved to a new link and change its LinkID Prefix to B::. 8. MN again moves to AP3 and makes a new link-layer connection.
MN
{ B } 9. MN receives RA3 from AR3.
RA3B::
Internet
AR1 AR2 AR3
LinkID, rough sketch
AP1 AP2 AP3
MN
{ B }
RA3B::
10. MN extracts LinkID prefix B:: from RA3 and compares it with the existing LinkID prefix B::.
{ B }
11. Because they are the same, MN assumes that it still remains at the same link and keeps its LinkID Prefix B::.
Internet
AR1 AR2 AR3
LinkID, rough sketch
AP1 AP2 AP3
MN
{ B }
RA3B::
10. MN extracts LinkID prefix B:: from RA3 and compares it with the existing LinkID prefix B::.
11. Because they are the same, MN assumes that it still remains at the same link and keeps its LinkID Prefix B::.
New Terms
• LinkID advertisement– PIO (Prefix Information Option)– LPIO (Learned Prefix Information Option)– Identifier bit (I-bit)
• Graceful LinkID Change – Linkid Prefix list (LinkidPrefixList)– Linkid lifetime – LEAST_VALID_LIFETIME
Open Issues
• Issue 001: LPIO format • Issue 002: Advertising old linkid prefix • Issue 003: Flash renumbering and early reassignment • Issue 004: DAD Interaction • Issue 005: MLD Interaction • Issue 006: Sending RA before completing prefix collection • Issue 007: Linkid prefix option for RS message • Issue 008: Linkid Selection Scheme
Summary• This draft present a way for a host to check for link
change correctly. – Hosts can even cope with LinkID change gracefully.
• The draft is implemented and tested.– Hosts performed just well.
• There may be other applications for unique LinkID per a link. – LinkID in L2 beacon
• We propose this scheme as a DNA solution for Link Identification.
Appendix
Linkid for DNAImplementation & Test Results
Subba Reddy
Linkid Implementation• Implemented the linkid code on Linux OS (Kernel 2.4.18)• Router side
– We added code to RA Daemon• Samsung ISO implementation based on Linux RADVD version 0.7.2
– No. of lines of code: 390• Host side
– We added code to our own IPv6 stack (SISOv6)– No. of lines of code: 160.
• We also developed CLI to add/delete the prefixes on routers at runtime
Test Setup …
Link1:-R1:- 3ffc::/64, 3ffd::/64R2:- 3ffa::/64, 3ffb::/64R3:- 3ff3::/64, 3ff4::/64
Link2:-R1:- 4ffc::/64, 4ffd::/64R2:- 4ffa::/64, 4ffb::/64R3:- 4ff3::/64, 4ff4::/64
R2MN Hub 2 Hub 1
R1
R3
Link2Link1
Test Setup …• We were running Ethereal on MN• The Interfaces are Wired Ethernet
– No packet loss
• Routers advertise immediately whenever there is a new prefix added or deleted which causes the change in linkid
• We made all Routers to advertise whenever there is a linkid change to measure the synchronization time using ethereal.
How we tested …• Initialization
– We have configured different prefixes on each of the router interfaces as mentioned in the test setup
– After Synchronization, Routers announces the linkid– Host learns the linkid
• Adding new Smaller Prefix on a link– Now we added a smaller prefix (3ff0::/64) on R1 to check the
Synchronization time for the new linkid and MN behavior– MN did not make wrong decision for link change
How we tested …• Deletion of Existing Prefixes
– We decreased the smallest prefix (3ff0::/64) valid life time to 1.5 hours in runtime
– All the routers made the prefix as old linkid (3ff0::/64) and selected new linkid (3ff3::/64)
– MN did not make wrong decision for link change– After 1.5 hrs the prefix (3ff0::/64) has been removed from the link
• Link Change– MN has been moved from link1 to link2– MN made the link change decision (new linkid: 4ff3::/64)– We repeated the above tests on the link 2 as well
Test Results• Synchronization Time
– Whenever there is a change in linkid, all routers synching within ~600 micro seconds
• Error Rate– MN has never made any wrong decision in any scenario we have
tested in.• MN did not make any wrong decision when we changed the linkid by
adding new smaller prefix• MN did not make any wrong decision when we changed the linkid by
deleting the existing linkid prefix• MN made correct decision when MN has been moved from link1 to
link2, and back to link1