NAT loopback

DMZ和Virtual server做的都是DNAT,即从wan口访问router/gate-way的某服务端口,其实是向router/gate-way内部网络的某设备/pc上的相对应的服务。且只能是wan端的客户访问lan端的服务才有这种端口转发/端口映射的关系,lan端的客户以router/gate-way的wan端地址是访问不了lan端的服务的(如果要实现此功能,也即所谓的NAT loopback的功能,是完全没问题的,只不过要做一下SNAT的iptables命令)。

这里就说说NAT loopback功能


环境说明:

router/gate-way wan interface: eth2 172.16.15.55, netmask: 255.255.224.0
router/gate-way lan interface: eth0 (briged to br0) 192.168.1.1, netmask: 192.168.1.0/24

interal device (as httpd server): 192.168.1.25

interal pc address (browser as httpd client): 192.168.1.10, gateway:192.168.1.1, netmask: 192.168.1.0/24

optional client: phone support wifi connection


注意:作为测试的lan端客户即httpd client 的gateway必须是router/gate-way lan 端的ip(也即此客户的默认路由), 否则在浏览器上输入的router/gate-way wan端的地址时,请求数据包怎么可能到达router/gate-way呢?如果客户是dhcp模式的话,确定客户确实是从该router/gate-way上获取ip的,还有手机wifi连接时确定连接的热点是该router/gate-way, 一般这两种情况客户的默认路由可以让请求数据包到达router/gate-way的。


这里用httpd server为测试对象, 为不影响router/gate-way本身网页的浏览,改用端口8000映射到内部80端口:

The following command will redirect all HTTP traffic coming from theexternaladdress(172.16.15.55:8000) to the web server at 192.168.1.25:80

iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 8000 -j DNAT --to 192.168.1.25:80

iptables -I FORWARD 1 -i eth2 -p tcp -d 192.168.1.25 --dport 80 -j ACCEPT


If I attempt to access my website from a local computer using its wan address(external IP address), this rule has no effect. The requests are not coming from the external. It need a more specific rule that will redirect local http requests to the web server.The “-s 192.168.1.0/24″ option ensures that this policy only applies to local requests. just let the existing policy handle external http requests.

iptables -t nat -A PREROUTING -s 192.168.1.0/24 -d 172.16.15.55 -p tcp --dport 8000 -j DNAT --to-destination 192.168.1.25:80


Now trying to access the web server results in a “could not connect” error.

Running wireshark on my pc, I can see the HTTP requests arriving from my local web browser, but the replies appear to get lost.

picture here.

Apparently the server tries to send the reply directly back to my local pc (192.168.1.25-->192.168.1.10). This does not work because the requests were sent to external IP address ofrouter/gw (requests 192.168.1.10-->172.16.15.55:8000==>192.168.1.24:80) and the replies are expected from the same origin (replies 172.16.15.55-->192.168.1.10).

The http requests needs to be modified so that they appear to come from my external IP address(requests 192.168.1.10==>172.16.15.55-->192.168.1.25).

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.25 -p tcp --dport 80 -j SNAT --to-source 172.16.15.55

此处也可用lan ip即br0 ip。

To sum it up, the first iptables command will redirect the http request to the web server, and the second iptables command will make it look as if the request came from the external IP address.


会存在日志问题,即log始终记录的数据包源地址为wan ip。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
版本更新历史 ===== 2012-7-17 | 12.07.0029 内测版发布 ===== * 解决BUG: [智能QoS] 修复0023, 0028版本智能QoS速度很慢的问题 * 解决BUG: [通讯明细] 修复通讯明细中走WAN3,WAN4的流量,明细记录的“接口”那一项显示为空白的BUG * 解决BUG: [指定出口] 修复12.xx系列版本的pppoe服务器、pptp服务器的客户端拨入后如果用了指定出口则无法访问外网的BUG * 解决BUG: [PPTP服务器] PPTP服务器端局域网(例如192.168.1.100)用户能访问到PPTP客户端的局域网(例如192.168.2.100),但是PPTP服务器所在路由器的PPPoE用户无法访问到PPTP客户端局域网,此BUG已经修复 * 解决BUG: [SAMBA] 修复 系统管理->访问设置中“允许root访问”的勾去掉后,samba“自动共享所有 USB 设备分区”为“读/写“时无法打开共享文件夹(提示用户不存在) * 解决BUG: [定时任务] 修复 系统管理->访问设置中“允许root访问”的勾去掉后,定时任务不能工作的BUG ===== 2012-6-8 | 12.06.0028 内测版发布 ===== * 解决BUG: [QoS] 修复QoS设置无法保存的BUG,修复文字拼写错误 * 功能加强: [USB] 将打印服务器功能从USB设置中独立出来, 专用版支持4台打印机,通用版支持1台打印机 * 功能加强:[WEB] 可以禁止root登录,允许修改路由器管理用户名,修改用户名后访问web、telnet、ssh请输入修改后的用户名 * 功能加强: [访问限制] 增强访问限制功能,可以指定访问限制规则的动作(允许数据包通过或阻止数据包通过)。注意:访问限制最多50条规则 ===== 2012-5-23 | 12.05.0023 内测版发布 ===== * 解决BUG: [MAC克隆] 修复WAN3, WAN4 MAC克隆保存后依然还是原来MAC * 解决BUG: [XWAN] 修复在基本设置->网络设置和VPN客户端里,未使用的自定义路由表会被清空的BUG * 解决BUG: [XWAN] 修复清除NVRAM后, 基本设置->网络设置页面显示WAN数量是1, 但是VLAN配置还是2 WAN, 这导致LAN1口接电脑将无法访问到路由器 * 解决BUG: [指定出口] 修复指定出口指定到运营商路由表规则没有生效的bug. * 解决BUG: [XWAN] 修复当修改WAN负责路由表后旧的ip rule规则未能清除的BUG * 解决BUG: [设备流量] 修复多WAN时某个WAN口未联机会导致设备流量列表空白的BUG * 解决BUG: [WEB] 修复WAN3, WAN4的Port Speed修改之后不能保存的BUG * 解决BUG: [WEB] 只有当所有WAN都是关闭的状态下才显示LAN网关、LAN DNS1、LAN DNS2这3个文本框 * 解决BUG: [NAT Loopback] 修复NAT Loopback功能使用路由器LAN IP作为SRC IP时导致一些内网架设的服务器无法正常工作的BUG, 现在NAT Loopback 使用WAN IP(由1到4顺序检查,哪个联机了就用哪个)作为SRC IP * 解决BUG: [断线检测] 修复4WAN固件断线检测功能失效的BUG, 但是目前还只支持WAN1, WAN2的断线检测 * 功能加强: [DDNS] DDNS数量由原来的2个增加到4个 * 功能加强: [FLV匹配模块] 智能QoS及原版QoS的FLV匹配模块支持更多的视频类型 * 功能加强: [指定出口] 指定出口增加"优先级低于路由表"选项, 启用该选项后, 指定出口规则比路由表的优先级要低. 注意:修改本选项后需要重启路由器才能生效 * 功能加强: [QoS] 原版QoS支持4WAN, 并且图形分析可以显示下行的图形 * 功能加强: [智能QoS] 改进智能QoS, 分类由原来的3个增加到5个, 可以自定义每个WAN的每个分类的带宽 注意:智能QoS请重新设置上行、下行、分类带宽,默认设置是4M ADSL的参数 * 细节调整: [WEB] 汉化"Interference Level" 为 "干扰程度" * 细节调整: [PPTP/PPPoE服务器] PPTP服务器创建的ppp连接的序号由50开始, PPPoE服务器创建的ppp连接的序号由100开始 ===== 2012-4-2 | 12.04.0012 内测版发布 ===== * 解决BUG: [XWAN] 修复12.04.0009, 0011版本系统状态页面WAN3, WAN4无法断开连接的BUG * 解决BUG: [XWAN] 修复12.04.0011版本非4WAN时出现CPU占用率100%的BUG ===== 2012-4-1 | 12.04.0011 内测版发布 ===== * 解决BUG: [MAC克隆] 修复12.04.0009版本MAC克隆页面点击保存按钮后浏览器提示JavaScript错误的BUG * 解决BUG: [USB] 修复除了WAN1之外的WAN连接类型选成GPRS/EDGE/UMTS/EVDO时浏览器弹出错误对话框的BUG * 解决BUG: [网络设置] 修复WAN连接类型选择为关闭后,LAN的网关设置选项还是不可见的BUG * 解决BUG: [USB] 修复一些之前在542中能识别的3G卡在12.04.0009中未能识别的BUG * 解决BUG: [设备流量] 设备流量现在支持4WAN了 ===== 2012-4-1 | 12.04.0009 内测版发布 ===== * 解决BUG: [端口转发] 解决当高级设置->防火墙设置的“NAT Loopback功能”选成“只有被转送的封包”时,端口转发功能失效的BUG * 解决BUG: [USB] 修复双WAN的其中一个WAN为3G,当3G断线时会导致电脑不能上网的BUG * 解决BUG: [USB] 修复Nokia E71等手机能在“USB设置”的“已连接设备”中识别出来,但是基本设置->网络设置的Modem列表中未能显示的BUG * 解决BUG: [按需拨号] 修复按需拨号有时候无法工作的BUG * 功能调整: 因4WAN版指定出口功能与旧版通告功能的nfmark冲突,所以12系列版本不再有旧版通告功能 * 功能加强:PPPoE服务器增加DNS1, DNS2设置,用户可以指定PPPoE客户端的DNS服务器 * 功能加强:固件支持4WAN,重写多WAN部分核心代码,并且可在网页上直接选择WAN的数量。 * 说明:目前已完成了4WAN的拨号、指定出口、负载均衡、智能路由、PPTP客户端,某些功能选项还只有WAN1,WAN2,后续的版本会完善这些功能 * 注意:由于12.04.0009版本改动较大,一些参数与1.28版本不兼容,所以请在升级前用系统管理->备份/恢复功能备份好设置,然后在升级固件时勾上“升级固件后清除NVRAM全部资料(彻底清除)” * 注意:由于12.04.0009版是4WAN的第一个版本,可能BUG较多,请大家谅解
数通设备SRG2300脚本 zw_unicom zw_unicom n system-view sysname haiyuanqixiangju system-view interface LoopBack 0 ip address 10.255.0.187 255.255.255.255 return system ip -instance internet description internet ipv4-family route-distinguisher 10000:10020 apply-label per-instance -target 10000:10020 export-extcommunity -target 10000:10020 import-extcommunity return system ip -instance public description public ipv4-family route-distinguisher 10000:10010 apply-label per-instance -target 10000:10010 export-extcommunity -target 10000:10010 import-extcommunity return system acl number 3000 rule 5 permit ip source 192.168.0.0 0.0.255.255 rule 100 deny ip return system aaa local-user unicom password cipher zw_unicom local-user unicom privilege level 3 local-user unicom service-type telnet return system user-interface vty 0 4 authentication-mode aaa return system interface GigabitEthernet0/0/0 description to XXX_S9300_giX/X/X combo-port fiber interface GigabitEthernet0/0/0.1 description management dot1q termination vid 198 ip address 10.255.37.211 255.255.255.248 interface GigabitEthernet0/0/0.2 description public dot1q termination vid 1186 ip binding -instance public ip address 172.25.5.211 255.255.255.248 nat outbound 3000 interface GigabitEthernet0/0/0.3 description internet dot1q termination vid 3185 ip binding -instance internet ip address 172.26.5.211 255.255.255.248 nat outbound 3000 interface GigabitEthernet0/0/1 description to xiaxing interface GigabitEthernet0/0/1.1 description public ip binding -instance public interface GigabitEthernet0/0/1.2 description internet ip binding -instance internet interface GigabitEthernet0/0/2 description test ip address 192.168.100.1 255.255.255.252 return system bgp 64698 router-id 10.255.0.187 peer 10.255.37.209 as-number 65145 peer 10.255.37.209 description XXX peer 10.255.37.209 connect-interface GigabitEthernet0/0/0.1 peer 10.255.37.210 as-number 65145 peer 10.255.37.210 description XXXX peer 10.255.37.210 connect-interface GigabitEthernet0/0/0.1 ipv4-family unicast undo synchronization network 10.255.0.187 255.255.255.255 ipv4-family -instance public import-route static peer 172.25.5.209 as-number 65145 peer 172.25.5.209 connect-interface GigabitEthernet0/0/0.2 peer 172.25.5.210 as-number 65145 peer 172.25.5.210 connect-interface GigabitEthernet0/0/0.2 ipv4-family -instance internet import-route static peer 172.26.5.209 as-number 65145 peer 172.26.5.209 connect-interface GigabitEthernet0/0/0.3 peer 172.26.5.210 as-number 65145 peer 172.26.5.210 connect-interface GigabitEthernet0/0/0.3 return save y y
运行在路由上的论坛,原来路由还可以这样使用!在tomato_dual路由器下建Ofstar论坛系统步骤: 配置如下:硬件:WR-500U路由 64M内存固件:Tomato Dualwan 1.28.0518 MIPSR1 K26 USB 8M版本宽带:2兆光纤本论坛得到QQ:113 163 922的全力技术支持!一、要准备一个U盘,只放论坛,2G就够了,格式化为EXT3格式,然后插入路由。 格式化工具我用paragon partition manager磁盘管理软件二、在路由器上起用USB功能8M版的在USB应用--USB设置--启动USB2.0和1.1插入U盘会自动挂载并如下显示三、更换tomato的WEB管理默认端口80为其他端口,比如8080。更换之后路由的登陆地址会变为http://192.168.1.1:8080/四、上传网站程序到挂载好的U盘或者硬盘,创建PHP服务环境。1、开始-运行里面输入192.168.1.12、将 jffs_web.tar.gz(17.4M)拷贝到U盘的根目录下五、继续telnet进路由器 。1、开始-运行里面输入CMD点确定后再输入telnet 192.168.1.1接着输入路由的账户密码,默认root admin2、登录成功后,如下操作:cd /mnt/sda1tar zxvf jffs_web.tar.gz正在创建PHP服务环境六、输入启动脚本,保存后并重启路由器 。1、也就是复制如下代码到路由器的USB管理界面下的USB应用--USB设置--“挂载后运行脚本”内。代码:umount /jffsumount /optmount --bind /mnt/sda1/jffs /jffsmount --bind /jffs/opt /optmount -o bind /jffs/opt /optsleep 1cd /jffsopt/etc/init.d/S70mysqld startopt/etc/init.d/S80lighttpd start2、登录路由地址,出现lighttpd server is running.就表示挂载成功。七、下载Ofstar论坛系统,解压后使用WinSCP连接到路由器上传到/opt/share/www/下。1、WinSCP连接到路由器的设置,用户名必须为root 密码为你自己设置的。2、连接后将Ofstar上传到/opt/share/www/目录下3、确认以下目录或文件属性为 (777) 可写模式 /ofstar --- 777 目录 ofstar/bbsdata --- 777 目录 注意此目录下的所有文件都要设置为 777 ofstar/images --- 777 目录 ofstar/ipdata 默认 目录 ofstar/require 默认 目录 ofstar/template/ofstar/css.htm --- 777 文件 注意以后您自己加的风格css文件都要设置为 777 ofstar/attachments --- 777 目录 ofstar/session --- 777 目录 ofstar/userdata --- 777 目录 注意此目录下的所有 目录 和 文件 都要设置为 777 ofstar/ofstar_data --- 777 目录 注意此目录下的所有 目录 和 文件 都要设置为 777使用WinSCP逐一修改八、Ofstar论坛系统安装(不要问我什么叫域名,自己去百度)运行 http://您的域名/ofstar/install.php 安装程序,填入相关信息与创始人相关资料, 完成安装!以后http://您的域名/ofstar/install.php 就是你论坛的访问地址(本论坛使用的是动态域名,在路由的基本设置-动态域名里面进行设置!)九、如果要开放外网的其他设置1、在高级--防火墙里 把 NAT Loopback 的选项改为 “全部” 后保存。2、在系统管理--脚本设置--防火墙里添加:iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT保存!3、DMZ千万不要选择本人的这个论坛就是按这个方法建立起来的,以后只要路由不关闭。全世界各地都可以访问!http://wlan01.3322.org/ofstar/ 其他所需要使用到的工具,请自己去搜索!jffs_web.tar.gz(17.4M) (感谢恩山 yg365 提供)http://u.115.com/file/f88298981d 附件:ofstar2.6.rar (596 K)下载次数:60

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值