ipv6基础介绍

前言

随着Internet规模的扩大,IPv4地址空间已经消耗殆尽。针对IPV4的地址短缺问题,曾先后出现过CIDR和NAT等临时性解决方案,但是CIDR和NAT都有各自的弊端,并不能作为IPv4地址短缺问题的彻底解决方案。另外,安全性、Qos(服务质量)、简便配置等要求也表明需要一个新的协议来根本解决目前IPv4面临的问题。

IETF在20世纪90年代提出了下一代互联网协议-IPv6,IPv6支持几乎无限的地址空间。IPv6使用了全新的地址配置方式,使得配置更加简单。IPv6还采用了全新的报文格式,提高了报文处理的效率、安全性,也能更好的支持Qos。

学习目标

学完本课程后,您应该能:

  • 掌握IPv6的基本概念
  • 掌握 IPv6地址格式和地址类型
  • 掌握IPv6无状态地址配置的过程

IPV6地址

ipv4 大约43亿个。

ipv6 3.4 乘以10的38次方个。

·1,网络爆炸增长

2,ipv4分配不合理

3,ipv4 按类分类。,不灵活。

每个人拥有5乘以10的28次方个ip地址

地球上每粒沙子都有一个ip地址

ipv6报文头

IPv6的基本报头在IPv4报文的基础上,增加了流标签域,去除了一些冗余的字段,使报文头的处理更为简单、高效。

IPv6扩展报头

路由、逐跳、目的选项、认证、安装封装净载、分片。

IPv6地址格式

IPv6地址长试为128比特,第16比特划分为一段,第段由4个十六进制数表示,并用冒号隔开。冒号分16进制。

IPv6地址包括网络前缀和接口标识两部分。

 

2001:0DB8:0000:0000:0000:0000:0346:8D58

IPv6地址压缩格式

每一组中的前导“0”都可以省略

地址中包含的连续全为0的组,可以用双冒号“::”来代替,“::”只能出现一次。

2001:0DB8:0000:0000:0000:0000:0346:8D58、

2001:DB8:0:0:0:0:346:8D58

2001:DB8::346:8D58

IPv6地址分类

地址范围

描述

2000::/3全球单播地址(只要前3位为001)
2001:0DB8::/32保留地址(文档保留地址)
3FFF:FFFF::/32示例地址
2002::/16用于IPv6到IPv4的转换系统
3FFE::/16 用于6bone测试目的的前缀
FE80::/10链路本地地址
FF00::/8组播地址
::/128未指定地址
::1/128环回地址

 IPv6地址分为单播地址、任播地址、组播地址三种类型。

 

IPv6私网地址

Site-local 站点本地地址 FEC0::/10(IETF已收回)

unique local 唯一本地地址 FC:00/10

参见:RFC 3879

IPv6单播地址

ipv6.baidu.com 2400:da00:2::29

ipv6.taobao.com  2001:da8:20d:7042::f2  2001:da8:20d:7042::f2

IPv6全球单播地址范围:2000:0000:0000:0000:0000:0000:0000:0000~3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF。

 

全球单播地址带有固定前缀,类似与IPv4中的公网地址。

链路本地单播地址前缀为FE80::/10,类似与IPv4中的169.254.X.X/16

IPv6组播地址

FF02::1    链路本地范围所有节点

FF02::2   链路本地范围所有路由器

所有IPv6组播地址都能FF开始。

IPv6为需要使用组播发送数据的协议预留了一些组播组。

ipv4 OSPF--->224.0.0.5,224.0.0.6

ripv2 224.0.0.9

ipv6 ospfv3--> FF02::5,FF02::6

ripng--->FF02::9

IPv6任播地址

任播地址用来标识一组网络接口,在给多个主机或者节点提供相同服务时提供冗余和负载分担。

IPv6无状态自动配置

网络节点向相连的路由器发送RS,请求地址前缀信息。

路由器通过发送路由器通告RA,回复地址前缀信息。

加上MAC构造IPV6地址

ICMPv6 TYPE= 133(路由器请求)

ICMPv6 TYP=134 (路由器通告RA)

2.手工,静态配置

3.EUI-64 自动IPv6

将FFFE插入MAC地址的前24位与后24位之间,并将第7位的0改为1即可生成接口ID。

实验

00E0-FC10-172F-->00E0-FCFF-FE10-172F-->02E0-FCFF-FE10-172F-->FE80::2E0-FCFF-FE10-172F

IPv6无状地址DAD检查

ICMPv6 TYPE 135(邻居请求NS)

ICMPv6 TYPE 136(邻居通告)

当为接口配置IPv6地址时,DAD用来在本地链路范围内检测将要使用的IPv6地址是否唯一。、

4,有状态的地址配置

DHCP

路由通告中,M=1,向DHCP服务器请求IP地址。

                      O=1,向服务器请求其他设置,DNS服务器,搜索后缀等。

icmpv6 

 

邻居不可达检测(NUD)

NUD(Neighbor Unreachable Detection,邻居不可达检测)是节点确定邻居可达性的过程。邻居不可达检测机制通过邻居可达性状态机来描述邻居的可达性。

邻居可达性状态机保存在邻居缓存表中,共有如下6种状态:

(1)INCOMPLETE(未完成状态):表示正在解析地址,但邻居链路层地址尚未确定。

(2)REACHABLE(可达状态):表示地址解析成功,该邻居可达。

(3)STALE(失效状态):表示可达时间耗尽,未确定邻居是否可达。

(4)DELAY(延迟状态):表示未确定邻居是否可达。DELAY状态不是一个稳定的状态,而是一个延时等待状态。

(5)PROBE(探测状态):节点会向处于PROBE状态的邻居持续发送NS报文。

(6)EMPTY(空闲状态):表示节点上没有相关邻接点的邻居缓存表项。

linux系统查看ipv6邻居可达性状态机(stale,delay,reachable)

[root@localhost ~]# ip -6 neighbor show
fe80::40ed:b86a:a45b:c51e dev ens37 lladdr 00:0c:29:ce:82:a8 STALE
fd00::2 dev ens37 lladdr 00:0c:29:ce:82:a8 STALE
[root@localhost ~]# ip -6 neighbor show
fe80::40ed:b86a:a45b:c51e dev ens37 lladdr 00:0c:29:ce:82:a8 DELAY
fd00::2 dev ens37 lladdr 00:0c:29:ce:82:a8 REACHABLE
[root@localhost ~]# ip -6 neighbor show
fe80::40ed:b86a:a45b:c51e dev ens37 lladdr 00:0c:29:ce:82:a8 REACHABLE
fd00::2 dev ens37 lladdr 00:0c:29:ce:82:a8 REACHABLE

 

windows系统查看ipv6邻居可达性状态机

C:\Users\Administrator>netsh interface ipv6 show neighbors

接口 1: Loopback Pseudo-Interface 1


Internet 地址                                 物理地址           类型
--------------------------------------------  -----------------  -----------
ff02::2                                                          永久
ff02::16                                                         永久
ff02::1:2                                                        永久
ff02::1:ff00:1                                                   永久
ff02::1:ff26:b9c                                                 永久

接口 12: Ethernet0


Internet 地址                                 物理地址           类型
--------------------------------------------  -----------------  -----------
fd00::1                                       00-0c-29-6d-41-2b  停滞
fe80::790a:ce91:b726:b9c                      00-0c-29-6d-41-2b  停滞
ff02::1                                       33-33-00-00-00-01  永久
ff02::2                                       33-33-00-00-00-02  永久
ff02::16                                      33-33-00-00-00-16  永久
ff02::1:2                                     33-33-00-01-00-02  永久
ff02::1:3                                     33-33-00-01-00-03  永久
ff02::1:ff00:1                                33-33-ff-00-00-01  永久
ff02::1:ff00:2                                33-33-ff-00-00-02  永久
ff02::1:ff26:b9c                              33-33-ff-26-0b-9c  永久
ff02::1:ff5b:c51e                             33-33-ff-5b-c5-1e  永久


Internet 地址                                 物理地址           类型
--------------------------------------------  -----------------  ----------
fd00::1                                       00-0c-29-6d-41-2b  可以访问
fe80::790a:ce91:b726:b9c                      00-0c-29-6d-41-2b  可以访问

图2-11  邻居状态机

图中实线箭头表示由NS/NA报文交互导致的状态变化,各状态间的相互转换如下:

① 在EMPTY状态时,如果有报文要发送给邻接节点,则在本地邻居缓存表建立该邻接节点的表项,并将该表项置于INCOMPLETE状态,同时向邻接节点以组播方式发送NS报文。  

② 节点收到邻居回应的单播NA报文后,将处于INCOMPLETE状态的邻居缓存表项转化为REACHABLE状态。如果地址解析失败(发出的组播NS超时),则删除该表项。

③ 处于REACHABLE状态的表项,如果在REACHABLE_TIME时间内没有收到关于该邻居的“可达性证实信息”,则进入STALE状态。此外,如果该节点收到邻居节点发出的非S置位NA报文,并且链路层地址有变化,相关表项会进入STALE状态。

④ 处于STALE状态的表项,当有报文发往该邻居时,这个报文会利用缓存的链路层地址进行封装,并使该表项进入DELAY状态,等待收到“可达性证实信息”。

⑤ 进入DELAY状态后,如果DELAY_FIRST_PROBE_TIME时间之内还未收到关于该邻居的“可达性证实信息”,则该表项进入PROBE状态。

⑥ 在PROBE状态时,节点会周期性地用NS报文来探测邻居的可达性,探测最大时间间隔为RETRANS_TIMER,在最多尝试MAX_ UNICAST_SOLICIT次后,如果仍未收到邻居回应的NA报文,则认为该邻居已不可达,该表项将被删除。

NodeA上,NodeB的表项处于STALE状态。此时若NodeA有报文发往NodeB,且没有上层协议能够提供到NodeB的“可达性证实信息”时,则NodeA需要重新验证到NodeB的可达性。

NUD过程与地址解析过程的主要不同之处在于以下两点:

(1)NUD的NS报文的目的MAC是目的节点的MAC地址;目的IPv6地址为NodeB的单播地址,而不是被请求节点组播地址。  

(2)NA报文中的S标记须置位,表示是可达性确认报文,即这个NA报文是专门响应NS报文的。

Centos7 路由通告配置

ip地址配置

HWADDR=00:0C:29:6D:41:2B
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=10.10.10.1
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
UUID=c4052aca-1d7c-3bdc-8a73-f437c5ebec0e
ONBOOT=yes
IPV6ADDR=fd00::1/64
IPV6FORWARDING=yes
PEERDNS=yes

radvd配置

radvd.conf配置

# NOTE: there is no such thing as a working "by-default" configuration file.
#       At least the prefix needs to be specified.  Please consult the radvd.conf(5)
#       man page and/or /usr/share/doc/radvd-*/radvd.conf.example for help.
#
#
interface ens37
{
    AdvSendAdvert on;
    AdvManagedFlag on;
    AdvOtherConfigFlag on;
    MinRtrAdvInterval 30;
    MaxRtrAdvInterval 100;

    AdvLinkMTU 1500;
    prefix fd00::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr off;
    };
    RDNSS 2900:8:8:8::99
    {
        AdvRDNSSPreference 8;
        AdvRDNSSLifetime 180;
    };
};
~

开启ipv6转发

[root@localhost etc]# cat sysctl.conf 
# sysctl settings are defined through files iG
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).\
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.all.forwarding = 1
使配置生效并查看效果

sysctl -p

windows系统获取的ipv6地址

linux系统获取的ipv6地址

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值