IP Address Autoconfiguration for Ad Hoc Networks
Download
Report
Transcript IP Address Autoconfiguration for Ad Hoc Networks
IP Address Autoconfiguration for
Ad Hoc Networks
Presented by
William List
References
[1] “IP Address Autoconfiguration for Ad Hoc
Networks” (work in progress) draft-ietf-manetautoconf-01.txt, November 2001
[2] “IPv6 Stateless Autoconfiguration” RFC
1971, December 1998
[3] “Dynamic Configuration of IPv4 Link-Local
Addresses” (work in progress) draft-ietfzeroconf-ipv4-linklocal-07.txt, August 2002
Problem
Methods for IP address autoconfiguration on a
fixed network assume that an address is
unique for a single link [2,3]
In an ad hoc network, a mobile node’s IP
address must be unique across several links,
or hops [1].
–
Need to be able to perform Duplicate Address
Detection (DAD) within the ad hoc cloud
Solution
IPv4
–
–
Select an address
Use two new ICMP packets to check for duplicates
AREQ and AREP
IPv6
–
–
Select an address
Use two modified NDP messages to check for
duplicates
AREQ and AREP (Solicitation and Advertisement)
Selecting an Address (IPv4)
Divide 169.254/16 network into ranges
–
–
Select a tentative address from the first range
Select a temporary address from the second range
Using the temporary address
–
–
–
Broadcast an ICMP AREQ message
The tentative address is placed in the Requested
IPv4 Address field
Set ADDRESS_DISCOVERY timer
IPv4 Address Request and Reply
Address Request
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Type
|
Reserved
|
+---------------+---------------+---------------+---------------+
|
Originator’s IPv4 Address
|
+-------------------------------+-------------------------------+
|
Requested IPv4 Address
|
+-------------------------------+-------------------------------+
Address Response
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Type
|
Reserved
|
+---------------+---------------+---------------+---------------+
|
Requested IPv4 Address
|
+-------------------------------+-------------------------------+
Processing AREQs
Previously processed requests are discarded
Create reverse routing entry using the
temporary address
If Own IP address = Requested address
–
Send a AREP
Else
–
Rebroadcast AREQ to neighbors
Processing AREPs
If an AREP is received, the address is a
duplicate
–
Pick a new address and try again
If no AREP is heard before timeout
–
–
Try again for AREQ_RETRIES times
If no response, then the address is unique in the ad
hoc network
Drawbacks
Must include handling code for new ICMP
message type
How long to wait for replies?
Network partitioning and joining
Selecting an Address (IPv6)
Cannot use link-local prefixes
–
If no other prefix is available
–
Use MANET_PREFIX + EUI 64 identifier
Generate a temporary address for AREQAREP exchange
–
Multiple hops in an ad hoc network
Use MANET_INITIAL_PREFIX
Broadcast AREQ to all-nodes mcast address
IPv6 Address Request and Reply
Address Request
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Type
|
Code
|
Checksum
|
+---------------+---------------+---------------+---------------+
|M|
Reserved
|
+-------------------------------+-------------------------------+
|
Requested IPv6 Address
|
+
Address Response
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Type
|
Code
|
Checksum
|
+---------------+---------------+---------------+---------------+
|R|S|O|M|
Reserved
|
+-------------------------------+-------------------------------+
|
Requested IPv6 Address
|
+
Processing AREQs
Same rules as for IPv4
Send AREP AREP_ADDRESS_RETRIES
times to increase robustness
Can be returned to the source using link-local
address if necessary
Processing AREPs
If AREP is received, interface must be disabled
–
Manual configuration necessary
No response heard
–
–
IP address is valid
Other prefixes can be discovered using special
gateways (next week!)