Dibbler – a portable Dynamic Host Configuration for IPv6 implementation
Tomasz MrugalskiGdansk University of Technology, Poland
June 2005
2
Agenda
• IPv6 autoconfiguration: stateless vs stateful• DHCPv6 standarization process• Implementations• Dibbler
– Design goals– Features– Areas of development
• Q&A
3
IPv6 autoconfiguration (1)
• Stateless autoconfiguration– Link-local addresses– Global addresses (Router Advertisements)– Lack of per host customisation – Does not support any additional parameters– Not sufficient for end users (DNS)
4
IPv6 autoconfiguration (2)
• Statefull autoconfiguration (DHCPv6)– Additional parameters configuration (e.g. DNS) – Global address assignment– Provides network status for administrators
5
Standarization process (1)
• Long standarization process – Largest number of draft revisions (28) in IETF history
• Already finished:– RFC3315: DHCPv6 (June 2003)
– RFC3319: SIP-related parameters (July 2003)
– RFC3633: Prefix delegation parameters (Dec. 2003)
– RFC3646: DNS-related parameters (Dec. 2003)
– RFC3736: Stateless DHCPv6 (April 2004)
– RFC3898: NIS-related parameters (Oct. 2004)
– RFC4075: NTP-related parameters (May 2005)
– RFC4076: Renumbering in stateless DHCPv6 (May 2005)
6
Standarization process (2)
• Work in progress:– Information refreshing (draft 3)
– FQDN/DNS Updates (draft 2)
– Service oriented address assignment (draft 1)
– …
7
Implementations
• Linux: Sourceforge• Windows: none• BSD: Kame• Cisco: Prefix Delegation/Relays only• HP-UX: proprietary• NEC: proprietary
8
Implementations
• Linux: Sourceforge• Windows: none• BSD: Kame• Cisco: Prefix Delegation/Relays only• HP-UX: proprietary• NEC: proprietary
Dibbler
9
Dibbler :: Design assumptions (1)
• Extensive server configuration– Preferences, multiple classes on one interface, address-client
reservation, white-list, black-list, numerous options etc.
• Zero client konfiguration – out-of-the-box (quick install)
• Non-mandatory client configuration– For experienced/more demanding users
• Portability– 2 layers: logic (C++), low-level functions (C)– Currently: Windows XP/2003, Linux 2.4/2.6– Porting to other systems requires reimplementation of small
number of low level functions
10
Dibbler :: Design assumptions (2)
• Clean architecture
– Object-oriented
– Easily extended
• Extensibility – Additonal options
– Data is dumped in XML (scripts,stats)
• Open source– Free (as in freedom, not as in beer)
– Sources available
– GNU GPL licence
11
Dibbler :: Features (1)
client server
• Server discovery• Address/addresses grant• Address renewal• Duplicate Address Detection (DAD)• Rapid-commit• Unicast communication• Options renewal
12
Dibbler :: Features (2)
client
server 1
• Multiple server support– Redundancy– Client chooses best server– Retrieving options from multiple servers
server 2
13
Dibbler :: Features (3)
client serverrelay
• Relay support– Server supports multiple links (local and remote)– Central administration
14
Dibbler :: Features (3)
client serverrelay 1 relay 2
• Cascaded relays support– Up to 32 relays– Great scalability
15
Dibbler :: Features (4)
• DNS servers configuration• Domain configuration• NTP servers configuration• Timezone configuration• SIP-related parameters configuration• NIS, NIS+ parameters configuration• Options renewal
16
Dibbler :: Proposed extensions (1)
clientserver
• Fully Qualified Domain Name– Who should perform DNS Update: Server or Client?– draft-ietf-dhc-dhcpv6-fqdn-02.txt
• Missing option: No update– Retrieve full name, do not update DNS (e.g. for logging purposes only)
FQDN
DNS server
update update
17
Dibbler :: Proposed extensions (2)
thin/embedded client server
• Startup:– Download kernel– Start system– Mount remote file system
18
Dibbler :: Status of the project• Increasing feedback
– Poland, Germany, Chech Republic, France, Spain, USA, China, Malaysia, Canada, Taiwan, Switzerland, Turkey, India
• Users have ported Dibbler to various architectures– x86, x86_64, amd64, Sparc, PowerPC, Alpha
– mipsel (embedded system, LinkSys wireless router WRT54)
• Over 2 years of development
• Team:– 2 people (2003, 3 months)
– 1 person (2003-2005)
– 2 new people expected in Q4 2005
• No budget
19
Dibbler :: Download count
0
100
200
300
400
500
600
700
800
900
03-1
1
03-1
2
04-0
1
04-0
2
04-0
3
04-0
4
04-0
5
04-0
6
04-0
7
04-0
8
04-0
9
04-1
0
04-1
1
04-1
2
05-0
1
05-0
2
05-0
3
05-0
4
05-0
5
•Spikes in Nov. 2004, Jan. 2005 and April 2005- Correlates with 0.3.0, 0.3.1 and 0.4.0 release dates
20
Dibbler :: Areas of development• Support for remaining features
– DNS Updates– Authorization– Prefix delegation
• New parameter proposal– FQDN/DNS Updates improvement– Boot parameters for embedded devices
• Migration from project to product– Extensive documentation– Predictable releases– Bug tracking system– User support
• Better test methods– TAHI validation tool– ANVL conformance test environment by IXIA– Interoperability testing