ipv6终端地址获取的方法有四种:

终端地址获取配置方式依赖于RA报文中的Flags标记位置位情况来定


IPv6用户上线过程解析:

地址自动配置

1. 终端启动后,向链路内所有路由器(目的地址为:FF02::2)发起RS(Router Solicitation)

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(1)

#RS

2. 链路内(与IPv4子网概念相同)的路由器(村长)收到请求后,发送RA(Router Advertisements)

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(2)

#RA

3. 根据前缀生成地址子网通告: 除去本地链路地址(FE80开头),终端还有两个根据Prefix生成的地址(一个是主用,一个是临时用), 生成后,需要站在村里最高的地方吼一嗓子,咱以后就叫王二麻子了,没人争,这个地址就是你用了。

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(3)

#NS通告

4. 通告路由器自己的新地址:当两个地址都没人争后,麻溜地跑到村长那里去注册(可能村里不止村长一个人能出去,书记也是可以的):村长啊,我准备用王二麻子作为艺名,找几个笔友,发展成老婆,以后有给王二麻子的信,记得转交我哦

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(4)

#NA路由器通告


DHCPv6地址分配

1. 终端上线后,发起RS(Router Solicitation)

2. 路由器回复RA, flags中Managed address configuration标记位置位

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(5)

#RA

3. 终端按照自动地址配置,获得两个自动配置地址

4. 终端发起组播DHCPv6请求(Solicit)

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(6)

#DHCPv6 Solicit

5. DHCPv6 Server通告自己的存在并分配地址(相当于DHCP Offer)

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(7)

#DHCPv6 Advertise


6. 终端发起Request(我就用这个地址了哈,DHCPv6 Server回应relpy(是的)

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(8)

#DHCPv6 Request & Reply

7. 终端同样的需要将该地址通告村长

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(9)

#NA


Server IPv6基本配置:

网络配置

vim /etc/sysctl.conf

输入

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

参数参数设置

vim /etc/sysconfig/network

输入

NETWORKING_IPV6=yes

IPV6FORWARDING=yes

HOSTNAME=testserver

ONBOOT=yes

接口配置文件

vim /etc/sysconfig/network-scripts/ifcfg-br1

输入

IPV6INIT=yes

IPV6_AUTOCONF=no

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6ADDR=2020:102:101:1::1/64

IPV6FORWARDING=yes

IPV6_FAILURE_FATAL=no

IPV6_PEERROUTES=yes


自动地址配置

安装radvd

yum -y install radvd

配置radvd

cat /etc/radvd.conf

interface br1

{

AdvManagedFlag off;  #off为自动地址配置,on为DHCPv6地址分配

    AdvSendAdvert on;

    AdvOtherConfigFlag off;  #off为自动地址配置,on为DHCPv6地址分配

    AdvLinkMTU 1480;

    MinRtrAdvInterval 30;

    MaxRtrAdvInterval 100;

    prefix 2020:102:101:1::/64

    {

        AdvOnLink on;

        AdvAutonomous on;

        AdvRouterAddr on;

    };

};

启动服务

systemctl start radvd.service

systemctl enable radvd.service  


终端后的地址后,在CentOS Server上通过ip -6 neighbor show查看IPv6 邻居缓存

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(10)

通过ping6查看邻居连通性(注意终端防火墙配置允许ICMPv6)

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(11)


DHCPv6安装和配置

DHCPv6允许更加灵活的配置方式和更多的参数下发。

DHCP Server安装

[root@172-12-0-100 ~]# yum install dhcp

修改radvd配置文件中两个参数:

AdvManagedFlag on;

AdvOtherConfigFlag on;

保存后,重启服务:

systemctl restart radvd.service


配置dhcpv6

vim /etc/dhcp/dhcpd6.conf

输入

default-lease-time 604800;

preferred-lifetime 604800;

option dhcp-renewal-time 1800;

option dhcp-rebinding-time 3600;

allow leasequery;

option dhcp6.name-servers 2020:102:101:1::1;

option dhcp6.domain-search "testserver";

option dhcp6.preference 255;

option dhcp6.rapid-commit;

option dhcp6.info-refresh-time 21600;

dhcpv6-lease-file-name "/var/lib/dhcpd/dhcpd6.leases";

 subnet6 2020:102:101:1::/64 {

    range6 2020:102:101:1::100 2020:102:101:1::200;

}

启用服务

systemctl enable dhcpd6

systemctl start dhcpd6


注意需要开启udp 547端口,否则DHCPv6报文无法到达Server上层

firewall-cmd --add-port=547/udp –permanent

firewall-cmd –reload

终端上线获得地址后,可在Server的lease记录中查到


centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(12)

Window下查看IPv6邻居

netsh interface ipv6 show neighbor

配置IPv6 DNS Server

yum install bind


确认配置中开启ipv6接口监听

cat /etc/named.conf

centosipv6不可访问(IPv6地址获取方式及对应的CentOS服务器搭建)(13)


启动服务

systemctl enable named

systemctl start named

放开防火墙端口

firewall-cmd --add-port=53/udp –permanent

firewall-cmd –reload

,