QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1186|回复: 5

这个NAT配置哪里有问题?

[复制链接]
发表于 2006-5-6 03:49:49 | 显示全部楼层 |阅读模式
一台PC(Windows)装有两张网卡,并装有虚拟机,虚拟机运行Linux。
另有一台路由器。

硬件及IP配置:
把两个网卡接到路由器上,路由器内网地址192.168.1.1。网卡0的IP为192.168.1.100, 网卡1 的IP为12.168.2.100。网关均不添。
虚拟机添加两个网卡并用桥接的方式,虚拟网卡0(eth0)的IP为192.168.1.101, 虚拟网卡1(eth1)的IP为192.168.2.101。网关均不添

方案:
虚拟网卡0网关添为192.168.1.1, Linux ping sina OK.
物理网卡1网关添为192.168.2.101, (windows)Ping 192.168.2.101 OK.

Linux(虚拟机上)添加规则:
iptables -F
iptables -P INPUT -j ACCEPT
iptables -P OUTPUT -j ACCEPT
iptables -P FORWARD -j DROP

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.101

iptables -A FORWARD -i eth0 -j ACCEPT

iptables -A FORWARD -i eth1 -m state --state RLATED,ESTABLISHED -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward

可是PC还是不能上外网啊,高手指点是我的iptables 有问题吗???
发表于 2006-5-6 09:58:46 | 显示全部楼层

Re: 这个NAT配置哪里有问题?

[quote:3ee07b2e4e="viscar"]一台PC(Windows)装有两张网卡,并装有虚拟机,虚拟机运行Linux。
另有一台路由器。

硬件及IP配置:
把两个网卡接到路由器上,路由器内网地址192.168.1.1。网卡0的IP为192.168.1.100, 网卡1 的IP为12.168.2.100。网关均不添。
虚拟机添加两个网卡并用桥接的方式,虚拟网卡0(eth0)的IP为192.168.1.101, 虚拟网卡1(eth1)的IP为192.168.2.101。网关均不添

方案:
虚拟网卡0网关添为192.168.1.1, Linux ping sina OK.
物理网卡1网关添为192.168.2.101, (windows)Ping 192.168.2.101 OK.

Linux(虚拟机上)添加规则:
iptables -F
iptables -P INPUT -j ACCEPT
iptables -P OUTPUT -j ACCEPT
iptables -P FORWARD -j DROP

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.101

iptables -A FORWARD -i eth0 -j ACCEPT

iptables -A FORWARD -i eth1 -m state --state RLATED,ESTABLISHED -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward

可是PC还是不能上外网啊,高手指点是我的iptables 有问题吗???[/quote]

虚拟网卡0网关添为192.168.1.1, Linux ping sina OK.
可是PC还是不能上外网啊,高手指点是我的iptables 有问题吗???

linux 可以上网,window不能上网?---没有看清楚

试试
1:
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -P INPUT -j ACCEPT
iptables -P OUTPUT -j ACCEPT
iptables -P FORWARD -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.1
(或 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE)

2:
将windows中eth0的网关改为192.168.1.1
回复

使用道具 举报

 楼主| 发表于 2006-5-6 14:19:49 | 显示全部楼层
对是Linux可以,但Windows不可以。
因为虚拟机两个网卡都是桥接的,我的目的是要测试NAT,所以Windows的eth0的网关不能添192.168.1.1,否则数据包直接从PC出去了,不会经过Linux的NAT。

这个问题已经搞定了,可能是我把哪个规则敲错了,今天早上重新来了遍就可以了。

另外还有一个问题iptables的表是啥关系?也就是说如果数据包经过一个表,还会经过另一个表吗?
回复

使用道具 举报

发表于 2006-5-7 02:36:51 | 显示全部楼层
是的,Netfilter的包转发在Nat Manage Filter Route 是有顺利的, 这个建议参考 Netfilter/iptable  FAQ !
回复

使用道具 举报

发表于 2006-5-8 09:57:15 | 显示全部楼层
vmware的两个虚拟网卡分别桥接于不同的物理网卡,你确定这一步没有问题吗?

你先确定一下这一步有没有问题。
回复

使用道具 举报

 楼主| 发表于 2006-5-8 12:06:17 | 显示全部楼层
to:Axin,桥接这一步肯定没有问题,我现在在filter表里加了两条(nat表里如前面所说设置)
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
结果这样就可以了。所以偶对表的关系是一头雾水:(
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-2 16:25 , Processed in 0.065367 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表