• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

防火墙上映射SIP协议的常见问题与解决思路

  • 0关注
  • 3收藏 62浏览
粉丝:0人 关注:0人

组网及说明

本文描述了针对sip问题的三种常见解决方法,以下是对于sip协议相关的一些简单介绍:

SIP是一种基于请求/响应模型的协议,类似于HTTP

常见的SIP请求方法包括:

a. INVITE:用于发起一个新的会话或邀请用户加入一个现有会话。

b. ACK:确认对INVITE请求的响应。

c. BYE:终止一个会话。

d. CANCEL:终止一个等待处理或正在处理的请求。

e. REGISTER:注册用户的当前位置。

f. OPTIONS:查询服务器的能力。

SIP还定义了一些扩展方法:

a. SUBSCRIBE:订阅方法

b. NOTIFY:事件通知方法

c. MESSAGE:即时消息方法

响应包括状态码,类似于HTTP,分为1xx(信息性)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务器错误)和6xx(全局错误)。具体如下:

a. 1XX:请求已经收到继续处理请求

b. 2XX:行动已成功的接收到

c. 3XX:为完成呼叫请求还需采取进一步动作

d. 4XX:请求有语法错误不能被服务器端执行,客户端需修改请求,再次重发

e. 5XX:服务器出错不能执行合法请求

f. 6XX:任何服务器都不能执行请求

 

建立会话步骤:

a. 客户端向服务器发送INVITE请求,请求建立会话。

b. 服务器返回1xx响应,表示正在处理请求。

c. 服务器返回2xx响应,表示会话建立成功。

d. 客户端发送ACK消息,确认会话建立。

问题描述

遇到sip业务异常(如监控视频播放不出来黑屏等问题),可以尝试按照如下三种方式修改配置

Sip协议在防火墙上的相关配置较少,一般来说用户为了让外部用户(UAC)访问内部服务器(UAS),会配置sipnat server映射,将内网服务器的私网地址和端口映射为公网地址和端口(sip协议的默认端口为5060),对外提供媒体流服务。由于端口的转换,以及sip作为多通道协议的特殊性,此配置就有可能导致相关业务访问异常。

体现在wireshark的流程图上可能是这样的(交互不完整):

过程分析

对于常见的sip问题有如下几种解决方案:

 

1、port-mapping

sip协议默认端口号为5060,采用udp传输,如果使用默认端口5060,防火墙设备能够正常识别协议,正常处理业务报文。但如果使用nat server映射的端口号不是5060,业务访问时就有可能出现第一次访问不通,第二次访问才能正常的情况,这就是由于转换后的端口未被防火墙识别为SIP协议而未进行正确的处理造成。此时我们就需要在防火墙上配置port-mapping,将转换后的这个端口映射为SIP协议。其他多通道协议同理,如FTP协议、RTSP协议等,出现首次访问不通后续访问正常的情况,同样可以通过配置port-mapping解决。

 

2、Reversible

在配置nat server时,可以添加一个reversible参数,表示允许方向地址转换,即在某方向上发起连接已成功建立地址转换表项的情况下,允许反方向发起的连接使用已建立的地址转换表项进行地址转换,此参数不关心端口,需要时只需在对应地址转换的nat server配置后面添加此参数即可。

SIPFTP等这种多通道协议中,实际报文交互过程往往比较复杂,如客户端主动发起控制通道的连接,后续数据通道的建立有可能需要服务器端主动发起,而nat server的配置是单向的,只允许外部的客户端主动向内部服务器的公网地址发起连接,此时如果没有nat outbound的源地址转换,内部服务器是无法向外部的客户端主动发起连接的,即使存在nat outbound配置,内部服务器通过源地址转换的端口也是随机端口,转换为数据通道对应端口的可能性极小(若存在nat outbound还有可能存在反向会话导致数据通道无法建立的情况,如果遇到需要先清除反向会话再排查),因此就有可能导致数据通道无法建立。如果遇到多通道协议的业务不正常的问题,比如ftp能够建立连接但是无法正常传输数据,比如视频业务能够建立连接但是视频播放卡顿或黑屏,比如话机通话卡顿等问题,就可以在防火墙上查看是否存在对应端口的反向会话,若存在则清除反向会话,再在配置的对应nat server规则上加上reversible参数,观察业务是否正常。

 

3、ALG

ALGApplication Level Gateway,应用层网关),主要完成对应用层报文的解析和处理。对于普通的NAT技术,只能转换报文的网络层和传输层的IP地址和端口,无法对应用层的数据载荷进行转换,造成数据连接无法建立的问题,此时就需要ALG技术。ALG可以对多通道协议的应用层数据进行解析和地址端口转换,保证后续数据通道的正常建立。

多通道协议控制通道报文的应用层数据中往往携带着数据通道建立的相关信息,而ALG可以识别到报文的应用层信息,并且将应用数据中的IP地址和端口进行转换,同时在防火墙上的关联表中记录转换前后的对应关系(关联表通过命令display session relation-table ipv4查看)。但存在一种特殊情况:私网服务器发出控制报文的应用层数据中携带的地址并非服务器的真实地址,而是其对外发布的公网地址,这时若NAT ALG开启,应用层载荷中的IP地址不需要进行转换,仅转换端口,外网客户端向此公网地址的转换后的端口发送SYN报文建立数据连接,命中关联表以后端口转换但地址并未转换,被NAT丢弃,此时 数据通道无法正常建立,业务依然会出现问题。这时就需要将对应协议的NAT ALG关掉,从抓包或关联表中找到数据通道所使用的端口,在防火墙上另外配置一条nat server,将这个私网端口映射出去。

判断是否要开启NAT ALG方法:

(1) 查看对应抓包中的具体字段——地址转换前的INVITE报文中,消息体(Message Body)中对应的Connection Information(包含真正流媒体使用的IP地址)与Media Description(包含数据通道使用的端口)

举例:如下图,2.2.2.1用来建立数据通道的IP就是自己的私网IP地址,端口为34872,此时就需要开启NAT ALG,若Connection Information字段为公网地址3.3.3.1,则不需要开启NAT ALG,且需要将内网使用的数据通道端口34872通过nat server映射出去

(1) wireshark中选中报文右键追踪流,如下:

在其中找对应的字段,c=IN IP4后的地址为真实私网地址则需要开启NAT ALG,为公网地址则不需要开启NAT ALG,并将m=audio后的端口通过nat server映射出去,如下:

 

解决方法

port-mappingreversibleNAT ALG

该案例对您是否有帮助:

您的评价:1

若您有关于案例的建议,请反馈:

0 个评论

该案例暂时没有网友评论

编辑评论

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作