网工技术
网工技术
IPv6的部署大致要经历一个渐进的过程,在初始阶段,IPv4的网络海洋中会出现若干局部零散的IPv6孤岛,为了保持通信,这些孤岛通过跨越IPv4的隧道彼此连接;随着IPv6规模的应用,原来的孤岛逐渐聚合成为了骨干的IPv6 Internet网络,形成于IPv4骨干网并存的局面,在IPv6骨干上可以引入了大量的新业务,同时可以充分发挥IPv6的诸多优势。
为了实现IPv6和IPv4网络资源的互访,还需要转换服务器以实现v6和v4的互通;最后,IPv4骨干网逐步萎缩成局部的孤岛,通过隧道连接,IPv6占据了主导地位,具备全球范围的连通性。
IPv6提供很多过渡技术来实现上述这样一个演进过程。这些过渡技术围绕两类问题解决:
① IPv6孤岛互通技术:实现IPv6网络和IPv6网络的互通。
② IPv6和IPv4互通技术:实现两个不同网络之间互相访问资源。
目前,解决上述问题的基本过渡技术有两种:双栈和隧道。
① 双栈:即设备升级到IPv6的同时保留IPv4支持,可以同时访问IPv6和IPv4设备,包含双协议栈支持,应用程序依靠DNS地址解析返回的地址类型,来决定使用何种协议栈。
② 隧道:通过在一种协议中承载另一种协议,实现跨越不同域的互通,具体可以是IPv6-in-IPv4,IPv6-in-MPLS,IPv4-in-IPv6等隧道类型。
GRE与IP in IP、IPX over IP等封装形式很相似,但比他们更通用。在GRE的处理中,很多协议的席位差异都被忽略,这使得GRE不限于某个特定的“X over Y”应用,而是一种最基本的封装形式。
在最简单的情况下,路由器接收到一个需要封装和路由的原始数据报文(Payload),这个报文首先被GRE封装而成GRE报文,接着被封装在IP协议中,然后完全由IP层负责此报文的转发。
原始报文的协议被称之为乘客协议,GRE被称之为封装协议,而负责转发的IP协议被称之为传递(Delivery)协议或传输(Transport)协议。注意到在以上的流程中不用关心乘客协议的具体格式或内容,整个被封装的报文格式:
------------------------------- | Delivery Header | | (Transport Protocol) | ------------------------------- | GRE Header | | (Encapsulation Protocol | ------------------------------- | Payload Packet | | (Passenger Protocol) | -------------------------------GRE报头的格式如下:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|R|K|S|s|Recur| Flags | Ver | Protocol Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum (optional) | Offset (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Key (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Routing (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
GRE隧道原理:
1、封装
Ingress PE从连接X协议的接口接收到X协议报文后,首先交由X协议处理。
X协议根据报文头中的目的地址在路由表或转发表中查找出接口,确定如何转发此报文。如果发现出接口是GRE Tunnel接口,则对报文进行GRE封装,即添加GRE头。
根据骨干网传输协议为IP,给报文加上IP头。IP头的源地址就是隧道源地址,目的地址就是隧道目的地址。
根据该IP头的目的地址(即隧道目的地址),在骨干网路由表中查找相应的出接口并发送报文。之后,封装后的报文将在该骨干网中传输。
2、解封装
解封装过程和封装过程相反。
Egress PE从GRE Tunnel接口收到该报文,分析IP头发现报文的目的地址为本设备,则Egress PE去掉IP头后交给GRE协议处理。GRE协议剥掉GRE报头,获取X协议,再交由X协议对此数据报文进行后续的转发处理。
配置:
左边为R3,右边为R4 R3: 配置公网IP: interface GE0/3/4 ip address 34.0.0.3/24 no shutdown ! 配置私网IP: interface GE0/1/3 ip address 13.0.0.3/24 no shutdown ! 配置GRE Tunnel: interface tunnel100 tunnel mode gre tunnel source 34.0.0.3 tunnel destination 34.0.0.4 ip address 192.168.100.3/24 //和对方Tunnel IP在同一网段 no shutdown ! 配置路由: ip route 0.0.0.0/0 34.0.0.4 //到公网默认路由 ip route 24.0.0.0/24 tunnel100 //到对方私网路由通过Tunnel 100访问 ! R4: 配置公网IP: interface GE0/3/4 ip address 34.0.0.4/24 no shutdown ! 配置私网IP: interface GE0/2/4 ip address 24.0.0.4/24 no shutdown ! 配置GRE Tunnel: interface tunnel100 tunnel mode gre tunnel source 34.0.0.4 tunnel destination 34.0.0.3 ip address 192.168.100.4/24 //和对方Tunnel IP在同一网段 no shutdown ! 配置路由: ip route 0.0.0.0/0 34.0.0.3 //到公网默认路由 ip route 13.0.0.0/24 tunnel100 //到对方私网路由通过Tunnel 100访问 !
在R4上ping R3的私网地址13.0.0.3,抓包如下:
GRE报文解析:
GRE头各字段解释:
目前实现的GRE头不包含源路由字段,所以Bit 1、Bit 3和Bit 4都置为0。
GRE本身提供两种基本的安全机制:校验和验证,识别关键字。
1、校验和验证
校验和验证是指对封装的报文进行端到端校验。
若GRE报文头中的C位标识位置1,则校验和有效。发送方将根据GRE头及Payload信息计算校验和,并将包含校验和的报文发送给对端。接收方对接收到的报文计算校验和,并与报文中的校验和比较,如果一致则对报文进一步处理,否则丢弃。
隧道两端可以根据实际应用的需要决定配置校验和或禁止校验和。如果本端配置了校验和而对端没有配置,则本端将不会对接收到的报文进行校验和检查,但对发送的报文计算校验和;相反,如果本端没有配置校验和而对端已配置,则本端将对从对端发来的报文进行校验和检查,但对发送的报文不计算校验和。
2、识别关键字
识别关键字(Key)验证是指对Tunnel接口进行校验。通过这种弱安全机制,可以防止错误识别、接收其它地方来的报文。
RFC1701中规定:若GRE报文头中的K位为1,则在GRE头中插入一个四字节长关键字字段,收发双方将进行识别关键字的验证。
关键字的作用是标志隧道中的流量,属于同一流量的报文使用相同的关键字。在报文解封装时,GRE将基于关键字来识别属于相同流量的数据报文。只有Tunnel两端设置的识别关键字完全一致时才能通过验证,否则将报文丢弃。这里的“完全一致”是指两端都不设置识别关键字,或者两端都设置相同的关键字。
GRE的Keepalive检测
由于GRE协议并不具备检测链路状态的功能,如果对端接口不可达,隧道并不能及时关闭该Tunnel连接,这样会造成源端会不断的向对端转发数据,而对端却因隧道不通接收不到报文,由此就会形成数据空洞。
GRE的Keepalive检测功能可以检测隧道状态,即检测隧道对端是否可达。如果对端不可达,隧道连接就会及时关闭,避免因对端不可达而造成的数据丢失,有效防止数据空洞,保证数据传输的可靠性。
Keepalive检测功能的实现过程如下:
当GRE隧道的源端使能Keepalive检测功能后,就创建一个定时器,周期地发送Keepalive探测报文,同时通过计数器进行不可达计数。每发送一个探测报文,不可达计数加1。
对端每收到一个探测报文,就给源端发送一个回应报文。
如果源端的计数器值未达到预先设置的值就收到回应报文,就表明对端可达。如果源端的计数器值到达预先设置的值——重试次数(Retry Times)时,还没收到回送报文,就认为对端不可达。此时,源端将关闭隧道连接。但是源端口仍会继续发送Keepalive报文,若对端Up,则源端口也会Up,建立隧道链接。
对于设备实现的GRE Keepalive检测功能,只要在隧道一端配置Keepalive,该端就具备Keepalive功能,而不要求隧道对端也具备该功能。隧道对端收到报文,如果是Keepalive探测报文,无论是否配置Keepalive,都会给源端发送一个回应报文。
GRE具有如下的优点:
1.多协议的本地网可以通过单一协议的骨干网实现传输;
2.将一些不能连续的子网连接起来,用于组建VPN;
3.扩大了网络的工作范围,包括那些路由网管有限的协议。如IPX包最多可以转发16次(即经过16个路由器),而在一个Tunnel连接中看上去只经过一个路由器。
由于GRE是将一个数据包封装到另一个数据包中,因此可能会遇到GRE的数据报大于网络接口所设定的数据包最大尺寸的情况。解决这种问题的方法是在隧道接口上配置ip tcp adjust-mss 1436。另外,虽然GRE并不支持加密,但是可以通过Tunnel key命令在隧道的两头各设置一个密钥。
这个密钥其实就是一个明文的密码。由于GRE隧道没有状态控制,可能隧道的一端已经关闭,而另一端仍然开启。这一问题的解决方案就是在隧道两端开启keepalive数据包,它可以让隧道一端定时向另一端发送keepalive数据,确认端口保持开启状态。如果隧道的某一端没有按时收到keepalive数据,那么这一侧的隧道端口也会关闭。
IPSec(IP Security)是一组开放协议的总称,特定的通信方之间的IP层通过加密与数据源验证,以保证数据包在Internet网上传输时的私有性、完整性和真实性。IPSec通过AH(Authentication Header)和ESP(Encapsulating Security Payload)这两个安全协议来实现。
AH在IP包中的位置(隧道方式):
------------------- ------------------------------ | IP | TCP | Data | ----------> | IP2 | AH | IP | TCP | Data | ------------------- ------------------------------ ESP将需要保护的用户数据进行加密后再封装到IP包中,ESP可以保证数据的完整性、真实性和私有性。
ESP头在IP包中的位置(隧道方式):
------------------- ------------------------------------------------ | IP | TCP | Data | ----------> | IP2 | ESP | IP | TCP | Data | Trailer | Auth | ------------------- ------------------------------------------------
IPv6 over IPv4隧道
在IPv4网络向IPv6网络过渡的初期,IPv4网络已被大量部署,而IPv6网络只是散布在世界各地的一些孤岛。利用隧道技术可以在IPv4网络上创建隧道,从而实现IPv6孤岛之间的互连。
在IPv4网络上用于连接IPv6孤岛的隧道成为IPv6 over IPv4隧道。为了实现IPv6 over IPv4隧道,需要在IPv4孤岛的隧道称为IPv6 over IPv4隧道。为了实现IPv6 over IPv4隧道,需要在IPv4网络与IPv6网络交界的边界路由设备商启动IPv4/IPv6双协议栈。
IPv6 over IPv4隧道技术的原理:
① 边界路由设备启动IPv4/IPv6双协议栈,并配置IPv6 over IPv4隧道。
② 边界路由设备在收到从IPv6网络侧发来的报文后,如果报文的目的地址不是自身且下一跳出接口为Tunnel接口,就要把收到的IPv6报文作为负载,加上Ipv4报文头,封装成IPv4报文。
③ 在IPv4网络中,封装后的报文被传递到对端的边界路由设备。
④ 对端边界路由设备对报文解封装,去掉IPv4报文头,然后将封装后的IPv6报文发送到对端的IPv6网络中。
⑤ 其他隧道原理类似。
在IPv4 Internet向IPv6 Internet过渡后期,IPv6网络被大量部署后,而IPv4网络只是散布在世界各地的一些孤岛。利用隧道技术可以在IPv6网络上创建隧道,从而实现IPv4孤岛的互联,IPv4孤岛能通过IPv6公网访问其他IPv4网络。
推荐阅读
>>>【必备干货】网工入门必会桥接教程,外网+GNS3+Vmware
网工界市场认可度极高的华为认证,你考了吗?
拿下华为HCIE认证之后,你可以:
跨越90%企业的招聘硬门槛
增加70%就业机会
拿下BAT全国TOP100大厂敲门砖
体系化得到网络技术硬实力
技术大佬年薪可达30w+