SlideShare a Scribd company logo
To setup the simplest IPv6 network you just have to boot up a host or two with a IPv6 enabled
operating system such as Ubuntu. Open a terminal and type:
"ip -6 address list"
You should see output similar to the following:
1
2
3
4
5
6
1: lo: mtu 65536
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500
qlen 1000 inet6 fe80::922b:34ff:fe7b:6ff1/64 scope link
valid_lft forever preferred_lft forever,multicast,up,lower_up>,up,lower_up>
IPv6 link local addresses have been assigned automatically to any interfaces that you have. The
IPv6 localhost address (IPv4 127.0.0.1) is ::1/128. You can do the same on another host to gets it
IPv6 link local address and then do a IPv6 ping with "ping6" - note the 6.
1
ping6 fe80::922b:34ff:fe7b:6ff1
The fe80::/64 network prefix is the link local network as explained in the table above. It should
be the only IPv6 network address you will see across different physical networks. In fact every
host on an IPv6 network must have an link local address (fe80::/64).
Host Identifier Generation
The host identifier portion of the link local address, the remaining 64 bits, is generated from the
mac address with a algorithm applied to extend the 48 bit mac address to the 64 bit host address
required for IPv6. See EUI64 for the algorithm used. The host identifier may also be manually
assigned by the system administrator. This introduces the risk of duplicate IP addresses being
assigned, so IPv6 has a duplicate address detection protocol that allows hosts to determine if
there is a conflict before assigning itself an address.
IPv6 configuration is done using layer 3 (network layer) protocols and not layer 2 (media layer
eg. Ethernet) as with IPv4; so a valid IPv6 address is required before any additional
configuration can be done. Of couese it also allows for zero config simple networks.
Steps to Configure the Router Advertisement Service
The advertisement service can run on any Linux box, but that box will become the default route
for IPv6 traffic. In future your ADSL router will provide router advertisement services. First
assign the Linux box a static IPv6 address from the ULA network: (In the examples that follow I
use the fd5f:12c9:2201::/48 ULA routing prefix and I have chosen fd5f:12c9:2201:1::/64 as the
network prefix. (ie :1 is the subnet id).
Configure a static IPv6 on Ubuntu
1
sudo vi /etc/network/interfaces
1
2
3
4
5
6
7
auto eth0
iface eth0 inet6 static
address fd5d:12c9:2201:1::1
netmask 64
autoconf 0
dad-attempts 0
accept_ra 0
Now we need to install the router advertisement service:
Router Advertisement Daemon Configuration
sudo apt-get install radvd
vi /etc/radvd.conf
1
2
3
4
5
6
7
8
9
10
11
interface eth0
{
AdvSendAdvert on;
prefix fd5d:12c9:2201:1::1/64 {
AdvOnLink on;
AdvAutonomous on;
};
#Send DNS Server setting - assumes there is a DNS server setup at the address below
RDNSS fd5d:12c9:2201:1::2{
};
};
Restart the service and then on a client restart the network. You should see two IPv6 address on
your network card.
1
ip -6 address list
You can ping the router with the ping6 utility:
"ping6 fd5d:12c9:2201:1::1" if this doesn't work try "ping6 fd5d:12c9:2201:1::1 -I eth0" ->
Use the interface with the assigned IPv6 address. We will cover DNS and IPv6 in the net section.
Congratulations you have an IPv6 network up and running! If your router is multi honed and has
two interfaces with IPv6 addresses you will be able to route between the two networks. You will
need to setup two static IPv6 addresses in /etc/network/interfaces.
You can configure radvd to tell the nodes to contact the DHCP server for
So a DHCP server can be used in a stateless and stateful IPv6 setup. We will use DHCP to send
configuration information such as DNS servers and to assign IP addresses since we want to
assign fixed IP to well known hosts.
Edit the /etc/radvd.conf file
1
2
3
4
5
6
7
8
9
10
interface eth0
{
AdvSendAdvert on;
prefix fd5d:12c9:2201:1::1/64 {
AdvOnLink on;
AdvAutonomous on;
AdvManagedFlag on; # get a full IP address from the DHCP server
AdvOtherConfigFlag on; # get other configuration info from the DHCP server
};
};
Setting up DHCP6 is similar to DHCP for IPv4. We will use the isc-dhcpd-server:
"sudo apt-get install isc-dhcp-server"
Edit the /etc/dhcpd/dhcpd6.conf: (note comments removed for clarity)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ddns-update-style interim;
ddns-updates on;
update-conflict-detection false;
update-optimization false;
option domain-name "jumpingbean.co.za";
option dhcp6.name-servers fd5d:12c9:2201:1::2;
default-lease-time 600;
max-lease-time 7200;
include "/etc/dhcp/rndc.key";
log-facility local7;
zone jumpingbean.co.za. {
primary 127.0.0.1;
key rndc-key;
}
zone 1.0.0.0.1.0.2.2.c.9.2.1.d.5.d.f {
primary 127.0.0.1;
key rndc-key;
}
subnet6 fd5d:12c9:2201:1::/64 {
range6 fd5d:12c9:2201:1::100 fd5d:12c9:2201:1::200;
}
A lot of the configuration for DHCPv6 is the same as DHCPv4 and I am assuming you are
familiar with the configuraiton of DHCPv4 for dynamic DNS updates. Here we set up the DHCP
server to
1
2
3
4
5
6
1: lo: mtu 65536
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500
qlen 1000 inet6 fe80::922b:34ff:fe7b:6ff1/64 scope link
valid_lft forever preferred_lft forever,multicast,up,lower_up>,up,lower_up>
Solution
To setup the simplest IPv6 network you just have to boot up a host or two with a IPv6 enabled
operating system such as Ubuntu. Open a terminal and type:
"ip -6 address list"
You should see output similar to the following:
1
2
3
4
5
6
1: lo: mtu 65536
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500
qlen 1000 inet6 fe80::922b:34ff:fe7b:6ff1/64 scope link
valid_lft forever preferred_lft forever,multicast,up,lower_up>,up,lower_up>
IPv6 link local addresses have been assigned automatically to any interfaces that you have. The
IPv6 localhost address (IPv4 127.0.0.1) is ::1/128. You can do the same on another host to gets it
IPv6 link local address and then do a IPv6 ping with "ping6" - note the 6.
1
ping6 fe80::922b:34ff:fe7b:6ff1
The fe80::/64 network prefix is the link local network as explained in the table above. It should
be the only IPv6 network address you will see across different physical networks. In fact every
host on an IPv6 network must have an link local address (fe80::/64).
Host Identifier Generation
The host identifier portion of the link local address, the remaining 64 bits, is generated from the
mac address with a algorithm applied to extend the 48 bit mac address to the 64 bit host address
required for IPv6. See EUI64 for the algorithm used. The host identifier may also be manually
assigned by the system administrator. This introduces the risk of duplicate IP addresses being
assigned, so IPv6 has a duplicate address detection protocol that allows hosts to determine if
there is a conflict before assigning itself an address.
IPv6 configuration is done using layer 3 (network layer) protocols and not layer 2 (media layer
eg. Ethernet) as with IPv4; so a valid IPv6 address is required before any additional
configuration can be done. Of couese it also allows for zero config simple networks.
Steps to Configure the Router Advertisement Service
The advertisement service can run on any Linux box, but that box will become the default route
for IPv6 traffic. In future your ADSL router will provide router advertisement services. First
assign the Linux box a static IPv6 address from the ULA network: (In the examples that follow I
use the fd5f:12c9:2201::/48 ULA routing prefix and I have chosen fd5f:12c9:2201:1::/64 as the
network prefix. (ie :1 is the subnet id).
Configure a static IPv6 on Ubuntu
1
sudo vi /etc/network/interfaces
1
2
3
4
5
6
7
auto eth0
iface eth0 inet6 static
address fd5d:12c9:2201:1::1
netmask 64
autoconf 0
dad-attempts 0
accept_ra 0
Now we need to install the router advertisement service:
Router Advertisement Daemon Configuration
sudo apt-get install radvd
vi /etc/radvd.conf
1
2
3
4
5
6
7
8
9
10
11
interface eth0
{
AdvSendAdvert on;
prefix fd5d:12c9:2201:1::1/64 {
AdvOnLink on;
AdvAutonomous on;
};
#Send DNS Server setting - assumes there is a DNS server setup at the address below
RDNSS fd5d:12c9:2201:1::2{
};
};
Restart the service and then on a client restart the network. You should see two IPv6 address on
your network card.
1
ip -6 address list
You can ping the router with the ping6 utility:
"ping6 fd5d:12c9:2201:1::1" if this doesn't work try "ping6 fd5d:12c9:2201:1::1 -I eth0" ->
Use the interface with the assigned IPv6 address. We will cover DNS and IPv6 in the net section.
Congratulations you have an IPv6 network up and running! If your router is multi honed and has
two interfaces with IPv6 addresses you will be able to route between the two networks. You will
need to setup two static IPv6 addresses in /etc/network/interfaces.
You can configure radvd to tell the nodes to contact the DHCP server for
So a DHCP server can be used in a stateless and stateful IPv6 setup. We will use DHCP to send
configuration information such as DNS servers and to assign IP addresses since we want to
assign fixed IP to well known hosts.
Edit the /etc/radvd.conf file
1
2
3
4
5
6
7
8
9
10
interface eth0
{
AdvSendAdvert on;
prefix fd5d:12c9:2201:1::1/64 {
AdvOnLink on;
AdvAutonomous on;
AdvManagedFlag on; # get a full IP address from the DHCP server
AdvOtherConfigFlag on; # get other configuration info from the DHCP server
};
};
Setting up DHCP6 is similar to DHCP for IPv4. We will use the isc-dhcpd-server:
"sudo apt-get install isc-dhcp-server"
Edit the /etc/dhcpd/dhcpd6.conf: (note comments removed for clarity)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ddns-update-style interim;
ddns-updates on;
update-conflict-detection false;
update-optimization false;
option domain-name "jumpingbean.co.za";
option dhcp6.name-servers fd5d:12c9:2201:1::2;
default-lease-time 600;
max-lease-time 7200;
include "/etc/dhcp/rndc.key";
log-facility local7;
zone jumpingbean.co.za. {
primary 127.0.0.1;
key rndc-key;
}
zone 1.0.0.0.1.0.2.2.c.9.2.1.d.5.d.f {
primary 127.0.0.1;
key rndc-key;
}
subnet6 fd5d:12c9:2201:1::/64 {
range6 fd5d:12c9:2201:1::100 fd5d:12c9:2201:1::200;
}
A lot of the configuration for DHCPv6 is the same as DHCPv4 and I am assuming you are
familiar with the configuraiton of DHCPv4 for dynamic DNS updates. Here we set up the DHCP
server to
1
2
3
4
5
6
1: lo: mtu 65536
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500
qlen 1000 inet6 fe80::922b:34ff:fe7b:6ff1/64 scope link
valid_lft forever preferred_lft forever,multicast,up,lower_up>,up,lower_up>

More Related Content

Similar to To setup the simplest IPv6 network you just have to boot up a host o.pdf (20)

DOC
Ipv6 questions
Kundan Prasad
 
PDF
IPv6 in CloudStack Basic Networking
Wido den Hollander
 
PPTX
Introduction to IPv6-UoN
Mwendwa Kivuva
 
PDF
PLNOG 3: Fredy Kunzler - IPv6. Now!
PROIDEA
 
PDF
Sharing your-internet-connection-on-linux
jasembo
 
PDF
IP Routing on z/OS
zOSCommserver
 
PDF
Neighbor Discovery Deep Dive – IPv6-Networking-Referat
Digicomp Academy AG
 
PPTX
IPV6 IPv6 Routing Lab By Rob Hamm
Information and Communications Technology Council
 
PDF
7 2.5 3 Lab - Identifying IPv6 Addresses.pdf
Samantha Vargas
 
PDF
Autoconfig
Fred Bovy
 
PPT
CCNA CHAPTER 16 BY jetarvind kumar madhukar
ALLCAD Services Pvt Limited
 
PPTX
Mikrotik link redundancy solution
S M Tipu
 
PPTX
7 slaac-rick graziani
Alejandro Reyes
 
PDF
Apnic-Training-IPv6_workshop
Nguyen Minh Thu
 
PDF
Hands on Experience with IPv6 Routing and Switching Services
Cisco Canada
 
PDF
Linux network tools (Maarten Blomme)
Avansa Mid- en Zuidwest
 
PPT
Ipv6
maha5960
 
PPTX
Chapter 25. implementing i pv6 routing
Vishnu Vardhan
 
PDF
IPV6 Hands on Lab
Cisco Canada
 
Ipv6 questions
Kundan Prasad
 
IPv6 in CloudStack Basic Networking
Wido den Hollander
 
Introduction to IPv6-UoN
Mwendwa Kivuva
 
PLNOG 3: Fredy Kunzler - IPv6. Now!
PROIDEA
 
Sharing your-internet-connection-on-linux
jasembo
 
IP Routing on z/OS
zOSCommserver
 
Neighbor Discovery Deep Dive – IPv6-Networking-Referat
Digicomp Academy AG
 
IPV6 IPv6 Routing Lab By Rob Hamm
Information and Communications Technology Council
 
7 2.5 3 Lab - Identifying IPv6 Addresses.pdf
Samantha Vargas
 
Autoconfig
Fred Bovy
 
CCNA CHAPTER 16 BY jetarvind kumar madhukar
ALLCAD Services Pvt Limited
 
Mikrotik link redundancy solution
S M Tipu
 
7 slaac-rick graziani
Alejandro Reyes
 
Apnic-Training-IPv6_workshop
Nguyen Minh Thu
 
Hands on Experience with IPv6 Routing and Switching Services
Cisco Canada
 
Linux network tools (Maarten Blomme)
Avansa Mid- en Zuidwest
 
Ipv6
maha5960
 
Chapter 25. implementing i pv6 routing
Vishnu Vardhan
 
IPV6 Hands on Lab
Cisco Canada
 

More from aptexx (20)

PDF
You can add any fractions with like denominators by simpling adding .pdf
aptexx
 
PDF
y axisSolutiony axis.pdf
aptexx
 
PDF
We need more information.SolutionWe need more information..pdf
aptexx
 
PDF
Utilitarianism is a form ofconsequentialism, which states that the c.pdf
aptexx
 
PDF
Typical system servicesProgram executionIO operationsFile Sy.pdf
aptexx
 
PDF
This is a fun problem. How often do you get to think about a compoun.pdf
aptexx
 
PDF
The term MULTIPLE ALLELE refers to a series of atleast three allelic.pdf
aptexx
 
PDF
The solution is attached.SolutionThe solution is attached..pdf
aptexx
 
PDF
SO32- S.pdf
aptexx
 
PDF
Oxygen has 2 electrons in the first row S orbital.pdf
aptexx
 
PDF
millimoles of HCl = 150.6 = 9 KOH = 250.35 = 8.pdf
aptexx
 
PDF
Most meteors break apart (in flames) in the upper.pdf
aptexx
 
PDF
I cant see all of it. .pdf
aptexx
 
PDF
yes there are in the same direction only that is .pdf
aptexx
 
PDF
D. All the elements are arranged in order of incr.pdf
aptexx
 
PDF
Cl- is a better leaving group with compared to th.pdf
aptexx
 
PDF
StratifiedSquamous epitheliumStratifiedSquamous epitheliumSi.pdf
aptexx
 
PDF
ResultEnter file name content.txt Enter word to count wor.pdf
aptexx
 
PDF
psychoactive drugs acts primarily upon the central nervous system wh.pdf
aptexx
 
PDF
PopulationParameterStatisticsSolutionPopulation.pdf
aptexx
 
You can add any fractions with like denominators by simpling adding .pdf
aptexx
 
y axisSolutiony axis.pdf
aptexx
 
We need more information.SolutionWe need more information..pdf
aptexx
 
Utilitarianism is a form ofconsequentialism, which states that the c.pdf
aptexx
 
Typical system servicesProgram executionIO operationsFile Sy.pdf
aptexx
 
This is a fun problem. How often do you get to think about a compoun.pdf
aptexx
 
The term MULTIPLE ALLELE refers to a series of atleast three allelic.pdf
aptexx
 
The solution is attached.SolutionThe solution is attached..pdf
aptexx
 
SO32- S.pdf
aptexx
 
Oxygen has 2 electrons in the first row S orbital.pdf
aptexx
 
millimoles of HCl = 150.6 = 9 KOH = 250.35 = 8.pdf
aptexx
 
Most meteors break apart (in flames) in the upper.pdf
aptexx
 
I cant see all of it. .pdf
aptexx
 
yes there are in the same direction only that is .pdf
aptexx
 
D. All the elements are arranged in order of incr.pdf
aptexx
 
Cl- is a better leaving group with compared to th.pdf
aptexx
 
StratifiedSquamous epitheliumStratifiedSquamous epitheliumSi.pdf
aptexx
 
ResultEnter file name content.txt Enter word to count wor.pdf
aptexx
 
psychoactive drugs acts primarily upon the central nervous system wh.pdf
aptexx
 
PopulationParameterStatisticsSolutionPopulation.pdf
aptexx
 
Ad

Recently uploaded (20)

PDF
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
PPTX
Neurodivergent Friendly Schools - Slides from training session
Pooky Knightsmith
 
PPTX
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
PPTX
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
PDF
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
PPTX
SPINA BIFIDA: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
PDF
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PDF
The dynastic history of the Chahmana.pdf
PrachiSontakke5
 
PPTX
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
PDF
QNL June Edition hosted by Pragya the official Quiz Club of the University of...
Pragya - UEM Kolkata Quiz Club
 
PPTX
How to Set Maximum Difference Odoo 18 POS
Celine George
 
PPTX
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
PPTX
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
PDF
Dimensions of Societal Planning in Commonism
StefanMz
 
PPTX
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
PPTX
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
PDF
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
PPTX
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
PDF
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
Neurodivergent Friendly Schools - Slides from training session
Pooky Knightsmith
 
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
SPINA BIFIDA: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
The dynastic history of the Chahmana.pdf
PrachiSontakke5
 
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
QNL June Edition hosted by Pragya the official Quiz Club of the University of...
Pragya - UEM Kolkata Quiz Club
 
How to Set Maximum Difference Odoo 18 POS
Celine George
 
How to Create a PDF Report in Odoo 18 - Odoo Slides
Celine George
 
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
Dimensions of Societal Planning in Commonism
StefanMz
 
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
Ad

To setup the simplest IPv6 network you just have to boot up a host o.pdf

  • 1. To setup the simplest IPv6 network you just have to boot up a host or two with a IPv6 enabled operating system such as Ubuntu. Open a terminal and type: "ip -6 address list" You should see output similar to the following: 1 2 3 4 5 6 1: lo: mtu 65536 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qlen 1000 inet6 fe80::922b:34ff:fe7b:6ff1/64 scope link valid_lft forever preferred_lft forever,multicast,up,lower_up>,up,lower_up> IPv6 link local addresses have been assigned automatically to any interfaces that you have. The IPv6 localhost address (IPv4 127.0.0.1) is ::1/128. You can do the same on another host to gets it IPv6 link local address and then do a IPv6 ping with "ping6" - note the 6. 1 ping6 fe80::922b:34ff:fe7b:6ff1 The fe80::/64 network prefix is the link local network as explained in the table above. It should be the only IPv6 network address you will see across different physical networks. In fact every host on an IPv6 network must have an link local address (fe80::/64). Host Identifier Generation The host identifier portion of the link local address, the remaining 64 bits, is generated from the mac address with a algorithm applied to extend the 48 bit mac address to the 64 bit host address required for IPv6. See EUI64 for the algorithm used. The host identifier may also be manually assigned by the system administrator. This introduces the risk of duplicate IP addresses being assigned, so IPv6 has a duplicate address detection protocol that allows hosts to determine if there is a conflict before assigning itself an address. IPv6 configuration is done using layer 3 (network layer) protocols and not layer 2 (media layer eg. Ethernet) as with IPv4; so a valid IPv6 address is required before any additional configuration can be done. Of couese it also allows for zero config simple networks. Steps to Configure the Router Advertisement Service
  • 2. The advertisement service can run on any Linux box, but that box will become the default route for IPv6 traffic. In future your ADSL router will provide router advertisement services. First assign the Linux box a static IPv6 address from the ULA network: (In the examples that follow I use the fd5f:12c9:2201::/48 ULA routing prefix and I have chosen fd5f:12c9:2201:1::/64 as the network prefix. (ie :1 is the subnet id). Configure a static IPv6 on Ubuntu 1 sudo vi /etc/network/interfaces 1 2 3 4 5 6 7 auto eth0 iface eth0 inet6 static address fd5d:12c9:2201:1::1 netmask 64 autoconf 0 dad-attempts 0 accept_ra 0 Now we need to install the router advertisement service: Router Advertisement Daemon Configuration sudo apt-get install radvd vi /etc/radvd.conf 1 2 3 4 5 6 7 8 9 10
  • 3. 11 interface eth0 { AdvSendAdvert on; prefix fd5d:12c9:2201:1::1/64 { AdvOnLink on; AdvAutonomous on; }; #Send DNS Server setting - assumes there is a DNS server setup at the address below RDNSS fd5d:12c9:2201:1::2{ }; }; Restart the service and then on a client restart the network. You should see two IPv6 address on your network card. 1 ip -6 address list You can ping the router with the ping6 utility: "ping6 fd5d:12c9:2201:1::1" if this doesn't work try "ping6 fd5d:12c9:2201:1::1 -I eth0" -> Use the interface with the assigned IPv6 address. We will cover DNS and IPv6 in the net section. Congratulations you have an IPv6 network up and running! If your router is multi honed and has two interfaces with IPv6 addresses you will be able to route between the two networks. You will need to setup two static IPv6 addresses in /etc/network/interfaces. You can configure radvd to tell the nodes to contact the DHCP server for So a DHCP server can be used in a stateless and stateful IPv6 setup. We will use DHCP to send configuration information such as DNS servers and to assign IP addresses since we want to assign fixed IP to well known hosts. Edit the /etc/radvd.conf file 1 2 3 4 5 6 7 8 9
  • 4. 10 interface eth0 { AdvSendAdvert on; prefix fd5d:12c9:2201:1::1/64 { AdvOnLink on; AdvAutonomous on; AdvManagedFlag on; # get a full IP address from the DHCP server AdvOtherConfigFlag on; # get other configuration info from the DHCP server }; }; Setting up DHCP6 is similar to DHCP for IPv4. We will use the isc-dhcpd-server: "sudo apt-get install isc-dhcp-server" Edit the /etc/dhcpd/dhcpd6.conf: (note comments removed for clarity) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
  • 5. 23 24 25 26 27 28 29 ddns-update-style interim; ddns-updates on; update-conflict-detection false; update-optimization false; option domain-name "jumpingbean.co.za"; option dhcp6.name-servers fd5d:12c9:2201:1::2; default-lease-time 600; max-lease-time 7200; include "/etc/dhcp/rndc.key"; log-facility local7; zone jumpingbean.co.za. { primary 127.0.0.1; key rndc-key; } zone 1.0.0.0.1.0.2.2.c.9.2.1.d.5.d.f { primary 127.0.0.1; key rndc-key; } subnet6 fd5d:12c9:2201:1::/64 { range6 fd5d:12c9:2201:1::100 fd5d:12c9:2201:1::200; } A lot of the configuration for DHCPv6 is the same as DHCPv4 and I am assuming you are familiar with the configuraiton of DHCPv4 for dynamic DNS updates. Here we set up the DHCP server to 1 2 3 4 5
  • 6. 6 1: lo: mtu 65536 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qlen 1000 inet6 fe80::922b:34ff:fe7b:6ff1/64 scope link valid_lft forever preferred_lft forever,multicast,up,lower_up>,up,lower_up> Solution To setup the simplest IPv6 network you just have to boot up a host or two with a IPv6 enabled operating system such as Ubuntu. Open a terminal and type: "ip -6 address list" You should see output similar to the following: 1 2 3 4 5 6 1: lo: mtu 65536 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qlen 1000 inet6 fe80::922b:34ff:fe7b:6ff1/64 scope link valid_lft forever preferred_lft forever,multicast,up,lower_up>,up,lower_up> IPv6 link local addresses have been assigned automatically to any interfaces that you have. The IPv6 localhost address (IPv4 127.0.0.1) is ::1/128. You can do the same on another host to gets it IPv6 link local address and then do a IPv6 ping with "ping6" - note the 6. 1 ping6 fe80::922b:34ff:fe7b:6ff1 The fe80::/64 network prefix is the link local network as explained in the table above. It should be the only IPv6 network address you will see across different physical networks. In fact every host on an IPv6 network must have an link local address (fe80::/64). Host Identifier Generation The host identifier portion of the link local address, the remaining 64 bits, is generated from the
  • 7. mac address with a algorithm applied to extend the 48 bit mac address to the 64 bit host address required for IPv6. See EUI64 for the algorithm used. The host identifier may also be manually assigned by the system administrator. This introduces the risk of duplicate IP addresses being assigned, so IPv6 has a duplicate address detection protocol that allows hosts to determine if there is a conflict before assigning itself an address. IPv6 configuration is done using layer 3 (network layer) protocols and not layer 2 (media layer eg. Ethernet) as with IPv4; so a valid IPv6 address is required before any additional configuration can be done. Of couese it also allows for zero config simple networks. Steps to Configure the Router Advertisement Service The advertisement service can run on any Linux box, but that box will become the default route for IPv6 traffic. In future your ADSL router will provide router advertisement services. First assign the Linux box a static IPv6 address from the ULA network: (In the examples that follow I use the fd5f:12c9:2201::/48 ULA routing prefix and I have chosen fd5f:12c9:2201:1::/64 as the network prefix. (ie :1 is the subnet id). Configure a static IPv6 on Ubuntu 1 sudo vi /etc/network/interfaces 1 2 3 4 5 6 7 auto eth0 iface eth0 inet6 static address fd5d:12c9:2201:1::1 netmask 64 autoconf 0 dad-attempts 0 accept_ra 0 Now we need to install the router advertisement service: Router Advertisement Daemon Configuration sudo apt-get install radvd vi /etc/radvd.conf 1
  • 8. 2 3 4 5 6 7 8 9 10 11 interface eth0 { AdvSendAdvert on; prefix fd5d:12c9:2201:1::1/64 { AdvOnLink on; AdvAutonomous on; }; #Send DNS Server setting - assumes there is a DNS server setup at the address below RDNSS fd5d:12c9:2201:1::2{ }; }; Restart the service and then on a client restart the network. You should see two IPv6 address on your network card. 1 ip -6 address list You can ping the router with the ping6 utility: "ping6 fd5d:12c9:2201:1::1" if this doesn't work try "ping6 fd5d:12c9:2201:1::1 -I eth0" -> Use the interface with the assigned IPv6 address. We will cover DNS and IPv6 in the net section. Congratulations you have an IPv6 network up and running! If your router is multi honed and has two interfaces with IPv6 addresses you will be able to route between the two networks. You will need to setup two static IPv6 addresses in /etc/network/interfaces. You can configure radvd to tell the nodes to contact the DHCP server for So a DHCP server can be used in a stateless and stateful IPv6 setup. We will use DHCP to send configuration information such as DNS servers and to assign IP addresses since we want to assign fixed IP to well known hosts. Edit the /etc/radvd.conf file
  • 9. 1 2 3 4 5 6 7 8 9 10 interface eth0 { AdvSendAdvert on; prefix fd5d:12c9:2201:1::1/64 { AdvOnLink on; AdvAutonomous on; AdvManagedFlag on; # get a full IP address from the DHCP server AdvOtherConfigFlag on; # get other configuration info from the DHCP server }; }; Setting up DHCP6 is similar to DHCP for IPv4. We will use the isc-dhcpd-server: "sudo apt-get install isc-dhcp-server" Edit the /etc/dhcpd/dhcpd6.conf: (note comments removed for clarity) 1 2 3 4 5 6 7 8 9 10 11 12 13
  • 10. 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ddns-update-style interim; ddns-updates on; update-conflict-detection false; update-optimization false; option domain-name "jumpingbean.co.za"; option dhcp6.name-servers fd5d:12c9:2201:1::2; default-lease-time 600; max-lease-time 7200; include "/etc/dhcp/rndc.key"; log-facility local7; zone jumpingbean.co.za. { primary 127.0.0.1; key rndc-key; } zone 1.0.0.0.1.0.2.2.c.9.2.1.d.5.d.f { primary 127.0.0.1; key rndc-key; } subnet6 fd5d:12c9:2201:1::/64 { range6 fd5d:12c9:2201:1::100 fd5d:12c9:2201:1::200;
  • 11. } A lot of the configuration for DHCPv6 is the same as DHCPv4 and I am assuming you are familiar with the configuraiton of DHCPv4 for dynamic DNS updates. Here we set up the DHCP server to 1 2 3 4 5 6 1: lo: mtu 65536 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qlen 1000 inet6 fe80::922b:34ff:fe7b:6ff1/64 scope link valid_lft forever preferred_lft forever,multicast,up,lower_up>,up,lower_up>