查看ipv6 mac地址_IPv6基础及常用命令

IPv6/IPv4协议栈对比

6014a4273182dde194a04dae9acb6ea6.png

IPv6的一些变化

1bcf807d89a27dc6634dc9587e8f63a8.png

1)数据链路层(L2)的type字段标识为 0x86dd,表示承载的上层协议是IPv6(IPv4对比:type字段为0x0800);

2)IPv6的头部字段(40bytes),和IPv4差别巨大。

  • IPv6报文头部是定长(固定为40字节),IPv4报文头部是变长的。这个意味着,写代码处理IPv6数据报文的效率会提高很多:);
  • IPv6中Hop Limit字段含义类似IPv4的TTL;
  • IPv6中的Traffic Class字段含义类似IPv4中的TOS(Type Of Service);
  • IPv6的报文头部取消了校验和字段:取消这个字段也是对IPv4协议的一个改进。当IPv4报文在网路间传输,每经过一个路由器转发就是修改TTL字段,就需要重新计算校验和,而由于数据链路层L2和传输层L4的校验已经足够强壮,因此IPv6取消这个字段会提高路由器的转发效率。值得一提的是,在IPv6协议下,传输层L4协议UDP、TCP是强制需要进行校验和的(IPv4是可选的);
  • IPv6报文头部中的Next Header字段表示“承载上一层的协议类型”或者“扩展头部类型”。
  • 当IPv6数据报文承载的是上层协议ICMPv6、TCP、UDP的时候,Next Header的值分别为58、6、17,这个时候和IPv4报文头部中的Protocol字段很类似;
  • 当不是以上3种协议类型的时候,IPv6报文头部紧接的是扩展头部。扩展头部是IPv6引入的一个新的概念,每个IPv6的数据报文可以承载0个或多个扩展头部,扩展头部通过链表的形式组织起来。当IPv6数据报文承载着扩展头部的时候,Next Header的数值为扩展头部的类型值。
  • 当发送一个分片IPv6数据报文的时候,IPv6使用的是扩展头部的形式组织各个分片的信息, Next Header字段值为44
  • 对比IPv4,分片信息是记录在IPv4报文头部的分片字段中。
  • IPv6的扩展头部类型有很多种,除了上述的分片头部,还有路由头部、逐跳可选头部等,具体的可以参考RFC2460。

邻居发现协议NDP

邻居发现协议NDP是通过 Internet 控制报文协议(ICMPv6)报文来承载的;在一个IPv6数据报中,如果该数据报的“下一个报头”字段的值为 58,且 ICMPv6 报文中类型字段取值范围为133-137,则此IPv6报文的数据部分含有邻居发现协议报文。NDP使用ICMPv6报文实现地址解析,跟踪邻居状态,重复地址检测,路由器发现以及重定向等功能。

  • 路由请求报文(Router Solicitation Message,RS)

ICMPv6 Type = 133

接口初始化或接口地址发生变化时,终端主动发起RS请求路由信息

70c9afeb1358696257ee9e08cb63f016.png
  • 路由通告报文(Router Advertisement Message,RA)

ICMPv6 Type = 134

路由器定期或收到用户RS时发送RA报文(包含路由有效时间,终端获取方式,前缀信息等),当终端收到RA报文后会根据RA报文的指示构造自己的地址,建立路由信息和缺省网关等

308d71d7b040aba934de9a2fd875a66a.png
  • 邻居请求报文NS(Neighbor Solicitation Message,NS)

ICMPv6 Type 135

  1. 邻居请求报文可以用来完成ARP的功能(地址解析),NS 报文包含发送方的源链路层mac地址,IPV6首部中:当进行地址解析时,目的IPV6地址是一个多播地址
19fe29a8dd74e110ef34f21f2d68f6ca.png

2.可以用来探测目的主机的连通性(跟踪邻居状态)

7823d116d40175e93aed864a05169c4e.png

3.可以用来验证自己的地址在本地链路上是否唯一,IPV6首部中:目的地址是邻居的多播地址。

44394e3c6c56e0f9df9241abb0321850.png
  • 邻居通告报文NA(Neighbor Advertisement Message,NA)

ICMPv6 Type 135

通告邻居自己的能力(如路由器,置位R标记),是否收到请求发送,是否需要立刻覆盖邻居表

e789136eda5c9cd80fafa741ec90b487.png
  • 重复地址检测

重复地址检测DAD(Duplicate Address Detect)是在接口使用某个IPv6单播地址之前进行的,主要是为了探测是否有其它的节点使用了该地址。尤其是在地址自动配置的时候,进行DAD检测是很必要的。一个IPv6单播地址在分配给一个接口之后且通过重复地址检测之前称为试验地址(Tentative Address)。此时该接口不能使用这个试验地址进行单播通信,但是仍然会加入两个组播组:ALL-NODES组播组和试验地址所对应的Solicited-Node组播组。

IPv6重复地址检测技术和IPv4中的免费ARP类似:节点向试验地址所对应的Solicited-Node组播组发送NS报文。NS报文中目标地址即为该试验地址。如果收到某个其他站点回应的NA报文,就证明该地址已被网络上使用,节点将不能使用该试验地址通讯。

53cb91ca7c1867d0e3928e36e4a23250.png

跟踪邻居状态

通过邻居或到达邻居的通信,会因各种原因而中断,包括硬件故障、接口卡的热插入等。如果目的地失效,则恢复是不可能的,通信失败;如果路径失效,则恢复是可能的。因此节点需要维护一张邻居表,每个邻居都有相应的状态,状态之间可以迁移。

RFC2461中定义了5种邻居状态,分别是:

  • 未完成(Incomplete)
  • 可达(Reachable)
  • 陈旧(Stale)
  • 延迟(Delay)
  • 探查(Probe)
4519407824bb4ff4fa95639b99e64be4.png

A之间的邻居状态迁移的过程:

  1. A先发送NS报文,并生成缓存条目,此时,邻居状态为Incomplete。
  2. 若B回复NA报文,则邻居状态由Incomplete变为Reachable,否则固定时间后邻居状态由Incomplete变为Empty,即删除表项。
  3. 经过邻居可达时间,邻居状态由Reachable(默认30s)变为Stale,即未知是否可达。
  4. 如果在Reachable状态,A收到B的非请求NA报文(MAC地址修改),且报文中携带的B的链路层地址和表项中不同,则邻居状态马上变为Stale。
  5. 在Stale状态若A要向B发送数据,则邻居状态由Stale变为Delay,并发送NS请求。
  6. 在经过一段固定时间后,邻居状态由Delay(默认5s)变为Probe(每隔1s发送一次NS报文,连续发送3次),其间若有NA应答,则邻居状态由Delay变为Reachable。
  7. 在Probe状态,A每隔一定时间间隔z(1s)发送单播NS,发送固定次数(3)后,有应答则邻居状态变为Reachable,否则邻居状态变为Empty,即删除表项。

Linux常用IPv6命令

查看接口地址

ip -f inet6 addr show br1

查看路由

ip -f inet6 route show

显示路由选择表中的ipv6路由

netstat -A inet6 –rn

查看邻居缓存

ip -f inet6 neighbor show

添加IPV6地址

ip -6 addr add / dev ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0
 ifconfig  inet6 add /ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64

添加路由

ip -6 route add / via ip -6 route add default via 2001:0db8:0:f101::1
 route -A inet6 add / gwroute -A inet6 add default gw 2001:0db8:0:f101::1ip -6 route add 2001:1:1:1fb::/64 dev  br1 via fe80::68b:42ff:fe28:f02

删除路由

ip -6 route del 2001:1:1:200::/64ip -f inet6 route del ipv6-prefix/prefixlength via gateway[dev interface]route -A inet6 del ipv6-prefix/prefixlength via gateway[dev interface]

Ping

检查连通性

traceroute6

traceroute6使用ipv6跟踪到目的网络路由

5.tracepath6 ipv6网址 路径跟踪并发现到目的网络的MTU值

Windows常用IPv6命令

查看接口地址

ip -f inet6 addr show br1

查看路由

ip -f inet6 route show

查看邻居

netsh interface ipv6 show neighbors

其它netsh

9fefab56737fc8f030309a132ddc54e4.png
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IPv4 包头为12字段 (点分十进制) IPv6 包头为8字段 (冒号分16进制) 共8个小节,每小节4个16bit IPV6地址=前缀+接口标识 <为何要部署IPV6> ·IPv4的局限性: 1.地址空间的局限性:IP地址空间的危机由来已久,并正是升级到IPv6的主要动力。 2.安全性:IPv4在网络层没有安全性可言,安全性一直被认为是由网络层以上的层负责。 3.自动配置:对于IPv4节点的配置比较复杂,让很多普通用户无所适从。 4.NAT:破坏了Internet端到端的网络模型。 5.由于IPv4地址分配杂乱无章,没有层次性,网络设备需要维护庞大的路由表项。 6.IPv4包头过于复杂,使得网络节点处理的效率不高。 IPV6的好处: 1、超大的地址空间 2、全球可达性,不需要再用NAT 3、全球重新部署,有规划,易于实现聚合 4、能自动配置,实现即插即用 5、方便的进行重编址 6、包头简单,通过扩展包头技术可实现以后的新技术扩展 (基本包头 + n多个扩展包头) ipv4 路由转发的时候,ip包会改变checksum(校验和) 和TTL(每经过一个路由器TTL值减一) ipv6 只变TTL,没有校验和 CPU现在无法实现128位的转发。 最好只是64位的。 ·Theoretical limit: 4.3 billion (十亿) 43亿 Practical limit : 250 million (百万) 2.5亿 Over 420 million Internet in Y2001 (less than 10% of the worldwide population) 没有广播,组播代替广播。所以没有ARP。 IPv4中的广播(broadcast)可以导致网络性能的下降甚至广播风暴(broadcast storm).在IPv6中,就不存在广播这一概念了,取而代之的是组播(multicast)和任意播(anycast),任意播也称为泛播. IPV6在以太网中的协议ID值是0x86DD <IPV6地址的表示方法> ·IPv4 点分十进制 32bit IPv6 冒号分十六进制 128bit 0000:0000:0000:0000:0000:0000:0000:0000=>:: 0000:0000:0000:0000:0000:0000:0000:0001=>0:0:0:0:0:0:0:1=>::1 2001:0000:0000:1234:0000:0000:0567:00ff=>2001::1234:0:0:567:ff 只能有一个:: fe80:0000:0000:0000:0000:0000:0000:0009=>fe80::9 URL的IPV6地址表示 为了区分IPV6地址中的冒号和端口号前的冒号,要把IPV6地址用[]括起来 www.example.net:8080/index.html https:[2001:410:0:1:250:fcee:e450:33ab]:8443/abc.html IPV6中掩码的表示: 在IPV6中掩码只能使用CIDR表示法 2001:410:0:1::45ff/128 2001:410::1/64 注意:在IPV6中没有广播地址和网络号保留地址 ------------------------------------------------------------------------------------------ <IPV6地址类型> 可分为三大类: 1、单播地址 2、组播地址 3、任意播地址 单播--Unicast : one to one ·单播地址用于一对一的连接 ·IPv6单播地址有以下六种类型:  1-Aggregate Global Unicast Address 2xxx:xxxxx/3 - 3FFF: :FFFF 2001::/16 IPV6因特网地址 2002::/16 6to4过渡地址 2-Link Local Address    FE80::/10 (前10位以FE80开头) 3-Site Local Address (Private) FEC0::/10 4-Unspecified Address   0:0:0:0:0:0:0:0/128 => :
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值