ipv6种种

  

IPv6地址解析原理:

IPv6的地址解析包括两个过程:一、解析目的IP对应的链路层地址,二、邻居可达性状态的维护过程。

在IPv4中使用的是ARP协议,在IPv6中使用的是ND(Neighbor discover)协议中的NS和NA报文来实现的。

采用ND协议的优势在于增加了地址解析协议与底层链路的独立性。对每一种链路层系诶都是用相同的地址解析协议,无须再为每一种链路层协议定义一个新的地址解析协议。

减小报文的传播范围。在IPv4中,ARP使用的是广播地址,必须泛滥到二层网络的每台主机。IPv6的地址解析利用三层的组播寻址限制了地址的传播范围,通过将地址解析请求发送到特定解析地址所属的被请求节点组播组(FF02::1:FF00:0/104+IPv6地址后24位组成),减小了报文的传播范围,节省了网络的带宽。


在IPv6中,ND协议通过在节点之间交互NS和NA报文完成IPv6地址到链路层地址的解析,解析后用得到的链路层地址和IPv6地址等信息来建立相应的邻居缓存表项。

NS报文的主要功能字段包括Target Address和Option字段。

TargetAddress包含待解析的IPv6地址。

NA报文的Option字段只使用链路层地址选项(Link layer Address Option)。链路层地址选项包括类型、长度和地址三个部分。

当类型为1时,表示源链路层地址,在NS、RS、Redirect报文中使用;当类型为2时,表明链路层地址为目标链路层地址,在NA报文中使用。


IPv6地址解析过程:假如网络中有主机A和主机B。A的链路层地址为MAC1,IPv6地址为IP1;B的链路层地址为MAC2,IPv6地址为IP2(假设为2001::1)。则A查询B的链路层地址的过程如下:

1)节点A发送一个NS报文到链路上,目的IPv6地址为B对应的被请去节点组播地址(FF02::1:FF00:1),目标地址为IP2,选项字段中携带MAC1;

2)节点B接收到该DS报文后,根据NS报文中的源IPv6地址和源链路层地址选项更新自己的邻居缓存表项,并发送一个NA报文来应答NS报文,报文Option字段中的链路层地址为自己的链路层地址MAC2;

3)节点A收到NA报文后,根据报文中携带的节点B的链路层创建一个到目标节点B的邻居缓存表项。

查看邻居缓存
ip -6 neighbor show

查看路由

ip -6 route show
route -A 'inet6'
route -6

添加IPV6地址
ip -6 addr add <ipv6address>/<prefixlength> dev <interface>
ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0

ifconfig <interface> inet6 add <ipv6address>/<prefixlength>
ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64

添加默认路由
ip -6 route add <ipv6network>/<prefixlength> via <ipv6address>
ip -6 route add default via 2001:0db8:0:f101::1

route -A inet6 add <ipv6network>/<prefixlength> gw
route -A inet6 add default gw 2001:0db8:0:f101::1

NS报文:

 地址ff02::1::ff00:1是1::1被请求节点组播地址。Link-layer包含了自己的链路层地址。

NA报文:

 Flags标志位字段中三个标志位都置位了,router字段表示发送者是router、solicited字段表示此报文是对NS的回应、override字段表示本次地址解析结果覆盖以前的结果。NA报文以单播形式发送。

猜你喜欢

转载自www.cnblogs.com/liuhongru/p/11525824.html