21
OpenAFS’ Road to IPv6 Andrew Deason Sine Nomine Associates European AFS & Kerberos Conference 2014

OpenAFS ’ Road to IPv6

  • Upload
    diep

  • View
    57

  • Download
    0

Embed Size (px)

DESCRIPTION

OpenAFS ’ Road to IPv6. Andrew Deason Sine Nomine Associates European AFS & Kerberos Conference 2014. It’s not as hard as it sounds!. Trimming down tasks. Varying levels of “need to do” Debug interfaces, optional features, … Varying levels of difficulty - PowerPoint PPT Presentation

Citation preview

Page 1: OpenAFS ’ Road to IPv6

OpenAFS’ Road to IPv6

Andrew DeasonSine Nomine AssociatesEuropean AFS & Kerberos Conference 2014

Page 2: OpenAFS ’ Road to IPv6

2

It’s not as hard as it sounds!

Page 3: OpenAFS ’ Road to IPv6

3

Trimming down tasks

• Varying levels of “need to do”– Debug interfaces, optional features,

…• Varying levels of difficulty

– Design vs “just replace v4 addr with v6”

• Varying levels of stability– Standards vs internal

Page 4: OpenAFS ’ Road to IPv6

4

General plan

• First, just focus on basic client and server, assume v4/v6

• Then, all of the “we can test” sites can test

• Now we have momentum for everything else

Page 5: OpenAFS ’ Road to IPv6

5

IPv6 Tasks

XDR addr type

VLDB formatVL_GetAddrsU

sockaddr

Internal ubik RPCs

VL_RegisterAddrs

RXAFS_FlushCPS

Host ACLs

RXAFSCB_TMAY

VL_ admin RPCs

Local configs

fs commands

AFSVol_ admin RPCs

Debug interfaces

Ubik GetSyncSite

ICMP errors

Page 6: OpenAFS ’ Road to IPv6

6

“Less necessary” Tasks

• Only do what we need for a client to access files in AFS

• Some obviously optional– AFSCB_TMAY, just get rid of addresses

• Some helpful, but not required

Page 7: OpenAFS ’ Road to IPv6

7

IPv6 Tasks (less necessary)

XDR addr type

VLDB formatVL_GetAddrsU

sockaddr

Internal ubik RPCs

VL_RegisterAddrs

RXAFS_FlushCPS

Host ACLs

RXAFSCB_TMAY

VL_ admin RPCs

Local configs

fs commands

AFSVol_ admin RPCs

Debug interfaces

Ubik GetSyncSite

ICMP errors

Page 8: OpenAFS ’ Road to IPv6

8

“v4/v6 servers”

• Assume all servers have at least one ipv4 address

• Simplifies many administrative RPCs

• “okay” for existing sites, maybe not for new sites

Page 9: OpenAFS ’ Road to IPv6

9

IPv6 Tasks (v4/v6 servers)

XDR addr type

VLDB formatVL_GetAddrsU

sockaddr

Internal ubik RPCs

VL_RegisterAddrs

RXAFS_FlushCPS

Host ACLs

RXAFSCB_TMAY

VL_ admin RPCs

Local configs

fs commands

AFSVol_ admin RPCs

Debug interfaces

Ubik GetSyncSite

ICMP errors

Page 10: OpenAFS ’ Road to IPv6

10

IPv6 Tasks (easy/consensus)

XDR sockaddr

VLDB formatVL_GetAddrsU

sockaddr

Internal ubik RPCs

VL_RegisterAddrs

RXAFS_FlushCPS

Host ACLs

RXAFSCB_TMAY

VL_ admin RPCs

Local configs

fs commands

AFSVol_ admin RPCs

Debug interfaces

Ubik GetSyncSite

ICMP errors

Page 11: OpenAFS ’ Road to IPv6

11

IPv6 Tasks (no standards)

XDR sockaddr

VLDB formatVL_GetAddrsU

sockaddr

Internal ubik RPCs

VL_RegisterAddrs

RXAFS_FlushCPS

Host ACLs

RXAFSCB_TMAY

VL_ admin RPCs

Local configs

fs commands

AFSVol_ admin RPCs

Debug interfaces

Ubik GetSyncSite

ICMP errors

Page 12: OpenAFS ’ Road to IPv6

12

IPv6 Tasks

• “Easy” doesn’t mean “trivial”

• Many tasks have at least 3 solutions:– The “wrong” way (kluges)– The “right” way– The practical way (middle ground)

Page 13: OpenAFS ’ Road to IPv6

13

RPCs

• Prereq: ext-union

• draft-keiser-afs3-xdr-union-06

• General agreement, but needs implementation

Page 14: OpenAFS ’ Road to IPv6

14

RPCs

• XDR sockaddr– Wrong: opaque[16]– Right: nested ext-union– Practical: ext-union

• RPCs– Wrong: opaque[16]– Right: special vector types– Practical: arrays of the XDR sockaddr

Page 15: OpenAFS ’ Road to IPv6

15

sockaddr

• Wrong: 128-bit storage• Right/Practical: sockaddr or new

struct• Usually “easy” but tedious• Tedious• Tedious

Page 16: OpenAFS ’ Road to IPv6

16

VLDB

• Wrong: stuff v6 addrs in existing v4

• Right: completely new db

• Practical: new address records in extent blocks

Page 17: OpenAFS ’ Road to IPv6

17

Extent blocks

vlentry

vlentry

vlentry

extent block

MH

MH

MH

Page 18: OpenAFS ’ Road to IPv6

18

Extent blocks

• Currently for MH (multi-homed) records

• Unreferenced data is ignored– …as long as we VLCONTBLOCK

• Anything at all can go in here

Page 19: OpenAFS ’ Road to IPv6

19

Extent blocks

• Add any new arbitrary data, and existing vlservers don’t break

• Entire new db, broken up by 8k blocks

• Speed not critical

Page 20: OpenAFS ’ Road to IPv6

20

Extent blocks

• What to put in them? XDR addrs– Or opaque[16]s if you want to be

“wrong”

• Maybe more extensible/arbitrary server data

• One block per server

Page 21: OpenAFS ’ Road to IPv6

21

Beyond

• With that done, move on to v6-only

• Debugging, may be useful during dev– rxdebug, maybe temporary solution

• Optional features as needed