SIP协议十(DNS的三种模式,NAT穿透)

DNS的三种模式,NAT穿透

DNS的三种模式

DNS SRV

SRV:服务记录,用于为给定域指示各种服务的位置。
使用SRV记录可以避免在SIP服务器出现问题后,话机不能注册的。话机使用DNS SRV的方式进行注册时,通过SRV记录可以得到SIP服务器的IP地址和端口,选择优先级较高的服务器发送注册请求,如果该服务器网络出现问题或者该服务器不可用,那话机就可以自动向下一个服务器的IP地址发送请求

·配置DNS服务器

测试网远程到10.154.0.2(公网远程到192.168.90.2),新建一个正向查找区域,下一步,输入要设置的域名,如sipsrv-xfh.com,下一步到完成;
(1) 新建A记录
A记录提供了标准的主机域名与IP地址的映射关系;
右击sipsrv-xfh.com,新建主机,填写主机与IP地址,(我们要使用SRV,所以这里创建三个有前缀的A记录)如:主机为xiao1,IP为192.168.80.21,这时域名sipsrv-xfh.com下会创建一个子域名xiao1.sipsrv-xfh.com,对应IP地址为192.168.80.21;
然后我们再创建三个子域名xiao2.sipsrv-xfh.com、xiao3.sipsrv-xfh.com、xiao4.sipsrv-xfh.com,分别对应一个能Ping通但是不提供sipserver的IP和一个不能ping通的IP,及最后一个与xiao1相同的IP:(设置优先级比正确的UCM服务器IP前的错误IP地址会影响拨通话机的时间,它需要一个一个查询到正确的IP,就这个例子而言拨通时间需要7-8s,将其他三个没用的子域名去掉则可以恢复正常)
SIP协议十(DNS的三种模式,NAT穿透)_第1张图片
SIP协议十(DNS的三种模式,NAT穿透)_第2张图片
(2)新建SRV记录
右键sipsrv-xfh.com,选择其他记录,选择服务位置(SRV)创建记录
SIP协议十(DNS的三种模式,NAT穿透)_第3张图片
我们可以看到SRV记录的格式中包含域、服务、协议、优先级、权数、端口号、目标主机。而该记录的意思是服务器xiao1.sipsrv-xfh.com在sipsrv-xfh.com域中提供SIP服务,此服务基于UDP协议,端口为5060(sip4中设的是5066);
优先权Priority:给出处理的顺序,按照priority从小到大的顺序对记录搜索,搜索到匹配的记录后,就停止搜索priority值更大的记录,对于拥有相同priority的记录将通过weight再次选择;
权重 Weight :对于拥有相同priority的多条记录,weight给出了选择某条记录的几率,值越大,被选中的概率就越大,合理的取值范围为0-65535;
然后创建三个基于UDP的SRV记录,名称与A记录中名称一致(优先级和权重可重新调整):
SIP协议十(DNS的三种模式,NAT穿透)_第4张图片
顺便再创建TCP和TLS(sips)的SRV(注意端口须与sip server对应):
SIP协议十(DNS的三种模式,NAT穿透)_第5张图片
(3)话机SRV设置
将设备的DNS服务器地址指向刚才配置的server
在这里插入图片描述
登录web,在注册SIP账号页面中,SIP服务器地址填域名sipsrv-xfh.com,DNS模式选择为SRV:
在这里插入图片描述
SIP协议十(DNS的三种模式,NAT穿透)_第6张图片
(4)SIP SRV注册流程
设备注册时,先发送DNS Standard query SRV查询,请求地址为_sip._udp.sipsrv-xfh.com,表示需要查询该域中支持UDP协议的SIP服务器的SRV记录;
SIP协议十(DNS的三种模式,NAT穿透)_第7张图片
DNS服务器收到请求后进行回复,包含该域中关于SIP服务的SRV记录,记录中包含SIP服务的端口和最新域名,以及优先级、权重等详细信息,如下图:
SIP协议十(DNS的三种模式,NAT穿透)_第8张图片
由于DNS Server回复的Answers中的target仍然是域名,所以话机会根据SRV记录中的priority优先级值和weight权重值进一发送DNS A记录进行查询;
先对比priority,值越小优先级越高;如果priority相同则对比weight,值越大被选中概率越高;如下图:
SIP协议十(DNS的三种模式,NAT穿透)_第9张图片

DNS NAPTR

使用NAPTR模式,那通过DNS NDPTR查询后得到向该服务器注册时需要使用的SIP传输协议为TCP,话机这时无论选择的SIP传输协议是UDP/TCP/TLS都自动会切换到TCP,从而成功注册。NAPTR的解析流程中包含了SRV记录,相对于SRV记录,其主要是对网络传输协议进行要求;
DNS NAPTR资源记录的功能是能够将原来的域名映射成一个新的域名或者URI(Uniform Resource Identifier),并通过flag域来指定这些新域名或URI在后继操作中的使用方法;
(1)配置DNS服务器
远程到10.154.0.2,新创建一个域,名称为sipnaptr-xfh.com;
新建NAPTR记录:
SIP协议十(DNS的三种模式,NAT穿透)_第10张图片
Order:顺序,类似优先级,按照order从小到大的顺序对记录搜索,匹配到记录后就停止搜索order更大的记录;
Preference:对应windows DNS server中的首选项,在order相同情况下对比该值,值越小偏好越高;
Flags:标记字符串,为[A-Z0-9]中的一个字符,表达映射关系及记录本身的含义,目前有"U",“S”,"A"和"P"四个标志:
"A"表示下一步进行A,AAAA或者A6查询;
"U"表示下一步不需要DNS查询,本次输出的是满足RFC2396要求的absoluteURI;
"S"表示下一步进行SRV查询;
“P"表示由用户根据service定义自己的规则,所以既可以是终结标志,也可以是非终结标志:
其中"U”,"S"和"A"是终结标志,即下一步不需要再进行NAPTR查询,如果flags为空(即什么字符也没有),表示用户需要根据本次输出,再进行一次NAPTR查询;
依次创建三条记录,对应UDP/TCP/TLS(优先级后期可按照用例需要修改):
SIP协议十(DNS的三种模式,NAT穿透)_第11张图片
(2)话机配置
首先依旧需要确定话机的DNS服务器地址指向刚才配置的server;
SIP服务器需要填刚才配置的支持NAPTR的域名:sipnaptr-xfh.com:
SIP协议十(DNS的三种模式,NAT穿透)_第12张图片

(3)SIP NAPTR注册流程
NATPR完成数据包流程如下图:
SIP协议十(DNS的三种模式,NAT穿透)_第13张图片
先进行DNS Standard query NAPTR请求:
SIP协议十(DNS的三种模式,NAT穿透)_第14张图片
DNS服务器响应NAPTR:
SIP协议十(DNS的三种模式,NAT穿透)_第15张图片
Order最高的是99,对应域名为_sip._tcp.sipsrv-xfh.com;
flags为S,下一步进行SRV查询,流程与上面写的SRV一致;
service为SIP+D2T,表示话机将在新目标地址上使用TCP作为传输层协议请求SIP服务, 即使WEB上配置的协议是UDP;
在这里插入图片描述

NAT穿透

NAT穿透技术出现的原因:使用NAT技术的弊端(各种应用不断,其协议应用也各有不同,有的根本无法通过NAT)

NAT三种实现方式:

(1)静态地址转换:一个公网IP对应一个内部IP,一对一转换;
(2)动态地址转换:N个公网IP对应M个内部Ip,不固定的一对一IP转换关系.同一时间,有M-N个主机无法联网;
(3)端口多路复用:对外只有一个公网IP,通过端口来区别不同内部IP主机的数据;

NAT穿透技术的原理:

假设有两台分别处于各自的私有网络中的主机:A和B;N1和N2是两个NAT设备;S是一个使用了一个众所周知的、从全球任何地方都能访问得到的IP地址的公共服务器
步骤一:A和B分别和S建立UDP连接;NAT设备N1和N2创建UDP转换状态并分配临时的外部端口号
步骤二:S将这些端口号传回A和B
步骤三:A和B通过转换好的端口直接联系到对方的NAT设备;NAT设备则利用先前创建的转换状态将分组发往A和B

NAT穿透技术的应用:

(1)利用nat123端口映射及穿透的强大功能,可以在局域网内服务器(个人电脑)上顺利发布网站,实现外网内网轻松访问和管理,80穿透不限速。
(2)UDP打洞技术:打洞主要采用的是udp的无面向连接的特性来实现,同过user1连接server,打通user1的对外ip和端口,通过user2连接server,打通uer2对外的ip和端口,然后user1和user2通过彼此已经打通的对外ip和端口实现通讯

NAT类型

1)Full Cone NAT(完全锥形MAT):设备比较少的情况下,内网主机端口在NAT网关完成端口映射后,外网的主机可以通过这个映射好的端口进行访问
2)Restricted Cone NAT (限制雏形NAT):相比较于全锥形,在完成端口映射之后,对于和外网的IP地址通信有限制,只有内网对外访问过的ip地址才可以对该端口进行通信
3)Port Restricted Cone NAT(端口限制雏形NAT) :相比较于限制锥形NAT,在端口上也加以限制,只有内网主机和外网的IP+端口通信过才能进行通信
4)Symmetric NAT (对称NAT) :同一个内网主机,跟不同的外网ip+端口进行通信时,在NAT表上会映射成不同的端口号

你可能感兴趣的:(SIP)