1
1

00:00:00,227  -->  00:00:02,350
<v ->IPv6 addressing.</v>
2

2

00:00:02,350  -->  00:00:04,840
In this lesson, we're going to introduce the concept
3

3

00:00:04,840  -->  00:00:08,900
surrounding IPv6 or Internet Protocol version six.
4

4

00:00:08,900  -->  00:00:11,090
So up to this point, we've really just talked
5

5

00:00:11,090  -->  00:00:13,970
about IPv4 including how to subnet it,
6

6

00:00:13,970  -->  00:00:16,760
but one of the problems that we have with IPv4
7

7

00:00:16,760  -->  00:00:19,250
is that it's limited in its address space.
8

8

00:00:19,250  -->  00:00:21,100
This is because there are only 32 bits
9

9

00:00:21,100  -->  00:00:23,130
that make up an IPv4 address,
10

10

00:00:23,130  -->  00:00:26,810
giving us only 4.2 billion possible address combinations.
11

11

00:00:26,810  -->  00:00:30,150
Now I know 4.2 billion sounds like a whole lot of IPs,
12

12

00:00:30,150  -->  00:00:32,690
but when we took out entire portions of things
13

13

00:00:32,690  -->  00:00:34,530
for things like IP put addresses,
14

14

00:00:34,530  -->  00:00:37,040
local host addresses, private IPs
15

15

00:00:37,040  -->  00:00:38,500
and then there was a huge amount of waste
16

16

00:00:38,500  -->  00:00:40,460
before you even started to use subnetting,
17

17

00:00:40,460  -->  00:00:43,590
this led to a big issue and we began to start running
18

18

00:00:43,590  -->  00:00:46,560
out of network addresses inside of IPv4.
19

19

00:00:46,560  -->  00:00:50,610
This is known as address exhaustion and it is a real thing.
20

20

00:00:50,610  -->  00:00:53,010
In fact, in November of 2019,
21

21

00:00:53,010  -->  00:00:56,280
RIPE NCC, the Regional Internet Registry for Europe,
22

22

00:00:56,280  -->  00:00:57,917
West Asia and the former USSR,
23

23

00:00:57,917  -->  00:00:59,880
announced they have already exhausted
24

24

00:00:59,880  -->  00:01:02,880
its entire pool of IPv4 addresses.
25

25

00:01:02,880  -->  00:01:06,670
Luckily though, the Internet Engineering Task Force or IETF
26

26

00:01:06,670  -->  00:01:08,480
had already started looking into the future
27

27

00:01:08,480  -->  00:01:10,950
and they developed IPv6 as a standard
28

28

00:01:10,950  -->  00:01:13,430
all the way back in 1995
29

29

00:01:13,430  -->  00:01:17,110
with an RFC that documented their vision for IPv6
30

30

00:01:17,110  -->  00:01:21,530
which they termed IP Next Generation or IPng.
31

31

00:01:21,530  -->  00:01:26,530
Now you see IPv6 is actually a huge improvement over IPv4
32

32

00:01:26,600  -->  00:01:29,030
in terms of the number of addresses available.
33

33

00:01:29,030  -->  00:01:32,397
Instead of using a 32-bit address like we do in IPv4,
34

34

00:01:32,397  -->  00:01:35,830
IPv6 going to use 128-bit address.
35

35

00:01:35,830  -->  00:01:39,260
This is going to give you a much larger address space.
36

36

00:01:39,260  -->  00:01:41,340
In fact, it's going to give you a possibility
37

37

00:01:41,340  -->  00:01:45,170
of 340 undecillion IP addresses.
38

38

00:01:45,170  -->  00:01:47,520
That is enough IP addresses for every man,
39

39

00:01:47,520  -->  00:01:49,670
woman and child on the planet.
40

40

00:01:49,670  -->  00:01:52,300
This is two to the 128th power.
41

41

00:01:52,300  -->  00:01:55,040
In fact, there are many, many IP addresses
42

42

00:01:55,040  -->  00:01:57,450
for each man, woman and child on the planet
43

43

00:01:57,450  -->  00:02:00,000
because there are so many IP addresses available.
44

44

00:02:00,000  -->  00:02:01,710
Now you might be wondering to yourself,
45

45

00:02:01,710  -->  00:02:04,970
hey, we went from IPv4 to IPv6.
46

46

00:02:04,970  -->  00:02:06,840
What happened to version five?
47

47

00:02:06,840  -->  00:02:09,130
Why did we jump straight to version six?
48

48

00:02:09,130  -->  00:02:11,130
Well version five was created,
49

49

00:02:11,130  -->  00:02:14,070
but it was never fully adopted as an official protocol
50

50

00:02:14,070  -->  00:02:17,080
or standard and therefore it never went into production.
51

51

00:02:17,080  -->  00:02:19,000
Instead, a lot of those concepts that were developed
52

52

00:02:19,000  -->  00:02:21,710
under version five because it was an experimental protocol,
53

53

00:02:21,710  -->  00:02:23,640
were then brought into IPv6
54

54

00:02:23,640  -->  00:02:25,600
when it became an official standard.
55

55

00:02:25,600  -->  00:02:29,380
So let's talk about the benefits of IPv6.
56

56

00:02:29,380  -->  00:02:30,660
One of the biggest benefits
57

57

00:02:30,660  -->  00:02:32,630
is that much larger address space
58

58

00:02:32,630  -->  00:02:35,100
because of the 128-bit addresses.
59

59

00:02:35,100  -->  00:02:36,200
In addition to that,
60

60

00:02:36,200  -->  00:02:38,910
IPv6 also increased the efficiency of our networks
61

61

00:02:38,910  -->  00:02:42,470
by removing IPv4's broadcast data flow type.
62

62

00:02:42,470  -->  00:02:44,980
Now IPv6 is also more secure
63

63

00:02:44,980  -->  00:02:47,750
because there is no packet or datagram fragmentation
64

64

00:02:47,750  -->  00:02:49,800
within the IPv6 standard.
65

65

00:02:49,800  -->  00:02:51,880
There's also no maximum transmission units
66

66

00:02:51,880  -->  00:02:53,830
for discovery within each session
67

67

00:02:53,830  -->  00:02:56,470
unlike IPv4 which contained an MTU
68

68

00:02:56,470  -->  00:02:58,620
with a certain size for each packet.
69

69

00:02:58,620  -->  00:03:01,410
In IPv4, if I sent you a packet that was larger
70

70

00:03:01,410  -->  00:03:03,550
than your maximum transmission unit size,
71

71

00:03:03,550  -->  00:03:04,820
it would actually fragment that
72

72

00:03:04,820  -->  00:03:06,160
and send it over the network.
73

73

00:03:06,160  -->  00:03:07,860
And then when it reached its destination,
74

74

00:03:07,860  -->  00:03:09,720
it would be reassembled and read.
75

75

00:03:09,720  -->  00:03:11,430
This was actually a security risk.
76

76

00:03:11,430  -->  00:03:13,230
It also required extra processing
77

77

00:03:13,230  -->  00:03:15,210
and it could actually slow down your networks
78

78

00:03:15,210  -->  00:03:17,660
because it become a very inefficient way of doing things
79

79

00:03:17,660  -->  00:03:18,860
in our modern networks
80

80

00:03:18,860  -->  00:03:20,800
with higher internet connection speeds.
81

81

00:03:20,800  -->  00:03:23,560
So with IPv6, they decided to do away
82

82

00:03:23,560  -->  00:03:25,620
with fragmentation completely.
83

83

00:03:25,620  -->  00:03:28,210
Now in addition to providing all of these new benefits,
84

84

00:03:28,210  -->  00:03:30,630
the creators of IPv6 were also very smart
85

85

00:03:30,630  -->  00:03:34,430
and realized that IPv6, to be embraced and accepted fully,
86

86

00:03:34,430  -->  00:03:37,330
it would have to be backwards compatible with IPv4
87

87

00:03:37,330  -->  00:03:42,330
and allow both IPv6 and IPv4 to coexist on the same network.
88

88

00:03:42,470  -->  00:03:45,220
After all, it was already late in 1990s
89

89

00:03:45,220  -->  00:03:47,600
when IPv6 was being developed and released
90

90

00:03:47,600  -->  00:03:49,020
and lots of computer networks
91

91

00:03:49,020  -->  00:03:51,230
were already feel it all over the globe.
92

92

00:03:51,230  -->  00:03:52,650
So it would not be feasible
93

93

00:03:52,650  -->  00:03:55,670
for us to simply change over everything in a single day.
94

94

00:03:55,670  -->  00:03:57,230
Think about it like the current migration
95

95

00:03:57,230  -->  00:03:58,063
we're going through
96

96

00:03:58,063  -->  00:04:00,480
from gas powered to electric power vehicles.
97

97

00:04:00,480  -->  00:04:02,660
This is happening throughout the entire 2020s
98

98

00:04:02,660  -->  00:04:04,180
and into 2030s.
99

99

00:04:04,180  -->  00:04:06,700
Now this would be an impossible thing for us to say,
100

100

00:04:06,700  -->  00:04:09,580
hey, everybody on January 1st 2025,
101

101

00:04:09,580  -->  00:04:11,430
no one can use gas powered vehicles anymore.
102

102

00:04:11,430  -->  00:04:13,500
All of them we'll replace with electric vehicles
103

103

00:04:13,500  -->  00:04:14,740
as of that date.
104

104

00:04:14,740  -->  00:04:15,940
If a government tried to do that,
105

105

00:04:15,940  -->  00:04:17,900
they'd probably have a revolution on their hands
106

106

00:04:17,900  -->  00:04:20,910
because so many people already own gas powered cars
107

107

00:04:20,910  -->  00:04:23,560
and spent a ton of money and investing into those cars
108

108

00:04:23,560  -->  00:04:25,640
and infrastructure to support them.
109

109

00:04:25,640  -->  00:04:28,230
Now for that reason, we're not going to simply replace
110

110

00:04:28,230  -->  00:04:30,080
all gas powered cars overnight.
111

111

00:04:30,080  -->  00:04:32,430
Instead, there's going to be this slow transition
112

112

00:04:32,430  -->  00:04:35,850
from gas power to electric that goes on by 2030
113

113

00:04:35,850  -->  00:04:38,650
or maybe 2040 as more and more of the newer cars
114

114

00:04:38,650  -->  00:04:40,780
sold in the world will be sold as electric
115

115

00:04:40,780  -->  00:04:43,150
and they'll stop selling gas power vehicles.
116

116

00:04:43,150  -->  00:04:46,660
Well the exact same thing is going on with IPv6.
117

117

00:04:46,660  -->  00:04:50,740
So IPv6 allows for both IPv4 and IPv6
118

118

00:04:50,740  -->  00:04:52,870
to co-exist on the same networks
119

119

00:04:52,870  -->  00:04:55,110
and the equipment that runs these networks
120

120

00:04:55,110  -->  00:04:58,110
becomes known as dual stack which simply means
121

121

00:04:58,110  -->  00:05:01,930
they can run both IPv4 protocols and IPv6 protocols
122

122

00:05:01,930  -->  00:05:04,830
on the same network devices simultaneously.
123

123

00:05:04,830  -->  00:05:08,170
With dual stack devices, if a client supports IPv6,
124

124

00:05:08,170  -->  00:05:10,660
the router or switch would prefer to use IPv6
125

125

00:05:10,660  -->  00:05:12,480
and we'll talk under that method.
126

126

00:05:12,480  -->  00:05:15,090
Now if a device is not able to support IPv6,
127

127

00:05:15,090  -->  00:05:16,810
it flips itself back and says,
128

128

00:05:16,810  -->  00:05:20,130
okay, I'll talk to you using the older IPv4 protocol.
129

129

00:05:20,130  -->  00:05:22,130
This way I can still support you.
130

130

00:05:22,130  -->  00:05:24,600
Another method that we use is known as tunneling.
131

131

00:05:24,600  -->  00:05:28,510
This is where IPv6 is going to be tunneled over an IPv4 device.
132

132

00:05:28,510  -->  00:05:30,860
This allows your older IPv4 routers
133

133

00:05:30,860  -->  00:05:33,340
to still carry IPv6 traffic.
134

134

00:05:33,340  -->  00:05:36,270
IPv6 is essentially going to be tunneled as a mechanism
135

135

00:05:36,270  -->  00:05:40,260
for encapsulating the IPv6 packets within IPv4 headers
136

136

00:05:40,260  -->  00:05:43,940
and carrying this IPv6 data over those IPv4 routers
137

137

00:05:43,940  -->  00:05:46,240
and other infrastructure that already exists.
138

138

00:05:46,240  -->  00:05:48,410
It does this by creating a point-to-point tunnel
139

139

00:05:48,410  -->  00:05:50,140
between the source and destination
140

140

00:05:50,140  -->  00:05:52,200
and then encapsulating that information.
141

141

00:05:52,200  -->  00:05:55,360
This allows isolated IPv6 clients and servers
142

142

00:05:55,360  -->  00:05:57,040
to be able to communicate without needing to upgrade
143

143

00:05:57,040  -->  00:05:59,360
all of the routers and switch infrastructure
144

144

00:05:59,360  -->  00:06:02,780
that still uses IPv4 that may exist between them.
145

145

00:06:02,780  -->  00:06:06,610
Now one day we may eventually see IPv4 retired fully,
146

146

00:06:06,610  -->  00:06:09,410
but so far it hasn't happened and personally,
147

147

00:06:09,410  -->  00:06:11,160
I'm not holding my breath.
148

148

00:06:11,160  -->  00:06:13,950
From some articles I've read, predictions are that IPv4
149

149

00:06:13,950  -->  00:06:16,840
will remain with us until at least 2040
150

150

00:06:16,840  -->  00:06:19,040
so you're going to have to know how to work with both
151

151

00:06:19,040  -->  00:06:22,730
IPv4 and IPv6 for the foreseeable future
152

152

00:06:22,730  -->  00:06:24,400
as a network technician.
153

153

00:06:24,400  -->  00:06:27,880
Another benefit of IPv6 is that it has a simplified header.
154

154

00:06:27,880  -->  00:06:30,580
So instead of those 12 fields that we had in IPv4,
155

155

00:06:30,580  -->  00:06:33,180
we only have five fields in IPv6
156

156

00:06:33,180  -->  00:06:34,680
making it a slimmed down header
157

157

00:06:34,680  -->  00:06:37,380
that is a lot more efficient to send over our networks.
158

158

00:06:37,380  -->  00:06:41,670
So you may be wondering what does an IPv6 header look like.
159

159

00:06:41,670  -->  00:06:44,240
Well I'm going to show it to you, but please realize
160

160

00:06:44,240  -->  00:06:46,490
you don't need to memorize this for the exam.
161

161

00:06:46,490  -->  00:06:48,690
Instead, this is just to show you the different fields
162

162

00:06:48,690  -->  00:06:50,770
that were in IPv4 which is on top
163

163

00:06:50,770  -->  00:06:52,940
versus IPv6 which is on bottom.
164

164

00:06:52,940  -->  00:06:54,970
And now you can see how much more simple
165

165

00:06:54,970  -->  00:06:58,210
IPv6 really is over IPv4.
166

166

00:06:58,210  -->  00:06:59,940
Alright, let's get back to some things
167

167

00:06:59,940  -->  00:07:01,920
that you do need to understand for the exam.
168

168

00:07:01,920  -->  00:07:05,330
Like what does an IPv6 address actually look like.
169

169

00:07:05,330  -->  00:07:08,310
Well I already said that it's 128 bits in length
170

170

00:07:08,310  -->  00:07:11,890
so that means it would have 128 ones or zeros
171

171

00:07:11,890  -->  00:07:13,350
if we wrote it out in binary
172

172

00:07:13,350  -->  00:07:15,670
and that seems like a really bad idea to me.
173

173

00:07:15,670  -->  00:07:17,130
So we're not going to do that.
174

174

00:07:17,130  -->  00:07:18,960
Now we could use dotted decimal notation
175

175

00:07:18,960  -->  00:07:20,430
like we did an IPv4,
176

176

00:07:20,430  -->  00:07:22,740
but that still will be a lot of octets to write out
177

177

00:07:22,740  -->  00:07:27,400
because we would need 16 octets to represent all 128 bits.
178

178

00:07:27,400  -->  00:07:30,040
So to solve this problem, the IETF
179

179

00:07:30,040  -->  00:07:33,030
decided that we should use hexadecimal digits instead.
180

180

00:07:33,030  -->  00:07:35,610
You see, hexadecimal is base 16
181

181

00:07:35,610  -->  00:07:37,520
which you may or may not remember from your high school
182

182

00:07:37,520  -->  00:07:38,730
algebra classes.
183

183

00:07:38,730  -->  00:07:41,140
Now in hexadecimal, each hexadecimal digit
184

184

00:07:41,140  -->  00:07:43,410
is actually four bits and this is going to allow us
185

185

00:07:43,410  -->  00:07:45,000
to represent an IPv6 address
186

186

00:07:45,000  -->  00:07:47,450
by combining four hexadecimal digits together
187

187

00:07:47,450  -->  00:07:49,520
to make up what we call a segment.
188

188

00:07:49,520  -->  00:07:52,460
Now a segment is going to have 16 bits in it.
189

189

00:07:52,460  -->  00:07:54,770
This is represented by those four hexadecimal digits
190

190

00:07:54,770  -->  00:07:56,190
and then we're going to add a colon
191

191

00:07:56,190  -->  00:07:57,610
and then we're going to keep adding segments
192

192

00:07:57,610  -->  00:08:00,010
until we get up to 128 bits
193

193

00:08:00,010  -->  00:08:01,640
which is going to take eight segments,
194

194

00:08:01,640  -->  00:08:04,270
each of those having four hexadecimal digits each.
195

195

00:08:04,270  -->  00:08:07,230
This gives me a total of 32 hexadecimal digits
196

196

00:08:07,230  -->  00:08:09,200
which is still pretty long.
197

197

00:08:09,200  -->  00:08:13,060
Now with 128 bits being represented in an IPv6 address,
198

198

00:08:13,060  -->  00:08:16,570
this means we will have no more than 32 hexadecimal digits
199

199

00:08:16,570  -->  00:08:18,440
inside of all these segments.
200

200

00:08:18,440  -->  00:08:21,890
Now why did I say no more than 32 digits in length
201

201

00:08:21,890  -->  00:08:24,010
for the total of these eight segments?
202

202

00:08:24,010  -->  00:08:26,550
Why wouldn't it just be 32 hexadecimal digits
203

203

00:08:26,550  -->  00:08:29,460
because 32 digits times four bits per digit
204

204

00:08:29,460  -->  00:08:32,040
would give us 128 bits?
205

205

00:08:32,040  -->  00:08:35,290
Well this is because IPv6 actually allows us to use
206

206

00:08:35,290  -->  00:08:37,210
a shorthand to be able to simplify
207

207

00:08:37,210  -->  00:08:39,620
our very long IPv6 addresses.
208

208

00:08:39,620  -->  00:08:41,710
Now the rules of shorthand are really important
209

209

00:08:41,710  -->  00:08:44,400
because you could see exam questions on these.
210

210

00:08:44,400  -->  00:08:46,740
So if you have four zeros for a segment,
211

211

00:08:46,740  -->  00:08:49,100
you can actually put one zero there instead
212

212

00:08:49,100  -->  00:08:51,030
and drop those leading zeros.
213

213

00:08:51,030  -->  00:08:54,550
For example, let's pretend I have a really long IPv6 address
214

214

00:08:54,550  -->  00:08:59,550
of 2018:0000:0000:0000:0000:0000:4815:54ae.
215

215

00:09:08,210  -->  00:09:11,110
Using this simple rule, I can replace all those segments
216

216

00:09:11,110  -->  00:09:13,570
that have multiple zeros with a single zero.
217

217

00:09:13,570  -->  00:09:18,570
This would give me 2018:0:0:0:0:0:4815:54ae.
218

218

00:09:23,330  -->  00:09:26,420
Alright, this reduced my number of hexadecimal digits
219

219

00:09:26,420  -->  00:09:30,540
down from 32 to just 17 so it's about half the length.
220

220

00:09:30,540  -->  00:09:33,270
We're getting better, but I'm not going to stop there.
221

221

00:09:33,270  -->  00:09:34,460
There's another rule I can use
222

222

00:09:34,460  -->  00:09:36,720
in the world of IPv6 shorthand.
223

223

00:09:36,720  -->  00:09:39,050
This rule says that if there are multiple segments
224

224

00:09:39,050  -->  00:09:40,550
that all have zeros in them
225

225

00:09:40,550  -->  00:09:43,160
and no other hex digits are being represented there,
226

226

00:09:43,160  -->  00:09:45,820
I can summarize that by using a double colon
227

227

00:09:45,820  -->  00:09:47,880
and take out all those zeros.
228

228

00:09:47,880  -->  00:09:50,240
Now this rule is special because you can only do
229

229

00:09:50,240  -->  00:09:54,190
the double colon thing one time inside an IPv6 address.
230

230

00:09:54,190  -->  00:09:57,380
So using my double colon rule, I can summarize
231

231

00:09:57,380  -->  00:10:02,223

232
2018:0:0:0:0:0:4815:54ae
232

233

00:10:04,510  -->  00:10:07,070
into removing all those five sets of zeros
233

234

00:10:07,070  -->  00:10:08,670
and replacing them with a double colon
234

235

00:10:08,670  -->  00:10:11,590
and getting myself 2018::4815:54ae.
235

236

00:10:14,020  -->  00:10:16,740
So I went from 32 hexadecimal digits
236

237

00:10:16,740  -->  00:10:18,600
down to 17 hexadecimal digits.
237

238

00:10:18,600  -->  00:10:20,870
and now I'm down from 17 digits
238

239

00:10:20,870  -->  00:10:22,830
all the way down to 12 digits.
239

240

00:10:22,830  -->  00:10:25,430
Much smaller, much easier to work with.
240

241

00:10:25,430  -->  00:10:27,970
You can see how this shorthand is really helpful.
241

242

00:10:27,970  -->  00:10:30,880
So how are you going to recognize an IPv6 address
242

243

00:10:30,880  -->  00:10:32,700
versus an IPv4 address?
243

244

00:10:32,700  -->  00:10:35,880
Well the first way is by looking at what IPv4 is.
244

245

00:10:35,880  -->  00:10:39,130
IPv4 is always going to use the dotted decimal notation
245

246

00:10:39,130  -->  00:10:40,750
using four octets.
246

247

00:10:40,750  -->  00:10:42,210
Now IPv6 on the other hand
247

248

00:10:42,210  -->  00:10:44,270
is going to use colons between its numbers
248

249

00:10:44,270  -->  00:10:46,180
and it's going to be written in hexadecimal.
249

250

00:10:46,180  -->  00:10:49,530
Alright, now one of the questions you might see on test day
250

251

00:10:49,530  -->  00:10:52,830
is to identify an IPv6 address when you see one.
251

252

00:10:52,830  -->  00:10:54,910
For example, you might get a question like
252

253

00:10:54,910  -->  00:10:57,410
which of the following is an IPv6 address?
253

254

00:10:57,410  -->  00:10:59,150
This would be a fair question to ask you.
254

255

00:10:59,150  -->  00:11:03,020
You're going to get some options like 192.168.1.1
255

256

00:11:03,020  -->  00:11:05,540
which we know isn't it because that's an IPv4 address.
256

257

00:11:05,540  -->  00:11:10,540
You're going to get 12:34:56:78:90:AB or 1234::5678:90AB.
257

258

00:11:15,740  -->  00:11:18,860
So wait a minute, those last two I just said,
258

259

00:11:18,860  -->  00:11:20,750
they're really similar, aren't they?
259

260

00:11:20,750  -->  00:11:24,060
Yes, but only one of those is a valid IPv6 address.
260

261

00:11:24,060  -->  00:11:25,360
Do you know which one it is?
261

262

00:11:25,360  -->  00:11:27,730
Because most students get confused here.
262

263

00:11:27,730  -->  00:11:31,740
Now the second option here is actually not an IPv6 address.
263

264

00:11:31,740  -->  00:11:33,560
Instead it's a MAC address.
264

265

00:11:33,560  -->  00:11:35,890
Remember, MAC addresses which are a layer two
265

266

00:11:35,890  -->  00:11:37,780
physical addresses are always going to have
266

267

00:11:37,780  -->  00:11:40,970
12 hexadecimal digits and separated by colons.
267

268

00:11:40,970  -->  00:11:42,940
Usually they're going to be written as six groups
268

269

00:11:42,940  -->  00:11:45,570
of two digits each and each of those are going to be separated
269

270

00:11:45,570  -->  00:11:46,950
by a single colon.
270

271

00:11:46,950  -->  00:11:48,940
An IPv6 address on the other hand,
271

272

00:11:48,940  -->  00:11:51,870
should always be written in segments of four digits each
272

273

00:11:51,870  -->  00:11:54,340
and they should always have 16 segments
273

274

00:11:54,340  -->  00:11:56,710
unless you see a double colon.
274

275

00:11:56,710  -->  00:11:58,810
In this example, we have a double colon
275

276

00:11:58,810  -->  00:12:01,750
between the first and second segment in our third option.
276

277

00:12:01,750  -->  00:12:04,550
So this is a good shorthand that we can use
277

278

00:12:04,550  -->  00:12:07,200
and we identify that it was an IPv6 address
278

279

00:12:07,200  -->  00:12:08,900
because we removed all the zeros
279

280

00:12:08,900  -->  00:12:12,270
between the first and second segment inside this address.
280

281

00:12:12,270  -->  00:12:15,440
So if you count up something that looks like an IPv6 address
281

282

00:12:15,440  -->  00:12:19,210
and it has 12, exactly 12 hexadecimal digits
282

283

00:12:19,210  -->  00:12:20,720
separated by single colons
283

284

00:12:20,720  -->  00:12:22,590
and you don't see a double colon anywhere,
284

285

00:12:22,590  -->  00:12:25,860
that is a MAC address, not an IPv6 address.
285

286

00:12:25,860  -->  00:12:27,930
Otherwise if it looks something like this
286

287

00:12:27,930  -->  00:12:29,580
and includes hexadecimal digits,
287

288

00:12:29,580  -->  00:12:32,920
it's going to be an IPv6 address on exam day.
288

289

00:12:32,920  -->  00:12:35,210
For the exam, you just need to be able to recognize
289

290

00:12:35,210  -->  00:12:37,290
what an IPv6 address looks like
290

291

00:12:37,290  -->  00:12:39,500
and you should be able to summarize one down
291

292

00:12:39,500  -->  00:12:41,800
by taking out zeros and consolidating them
292

293

00:12:41,800  -->  00:12:43,720
using that double colon trick.
293

294

00:12:43,720  -->  00:12:46,080
If you can do these two things, you're going to be fine
294

295

00:12:46,080  -->  00:12:48,730
for IPv6 addressing on exam day.
295

296

00:12:48,730  -->  00:12:51,010
Now when it comes to IPv6 addressing,
296

297

00:12:51,010  -->  00:12:53,729
there are three different address types that you can use,
297

298

00:12:53,729  -->  00:12:56,260
unicast addresses, multicast addresses
298

299

00:12:56,260  -->  00:12:57,950
and anycast addresses.
299

300

00:12:57,950  -->  00:13:00,400
One of the interesting things about IPv6
300

301

00:13:00,400  -->  00:13:02,770
that really distinguishes it from IPv4
301

302

00:13:02,770  -->  00:13:05,570
is that we can assign multiple IPv6 addresses
302

303

00:13:05,570  -->  00:13:07,600
to a single interface on a client
303

304

00:13:07,600  -->  00:13:09,470
and these assignments can be a mixture
304

305

00:13:09,470  -->  00:13:11,410
of any of these three different types,
305

306

00:13:11,410  -->  00:13:14,020
unicast, multicast and anycast.
306

307

00:13:14,020  -->  00:13:16,870
So even if you only have one network interface card
307

308

00:13:16,870  -->  00:13:18,670
on your workstation or laptop,
308

309

00:13:18,670  -->  00:13:21,150
you could have multiple IPv6 addresses
309

310

00:13:21,150  -->  00:13:23,600
and different types of IPv6 addresses
310

311

00:13:23,600  -->  00:13:26,120
assigned to that one card.
311

312

00:13:26,120  -->  00:13:28,200
Unicast addresses are going to be used to identify
312

313

00:13:28,200  -->  00:13:29,700
a single interface.
313

314

00:13:29,700  -->  00:13:32,700
These are broken down into globally-routed unicast addresses
314

315

00:13:32,700  -->  00:13:34,670
and link-local addresses.
315

316

00:13:34,670  -->  00:13:36,490
A globally-routed unicast address
316

317

00:13:36,490  -->  00:13:39,900
is similar to what we have as a public address with IPv4
317

318

00:13:39,900  -->  00:13:43,340
using unicast A, B and C class addresses.
318

319

00:13:43,340  -->  00:13:46,590
Now in IPv6, a globally-routed unicast address
319

320

00:13:46,590  -->  00:13:49,310
is always going to start out with its first segment
320

321

00:13:49,310  -->  00:13:52,780
containing 2000 to 3999.
321

322

00:13:52,780  -->  00:13:56,490
Now if you see 2000 to 3999 as your first segment,
322

323

00:13:56,490  -->  00:13:59,500
this means it's a globally-routed unicast address.
323

324

00:13:59,500  -->  00:14:01,800
For example, the IPv6 address
324

325

00:14:01,800  -->  00:14:04,830
of 25A40DB885A3123456788A2E03707334
325

326

00:14:14,560  -->  00:14:17,740
would be globally-routable as a unicast address
326

327

00:14:17,740  -->  00:14:20,820
because its first segment contains 25A4
327

328

00:14:20,820  -->  00:14:24,420
which is between 2000 and 3099.
328

329

00:14:24,420  -->  00:14:26,410
Now a link-local address on the other hand,
329

330

00:14:26,410  -->  00:14:28,420
also called a local use address,
330

331

00:14:28,420  -->  00:14:31,780
is used like a private IP address was in IPv4.
331

332

00:14:31,780  -->  00:14:34,690
A link-local address in IPv6 can only be used
332

333

00:14:34,690  -->  00:14:37,590
on a local area network and it always is going to begin
333

334

00:14:37,590  -->  00:14:42,590
with FE80 as its first segment within an IPv6 address.
334

335

00:14:42,670  -->  00:14:45,500
Now whenever an IPv6 system starts up,
335

336

00:14:45,500  -->  00:14:47,830
it's going to actually create a link-local address
336

337

00:14:47,830  -->  00:14:50,810
for each IPv6 interface on that system
337

338

00:14:50,810  -->  00:14:52,460
even if a globally-routable address
338

339

00:14:52,460  -->  00:14:54,490
was already manually configured or obtained
339

340

00:14:54,490  -->  00:14:57,440
through a configuration protocol like DHCP.
340

341

00:14:57,440  -->  00:15:00,090
To do this, it's going to use something known as SLAAC,
341

342

00:15:00,090  -->  00:15:04,580
the Stateless Address Auto Configuration or SLAAC.
342

343

00:15:04,580  -->  00:15:06,340
With stateless auto configuration,
343

344

00:15:06,340  -->  00:15:08,420
the host does not need to obtain addresses
344

345

00:15:08,420  -->  00:15:09,930
or other configuration information
345

346

00:15:09,930  -->  00:15:12,610
from a centralized server like DHCP.
346

347

00:15:12,610  -->  00:15:15,380
Instead, it can actually independently assign itself
347

348

00:15:15,380  -->  00:15:17,750
a link-local address, test the uniqueness
348

349

00:15:17,750  -->  00:15:19,150
of that link-local address,
349

350

00:15:19,150  -->  00:15:21,150
assign the link-local address to itself,
350

351

00:15:21,150  -->  00:15:23,950
contact the router and provide direction to the node
351

352

00:15:23,950  -->  00:15:26,420
about how to proceed with the auto configuration
352

353

00:15:26,420  -->  00:15:29,500
and it can even configure the global unicast address
353

354

00:15:29,500  -->  00:15:30,840
that it wants to use.
354

355

00:15:30,840  -->  00:15:33,260
We're going to come back to this concept in just a few minutes
355

356

00:15:33,260  -->  00:15:35,670
as we dive a bit deeper into it as we start to talk
356

357

00:15:35,670  -->  00:15:39,330
about EUI-64 and the Neighbor Discovery Protocol
357

358

00:15:39,330  -->  00:15:40,950
since both of these processes
358

359

00:15:40,950  -->  00:15:43,190
are used with the stateless address auto configuration
359

360

00:15:43,190  -->  00:15:45,310
protocol known as SLAAC.
360

361

00:15:45,310  -->  00:15:47,440
Next we have multicast addresses.
361

362

00:15:47,440  -->  00:15:49,580
Now multicast addresses are used to identify
362

363

00:15:49,580  -->  00:15:52,030
a group of interfaces so that a packet can be sent
363

364

00:15:52,030  -->  00:15:54,240
to a multicast address and then be delivered
364

365

00:15:54,240  -->  00:15:56,410
to all the interfaces within a group.
365

366

00:15:56,410  -->  00:15:59,960
In IPv6, a multicast address will always contain FF
366

367

00:15:59,960  -->  00:16:03,200
as the first two digits within the first segment.
367

368

00:16:03,200  -->  00:16:06,020
If you see FF at the beginning of an IPv6 address,
368

369

00:16:06,020  -->  00:16:08,540
remember, it's multicast.
369

370

00:16:08,540  -->  00:16:10,070
The final type of address we have
370

371

00:16:10,070  -->  00:16:12,470
is known as an anycast address.
371

372

00:16:12,470  -->  00:16:15,360
Anycast addresses are used to identify a set of interfaces
372

373

00:16:15,360  -->  00:16:18,130
so that a packet can be sent to any member of a set.
373

374

00:16:18,130  -->  00:16:20,060
We're going to talk more about how anycast works
374

375

00:16:20,060  -->  00:16:23,330
when we cover IPv6 data flows in a separate video.
375

376

00:16:23,330  -->  00:16:25,020
Anycast addresses are actually allocated
376

377

00:16:25,020  -->  00:16:26,760
from the unicast address space
377

378

00:16:26,760  -->  00:16:29,740
so there's really no way to determine if an IPv6 address
378

379

00:16:29,740  -->  00:16:34,120
is unicast or anycast just by looking at the IPv6 address.
379

380

00:16:34,120  -->  00:16:36,740
Now when you're looking at multicast or link-local,
380

381

00:16:36,740  -->  00:16:38,490
you have a very easy way to do this,
381

382

00:16:38,490  -->  00:16:40,100
but you don't have an easy way
382

383

00:16:40,100  -->  00:16:42,580
to figure out unicast versus anycast.
383

384

00:16:42,580  -->  00:16:44,810
Alright, let's go back and talk a little bit more
384

385

00:16:44,810  -->  00:16:45,690
about SLAAC,
385

386

00:16:45,690  -->  00:16:48,840
the stateless address auto configuration process.
386

387

00:16:48,840  -->  00:16:50,810
Now as I said, in IPv6,
387

388

00:16:50,810  -->  00:16:53,710
there is an auto configuration process known as SLAAC
388

389

00:16:53,710  -->  00:16:55,680
and we use this to discover the current network
389

390

00:16:55,680  -->  00:16:57,200
that the interface is located on
390

391

00:16:57,200  -->  00:17:00,060
and then allow it to select its own host ID
391

392

00:17:00,060  -->  00:17:05,060
based on its MAC address using a process known as EUI-64.
392

393

00:17:05,260  -->  00:17:10,120
Now this EUI-64 or Extended Unique Identifier process
393

394

00:17:10,120  -->  00:17:13,330
will allow a host to assign itself a unique 64-bit
394

395

00:17:13,330  -->  00:17:17,950
IPv6 interface identifier called EUI-64.
395

396

00:17:17,950  -->  00:17:20,720
Now this EUI-64 format address
396

397

00:17:20,720  -->  00:17:24,180
is obtained by using the interface's 48-bit MAC address.
397

398

00:17:24,180  -->  00:17:27,960
The MAC address is first separated into two 24-bit portions.
398

399

00:17:27,960  -->  00:17:30,100
The first half of the MAC address is going to contain
399

400

00:17:30,100  -->  00:17:33,800
the OUI or the Organizational Unique Identifier
400

401

00:17:33,800  -->  00:17:35,560
and the second half is going to contain
401

402

00:17:35,560  -->  00:17:37,710
the specific network interface card.
402

403

00:17:37,710  -->  00:17:41,100
Now in between those, we're going to shove a 16-bit
403

404

00:17:41,100  -->  00:17:44,440
hexadecimal value of FFFE.
404

405

00:17:44,440  -->  00:17:48,670
This way I can take 24 bits, 16 bits and 24 bits
405

406

00:17:48,670  -->  00:17:53,470
and put together to get a 64-bit EUI address.
406

407

00:17:53,470  -->  00:17:56,050
Now this gives you the 64 bits that you're going to need
407

408

00:17:56,050  -->  00:17:58,570
to identify your interface on that network.
408

409

00:17:58,570  -->  00:18:01,000
Then the interface will use auto discovery
409

410

00:18:01,000  -->  00:18:02,550
to determine the network it is on
410

411

00:18:02,550  -->  00:18:05,750
and add the network portion of the IPv6 address
411

412

00:18:05,750  -->  00:18:07,930
which is going to be the first 64 bits
412

413

00:18:07,930  -->  00:18:09,670
inside of our addresses.
413

414

00:18:09,670  -->  00:18:11,670
Now we're going to put that first 64 bits
414

415

00:18:11,670  -->  00:18:14,250
to represent the network in front of the 64 bits
415

416

00:18:14,250  -->  00:18:18,110
from the EUI-64 address we created from our MAC address
416

417

00:18:18,110  -->  00:18:21,750
to create a unicast globally-routable IPv6 address
417

418

00:18:21,750  -->  00:18:23,270
that we can now use.
418

419

00:18:23,270  -->  00:18:25,620
So you can see how all this works together
419

420

00:18:25,620  -->  00:18:26,880
using that MAC address
420

421

00:18:26,880  -->  00:18:29,400
to create this globally-routable address.
421

422

00:18:29,400  -->  00:18:32,910
Now DHCP can also be used within IPv6
422

423

00:18:32,910  -->  00:18:34,280
if you prefer to use it.
423

424

00:18:34,280  -->  00:18:35,670
If you do, you're going to have to use
424

425

00:18:35,670  -->  00:18:38,220
the DHCP version six protocol.
425

426

00:18:38,220  -->  00:18:39,670
This would allow you to have DHCP
426

427

00:18:39,670  -->  00:18:43,370
automatically assign things from a DHCP version six server.
427

428

00:18:43,370  -->  00:18:47,200
But since the auto configuration process with EUI-64
428

429

00:18:47,200  -->  00:18:50,120
is already built into the IPv6 protocol by default,
429

430

00:18:50,120  -->  00:18:52,980
you really don't need to use DHCP version six.
430

431

00:18:52,980  -->  00:18:55,680
But if you do want to use DHCP version six,
431

432

00:18:55,680  -->  00:18:57,560
you can and it will allow you to assign
432

433

00:18:57,560  -->  00:19:00,070
what addresses each interface is going to get
433

434

00:19:00,070  -->  00:19:00,903
instead of allowing them
434

435

00:19:00,903  -->  00:19:03,870
to use the auto configuration protocol of SLAAC.
435

436

00:19:03,870  -->  00:19:07,270
Now as I said, IPv6 will choose its own address
436

437

00:19:07,270  -->  00:19:09,640
based on its MAC address by default.
437

438

00:19:09,640  -->  00:19:12,160
Then it's going to use this thing known as NDP
438

439

00:19:12,160  -->  00:19:14,040
or the Neighbor Discovery Protocol
439

440

00:19:14,040  -->  00:19:17,080
to learn about the other layer two addresses on the network
440

441

00:19:17,080  -->  00:19:18,710
based on their MAC addresses
441

442

00:19:18,710  -->  00:19:21,340
and then it will pick its own host ID.
442

443

00:19:21,340  -->  00:19:23,310
Let's talk a little bit more about NDP,
443

444

00:19:23,310  -->  00:19:25,220
that Neighbor Discovery Protocol.
444

445

00:19:25,220  -->  00:19:27,570
NDP is used to perform router solicitation,
445

446

00:19:27,570  -->  00:19:30,080
router advertisement, neighbor solicitation,
446

447

00:19:30,080  -->  00:19:32,580
neighbor advertisement and redirection.
447

448

00:19:32,580  -->  00:19:34,270
Router solicitation is when your client
448

449

00:19:34,270  -->  00:19:35,390
is going to send a message
449

450

00:19:35,390  -->  00:19:37,230
to locate the routers on its network
450

451

00:19:37,230  -->  00:19:39,510
because it has to figure out what the default gateway is
451

452

00:19:39,510  -->  00:19:41,820
that everyone's using so it can get out of that network
452

453

00:19:41,820  -->  00:19:43,220
and onto the internet.
453

454

00:19:43,220  -->  00:19:46,150
Routers can also do advertisements over NDP.
454

455

00:19:46,150  -->  00:19:46,990
Essentially they're going to say,
455

456

00:19:46,990  -->  00:19:48,820
hey, I'm the router, I'm over here.
456

457

00:19:48,820  -->  00:19:51,640
You guys can solicit me and ask me questions.
457

458

00:19:51,640  -->  00:19:54,050
Neighbor solicitation is where your IPv6
458

459

00:19:54,050  -->  00:19:55,120
starts going around and saying,
459

460

00:19:55,120  -->  00:19:57,080
hey, what other nodes are on this network
460

461

00:19:57,080  -->  00:19:59,530
and they ask their neighbors or other devices.
461

462

00:19:59,530  -->  00:20:01,720
This allows your interface to try to determine
462

463

00:20:01,720  -->  00:20:04,160
what link layer addresses or layer two addresses
463

464

00:20:04,160  -->  00:20:06,210
are out there so it can learn from them
464

465

00:20:06,210  -->  00:20:08,550
and figure out how to talk to them directly.
465

466

00:20:08,550  -->  00:20:11,480
Now neighbor advertisement is like router advertisement,
466

467

00:20:11,480  -->  00:20:13,260
but it happens with your neighbors.
467

468

00:20:13,260  -->  00:20:15,620
Those clients start saying, hey, hey, I'm over here.
468

469

00:20:15,620  -->  00:20:17,260
These are all the different services that I offer.
469

470

00:20:17,260  -->  00:20:18,880
You should come talk to me.
470

471

00:20:18,880  -->  00:20:20,510
Finally, we have redirection
471

472

00:20:20,510  -->  00:20:22,290
which is where routers can inform the hosts
472

473

00:20:22,290  -->  00:20:24,620
that there are better first-hop router options out there
473

474

00:20:24,620  -->  00:20:26,760
to increase the efficiencies of your network.
474

475

00:20:26,760  -->  00:20:29,230
For example, if I'm sitting in San Juan, Puerto Rico
475

476

00:20:29,230  -->  00:20:31,860
and my computer thinks the best first-hop router
476

477

00:20:31,860  -->  00:20:34,420
is for me to get to New York and then go over to California,
477

478

00:20:34,420  -->  00:20:36,560
this may not be the most efficient route for me,
478

479

00:20:36,560  -->  00:20:37,950
but it probably works.
479

480

00:20:37,950  -->  00:20:40,380
Now another router in Florida might go, hey, you know what?
480

481

00:20:40,380  -->  00:20:42,360
I'm actually a better first-hop router for you.
481

482

00:20:42,360  -->  00:20:44,610
I can save you some time. So I'm closer.
482

483

00:20:44,610  -->  00:20:46,840
Come talk to me and I'll send your information
483

484

00:20:46,840  -->  00:20:48,740
all the way over to California faster for you
484

485

00:20:48,740  -->  00:20:50,350
than that guy up in New York can.
485

486

00:20:50,350  -->  00:20:52,370
This is the idea of redirection.
486

487

00:20:52,370  -->  00:20:54,640
Essentially the router says I'm better and faster.
487

488

00:20:54,640  -->  00:20:56,060
Use me instead.
488

489

00:20:56,060  -->  00:20:59,070
Now for the exam, you don't need to know NDP in depth,
489

490

00:20:59,070  -->  00:21:01,290
but you should understand that NDP,
490

491

00:21:01,290  -->  00:21:02,960
this Neighbor Discovery Protocol,
491

492

00:21:02,960  -->  00:21:05,850
is used in IPv6 and it takes a lot of the functions
492

493

00:21:05,850  -->  00:21:08,310
from layer two and layer three of the OSI model
493

494

00:21:08,310  -->  00:21:10,380
for router advertisement and neighbor discovery
494

495

00:21:10,380  -->  00:21:11,630
and handles them for you.
