linux做网关映射指定IP到指定IP
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-05-06
隐约记得路由器上有nat的功能,当然有,好像应该是三种吧,一种是内网的所有IP通过一个固定的IP上网,一种是内网的一个指定的IP通过一个指定的IP上网,还有一种就是内网的IP通过一个指定的IP地址池上网. linux作为优秀的服务器也提供了nat功能,但好像只听说过用第一种的,连第二种都在网上找不到,第三种更不用说了.俺很不幸的给总监要求把第二种做出来.几经痛苦之后终于做出来了.还给路由器上的第二种nat有了更深刻的认识,不敢独享,特拿出来,新手把玩高手勿笑. 可能有的兄弟还没有明白我要用nat实现什么,特详细说明一下:内网192.168.0.0/24的网段要通过linux网关上网.假定公网IP为192.168.1.0/24.(记清楚假定哟).这时要求内网机器192.168.0.2通过网关以192.168.1.2的IP上网.也就是把192.168.0.2完全放在公网.呵呵,聪明的你一定想到了,一条出去和一条进来两条nat就可以搞定了. iptables -t nat -A POSTROUTING -s 192.168.0.2 -j SNAT --to 192.168.1.2 iptables -t nat -A PREROUTING -d 192.168.1.2 -j DANT --to 192.168.0.2 就这样一条正向一条反向就OK了.实际情况你可以试一下,这样是不可以了.便是仔细检查语法没有问题,理论也没有问题.那倒底为什么不行呢.仔细思考一下.192.168.0.2的ip过来以后先经过出去的nat.ip地址被转换成了192.168.1.2(公网IP),出去应该是没有问题.但是它办完事回来的时候,再找192.168.1.2的时候,这个时候找这个IP的时候是不会找网关的.网关上没有192.168.1.2的IP.这就是问题所在.解决办法很简单: ifconfig eth0:0 192.168.1.2 在网关的外网卡再加一个IP就可以了.呵呵,是公网IP哟,要是你申请下来的呀,要是乱加就乱了. 这个问题解决了.前面说对路由器的nat有了更新的认识,我想就是你在设IP的时候,路由器上会自动把那个IP绑定在他的外网卡上吧,只是这样想的具体怎么实现的不得而知,但是还有一个疑问就是怎么在linux做网关的机器上实现第三种nat呢,很难的一个课题了吧,想想又不想想,先放下吧,哪天总监说:"你把第三个nat做出来吧"的时候再头痛吧,小弟新手,文中有不足之处敬请斧正. |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于linux做网关映射指定IP到指定IP的所有评论