IPV6技术笔记(剖析IPv4toIPv6)

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

IPV6技术笔记(剖析IPv4toIPv6)

PassZhang   2019-12-18 我要评论

IPV6技术笔记

IPv6地址入门概念

什么是IPv6?

IPv6,全称Internet Protocol version 6,即网际协议版本6,也叫互联网通信协议第六版。是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址。由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。

IPv4地址困境解决方案:

  1. nat(静态一对一,动态地址池多对多,pat),但是nat非常消耗资源建议使用在防火墙上面
  2. 子网划分
  3. 动态dhcp地址分配
  4. cidr(无类地址地址划分)无类域间路由
  5. enfroced better address managerment(加强地址管理)

IPv6地址的优点

  1. ipv6 支持更大的地址空间, 2^128次方数量
  2. 多宿主(Multihoming),一个ip可以配置在多个接口上面
  3. 自动配置,无状态的,网络设备(路由器)自动配置IP地址
  4. 即插即用
  5. end to end without nat(不需要nat技术) 实现了端到端传输
  6. ipv6中取消了广播地址而代之的以任意播地址
  7. 路由更加的快捷,转发更加快速
  8. 没有广播也没有arp,也没有了2层的网络病毒和网络风暴
  9. 没有校验和,因为2层帧和上层TCP/IP 已经有校验了
  10. 扩展头部
  11. ipv6强制使用ipsec安全技术
  12. ipv6支持双栈技术兼容(ipv4和ipv6),支持ipv6和ipv4之间数据转换

IPv6地址的格式

IPv6地址的长度为128位,相比IPv4地址长度32位变的更长,因此IPv6地址采用每4位组合起来转换成16进制的方式,每4个16进制数再以冒号分隔成8段,例如:2001:0000:0001:00a2:0000:0000:0000:0ec3。每一节中起始的0可以省略,全是0的使用一个0表示。
省略前:2001:0000:0001:00a0:0000:0000:0000:0ec3
省略后:2001:0:1:a2:0:0:0:ec3
然后,用双冒号替代一组联续出现的0,只能取代一组,所以选最长的一组。
取代前:2001:0:1:a2:0:0:0:ec3
取代后:2001:0:1:a2::ec3
最终,2001:0000:0001:00a2:0000:0000:0000:0ec3 = 2001:0:1:a2::ec3

ipv6 地址的表示方法分为三种,分别是:

  1. 首选格式
    1. 首选格式的表示方法就是讲ipv6中的128位
  2. 压缩表示
    1. 一个完整的ipv6地址中,经常性的出现许多个0,将不影响地址结构的0给省略不写表示方法,称为压缩格式。
      1. 第一种情况:
        • 一个完整的ipv6地址如果连续多个段都为0,那么将多个段都使用双冒号来表示,在压缩IPv6的地址时,一个地址只能出现一个::。
      2. 第二种情况:
        • 表示ipv6地址时,允许将一个段中前导部分的0省略不写,因为不影响结构。
      3. 第三种情况:
        结合前两种方法,即将整段的4个字符全为0的部分写成::,也将无意义的0省略不写,结构就可以出现最方便的表示方法。
  3. ipv4是内嵌在ipv6中
    在网络还没有全部从ipv4过渡到ipv6时,就可能出现某些设备即连接了ipv4网络,又连接了ipv6网络,对于这样的情况,就需要一个地址既可以表示ipv4地址,又可以表示ipv6地址。在表示是,定义了两类携带ipv4地址的ipv6地址,他们是“ipv4兼容的ipv6地址”和“ipv4映射的ipv6地址”。
    1. ipv4兼容的ipv6地址
      在“ipv4兼容的ipv6地址”中使用的ipv4地址必须是全球为一个ipv4单播地址。
    2. ipv4映射 的ipv6地址
      定义了第二类含内嵌的ipv4地址的ipv6地址。这个地址类型用于将ipv6的节点表示ipv6地址。

ipv6协议基本包头

参考:https://ccie.lol/knowledge-base/ipv4-and-ipv6-packet-header/

ipv6扩展头

  1. IPv6基础头
  2. 逐跳选项头
  3. 目的地选项头(应用于ipv6目的地址字段的第一个目的地和选路头中所列的附加目的地中)
  4. 选路头
  5. 分段头
  6. 身份验证头
  7. ESP头
  8. 目的地选项头
  9. 上层头
    使用IPv6扩展头,必须按照上面的顺序来进行排序,从以上顺序可知,再同一个IP包中只有目的地选项扩展头可以出现多次,并且仅限于保重包含选路扩展头的情况。

ipv6定义了六大选项扩展:

  1. 逐跳选项头
  2. 选路头
  3. 分段头
  4. 目的地选项头
  5. 身份验证头
  6. 封装安全性

IPv6地址分配情况

ipv6前缀 地址分配情况 所占地址比例 备注
::0/8 Reserved by IETF 1/256 [1]
0200::/7 Reserved by IETF 1/128 [2]
2000::.3 Global unicast 1/8
FE80::/10 Link-local unicast 1/1024 [3]
FEC0::/10 Ressrved by IETF(formely Site-local unicast)
FC00::/7 Unique local ipv6 address 1/128
FF00::/8 Multicast 1/256
Others Reserved by IETF

IPv6三种地址类型

IPv6主要有三种类型的地址:单播地址、组播地址和任播地址。

单播地址:用来唯一标识一个接口,类似于IPv4的单播地址。发送到单播地址的数据报文将被传送给此地址所标识的接口。

在单播寻址模式下,IPv6接口(host)在网段中唯一标识。 IPv6数据包包含源IP地址和目标IP地址。 主机接口配备有在该网络段中唯一的IP地址。当网络交换机或路由器接收到注定到单个主机的单播IP分组时,它发出其连接到该特定主机的输出接口之一 。

多播(组播)地址:用来标识一组接口(通常这组接口属于不同的节点),类似于IPv4的组播地址。发送到组播地址的数据报文被传送给此地址所标识的所有接口。

IPv6组播模式与IPv4相同。 目的地为多个主机的数据包在特殊的多播地址上发送。 所有对该组播信息感兴趣的主机需要首先加入该组播组。 加入组的所有接口接收组播数据包并对其进行处理,而对组播数据不感兴趣的其他主机则忽略组播信息。

任播地址:用来标识一组接口(通常这组接口属于不同的节点)。发送到任播地址的数据报文被传送给此地址所标识的一组接口中距离源节点最近(根据使用的路由协议进行度量)的一个接口。

IPv6引入了一种新型的寻址,称为Anycast寻址。 在此寻址模式下,多个接口(host)被分配相同的任播IP地址。 当主机希望与配备有任播IP地址的主机通信时,它发送单播消息。 在复杂的路由机制的帮助下,在路由成本方面,该单播消息被递送到最接近发送方的主机。

IPv6不使用广播地址,广播地址的功能由多播地址代替。

IPv6的Prefix:
在IPv6网络,路由器使用Prefix来判断IPv6地址是否位于同一个网络,比较普遍的方式是将128位的IPv6
地址切割成64位的Prefix和64位的Interface ID,IPv6 Prefix长度的表示方法是在地址后面加上/xx,
例如上图中的::1/128,表示Prefix为128位。假设所有IPv6地址都使用64位Prefix,就可以拥有2^64个
网络,每个网络可以容纳2^64个IP地址,2的64次方:18446744073709551616,这是个天文数字。所以在
IPv6网络里,已经不需要再把网络分成Subnet。

EUI-64地址:

基于IEEE EUI-64格式。该格式基于已存在的MAC地址来作为64位接口标识符,这样的标识符在本地和全球都是唯一的。IPv6单播地址中的接口标识符用来标识链路上的一个唯一的接口。目前IPv6单播地址基本上都要求接口标
识符为64位。IEEE EUI-64格式的接口标识符是从接口的链路层地址(MAC地址)变化而来的。IPv6地址中
的接口标识符是64位,而MAC地址是48位,因此需要在MAC地址的中间位置(从高位开始的第24位后)插入
十六进制数FFFE(1111111111111110)。为了确保这个从MAC地址得到的接口标识符是唯一的,还要将Uni
versal/Local (U/L)位(从高位开始的第7位)设置为“1”。最后得到的这组数就作为EUI-64格式的接口标
识符。IPv6地址太长,如果要逐个端口配置IPv6地址是件很痛苦的事情,使用EUI-64就可以只设定Prefix
部份,然后接口就会用MAC地址自动生成Interface ID,大大减少工作量。

举例,MAC地址:0012-3400-ABCD
中间插入FFFE使其成为EUI-64 Interface ID: 0012:34FF:FE00:ABCD
最后把第7位改成1:0212:34FF:FE00:ABCD

IPv6 Unicast Addressing(单播)

IPv6大致由前缀,子网ID,接口ID组成

前缀:相当于v4地址中的网络ID
接口ID:相当于v4地址中的主机ID

IPv6有三种不同类型的单播地址方案:

单播中有全局单播地址(公网地址)、链路本地地址(同一链路上通信)、环回地址、未指定地址、唯一本地地址(私有地址)、内嵌Ipv4的地址。

Global Aggregatable Address (2000::/4—3fff::/4),一个接口可配置多个Global地址。(一个端口可以配置多个全球可聚合单播地址,但是一个端口只能配置一个FE80::/10 FE80链路本地地址),可以理解为IPv4公网地址。提供给网络服务提供商。这种地址类型允许路由前缀的聚合,从而限制了全球路由表项的数量。

  1. 2001::/4,ipv6的第一个商业网
  2. 2002::/4,6to4 tunnel
  3. 2003::/16 用于实验用的地址

一般从运营商处申请到的IPv6地址空间为/48,三个最高有效位始终设置为001,再由自己根据需要进一步规划:

link-local (FE80::/10) 也称为链路本地地址,本链路唯一的,用在ipv6的路由协议里面,作为通信地址,每个网卡只能配置一个。可以理解为标识符或者定位符。链路本地地址的前10位为1111111010。此地址用于邻居发现协议,也用于无状态自动配置中本地链路上节点之间的通信。使用链路本地地址作为源或目的地址的数据报文不会被转发到其他链路上。通常使用FE80::/10表示。

Stateless Address Autoconfiguration(SLAAC),无状态地址自动配置。在IPv4网络中,我们可以通
过DHCP让端口自动获取到IP地址,而在IPv6网络里,则通过Auto-configuration来获取IP地址。前面我们
说过EUI-64可以自动产生Interface ID,所以现在要解决的就是如何自动获得Prefix。IPv6使用的是Stat
eless Address Autoconfiguration,Interface向Link-Local发出RS(Router Solicitation)多播
请求来获取配置参数,IPv6 Router回应RA(Router Advertisement)包含Internet层配置参数的路由器
宣告报文进行回应。

site local (FEC0::/10) 用于站点的,存在一定的争议,现在已经被收回了。

特殊地址

地址0:0:0:0:0:0:0:0/128不指定任何内容,称为未指定地址。 简化后,所有的0被压缩为:: / 128。

在IPv4中,地址0.0.0.0与网络掩码0.0.0.0表示默认路由。 相同的概念也适用于IPv6,地址0:0:0:0:0:0:0:0,网络掩码全0表示默认路由。 应用IPv6规则后,此地址压缩为:: / 0。

IPv4中的环回地址由127.0.0.1到127.255.255.255系列表示。 但在IPv6中,只有0:0:0:0:0:0:0:1/128表示环回地址。 环回地址后,可以表示为:: 1/128。

任意播地址(Anycast Address)

任播地址设计用来在多个主机或者节点提供相同的服务时提供冗余和负载分担功能。任播地址九游这样的性质:发送到任播地址的分组,被按照路由协议的侧脸距离,路由到该任播地址的“最近的”接口。任意播又称为泛播。

泛播对于提供某些类型的服务特别有用,尤其是对于客户机和服务器之间不需要有特定关系的一些服务,录入域名服务器和时间服务器,DNS等。MSDP的AnycastRP就是这样的一种典型应用。

任播地址时根据单播地址空间分配的,因此任播地址在句法上不能与单播地址相互。当单播地址分配给与多于一个接口时,该单播地址转化为任播地址。分得该地址的节点必须被显示配置,以便知道该地址是任播地址。这个地址是由路由协议定义的,不能手工配置,任意播地址只能出现在路由器上,并且不能作为数据包的原地址来使用。

任播地址是根据单播地址空间分配的,使用任何已定义的单播地址格式。

节点和路由器必须具备的IPV6地址

组播地址

IPv6 多播(组播)地址是一组接口的标识符(典型在不同节点上)。一个接口可以属于任何数目的多播组。

组播地址最高位前8位固定为全1,也就是“FFXX::/8”

永久分配的多播地址的“含义”独立于范围值。

例如,如果给“NTP服务器组”分配一个组ID 为101(16进制)的永久多播地址,那么

FF01:0:0:0:0:0:0:101意味着在相同接口(即,相同节点)上的所有NTP服务器(作为发送者)。
FF02:0:0:0:0:0:0:101意味着在相同链路上的所有NTP服务器(作为发送者)。
FF05:0:0:0:0:0:0:101意味着在相同站点内的所有NTP服务器(作为发送者)。
FF0E:0:0:0:0:0:0:101意味着在互联网中的所有NTP服务器。

常见的组播地址

所有节点地址:
FF01:0:0:0:0:0:0:1     FF01::1
FF02:0:0:0:0:0:0:1     FF02::1
上述多播地址标识范围1(接口本地)或范围2(链路本地)内的所有IPv6节点组。
所有路由器地址:

FF01:0:0:0:0:0:0:2     FF01::2
FF02:0:0:0:0:0:0:2     FF02::2
FF05:0:0:0:0:0:0:2     FF05::2
上述多播地址标识范围1(接口本地)、范围2(链路本地)或范围5(站点本地)内的所有IPv6路由器组。

IPv6组播地址的MAC地址映射

被请求节点组播地址Solicited-node

在IPv6组播地址中,有一种特别的组播地址,叫做Solicited-node地址(被请求节点组播地址)。
Solicited-node地址是一种特殊用途的地址.主要用于重复地址检测(DAD)和替代IPv4中的ARP。
Solicited-node地址由前缀FF02::1:FF00:0 / 104和ipv6单播地址的最后24位组成。
一个IPv6单播地址对应一个Solicited-node地址。Solicited-node地址有效范围为本地链路范围。
地址格式: FF02:0:0:0:0:1:FFXX:XXXX,具体的对应关系如下:

IPv6 Tunneling

将互联网完全从IPv4转换到IPv6将会是一个及其漫长的过程,目前IPv4仍然占据重要地位。所以在这个转
换的过程中,将会有相当长的一个时期IPv4与IPv6会共同存在于互联网当中。如果两张网完全各自独立是
不现实的,所以就需要一种技术实现IPv4可以与IPv6网络互通。IPv6 Tunneling可以让IPv6报文包裹在
IPv4之中进行传输,IPv6 Tunneling有两种技术,分别是ISATAP6to4 Tunnel

ISATAP

ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)是一种IPv6转换传送机制,允许IPv6
数据包通过IPv4网络上双栈节点传输。它将IPv4地址夹入IPv6地址中,当两台 ISATAP 主机通讯时,可自
动抽取出IPv4地址建立Tunnel即可通讯,且并不需透过其它特殊网络设备,只要彼此间IPv4网络通畅即可。
ISATAP分为Server与Client两个角色,Client向Server请求IPv6地址并建立IPv6 Tunnel。这样Client
便可以透过ISATAP Server与IPv6网络通讯。

我们以下面的场景来演示一下ISATAP如何工作。

● R1和R2位于IPv4网络中,R1(ISATAP Client)的default Route指向R2,无法与IPv6网络进行通信。
● R2与R3跑EIGRP,让R1可以与R3(ISATAP Server)通过IPv4进行通信。
● R3是ISATAP Server,充当中介的角色,连接IPv4和IPv6网络。
● R3与R4跑OSPFv3。
● R4和R5位于IPv6网络中,只有IPv6地址,没有IPv4地址。

示例参考1:https://www.kclouder.cn/network-basic-ivp6/

6to4 Tunnel
ISATAP比较适合单机连接到IPv6网络,并且现在大部分OS都支持ISATAP,比如Windows、Linux系统。如果
希望把两个IPv6网络通过IPv4连接起来,即点对点连接,则使用6to4比较合适。我们以下图为例,这是一个
全路由网络的示例 ,来演示一下如何配置6to4 Tunnel将两个独立的IPv6网络通过IPv4网络打通。
● R2和R3位于IPv4网络中,配置6to4 tunnel。
● R1和R5位于IPv6网络A中,通过R1连接到R2。
● R4和R6位于IPv6网络B中,通过R4连接到R3。

示例参考2:https://www.kclouder.cn/network-basic-ivp6/

ICMPv6协议

ICMPv6由ipv6节点使用,用于报告在分组处理过程中出现的错误,以及执行其他网络互连层功能。icmpv6是ipv6的整体部分,是基础协议,在ipv6的next header取值为58.

消息通用格式:

类型: 指出消息类型。他的值决定其余数据格式。消息类型分为两类:出错消息和指示消息。

出错消息由在它们的消息type字段的二进制值的高阶位取0标识。于是,出错消息的消息类型从0到127;指示消息的消息类型值从128到255.

代码: 依赖于消息类型。它用于生产消息粒度的附加层。

校验和:用户检测ICMPv6消息和ipv6首部部分中的数据错误。

ipv6数据报文

上图显示了icmpv6报文中的通用消息格式、差错报文、通告报文

示例:

ping包时可以查看到回显请求和应答请求。

Type:Echo(ping) reply (129)


Type: Echo(ping) request (128)

==========

ICMPv6与ICMPv4报文类型的比较

了解更多报文类型可以有助于理解原理。

NDP(neighbor discovery protocal) 功能

  1. DAD重复复制检测
  2. 代替ARP
  3. 无状态自动配置
  4. MTU发送
  5. ICMPv6重定向
  6. 发现临近的,帮助转发分组的路由器
  7. 跟踪邻居可达性,侦听邻居链路层地址。

ipv6地址组播

DHCPv6协议

DHCPv6使用组播,所有的DHCP服务器和中继代理监听多播地址(链路范围的FF02::1:2),用于客户端和相邻的服务器及中继代理的通信之用,站点内的所有DHCP服务器侦听多播地址(站点范围的FF05::1:3),用于中继代理和服务器之间的通信。

DHCPv6使用UDP,DHCPv6客户端监听UDP端口546,而DHCPv6服务器和中继代理监听UDP端口547.

IPv6地址获取原理

IPv6地址分配原理有2种,一种是快速分配DHCP地址,另一种是请求多个IPv6地址。

  1. 2个数据包交互情况

当客户端并不需要服务器为其分配IP地址,而是需要获取诸如DNS Server、NTP Server这样的其他配置信息的时候,他只需要与服务器进行一个简单的只包含两个消息的交换即可。客户端发送一个DHCP配置SOLICIT消息到一个特定多播地址,请求地址和其他配置信息,该信息提示服务器:客户端可以接受一个立即的回应消息。而服务器以一个携带了被请求的配置信息的DHCP回应消息应答。所有配置给客户端使用的地址都包括一个有效生存期和首选生存期,为了在生存期到期后继续使用这些地址,客户端向服务器发送DHCP更新消息,服务器通过DHCP回应消息通告新的生存期。

  1. 4个数据包交互情况

要请求一个或者多个IPv6地址,客户端首先需要确定服务器的位置,然后再进行地址和配置新的请求。客户端首先发送一个DHCP Solicit消息到一个特定多播地址,来查找可用的DHCP服务器。所有符合客户单要求的服务器以DHCP Request消息来获取地址和其他配置。

OSPFv3路由协议

OSPFv3证书标准是RFC2740.

OSPFv3使用的协议号与OSPFv2一样,都是89.

OSPFv3协议报文的源IPv6除了虚连接外,依赖使用本地链路地址;目的IPv5地址则是选择ALLSPFRouters、ALLDRouters以及邻接路由器的本地链路地址(虚链路除外),ALLSPFRouters为组播IPv6地址FF02::5,ALLDRouters为组播IPv6地址FF02::6.

OSPFv3单area和DHCPv6配置示例

参考:https://www.kclouder.cn/huawei-ipv6/

实验拓扑:

这里我们将主机演示一下在华为交换机或路由器上配置IPv6地址进行通信、配置DHCPv6、通过配置OSPFv3演示IPv6路由基础、配置IPv6 over IPv4隧道以及配置IPv4 over IPv6隧道的方法。通过本篇文章,我们将掌握基本IPv6地址的配置方法、掌握OSPFv3路由协议的配置方法、掌握DHCPv6服务器功能的配置方法以及一些常见的IPv6命令的使用方法。

配置IPv6
1、我们以下图中的拓扑为例,R1、R2、R3通过一台交换机互联,我们需要在这三台路由器上配置IPv6地址,然后再启用OSPFv3以及DHCPv6。
2、首先在三台服务器的环回接口上配置IPv6全球单播地址,在所有路由器的g0/0/0接口上配置链路本地地址(Link-local)。以下命令以R1为例,以相同的方式配置R2和R3。
# R1
ipv6
int loopback 0
 ipv6 enable
 ipv6 address 2001:1::a 64
int g0/0/0
 ipv6 enable
 ipv6 address fe80::1 link-local

# R2
ipv6
int loopback 0
 ipv6 enable
 ipv6 address 2001:1::b 64
int g0/0/0
 ipv6 enable
 ipv6 address fe80::2 link-local
 
 # R3
ipv6
int loopback 0
 ipv6 enable
 ipv6 address 2001:1::c 64
int g0/0/0
 ipv6 enable
 ipv6 address fe80::3 link-local
 
3、配置完成后,查看并确认接口地址配置正确,并且是UP状态。
display ipv6 int g0/0/0
display ipv6 int loo0

4、配置OSPFv3,在路由器上开启OSPFv3进程,并指定三台路由器的router-id。然后在接口下使能OSPFv3进程并指定所属区域。以下命令以R1为例,以相同的方式配置R2和R3。
# R1
ospfv3 1
 router-id 1.1.1.1
int g0/0/0
 ospfv3 1 area 0
int loo0
 ospfv3 1 area 0

# R1
ospfv3 1
 router-id 2.2.2.2
int g0/0/0
 ospfv3 1 area 0
int loo0
 ospfv3 1 area 0
 
 # R1
ospfv3 1
 router-id 3.3.3.3
int g0/0/0
 ospfv3 1 area 0
int loo0
 ospfv3 1 area 0
 
5、配置完成后,在路由器上查看OSPFv3的邻居关系。可以看到OSPF邻接关系已经形成,R1为DR,R2为BDR,R3为DROther。
display ospfv3 peer

6、使用Ping ipv6命令检测链路本地地址和Loopback0接口的全球单地址是否可达。比如在R1上执行以下命令,如下图可以看到网络是可达的。
ping ipv6 fe80::2 -i g0/0/0
ping ipv6 2001:3::c

7、通过抓包可以看到ICMPv6类型的报文。

8、下面我们来配置DHCPv6,在R2上开启DHCPv6服务器功能,然后创建IPv6地址池并指定地址池中IPv6地址的前缀长度,再配置IPv6地址池中不参与自动分配的IPv6地址(通常为需要保留的网关地址)以及DNS服务器的IPv6地址。
dhcp enable
dhcpv6 duid ll
dhcpv6 pool pool1
 address prefix 2001:face::/64
 dns-server 2001:444e:5300::1
 excluded-address 2001:face::1

9、在g0/0/0接口配置IPv6地址为地址池中的网关地址,并配置DHCPv6服务器功能以及指定的地址池的名称。
int g0/0/0
ipv6 address 2001:face::1 64
dhcpv6 server pool1

10、在R1和R3上配置DHCPv6客户端功能,并在相应的接口下配置通过DHCPv6自动获取IPv6地址功能。同时,我们再配置一台PC自动获取IPv6地址。
dhcp enable
dhcpv6 duid ll
int g0/0/0
 ipv6 address auto dhcp

11、在R2上查看DHCPv6地址池的信息,可以看到有三个地址通过DHCPv6分配了出去。

12、在R1和R3上查看通过DHCPv6获取到的IPv6地址。

13、在PC上查看通过DHCPv6自动获取到的IPv6地址,注意自动配置的网关为R2的G0/0/0的链路本地地址。

14、测试一下DHCPv6地址的连通性。PC ping R2, R1 ping PC,R3 ping R1。

15、在R2上查看IPv6的路由表,可以看到loopback0的地址通过OSPFv3进行路由。

链路聚合LACP配置示例

1、以下图拓扑为例,两台交换机通过LACP链路相连,同时在两台交换机配置有两个VLAN(VLAN 100和VLAN200)并对应有各自的主机相连接,两台交换机再与R1相连用来访问外网。

2、首先在两台交换机上启用IPv6,然后创建VLAN100和VLAN200,然后配置LACP。
# 两台交换机同样的配置方法
ipv6
vlan batch 100 200
int eth-trunk 1
 mode lacp-static
 port link-type trunk
 port trunk-allow-pass vlan 200 300
int g0/0/1
 eth-trunk 1
 priority 100
int g0/0/2
 eth-trunk 1
 priority 100 
lacp priority 100

3、上述基本配置完成以后,创建VLANIF 100和VLANIF 200,并配置IPv6地址。以SW1为例。
# LSW1 配置
int vlanif 100
 ipv6 enable
 ipv6 address fc00:1::1/64
int vlanif 200
 ipv6 enable 
 ipv6 address fc00:2::1/64

# LSW2 配置
int vlanif 100
 ipv6 enable
 ipv6 address fc00:1::2/64
int vlanif 200
 ipv6 enable 
 ipv6 address fc00:2::2/64


4、配置连接主机的接口,以SW1为例(SW2使用同样的配置)。
int g0/0/3
 port link-type access
 port default vlan 100
int g0/0/4
 port link-type access
 port default vlan 100

5、配置连接路由器的接口,以SW1为例。
# SW1
interface g0/0/5
  port link-type hybird
  port hybrid pvid vlan 100
  port hybrid untagged vlan 100
 
# SW2
interface g0/0/5
  port link-type hybird
  port hybrid pvid vlan 100
  port hybrid untagged vlan 100
  

6、两台交换机配置完成以后,为4台PC配置好对应的IPv6地址。

7、配置路由器,启用IPv6并给两个接口配置好IPv6地址。

8、配置完成,在PC1上分别ping PC2和路由器的接口地址。

9、在PC3上分别ping PC4和路由器的接口地址。

IPv4toIPv6隧道配置示例

配置IPv6 over IPv4
1、如下图拓扑,R2与R3属于边界路由器,需要启动IPv4/IPv6双协议栈,并配置IPv6 over IPv4隧道。边界路由器收到从IPv6网络侧发出来的报文后,如果报文目的地地址不是自身且下一跳接口为Tunnel接口,就把收到的IPv6报文的数据部分加上IPv4报头,封装成IPv4报文转发到对端的边界路由器上,对端路由器执行报文解封装,去掉IPv4报头,然后将解封后的IPv6报文发送到IPv6网络中。

2、首先配置路由器使能IPv6,并配置IPv6地址。
R1:
ipv6
int g0/0/0
 ipv6 enable
 ipv6 address 2001::1/64
R2:
ipv6
int g0/0/0
 ipv6 enable
 ipv6 address 2001::2/64
int g0/0/1
 ip address 119.1.1.2 24
R3:
ipv6
int g0/0/0
 ipv6 enable
 ipv6 address 2002::3/64
int g0/0/1
 ip address 119.1.1.3 24
R4:
ipv6
int g0/0/0
 ipv6 enable
 ipv6 address 2002::4/64

3、在R2和R3上配置IPv6 over IPv4隧道。
R2:
int tunnel 0/0/1
 ipv6 enable
 ipv6 address 2020::2 /64
 tunnel-protocol ipv6-ipv4
 source 119.1.1.2
 destination 119.1.1.3

R3:
int tunnel 0/0/1
 ipv6 enable
 ipv6 address 2020::3 /64
 tunnel-protocol ipv6-ipv4
 source 119.1.1.3
 destination 119.1.1.2

4、隧道建立完成,为R1和R4上配置IPv6默认路由。
R1:
ipv6 route-static :: 0 2001::2
R4:
ipv6 route-static :: 0 2002::3

5、为R2和R3配置静态路由,下一跳需要指向隧道对端IPv6地址。
R2:
ipv6 route-static 2002:: 64 2020::3
R3:
ipv6 route-static 2001:: 64 2020::2

6、在R1上PR4的IPv6地址,可以Ping通说明IPv6 over IPv4隧道建立成功。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们