96
Introduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 ebastien Barr´ e Universit´ e catholique de Louvain http://inl.info.ucl.ac.be Nov. 18th, 2008 INGI Research Meeting ebastien Barr´ e Shim6: Multihoming for IPv6 1 / 54

Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

Embed Size (px)

Citation preview

Page 1: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6: Multihoming for IPv6

Sebastien Barre

Universite catholique de Louvainhttp://inl.info.ucl.ac.be

Nov. 18th, 2008

INGI Research Meeting

Sebastien Barre Shim6: Multihoming for IPv6 1 / 54

Page 2: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

1 IntroductionMultihoming with IPv4Motivations for IPv6IPv6 addresses

2 The Shim6 protocolShim6 operationThe REAP exploration protocolShim6: Security issues

3 LinShim6 implementation for Linux

4 Conclusion

Sebastien Barre Shim6: Multihoming for IPv6 2 / 54

Page 3: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

1 IntroductionMultihoming with IPv4Motivations for IPv6IPv6 addresses

2 The Shim6 protocol

3 LinShim6 implementation for Linux

4 Conclusion

Sebastien Barre Shim6: Multihoming for IPv6 3 / 54

Page 4: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

What is multihoming ?

Sebastien Barre Shim6: Multihoming for IPv6 4 / 54

Page 5: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

What is multihoming ?

Sebastien Barre Shim6: Multihoming for IPv6 5 / 54

Page 6: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

Motivations for Multihoming

Redundancy

Physical/logical link failureRouting failureProvider failure

Load Balancing

Performance issues such as long term congestion

Policy

Sebastien Barre Shim6: Multihoming for IPv6 6 / 54

Page 7: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

1 IntroductionMultihoming with IPv4Motivations for IPv6IPv6 addresses

2 The Shim6 protocol

3 LinShim6 implementation for Linux

4 Conclusion

Sebastien Barre Shim6: Multihoming for IPv6 7 / 54

Page 8: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

Using a Provider Independent (PI) IPv4 address block

Sebastien Barre Shim6: Multihoming for IPv6 8 / 54

Page 9: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

Using a Provider Independent (PI) IPv4 address block

Customer network needs an AS number

It becomes difficult to obtain a /24 PI now

Introduces an additional prefix into the global routing system

Ref.: Abley et al., RFC4116, IPv4 multihoming practices and limitationsSebastien Barre Shim6: Multihoming for IPv6 9 / 54

Page 10: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

Using a Provider Aggregatable (PA) IPv4 address block

Sebastien Barre Shim6: Multihoming for IPv6 10 / 54

Page 11: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

Using a Provider Aggregatable (PA) IPv4 address block

Customer gets a subprefix from its provider

May need to renumber if customer wants to leave ISP1.

Customer network needs an AS number

Makes routing tables bigger

Ref.: Abley et al., RFC4116, IPv4 multihoming practices and limitationsSebastien Barre Shim6: Multihoming for IPv6 11 / 54

Page 12: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

1 IntroductionMultihoming with IPv4Motivations for IPv6IPv6 addresses

2 The Shim6 protocol

3 LinShim6 implementation for Linux

4 Conclusion

Sebastien Barre Shim6: Multihoming for IPv6 12 / 54

Page 13: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

Mainly: IPv4 address depletion

Sebastien Barre Shim6: Multihoming for IPv6 13 / 54

Page 14: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

Mainly: IPv4 address depletion

Source: http://www.potaroo.net/tools/ipv4/index.htmlSebastien Barre Shim6: Multihoming for IPv6 14 / 54

Page 15: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

IPv4 address depletion: latest informations

Expected exhaustion point for RIR’s: March 3rd, 2012

Expected exhaustion point for IANA: February 2nd, 2011

Source: http://www.potaroo.net/tools/ipv4/index.htmlSebastien Barre Shim6: Multihoming for IPv6 15 / 54

Page 16: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

Other expectations for IPv6

Lower load of Internet routing tables

Less packet processing in the core of the Internet

Push state towards the edges

No more NATs: IP address for everyone

Improved security, mobility and multihoming

Sebastien Barre Shim6: Multihoming for IPv6 16 / 54

Page 17: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

Other expectations for IPv6

Lower load of Internet routing tables

Less packet processing in the core of the Internet

Push state towards the edges

No more NATs: IP address for everyone

Improved security, mobility and multihoming

Sebastien Barre Shim6: Multihoming for IPv6 16 / 54

Page 18: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

Other expectations for IPv6

Lower load of Internet routing tables

Less packet processing in the core of the Internet

Push state towards the edges

No more NATs: IP address for everyone

Improved security, mobility and multihoming

Sebastien Barre Shim6: Multihoming for IPv6 16 / 54

Page 19: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

Other expectations for IPv6

Lower load of Internet routing tables

Less packet processing in the core of the Internet

Push state towards the edges

No more NATs: IP address for everyone

Improved security, mobility and multihoming

Sebastien Barre Shim6: Multihoming for IPv6 16 / 54

Page 20: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

1 IntroductionMultihoming with IPv4Motivations for IPv6IPv6 addresses

2 The Shim6 protocol

3 LinShim6 implementation for Linux

4 Conclusion

Sebastien Barre Shim6: Multihoming for IPv6 17 / 54

Page 21: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

IPv6 address format

Sebastien Barre Shim6: Multihoming for IPv6 18 / 54

Page 22: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

IPv6 address format

Sebastien Barre Shim6: Multihoming for IPv6 19 / 54

Page 23: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA vs PI addresses

PI: Provider Independent addresses

The site announces its PI address set through BGPIf multihomed: multiple BGP annoucements

Global announcements of PI prefixes

What if many sites get multihomed ?

Scalability problem

PA: Provider Aggregatable addresses

The site receives a subset of its provider’s addressesOnly the provider announces its address set through BGPIf multihomed : The site receives several address blocks

Sebastien Barre Shim6: Multihoming for IPv6 20 / 54

Page 24: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA vs PI addresses

PI: Provider Independent addresses

The site announces its PI address set through BGPIf multihomed: multiple BGP annoucements

Global announcements of PI prefixes

What if many sites get multihomed ?

Scalability problem

PA: Provider Aggregatable addresses

The site receives a subset of its provider’s addressesOnly the provider announces its address set through BGPIf multihomed : The site receives several address blocks

Sebastien Barre Shim6: Multihoming for IPv6 20 / 54

Page 25: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA vs PI addresses

PI: Provider Independent addresses

The site announces its PI address set through BGPIf multihomed: multiple BGP annoucements

Global announcements of PI prefixes

What if many sites get multihomed ?

Scalability problem

PA: Provider Aggregatable addresses

The site receives a subset of its provider’s addressesOnly the provider announces its address set through BGPIf multihomed : The site receives several address blocks

Sebastien Barre Shim6: Multihoming for IPv6 20 / 54

Page 26: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA vs PI addresses

PI: Provider Independent addresses

The site announces its PI address set through BGPIf multihomed: multiple BGP annoucements

Global announcements of PI prefixes

What if many sites get multihomed ?

Scalability problem

PA: Provider Aggregatable addresses

The site receives a subset of its provider’s addressesOnly the provider announces its address set through BGPIf multihomed : The site receives several address blocks

Sebastien Barre Shim6: Multihoming for IPv6 20 / 54

Page 27: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA vs PI addresses

PI: Provider Independent addresses

The site announces its PI address set through BGPIf multihomed: multiple BGP annoucements

Global announcements of PI prefixes

What if many sites get multihomed ?

Scalability problem

PA: Provider Aggregatable addresses

The site receives a subset of its provider’s addressesOnly the provider announces its address set through BGPIf multihomed : The site receives several address blocks

Sebastien Barre Shim6: Multihoming for IPv6 20 / 54

Page 28: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA vs PI addresses

PI: Provider Independent addresses

The site announces its PI address set through BGPIf multihomed: multiple BGP annoucements

Global announcements of PI prefixes

What if many sites get multihomed ?

Scalability problem

PA: Provider Aggregatable addresses

The site receives a subset of its provider’s addressesOnly the provider announces its address set through BGPIf multihomed : The site receives several address blocks

Sebastien Barre Shim6: Multihoming for IPv6 20 / 54

Page 29: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA vs PI addresses

PI: Provider Independent addresses

The site announces its PI address set through BGPIf multihomed: multiple BGP annoucements

Global announcements of PI prefixes

What if many sites get multihomed ?

Scalability problem

PA: Provider Aggregatable addresses

The site receives a subset of its provider’s addressesOnly the provider announces its address set through BGPIf multihomed : The site receives several address blocks

Sebastien Barre Shim6: Multihoming for IPv6 20 / 54

Page 30: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

More about PA - Reminder: IPv4 PA

Sebastien Barre Shim6: Multihoming for IPv6 21 / 54

Page 31: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

More about PA - And so... IPv6 PA ?

Sebastien Barre Shim6: Multihoming for IPv6 22 / 54

Page 32: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

More about PA - And so... IPv6 PA ?

Sebastien Barre Shim6: Multihoming for IPv6 22 / 54

Page 33: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

More about PA - And so... IPv6 PA ?

Sebastien Barre Shim6: Multihoming for IPv6 22 / 54

Page 34: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

The case of UCLouvain

Two providers, thus two global routing prefixes:

2001:6a8:3080: Provider is Belnet2001:6f8:31c: Provider is Easynet

Several subnetworks:

2: Staff3: Servers4: Experiments2001: Wifi staff

Sebastien Barre Shim6: Multihoming for IPv6 23 / 54

Page 35: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

A typical laptop in our department

Sebastien Barre Shim6: Multihoming for IPv6 24 / 54

Page 36: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

A typical laptop in our department

Sebastien Barre Shim6: Multihoming for IPv6 24 / 54

Page 37: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

A typical laptop in our department

Sebastien Barre Shim6: Multihoming for IPv6 24 / 54

Page 38: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

A typical laptop in our department

Sebastien Barre Shim6: Multihoming for IPv6 24 / 54

Page 39: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA implications

PA addresses reduce the load for the BGP system. . .

. . . But it pushes new responsibilities to the end systemFailover from one address to another working oneLoad balancing

Those are completely managed by the network in v4.

In v6, part is now managed by the end-systemWe need to upgrade the end-hosts !

Sebastien Barre Shim6: Multihoming for IPv6 25 / 54

Page 40: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA implications

PA addresses reduce the load for the BGP system. . .

. . . But it pushes new responsibilities to the end systemFailover from one address to another working oneLoad balancing

Those are completely managed by the network in v4.

In v6, part is now managed by the end-systemWe need to upgrade the end-hosts !

Sebastien Barre Shim6: Multihoming for IPv6 25 / 54

Page 41: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA implications

PA addresses reduce the load for the BGP system. . .

. . . But it pushes new responsibilities to the end systemFailover from one address to another working oneLoad balancing

Those are completely managed by the network in v4.

In v6, part is now managed by the end-systemWe need to upgrade the end-hosts !

Sebastien Barre Shim6: Multihoming for IPv6 25 / 54

Page 42: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA implications

PA addresses reduce the load for the BGP system. . .

. . . But it pushes new responsibilities to the end systemFailover from one address to another working oneLoad balancing

Those are completely managed by the network in v4.

In v6, part is now managed by the end-systemWe need to upgrade the end-hosts !

Sebastien Barre Shim6: Multihoming for IPv6 25 / 54

Page 43: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA implications

PA addresses reduce the load for the BGP system. . .

. . . But it pushes new responsibilities to the end systemFailover from one address to another working oneLoad balancing

Those are completely managed by the network in v4.

In v6, part is now managed by the end-systemWe need to upgrade the end-hosts !

Sebastien Barre Shim6: Multihoming for IPv6 25 / 54

Page 44: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Multihoming with IPv4Motivations for IPv6IPv6 addresses

PA implications

Sebastien Barre Shim6: Multihoming for IPv6 26 / 54

Page 45: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

1 Introduction

2 The Shim6 protocolShim6 operationThe REAP exploration protocolShim6: Security issues

3 LinShim6 implementation for Linux

4 Conclusion

Sebastien Barre Shim6: Multihoming for IPv6 27 / 54

Page 46: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

End-host upgrade: the problem

Current applications assume one <src,dest> address pair for agiven communication

They also assume that the network ensures failover if aproblem happens somewhere.

How to manage failover in the end-host without

changing applications ?

Sebastien Barre Shim6: Multihoming for IPv6 28 / 54

Page 47: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

End-host upgrade: the problem

Current applications assume one <src,dest> address pair for agiven communication

They also assume that the network ensures failover if aproblem happens somewhere.

How to manage failover in the end-host without

changing applications ?

Sebastien Barre Shim6: Multihoming for IPv6 28 / 54

Page 48: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

End-host upgrade: How to do it ?

To detect failures: Monitor the communications

To switch to a working path: Change the current address pair

Sebastien Barre Shim6: Multihoming for IPv6 29 / 54

Page 49: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

End-host upgrade: a solution ?

Sebastien Barre Shim6: Multihoming for IPv6 30 / 54

Page 50: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

End-host upgrade: a solution ?

Sebastien Barre Shim6: Multihoming for IPv6 30 / 54

Page 51: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Why ?

An IP address has currently a double semantics: Locator andIdentifier

Locator: The IP address is used to forward the packet towardsits destination.

Changing the IP address has the effect of changing thepath.Identifier: The IP address is used as part of the TCP contextidentifier

Changing the IP address has the effect of breaking

TCP connexions

Sebastien Barre Shim6: Multihoming for IPv6 31 / 54

Page 52: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Why ?

An IP address has currently a double semantics: Locator andIdentifier

Locator: The IP address is used to forward the packet towardsits destination.

Changing the IP address has the effect of changing thepath.Identifier: The IP address is used as part of the TCP contextidentifier

Changing the IP address has the effect of breaking

TCP connexions

Sebastien Barre Shim6: Multihoming for IPv6 31 / 54

Page 53: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Why ?

An IP address has currently a double semantics: Locator andIdentifier

Locator: The IP address is used to forward the packet towardsits destination.

Changing the IP address has the effect of changing thepath.Identifier: The IP address is used as part of the TCP contextidentifier

Changing the IP address has the effect of breaking

TCP connexions

Sebastien Barre Shim6: Multihoming for IPv6 31 / 54

Page 54: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

The Shim6 proposal

Separate the two semantics

The transport and application layer see an identifier

The network and data link layer see a locator.

A new Shim layer rewrites identifiers to replace them withlocators

The same Shim layer rewrites locators to replace them withidentifiers

Sebastien Barre Shim6: Multihoming for IPv6 32 / 54

Page 55: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

The Shim6 proposal

Separate the two semantics

The transport and application layer see an identifier

The network and data link layer see a locator.

A new Shim layer rewrites identifiers to replace them withlocators

The same Shim layer rewrites locators to replace them withidentifiers

Sebastien Barre Shim6: Multihoming for IPv6 32 / 54

Page 56: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

The Shim6 proposal

Separate the two semantics

The transport and application layer see an identifier

The network and data link layer see a locator.

A new Shim layer rewrites identifiers to replace them withlocators

The same Shim layer rewrites locators to replace them withidentifiers

Sebastien Barre Shim6: Multihoming for IPv6 32 / 54

Page 57: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

The Shim6 proposal

Separate the two semantics

The transport and application layer see an identifier

The network and data link layer see a locator.

A new Shim layer rewrites identifiers to replace them withlocators

The same Shim layer rewrites locators to replace them withidentifiers

Sebastien Barre Shim6: Multihoming for IPv6 32 / 54

Page 58: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

The Shim6 proposal

Separate the two semantics

The transport and application layer see an identifier

The network and data link layer see a locator.

A new Shim layer rewrites identifiers to replace them withlocators

The same Shim layer rewrites locators to replace them withidentifiers

Sebastien Barre Shim6: Multihoming for IPv6 32 / 54

Page 59: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Locators vs Identifiers (ULIDs)

Application

Transport

Network

Physical

Datalink

IP address = identifier(ULID)

IP address = locator

ULPsIP : Endpoint functions

SHIM

IP : Routing functions

Sebastien Barre Shim6: Multihoming for IPv6 33 / 54

Page 60: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Locators vs Identifiers (ULIDs)

Application

Transport

Network

Physical

Datalink

IP : Endpoint functions

IP : Routing functions IP address = locator

IP address = identifier(ULID)ULPs

SHIM

Sebastien Barre Shim6: Multihoming for IPv6 33 / 54

Page 61: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Locators vs Identifiers (ULIDs)

Application

Transport

Network

Physical

Datalink

IP : Endpoint functions

IP : Routing functions

ULPs

SHIM

IP address = identifier

IP address = locator

(ULID)

Sebastien Barre Shim6: Multihoming for IPv6 33 / 54

Page 62: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

1 Introduction

2 The Shim6 protocolShim6 operationThe REAP exploration protocolShim6: Security issues

3 LinShim6 implementation for Linux

4 Conclusion

Sebastien Barre Shim6: Multihoming for IPv6 34 / 54

Page 63: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Shim6 operation

Sebastien Barre Shim6: Multihoming for IPv6 35 / 54

Page 64: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Shim6 operation

Sebastien Barre Shim6: Multihoming for IPv6 35 / 54

Page 65: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Shim6 operation

Sebastien Barre Shim6: Multihoming for IPv6 35 / 54

Page 66: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Shim6 operation

Sebastien Barre Shim6: Multihoming for IPv6 35 / 54

Page 67: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Shim6 operation

Sebastien Barre Shim6: Multihoming for IPv6 35 / 54

Page 68: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Shim6 operation

Sebastien Barre Shim6: Multihoming for IPv6 35 / 54

Page 69: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

REAP operation

Sebastien Barre Shim6: Multihoming for IPv6 36 / 54

Page 70: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

REAP operation

Sebastien Barre Shim6: Multihoming for IPv6 36 / 54

Page 71: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

REAP operation

Sebastien Barre Shim6: Multihoming for IPv6 36 / 54

Page 72: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

REAP operation

Sebastien Barre Shim6: Multihoming for IPv6 36 / 54

Page 73: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

REAP operation

Sebastien Barre Shim6: Multihoming for IPv6 36 / 54

Page 74: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

TCP connection survival

recoveryfailureREAP

0

10

20

30

40

50

60

0 10 20 30 40 50 60

Thr

ough

put (

Mbi

ts/s

ec)

time (seconds)

Path 2 usedPath 1 used

Figure: Evolution of throughput for an iperf TCP session

Sebastien Barre Shim6: Multihoming for IPv6 37 / 54

Page 75: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

1 Introduction

2 The Shim6 protocolShim6 operationThe REAP exploration protocolShim6: Security issues

3 LinShim6 implementation for Linux

4 Conclusion

Sebastien Barre Shim6: Multihoming for IPv6 38 / 54

Page 76: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

New solutions - new problems: the time shifting attack

Sebastien Barre Shim6: Multihoming for IPv6 39 / 54

Page 77: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

How to avoid that ?

Sign the message with a private key

Put the public key in the message

The receiver verifies the signature thanks to the providedpublic key.

How to ensure that the public key isnot replaced by the attacker ?

Sebastien Barre Shim6: Multihoming for IPv6 40 / 54

Page 78: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

How to avoid that ?

Sign the message with a private key

Put the public key in the message

The receiver verifies the signature thanks to the providedpublic key.

How to ensure that the public key isnot replaced by the attacker ?

Sebastien Barre Shim6: Multihoming for IPv6 40 / 54

Page 79: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

How to avoid that ?

Sign the message with a private key

Put the public key in the message

The receiver verifies the signature thanks to the providedpublic key.

How to ensure that the public key isnot replaced by the attacker ?

Sebastien Barre Shim6: Multihoming for IPv6 40 / 54

Page 80: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

How to avoid that ?

Sign the message with a private key

Put the public key in the message

The receiver verifies the signature thanks to the providedpublic key.

How to ensure that the public key isnot replaced by the attacker ?

Sebastien Barre Shim6: Multihoming for IPv6 40 / 54

Page 81: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

How to ensure public key authenticity ?

Classical solution: Use a certificate, signed by a trustedthird-party

We cannot give a certificate to everyone in the Internet !

We have long addresses anyway: let’s embed the public keyinside the address. . .

Sebastien Barre Shim6: Multihoming for IPv6 41 / 54

Page 82: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

How to ensure public key authenticity ?

Classical solution: Use a certificate, signed by a trustedthird-party

We cannot give a certificate to everyone in the Internet !

We have long addresses anyway: let’s embed the public keyinside the address. . .

Sebastien Barre Shim6: Multihoming for IPv6 41 / 54

Page 83: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Cryptographically Generated Addresses (CGAs)

A first proposal:

Sebastien Barre Shim6: Multihoming for IPv6 42 / 54

Page 84: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Cryptographically Generated Addresses (CGAs)

59 bits is too short a hash to ensure that it won’t be broken.

Solution: artificially extend the hash length

Compute a second hash, with an additional input calledmodifier

Require that n bits be 0 in the resultincrement the modifier and retry the hash computation until n

bits are zeroBrute-force attack of our own address...But we are O(259) in advance over our attacker !

Sebastien Barre Shim6: Multihoming for IPv6 43 / 54

Page 85: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Cryptographically Generated Addresses (CGAs)

59 bits is too short a hash to ensure that it won’t be broken.

Solution: artificially extend the hash length

Compute a second hash, with an additional input calledmodifier

Require that n bits be 0 in the resultincrement the modifier and retry the hash computation until n

bits are zeroBrute-force attack of our own address...But we are O(259) in advance over our attacker !

Sebastien Barre Shim6: Multihoming for IPv6 43 / 54

Page 86: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Cryptographically Generated Addresses (CGAs)

Sebastien Barre Shim6: Multihoming for IPv6 44 / 54

Page 87: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Cryptographically Generated Addresses (CGAs): the cost

Generation (owner): O(216∗sec )

Breaking the address (attacker): O(259+16∗sec )

Verification (receiver): O(1)Two hash computations

Sebastien Barre Shim6: Multihoming for IPv6 45 / 54

Page 88: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

Hash Based Addresses

Similar to CGA addresses, but lighter.

Same input as for CGAs

Public key is a random number

Extension field is the list of prefixes.

No signature needed, addresses validated by the fact that theyare all bound together.

Sebastien Barre Shim6: Multihoming for IPv6 46 / 54

Page 89: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

HBA vs CGA

CGA is computationnally more expensive (key generation,signature).

But HBA does not allow adding addresses later

All prefixes are included in the hashAdding one prefix results in changing all addresses

Tradeoff: CGA-compatible HBAs

A public key is used for generation, but the multi-prefixextension is includedInitial address set is announced through HBAAdditional addresses can be generated and announced usingCGA.

Sebastien Barre Shim6: Multihoming for IPv6 47 / 54

Page 90: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 operationThe REAP exploration protocolShim6: Security issues

HBA vs CGA: efficiency

0

1

2

3

4

5

6

7

8

nosechba hbacompat

cga-512 bits

cga-1024 bits

cga-2048 bits

Neg

oti

ati

on

tim

e (

ms)

Comparison of security mechanisms

2 addresses5 addresses

10 addresses

Sebastien Barre Shim6: Multihoming for IPv6 48 / 54

Page 91: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

1 Introduction

2 The Shim6 protocol

3 LinShim6 implementation for Linux

4 Conclusion

Sebastien Barre Shim6: Multihoming for IPv6 49 / 54

Page 92: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Want to play ?

LinShim6 can be downloaded athttp://inl.info.ucl.ac.be/LinShim6

Currently the implementation that best supports thespecification

Allows using CGA/HBA/CGA-compat HBAs.

Can be easily installed in Ubuntu thanks to .deb packages.

No special configuration needed (except for special purposes).

Sebastien Barre Shim6: Multihoming for IPv6 50 / 54

Page 93: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

1 Introduction

2 The Shim6 protocol

3 LinShim6 implementation for Linux

4 Conclusion

Sebastien Barre Shim6: Multihoming for IPv6 51 / 54

Page 94: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 challenges

Bootstrap problem: both ends need to support Shim6 in orderto get any benefit

If you install Shim6 now, almost no peer will know about it. . .But if it gets installed in standard distributions, the wholeworld would have it at once.

Load balancing: The end-host is now responsible for part of it.How to give control back to the network ?

Use a central server that hints the end-hosts ? (IDIPS)Allow routers to re-rewrite Shim6 packets to enforce networkpolicy ?

Sebastien Barre Shim6: Multihoming for IPv6 52 / 54

Page 95: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Shim6 challenges

Renumbering: All ongoing communications are broken in caseof renumbering

We would probably need a separate identifier space to solvethat.

Transport level multipath: Extending Shim6 to make it a pathmanager for transport protocols ?

Mobility: To be investigated

Sebastien Barre Shim6: Multihoming for IPv6 53 / 54

Page 96: Shim6: Multihoming for IPv6 - UCLouvain · PDF fileIntroduction The Shim6 protocol LinShim6 implementation for Linux Conclusion Shim6: Multihoming for IPv6 S´ebastien Barr´e Universit´e

IntroductionThe Shim6 protocol

LinShim6 implementation for LinuxConclusion

Questions ?

Sebastien Barre Shim6: Multihoming for IPv6 54 / 54