turn协议 数据交换过程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了turn协议 数据交换过程相关的知识,希望对你有一定的参考价值。
参考技术A在一个典型组网中,一个TURN客户端连接在一个私有网络中,通过一个或多个NAT来连接到公网。在公网中有一个TURN服务器。在因特网的别处有一个或多个对端是这个TURN客户端希望通讯的。这些对端也有可能是在一个或多个NAT的后面。该客户端使用服务器作为一个中继来发送数据包 到这些对端去,并且从这些对端接收数据包。
客户端通过一个IP地址和端口的组合来与服务器建立会话。客户端使用TURN命令在服务器上创建和操作一个ALLOCATION。一旦这个allocation创建好了,客户端能够在数据发往哪个对端的指示下发送应用数据到这个服务器,服务器将中继这些数据到合适的对端。
客户端发送的应用数据包含在TURN消息中,服务器将数据提取出来,并以UDP数据包方式发送给对端。反向上,对端以UDP数据包方式发送应用数据到这个allocation提供的中继传输地址。
因为TURN消息总是包含客户端与哪些对端通讯的指示,客户端能够使用单一的allocation来与多个对端通讯。
turn 术语
TURN client:遵循RFC5766的STUN客户端。
TURN server:遵循RFC5766的STUN服务器。
Peer:TURN客户端希望连接的主机。TURN服务器为TURN客户端和它的对端中继流量,但Peer并不与TURN服务器使用TURN协议进行交互,它接收从TURN服务器发送过来的数据,并向TURN服务器发送数据。
Transport Address:IP地址与端口号的组合。
Host Transport Address:客户端或对端的传输地址。
Server-Reflexive Transport Address:NAT公网侧的传输地址,该地址由NAT分配,相当于一个特定的主机传输地址。
Relayed Transport Address:TURN服务器上的传输地址,用于客户端和对端中继数据。
TURN Server Transport Address:TURN服务器上的传输地址,用于客户端发送STUN消息给服务器。
Peer Transport Address:服务器看到的对端的传输地址,当对端是在NAT后面,则是对端的服务器反射传输地址。
Allocation:通过Allocate请求将中继传输地址提供给客户端,除了中继状态外,还有许可和超时定时器等。
5-tuple:五元组,包括客户端IP地址和端口,服务器IP地址和端口和传输协议(包括UDP、TCP、TLS)的组合。
Channel:通道号与对端传输地址的关联,一旦一个通道号与一个对端的传输地址绑定,客户端和服务器就能够利用带宽效应更大的通道数据消息来交换数据。
Permission:一个对端允许使用它的IP地址和传输协议来发送数据到TURN服务器,服务器只为从对端发来的并且匹配一个已经存在的许可的流量中继到相应的客户端。
Realm:服务器内用于描述服务器或内容的一个字符串,这个realm告诉客户端哪些用户名和密码的组合可用于认证请求。
Nonce:服务器随机选择的一个字符串,包含在报文摘要中。为了防止中继攻击,服务器应该有规律的改变这个nonce。
协议交互过程详细举例
以图2为例进行讲解,每个消息中,多个属性包含在消息中并显示它们的值。为了方便阅读,值以人们可读的格式来显示。
接着,客户端为了准备向对端A发送一些应用数据而创建一个permission。这里通过一个CreatePermission请求来做到。该请求携带XOR-PEER-ADDRESS属性包含有确定的请求的IP地址,这里为对端A的地址;需要注意的是,属性中地址的端口号被设置为0在CreatePermission请求中,并且客户端使用的是对端A的server-reflexive地址而不是它的主机地址(私网地址);客户端在该请求中携带与之前的Allocate请求中一样的username、realm和nonce值,因此该请求被服务器认可。此时在该请求中,客户端没有携带SOFTWARE属性。
服务器收到该CreatePermission请求,产生一个相应的许可,并以CreatePermission成功响应来回应。该响应中只包含了Transaction-ID和MESSAGE-INTEGRITY属性。
现在客户端使用Send indication来发送应用数据到对端A。对端的server-reflexive传输地址包含在XOR-PEER-ADDRESS属性中,应用数据包含在DATA属性中。客户端已经在应用层上执行了路径MTU发现功能,因此通过DON’T-FRAGMENT属性来告知服务器当通过UDP方式来向对端发送数据时应设置DF位。Indications不能使用长期证书机制来认证,所以该消息中没有MESSAGE-INTEGRITY属性。
服务器收到Send indication后,提取出应用数据封装成UDP格式发给对端A;UDP报文的源传输地址为中继传输地址,并设置DF位。
对端A回应它自己的包含有应用数据的UDP包给服务器。目的地址为服务器的中继传输地址。当服务器收到后,将生成Data indication消息给客户端,携带有XOR-PEER-ADDRESS属性。应用数据包含在DATA属性中。
接着,对端B发送UDP数据包回应给服务器的中继传输地址。服务器收到后,回应给客户端ChannelData消息,包含UDP数据包中的数据。服务器知道是给哪个客户端发送ChannelData消息,这是因为收到的UDP数据包中的目的地址(即服务器的中继传输地址),并且知道使用的是哪个通道号,这是因为通道已经与相应的传输地址绑定了。
《路由协议与交换技术》重点知识总结(路由交换知识点)
本文目录
前言
期末考试临近,整理出《路由协议与交换技术》所有重点题目,供读者救急
本文使用的教材为:
斯桃枝. 路由协议与交换技术[M]. 第2版. 北京:清华大学出版社, 2012.
如需使用参考文献,会在文末进行标注,如用到网页参考文献,会在文中标注框增加跳转链接
交换机与路由器基础
交换机和路由器组成
1.交换机和路由器组成:
硬件:中央处理单元(CPU)、只读存储器(ROM)、内存(RAM)、闪存(Flash Memory)、非易失性闪存(NVRAM)、端口、控制台端口(Console Port)、辅助端口(Auxiliary Port)、线缆(Cable)
软件:交换机和路由器的IOS(Internetwork Operating System)操作系统和运行配置文件
2.交换机和路由器查找IOS详细流程
3.配置模式转换图
二层交换机与虚拟局域网
1.交换机自学习
(1)交换机清除MAC地址表
(2)交换机把源MAC和源端口记录到MAC地址表中,向其他所有端口发送数据帧。各主机接到后从中提取目标MAC地址,并与自己的MAC进行比较,如果相同则继续接受否则丢弃
(3)目的主机发送一个回帧,则源主机作为源把端口、MAC放在MAC地址表中
(4)再需要发送数据则直接调用MAC地址表
show mac-address-table可查看MAC地址表
2.交换机交换方式有直通式、储存转发式、碎片隔离式
VLAN工作机制(重要)
请看本人写的专章:VLAN工作机制与举例
VLAN划分方法
基于端口的VLAN、基于协议的VLAN、基于MAC的VLAN、基于IP子网的VLAN、基于IP多播的VLAN、基于策略的VLAN。
重要代码
同一VLAN不同交换机的数据转发
请看书P15,最重要的一句话是在进入f0/1后的switchport mode trunk分配trunk链路。
其他端口进入后switch access vlan 加上几号VLAN即可
单臂路由实现不同VLAN之间的数据转发
请看书P17,除了vlan配置以外的重要内容即路由器配置:
int f0/0
no shutdown
no ip add //清除ip
exit
int f0/0.10 //配置子端口,子端口号为10
enc dot1q 2 //封装,2是端口号
配置ip
no sh
exit
......
三层交换机实现不同VLAN数据转发
请看书P22,一组客户机设置为一个VLAN
端口划分方法
交换机虚拟端口、路由端口、三层聚合端口
交换机虚拟端口SVI
每一个SVI只能与一个VLAN连接,两种类型
(1)SVI作为二层交换机管理端口分配IP地址,管理员通过此端口管理和配置。二层交换机只能有一个SUI。
(2)作为三层交换机的VLAN网关端口
路由端口
定义端口
no switchport关闭二层端口
配置ip
no sh
路由器工作原理、数据帧结构,请查看书P27
路由表
路由表包括:目标网络地址/掩码、管理距离/度量值、下一跳地址、路由更新时间、输出接口
C直连路由、S静态路由、S*默认路由、R是RIP、O是OSPF
路由决策原则
最长匹配原则:以匹配长度最大堆为最佳路由
最小管理距离原则:管理距离越小路由越优先
最小度量值原则:度量值越小路由越佳
静态路由
1.直连路由
int一个s开头的端口,其余不变,见书P39
2.ip route命令手动配置路由信息
ip route 网络编号 子网掩码 转发IP或者本地接口
删除在前面加上no其余不变
3.默认路由
ip route 0.0.0.0 0.0.0.0 下一跳地址
多层交换网络
EnterChannel负载均衡、线路备份
port-channel load-balance 再加上模式常用dst-ip//配置负载平衡
//检验配置各项命令
show etherchannel load-balance
show etherchannel summaty
show etherchannel port-channel
show running-config
//移除端口
int int-id
no channel-group
show running-conig
//删除端口
no int port-channel
//将端口从err-disable恢复正常
shutdown再no shutdown
RIP路由协议
RIP各理论
有v1和v2版本
以最小跳数作为度量标准
最大跳数为15
更新周期为30s,使用UDP520端口
管理距离120【常用管理距离OSPF110,静态0或1】
v1广播地址255.255.255.255,v2多播地址224.0.0.9
RIP的更新过程
先比较目的地址,表中没有则添加,表中有则比下一跳地址,如果一致直接更新,如果不一致比较距离,如果更新距离小的,具体请看书P83
路由环路
RIP通过定期广播路由表跟踪互联网变化,收敛慢,每台路由器不能同时或者接近同时完成路由表更新,产生不协调的路由信息,就会发生路由环路。
解决办法:定义最大跳数、水平分割、路由中毒、反向路由中毒、控制更新时间、触发更新
配置
router rip
version 1/2 //选择版本
network 网络号
OSPF路由协议
我感觉没啥可写的,用法就是router ospf 100,然后写网址网段,想起来再更新吧
多种路由协议重分布
本章重点是概念部分,同时要能看懂语句
概念
在不同路由重分布协议之间交换路由信息的过程称为路由重分布。
即可单向也可双向。通常只有自治系统边界路由器才可以进行。
路由重分布的问题:路由回环、管理距离、路由信息不兼容、收殓时间不一致。
请见书P153
指令
redistribute 路由协议 加上自治系统号码 如果是IS-IS还有level
广域网协议
HDLC高级链路控制
再同步网上传输数据、面向位的数据链路协议。
默认用的就是HDLC
包括:开始标志、地址、控制、数据、帧校验、结束标志
PPP
PPP是目前最广泛的广域网协议,点对点的数据链路层协议。支持认证、多链路捆绑、回拨、压缩等功能。
PPP的认证方式:PAP认证和CHAP认证
PAP
PAP密码认证协议,链路建立完毕后源节点不停的在链路上发送用户名和密码,直到认证通过。
特点:采用两次握手协议、以明文方式进行认证。
PAP配置指令
客户端
int 静态端口
设置ip
encapsulation ppp
ppp pap sent-username S password 0 123
no sh
服务端配置
username S password 0 123
int 静态端口
配置IP
encapsulation ppp
ppp authentication pap
no sh
CHAP
利用三次握手协议周期的认证源端节点身份。
特点:CHAP位三次握手协议、只在网络上传输用户名而不传输口令、安全性比PAP高但认证消耗带宽。
CHAP配置命令
服务器端
username 用户名 password 密码 //互为对方用户名和密码
int 静态
配置ip
encapsulation ppp
ppp authentication chap
no sh
客户端配置
验证用户名密码
int 静态
配置ip
encaosulation ppp
ppp authentication chap
no sh
NAT
本章静态NAT、动态NAT、网络地址端口转换均为重点
静态NAT是内部网络的服务器永久映射到一个内部公网ip地址。
动态NAT是定义一个或者多个内部公网地址池,把全部内部网络地址采用动态分配的方法映射到这个地址池内,多用于在存根网络中内网访问外网。
NATP网络地址端口转换是把内部所有地址映射到外部网络的少量IP地址的不同端口上,在动态NAT的基础上加上overload选项得到。
NET配置代码
定义出入口
定义接口
配置ip
ip nat inside入口 inside出口
建立映射关系
ip nat inside source static 入口IP 出口IP
以下为建立静态端口映射
ip nat inside source static tcp
ip nat inside source static udp
以下为建立动态端口映射
ip nat inside source list 10 pool abc //建立内网私有地址列表10与内部公网地址池abc的映射关系
以下为端口转换
ip nat inside source list 10 pool abc overload //在动态地址池NAT的基础上加上overload选项以便复用
设置默认路由
ip route 0.0.0.0 0.0.0.0 内网端口地址
定义内部私有地址访问控制列表和内部公网地址池
access-list 10 permit 出口地址 反掩码
ip nat pool abc 出口路由端地址 ISP公网地址 netmask 掩码
案例请看书P206
ACL
本章重点为基于编号/命令的标准/扩展ACL,简单说就是本章全是重点
请看书P220为例题
配置时需要注意的请看P224
基于编号的标准ACL
定义访问控制列表
access-list 表序号 permit/deny 源地址 反掩码
特殊的通配符掩码:
any表示0.0.0.0 255.255.255.255
host 172.30.16.29表示172.30.16.29 0.0.0.0
no access-list 表序号 //删除访问控制列表
把标准ACL应用于具体接口
access-group 表序号 in/out
基于编号的拓展ACL
access-list 编号 permit/deny 协议类型 源地址+反掩码和目的地址+反掩码 operator(lt/gt/eq/neq) 端口号或名称
如:
access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 20
基于命名的标准/拓展ACL
创建ACL命名
ip access-list 标准standard/扩展extended ACL名
定义访问控制列表
标准ACL:
permit/deny source 掩码
扩展ACL:
permit/deny source 掩码 operator operand destination destination-wildcard
如:permit tcp 10.1.0.0 00.255.255 host 10.1.2.20 eq www
同时请自行复习P227起的举例
本文完,改科目较为简单,应邀而作,虽然我也不知道有啥可写的,尽力了
以上是关于turn协议 数据交换过程的主要内容,如果未能解决你的问题,请参考以下文章