IPv6終端地址獲取的方法有四種:
- 靜態地址配置: 與IPv4一樣,指定終端的IPv6地址,掩碼(prefix)和網關地址等
- 無狀態自動地址配置(SLAAC): 終端上線後發起RS(Router Solicitation), 鏈路內(與IPv4子網概念相同)的路由器收到請求後發送RA(Router Advertisements)給終端,使其能自動配置地址。
- DHCPv6地址分配:只用DHCPv6 Server進行地址分配
- 自動分配與DHCPv6結合:同時使自動地址配置和DHCPv6地址分配
終端地址獲取配置方式依賴於RA報文中的Flags標記位置位情況來定
IPv6用戶上線過程解析:
地址自動配置
1. 終端啟動後,向鏈路內所有路由器(目的地址為:FF02::2)發起RS(Router Solicitation)
2. 鏈路內(與IPv4子網概念相同)的路由器(村長)收到請求後,發送RA(Router Advertisements)
- Flags: 村長的個人愛好(如獲取方式---DHCPv6、自動配置,優先級、代理等)
- Router lifetime: 路由器的存活時間Router lifetime(即你多少時間需要到我這裡來請安)
- IPv6前綴信息 ICMPv6 OptionType=3 Prefix information: 即咱們屬於哪國、哪省、這個村叫什麼名字,簡單說就是網絡號, 小的們拿著這個號後自己在後面加上自己的名字,就是你的IPv6地址(全名), 出門記得報全名
- 鏈路最大傳輸單元ICMPv6 OptionType=5 MTU: 咱們這條路上只能跑多大的報文(如1480 bytes),不允許超載,自覺遵守,否則後果自負。
- 鏈路地址ICMPv6 OptionType=1 Source link-layer addresss: 最後告訴你村長我的小名叫什麼, 有事兒私聊----爺們兒走開!
3. 根據前綴生成地址子網通告: 除去本地鏈路地址(FE80開頭),終端還有兩個根據Prefix生成的地址(一個是主用,一個是臨時用), 生成後,需要站在村裡最高的地方吼一嗓子,咱以後就叫王二麻子了,沒人爭,這個地址就是你用了。
4. 通告路由器自己的新地址:當兩個地址都沒人爭後,麻溜地跑到村長那裡去註冊(可能村裡不止村長一個人能出去,書記也是可以的):村長啊,我準備用王二麻子作為藝名,找幾個筆友,發展成老婆,以後有給王二麻子的信,記得轉交我哦
DHCPv6地址分配
1. 終端上線後,發起RS(Router Solicitation)
2. 路由器回覆RA, flags中Managed address configuration標記位置位
3. 終端按照自動地址配置,獲得兩個自動配置地址
4. 終端發起組播DHCPv6請求(Solicit)
5. DHCPv6 Server通告自己的存在並分配地址(相當於DHCP Offer)
6. 終端發起Request(我就用這個地址了哈,DHCPv6 Server回應relpy(是的)
7. 終端同樣的需要將該地址通告村長
Server IPv6基本配置:
網絡配置
<code>vim
/etc/sysctl.conf/<code>
輸入
<code>net.ipv6.conf.all.disable_ipv6
=0
/<code>
<code>net.ipv6.conf.default.disable_ipv6
=0
/<code>
<code>net.ipv6.conf.lo.disable_ipv6
=0
/<code>
<code>net.ipv6.conf.all.forwarding
=1
/<code>
參數參數設置
<code>vim
/etc/sysconfig/network/<code>
輸入
<code>NETWORKING_IPV6
=yes
/<code>
<code>IPV6FORWARDING
=yes
/<code>
<code>HOSTNAME
=testserver/<code>
<code>ONBOOT
=yes
/<code>
接口配置文件
<code>vim
/etc/sysconfig/network-scripts/ifcfg-br1/<code>
輸入
<code>IPV6INIT
=yes
/<code>
<code>IPV6_AUTOCONF
=no
/<code>
<code>IPV6_DEFROUTE
=yes
/<code>
<code>IPV6_PEERDNS
=yes
/<code>
<code>IPV6ADDR
=2020
:102
:101
:1
::1
/64
/<code>
<code>IPV6FORWARDING
=yes
/<code>
<code>IPV6_FAILURE_FATAL
=no
/<code>
<code>IPV6_PEERROUTES
=yes
/<code>
自動地址配置
安裝radvd
<code>yum
-y install radvd/<code>
配置radvd
<code>cat
/etc/radvd.conf/<code>
<code>interface
br1
/<code>
<code>{/<code>
<code>AdvManagedFlag
off
; #off
為自動地址配置,on
為DHCPv6地址分配/<code>
<code>AdvSendAdvert
on
;/<code>
<code>AdvOtherConfigFlag
off
; #off
為自動地址配置,on
為DHCPv6地址分配/<code>
<code>AdvLinkMTU
1480
;/<code>
<code>MinRtrAdvInterval
30
;/<code>
<code>MaxRtrAdvInterval
100
;/<code>
<code>prefix
2020
:102
:101
:1
::/64
/<code>
<code> {/<code>
<code>AdvOnLink
on
;/<code>
<code>AdvAutonomous
on
;/<code>
<code>AdvRouterAddr
on
;/<code>
<code> };/<code>
<code>};/<code>
啟動服務
<code>systemctl
start
radvd
.service
/<code>
<code>systemctlenable
radvd.service /<code>
終端後的地址後,在CentOS Server上通過ip -6 neighbor show查看IPv6 鄰居緩存
通過ping6查看鄰居連通性(注意終端防火牆配置允許ICMPv6)
DHCPv6安裝和配置
DHCPv6允許更加靈活的配置方式和更多的參數下發。
DHCP Server安裝
<code>[ ]/<code>
修改radvd配置文件中兩個參數:
<code>AdvManagedFlag
on
;/<code>
<code>AdvOtherConfigFlag
on
;/<code>
保存後,重啟服務:
<code>systemctl
restart
radvd
.service
/<code>
配置dhcpv6
<code>vim
/etc/dhcp/dhcpd6.conf/<code>
輸入
<code>default
-lease-time604800
;/<code>
<code>preferred-lifetime
604800
;
/<code>
<code>option dhcp-renewal-time
1800
;/<code>
<code>option dhcp-rebinding-time
3600
;/<code>
<code>allow
leasequery;/<code>
<code>option
dhcp6
.name-servers
2020:102
:101
:1
::1
;/<code>
<code>option
dhcp6.domain-search"testserver"
;/<code>
<code>option
dhcp6
.preference
255;/<code>
<code>option dhcp6.rapid-commit
;/<code>
<code>option
dhcp6.info
-refresh-time21600
;/<code>
<code>dhcpv6
-lease-file-name"/var/lib/dhcpd/dhcpd6.leases"
;/<code>
<code>subnet6
2020
:102
:101
:1
::/64
{/<code>
<code>range6
2020:102
:101
:1
::100
2020:102
:101
:1
::200
;/<code>
<code>}/<code>
啟用服務
<code>systemctlenable
dhcpd6/<code>
<code>systemctl
start dhcpd6/<code>
注意需要開啟udp 547端口,否則DHCPv6報文無法到達Server上層
<code>firewall-cmd --add
-port=547
/udp –permanent/<code>
<code>firewall-cmd –reload/<code>
終端上線獲得地址後,可在Server的lease記錄中查到
Window下查看IPv6鄰居
<code>netshinterface
ipv6
show
neighbor
/<code>
配置IPv6 DNS Server
<code>yum installbind
/<code>
確認配置中開啟ipv6接口監聽
<code>cat
/etc/named.conf/<code>
啟動服務
<code>systemctlenable
named/<code>
<code>systemctl
start named/<code>
放開防火牆端口
<code>firewall-cmd --add
-port=53
/udp –permanent/<code>
<code>firewall-cmd –reload/<code>