您当前的位置:首页 > 计算机 > 网络通信

IPV6通过实例配置理解地址类型

时间:09-07来源:作者:点击数:

一、基础的IPV6地址配置

1、IPV6链路本地地址

理论知识

FE80::/10链路本地地址(自动为本地设备配置的地址,做标识用,无法被路由,仅在本链路有效);

注意:链路本地地址仅仅在本链路范围有效,他起的作用就是标识本地节点用的,标识了节点方便我们跑路由协议建立邻居;且每个节点都会加入对应的IPV6组播节点地址,用来代替IPV4的ARP功能,下面我们用实验来进一步理解。

实例配置

EUI64配置链路本地地址

R1上:

ipv6 //全局开IPV6

interface GigabitEthernet0/0/0

ipv6 enable //接口起IPV6

ipv6 address auto link-local //开启链路本地地址自动配置

dis ipv6 int g 0/0/0 //查看接口的IPV6地址

可以看到链路本地地址:FE80::5689:98FF:FE14:378A

前缀是IPV6协议规定好的: FE80::/10

低64位是通过EUI64而来的:5689:98FF:FE14:378A

EUI64:将MAC地址转换为48位的二进制,在MAC地址的24位后插入16进制的FFFE(换算为二进制为16位),翻转第7位(即0变1,1变0)

加入的节点组播地址:FF02::1:FF14:378A

前缀是规定好的: FF02::1:FF/104

低24位:直接拷贝链路本地地址的低64位

IPV6链路本地地址的有效范围为本链路

我们在R1的G0口R2的G0和G1口全部都配置一样的链路本地地址

R1上G0口:链路本地地址状态正常

R2上G1口:链路本地地址状态也正常

R2上G0口:链路本地地址状态显示占用

由此可以确定链路本地地址生效范围仅仅在本链路范围内

链路本地地址邻居的建立

IPV6中不使用ARP表缓存MAC与IP对应映射,是通过IPV6邻居表。

命令:display ipv6 neighbors

IPV6邻居的状态迁移:

Empty(空闲):A发送NS请求包给B。

Incomplete(未完成):A已发送NS请求包,但未收到NA回复包,超过10S未收到NA则回到Empty状态;

Rechable(可达):已收到NA回复包;

Stale(陈旧):收到NA确认回复包已超过30S或是收到B的非请求NA;

Dely(延迟):在stale状态下发送过一个NA包,但5S内没有收到NA回复报文。

Probe(探查):每隔1S重传NA请求包直到收到NS回复报文。

实验拓扑

IPV6中地址查重通过NS、NA报文替换IPV4中ARP广播报文

当我们为接口配置一个地址后(不管是全局地址还是链路本地地址)都会主动发送一个组播报文,报文的源为 : : ,目的地址为配置的地址加入的节点组播地址(固定前缀FF02::1:FF+所配置的地址的低24bit)也就是相当于自己发给自己的被请求节点组播地址,如果有相同的地址肯定是会回包的

抓包上面试验的AR1上G0口,我们可以看到通过NA、NS报文的交互建立邻居

查看IPV6的邻居可以看到邻居的接口以及邻居的状态

IPV6里就没有ARP这个协议了,取代它的是ICMPV6中NS、NA报文

注意:NS、NA报文的范围仅是在本地链路范围内

二、IPV6全局地址

理论知识

全局地址是运营商分配给我们一个全球单播地址,我们通过全球单播地址的前缀来进行我们自己局域网内IPV6全局地址的分配,也就是私有地址的分配;IPV6地址协议允许一台设备有多个IPV6全局地址,且都是有效的类似多活。

2000::/3全球单播地址(类似IPV4公网地址);

64位 64位
前缀 接口ID
全局路由前缀 子网(通常分配到64位) 主机位

全局地址的分配分为两种:有状态和无状态

有状态:通过DHCPV6服务器进行分配地址

无状态:不通过DHCPV6服务器分配地址,自己手动配置或者是SLAAC获取

1、无状态SLAAC获取地址(范围为本地链路)

也就是通过交互RA,RS报文来获取邻居发布的IPV6前缀,通过EUI64生成IPV6全局地址

拓扑:

AR1:

ipv6

interface GigabitEthernet0/0/0

ipv6 enable

ipv6 address 2001::1/64

ipv6 nd ra prefix 2005::/64 60 60 //手动指定发放地址的前缀生存周期为60秒,时长为60秒

undo ipv6 nd ra halt //关闭IPV6的RA报文抑制,使其能发布RA报文

AR2/AR3:

interface GigabitEthernet0/0/0

ipv6 enable

ipv6 address auto global //开启自动获取全局地址

注意:如果不手动指定前缀则默认使用接口的全局地址前缀,时长的指定是因为IPV6规定通过无状态获取的地址是有时间的,到期后地址就失效,需要依赖定期发布的RA报文来刷新时间,所以最好将生成时间做最大值,否则会出现地址失效的问题。

在R1的接口上抓包查看报文:目的地址为组播地址FF02::1类似IPV4:224.0.0.1

查看R3的地址:

2、有状态获取地址

AR1上:

dhcp enable

dhcpv6 pool AR1 //DHCPV6地址池

address prefix 2001::/64

excluded-address 2001::1

dns-server 5000::1

interface GigabitEthernet0/0/0

ipv6 enable

ipv6 address 2001::1/64

undo ipv6 nd ra halt //向邻居发布RA报文,使client可以学习到IPV6网关的缺省路由

ipv6 nd autoconfig managed-address-flag //置位M标志位,向client发布地址前缀

ipv6 nd autoconfig other-flag //职位O指标志位,向client发布DNS等信息

dhcpv6 server AR1 //接口下调用,可以强制为快速发布,只会有两个报文一个solicit一个replay

AR2/AR3上:

dhcp enable

interface GigabitEthernet0/0/0

ipv6 enable

ipv6 address auto link-local

ipv6 address auto global default //接受RA报文,并通过RA报文学习缺省路由

ipv6 address auto dhcp

查看自动获取的接口地址:

dis ipv6 routing-table //查看路由表

AR1接口上抓包

DHCP中继的配置:

AR1上:server上

dhcp enable

dhcpv6 pool AR1

address prefix 2001::/64

excluded-address 2001::1

dns-server 3000::1

interface GigabitEthernet0/0/0

ipv6 enable

ipv6 address 2500::1/64

dhcpv6 server AR1 //调用地址

ipv6 route-static 2001:: 64 2500::2 //写路由,否则与AR2上的relay接口不通

AR2上:relay上:

dhcp enable

interface GigabitEthernet0/0/0

ipv6 enable

ipv6 address 2500::2/64

interface GigabitEthernet0/0/1

ipv6 enable

ipv6 address 2001::1/64

undo ipv6 nd ra halt //发RA报文

dhcpv6 relay destination 2500::1

AR3上:

interface GigabitEthernet0/0/0

ipv6 enable

ipv6 address auto link-local

ipv6 address auto global default //收RA报文并将IPV6网关缺省路由加入路由表

ipv6 address auto dhcp

查看地址:

我们在R3的接口上抓包是正常的DHCPV6报文

在R1接口上抓包是经过DHCP relay转发的单播报文

Relay forw报文是Relay转发client向server发送的请求报文

Relay reply报文是Relay转发server向client发送的回复报文

在一般的IPV6的网络项目上我们最常用到的就是这两类地址,链路本地地址与全球单播地址,注意链路本地地址仅可配置一个,全球单播地址可以配置多个且是多活。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门