FAQ-user-define的原理如何,如何使用

发布时间:  2014-09-18 浏览次数:  184 下载次数:  0
问题描述
user-define的原理如何,如何使用?
解决方案
存在这一类应用(如QQ,MSN等):

Client-A在trust域使用私网地址192.168.1.1,做nat outbound访问在untrust域的Server 202.101.1.1,在建立UDP会话如 : 192.168.1.1 :8001[202.101.2.1 :8002]->202.101.1.1 :8003,此时Server通知untrust域的Client-B向trust域的Client-A的地址和端口202.101.2.1 :8002发起访问,由于此时Client-B向Client-A发起访问的时候,命中不了Client-A访问Server时建立的会话,导致Client-B不能访问Client-A。
为了满足这类应用,防火墙上通过在域间配置user-define,就能实现上面说的untrust域的Client-B直接向trust域的Client-A发起访问。User-define的最基本的配置就是通过配置ACL来实现,如果Client-A向Server发起访问,此时会命中配置的ACL,在建立会话的同时,也会建立一个server map表项,这个server map表项包含了Client-A 向Server发起访问的时候的源IP地址和端口,以及转换后的IP地址和端口:UDP : 192.168.1.1 :8001[202.101.2.1 :8002],在server map表没有老化之前,Client-B向202.101.2.1 :8002这个地址和端口发起访问,就会命中server map表,报文能正确的转发到Client-A,建立Client-B到Client-A之间的会话,使得Client-B和Client-A能进行通信。
通常QQ和MSN都是这种应用类型,它们在发短消息的时候通常都是通过Server中转的,客户端和Server之间通信;而语音和视频就是客户端之间建立连接,不通过Server进行中转,所以如果公网用户直接向私网用户发起语音或者是视频,就要在域间使用detect qq/detect msn或者detect user-define。

END