Download - OpenAFS ’ Road to IPv6
![Page 1: OpenAFS ’ Road to IPv6](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/1.jpg)
OpenAFS’ Road to IPv6
Andrew DeasonSine Nomine AssociatesEuropean AFS & Kerberos Conference 2014
![Page 2: OpenAFS ’ Road to IPv6](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/2.jpg)
2
It’s not as hard as it sounds!
![Page 3: OpenAFS ’ Road to IPv6](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/13.jpg)
13
RPCs
• Prereq: ext-union
• draft-keiser-afs3-xdr-union-06
• General agreement, but needs implementation
![Page 14: OpenAFS ’ Road to IPv6](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/15.jpg)
15
sockaddr
• Wrong: 128-bit storage• Right/Practical: sockaddr or new
struct• Usually “easy” but tedious• Tedious• Tedious
![Page 16: OpenAFS ’ Road to IPv6](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/17.jpg)
17
Extent blocks
vlentry
vlentry
vlentry
extent block
MH
MH
MH
![Page 18: OpenAFS ’ Road to IPv6](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022051218/56815eb8550346895dcd3c44/html5/thumbnails/21.jpg)
21
Beyond
• With that done, move on to v6-only
• Debugging, may be useful during dev– rxdebug, maybe temporary solution
• Optional features as needed