hcb 发表于 2008-1-19 11:53:25

动态IP的ADSL端口映射详解(图文原理实例)

动态IP的ADSL端口映射详解

适用环境:
ROS 2.9.27
原理:大家平时都在打电话,你打过去,对方要回答你,一直到挂机。有时候出现故障,你能听见对方说话,而对方却听不见你说什么,
也有反过来的,你听不到对方的回答,对方却能听到你的声音,这两种情况,你的电话交谈都是没法进行下去的。
网络访问也一样,有一个信息的请求方,和一个信息的回答方,缺一不可。
因此,端口映射要包括这两个方面,才能正确的连接。
访问者发送请求到服务器,路由上用dst-nat来进行转接,意思就是把访问者访问的地址转接到一个最终的被访问这地址
被访问者收到请求后,就回答访问的请求,路由上用src-nat来转接
经常有人说映射不成功,其中的原因之一,很多都是只做了dst-nat,而没有做src-nat。试想一下,你打了一个人的电话,却听不见对方的声音,你打的电话能叫做成功吗?有的人只做了dst-nat也能成功,是因为在其他的设置方面,无意的完成了src-nat的功能
动态IP的ADSL,由于其IP地址是经常变化的,所以不适合用IP做参数来映射,ROS提供了接口这个参数,而ADSL的接口名是不变的,因此用接口名来做参数就可行,意思是只要访问这个接口,就把他转接到指定的IP上去,而不管这个接口是什么IP
实际例子:
明白了原理之后,就用一个实际的例子进行试验
实验环境:ADSL的接口名为TEL-ADSL,内网HTTP服务器IP为192.168.0.10
先做dst-nat:
    chain=dstnat
    protocol=tcp
    src-port=80         记得这里是src-port,而不是dat-port,意思是服务器80端口的回答
    out-interface=TEL-ADSL 关键就在这里,不用dst-address而用这个,因为是从外面来的访问,所以是in接口
    action=dst-nat
    to-address=192.168.0.10
    to-port=80
然后做src-nat:
    chain=srcnat
    protocol=tcp
    dst-port=80
    in-interface=TEL-ADSL 是回答外网,所以是out接口,可以不选,若是有多外线的情况下,建议选上,以保证回答的数据走的是访问者来的线路,试想一下,如果你用移动的打电话,对方用连通的回答你,电话能打成吗?
    action=masquerade   用这个不必指定IP,固定IP的线路可以用src-dat
脚本代码:
/ip firewall nat
add chain=dstnat in-interface=TEL-ADSL protocol=tcp dst-port=80 action=dst-nat \
    to-addresses=192.168.0.10 to-ports=80 \
    comment="测试ADSL端口映射--用户发出请求" disabled=no
add chain=srcnat out-interface=TEL-ADSL src-address=192.168.0.10 protocol=tcp \
    src-port=80 action=masquerade comment="测试ADSL端口映射--服务器回应" \
    disabled=no

你把ADSL名字和服务器IP换成你的就可以了
图片:如图
故障处理:
如果这样不成功的话,就要查找其他方面的原因,影响网络的因素是多方面的,原则就是一个:要有一个完整的信息回路,根据这一原则检查访问者的数据是否能成功到达被访问者,被访问者的回答是否能顺利回到访问者

[ 本帖最后由 hcb 于 2008-1-19 11:57 编辑 ]

qwert1388 发表于 2008-1-19 12:56:39

图太小了看不清楚

jiansuper 发表于 2008-6-8 10:21:35

我是双线同网关rodam负载均衡,照着楼主的方法做了还是没有成功,望指教

ypw 发表于 2008-6-8 20:12:19

问题是怎样把域名转换成动态的IP

hyt3d 发表于 2008-6-12 21:24:50

根本就不行

xgh5188 发表于 2008-6-13 12:59:17

应该是好帖但不知道能成不 没测试环境

trlgn21 发表于 2008-7-16 14:08:29

测到IP用IP就可以,上面的根本就不行。那位可做城功的。求求

longfen 发表于 2008-8-28 17:44:53

明白了许多 呵呵 谢谢楼上的了

fly_kai 发表于 2008-9-2 08:40:15

看看学一下

红烧排骨 发表于 2008-9-2 14:30:32

试了一下,果然成功了!!!太谢谢楼主了

glxie 发表于 2009-4-20 13:56:45

按以上方法设置后,果然外网输入域名可以访问到内网指定的映射IP,但是在内网输入域名无效,还是要输入被映射的IP。
页: [1]
查看完整版本: 动态IP的ADSL端口映射详解(图文原理实例)