免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1335 | 回复: 0
打印 上一主题 下一主题

[其他] linux主机 如何配置iptables 使小网ip伪装成公网出去 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-04 16:05 |只看该作者 |倒序浏览
环境:多台linux主机,例如主机1   主机2,每台主机都有一个公网ip,例如
主机1:公网ip:120.192.96.3 绑定在br0,小网ip:192.168.1.2,绑定在br0:1;在linux有个windows虚拟机,ip为192.168.1.3
主机2:公网ip:120.192.96.4 绑定在br0,小网ip:192.168.1.2,绑定在br0:1;在linux有个windows虚拟机,ip为192.168.1.3

先拿主机1为例,为了使windows虚拟机可以访问公网,设置虚拟机的网关为192.168.1.2,设置linux为路由模式,即echo "1" >/proc/sys/net/ipv4/ip_forward
然后开启nat,即$IPTABLES -t nat -A POSTROUTING -o br0-s ‘192.168.1.0/24’ -j MASQUERADE,这样虚拟机就可以访问公网了。

现在的问题是:
多台主机在通过交换机连接在一起,因为他们的小网ip相同,即都是192.168.1.2,所以会造成ip冲突,所以我想使linux本机小网ip(192.168.1.2)出去的时候也经过nat转换,这样就不会造成ip冲突,但是应该怎么设置啊?

上面-t nat的设置解释:
nat,这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成:PREROUTING (修改到来的包)、OUTPUT(修改路由之前本地的包)、POSTROUTING(修改准备出去的包)。
也即是说 -t nat应该是 在linux作为路由模式才会进行查询,不会对本地的ip产生作用。

比如主机3,小网ip192.168.1.22,公网ip 192.168.96.6
假设我将主机1本地点小网ip nat了,那么我ping主机3,即ping 192.168.1.22的时候,在主机3上用tcpdump icmp -i any抓包,是否会看到来源ip是主机1的公网ip呢?

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP