Remote Prefix Registration

advertisement
Remote Prefix Registration
Draft 1. October 17, 2014
Alex Afanasyev
Yanbiao Li
1
Objectives
• Register “back-route(s)” on remote hub
– apps own the registered prefix(es)
• NDN Testbed certificate delegates ownership for namespace
– register only when necessary
• at least one local app expects Interests
• there is a connectivity to access router/gateway
– re-register if failed
• re-register if do not receive the success notification from the remote hub.
• “Back-route(s)” should be maintained
– remote hubs keep only soft state for
• remote face
• remote registration (?)
• Process should be transparent for apps
– apps register only with local NRD
– when necessary, registrations further “propagate”
2
Overview diagram
/localhop/nfd/nrd/register/…
Remote NFD/NRD
register: /ndn/prefix
signed: /ndn/prefix/KEY/nrd/...
Local NFD/NRD
/localhost/nfd/rib/register/…
register: /ndn/prefix/app1
signed: /ndn/prefix/KEY/app1/...
App
register: /ndn/prefix/app2
signed: /ndn/prefix/KEY/...
App
register: /ndn/prefix/app3
signed: /ndn/prefix/app2/KEY/...
App
3
Requirements
• local NRD
– owns a set of keys/certificates, delegated from user namespace
• key can be restricted/scoped for NRD operations only
– /<...>/KEY/<...>/nrd/<dsk-id>/ID-CERT
• /ndn/edu/ucla/KEY/cs/afanasev/nrd/dsk-1/ID-CERT
• /ndn/edu/ucla/cs/afanasev/KEY/chronochat/nrd/dsk-1/ID-CERT
• /ndn/guest/KEY/cawka1@gmail.com/nrd/dsk-2/ID-CERT
• remote NRD
– allow /localhop registrations with proper trust model
– allow registrations for set of prefixes
• /ndn/edu/ucla
• /ndn/guest
Will be implemented in
phase 2.
In phase 1, remote NRDs
will process all
registrations
4
Remote registration processing on
local NRD
• after any prefix registration for prefix <P>
– if “/localhost”.isPrefixOf(<P>) or no connection to gateway hub
• stop
– (keys, namespaces) <- enumerate keys NRD owns
• each key defines “namespace” it uses
• we define the following convention:
– key: /<..1..>/KEY/<..2..>/nrd/<dsk-id>/ID-CERT
– namespace: /<..1..>/<..2..>
– (<KEY>, <PREFIX>) <- longest prefix match on key namespaces for <P>
• if nothing found, stop
– if <PREIFX> already registered
• stop
– send localhop registration for <PREFIX>
• sign with <KEY>
– schedule registration refresh for <PREFIX>
• add <PREFIX> to the registered prefix set
5
Checking whether connected to hub
• We will rely on naming convention
• /localhop/<site>/nfd
– /localhop/nfd
– /localhop/ndn/edu/ucla/nfd
– /localhop/org/caida/nfd
• If “/localhop/<site>/nfd” route exists in RIB, then we are connected
to one or more hubs
– phase 1: only /localhop/nfd
• only one hub or requires broadcast strategy
– phase 2: all variants
• explicit name of the hub in the name
• Entries registered
– automatically with ndn-autoconfig
– manually
Sending remote registration
• For each found /localhop/<site>/nfd entry
– if registration for prefix <P> is in progress for
localhop entry <E>
• stop
– send /localhop/<site>/nfd/rib/register/...
– if error or timeout (4s), retry
• max 5 retries (configurable parameter)
• Only /localhop/nfd in phase 1
How remote registered prefix should be
maintained?
• Soft state on remote hub needs to be refreshed
– short-term: re-register periodically (on-demand face timeout * 90%)
– long-term: keep-alive + periodic face/rib query
• When connectivity changes, remote registered prefix should be
refreshed
– USR1 signal will be sent by an external tool
– NRD should process USR1 signal and refresh all previously remotely
registered prefixes
• When all local apps stops, remotely registered prefix should be
unregistered
– unregister and face destroy should trigger clean up processing
8
Cleanup processing on local NRD
• after localhost unregister for prefix <P> or and face
destroy (local application stopped)
– if “/localhost”.isPrefixOf(<P>)
• stop
– for each registered prefix <PREFIX> in the registered
prefix list
• find RIB entry that has prefix <PREFIX>
• if entry not found
– unregister <PREFIX>
– cancel refresh events
– remove from the registered list
9
Download