- 注册时间
- 2010-3-24
- 最后登录
- 2012-1-29
- 在线时间
- 30 小时
- 阅读权限
- 30
- 积分
- 423
- 帖子
- 22
- 主题
- 2
- 精华
- 0
- UID
- 8495
 
 - 签到
- 34
- 注册时间
- 2010-3-24
- 最后登录
- 2012-1-29
- 在线时间
- 30 小时
- 阅读权限
- 30
- 积分
- 423
- 帖子
- 22
- 主题
- 2
- 精华
- 0
- UID
- 8495
|
本帖最后由 风在哪里 于 2010-9-4 11:25 编辑
简介:内网的一个服务(腾讯通RTX),内部的用户与外网的用户都要访问,为了统一设置,所以使用公网IP来访问。问题在于内网设置公网IP在NAT上规则配置出错,没有成功。
网络拓扑是 iptables_nat 防火墙;下面接一个netgear的三层交换机,里面配置有8,9个vlan,腾讯通RTX服务端在其中一个VLAN;
下面说一下iptables_nat上的配置。
两网卡,eth1外网IP(61.154.164.x),内网与三层上相连的IP为10.10.10.0/24,eth0为10.10.10.1/24,
开机启用这两条命令
route add default gw 61.154.164.x
route add -net 192.168.0.0 netmask 255.255.0.0 gw 10.10.10.2 (dev eth0)
下面是我设置的NAT规则的一些信息
LAN="192.168.0.0/16"
#LAN="10.10.10.0/24"
WAN="61.154.164.x"
EXTIF="eth1" #eth0内网卡,eth1外网卡
INIF="eth0"
#########set netfilter default rule
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#########set nat default rule
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -A FORWARD -i $EXTIF -p tcp -d 192.168.19.218 --dport 8000 -j ACCEPT
iptables -A FORWARD -i $EXTIF -p tcp -d 192.168.19.218 --dport 8003 -j ACCEPT
iptables -A FORWARD -i $EXTIF -p tcp -d 192.168.19.218 --dport 8010 -j ACCEPT
iptables -A FORWARD -i $EXTIF -p tcp -d 192.168.19.218 --dport 8012 -j ACCEPT
iptables -A FORWARD -i $EXTIF -p tcp -d 192.168.19.218 --dport 8880 -j ACCEPT
iptables -A FORWARD -i $EXTIF -p tcp -d 192.168.19.218 --dport 9000 -j ACCEPT
iptables -A FORWARD -i $EXTIF -p tcp -d 192.168.19.218 --dport 9005 -j ACCEPT
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $EXTIF -s $LAN -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 8000 -j DNAT --to 192.168.19.218:8000
iptables -t nat -A PREROUTING -p udp -i $EXTIF --dport 9000 -j DNAT --to 192.168.19.218:9000
iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 8012 -j DNAT --to 192.168.19.218:8012
iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 8003 -j DNAT --to 192.168.19.218:8003
iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 8010 -j DNAT --to 192.168.19.218:8010
iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 8880 -j DNAT --to 192.168.19.218:8880
iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 9005 -j DNAT --to 192.168.19.218:9005
iptables -t nat -A POSTROUTING -p tcp -d 192.168.19.218 --dport 8000 -j SNAT --to 10.10.10.1
iptables -t nat -A POSTROUTING -p tcp -d 192.168.19.218 --dport 9000 -j SNAT --to 10.10.10.1
iptables -t nat -A POSTROUTING -p tcp -d 192.168.19.218 --dport 8012 -j SNAT --to 10.10.10.1
iptables -t nat -A POSTROUTING -p tcp -d 192.168.19.218 --dport 8003 -j SNAT --to 10.10.10.1
iptables -t nat -A POSTROUTING -p tcp -d 192.168.19.218 --dport 8010 -j SNAT --to 10.10.10.1
iptables -t nat -A POSTROUTING -p tcp -d 192.168.19.218 --dport 8880 -j SNAT --to 10.10.10.1
iptables -t nat -A POSTROUTING -p tcp -d 192.168.19.218 --dport 9005 -j SNAT --to 10.10.10.1
申明一点:其中192.168.19.218为腾讯通RTX的服器。上面的具体IP没有写出来,网络没有问题。三层也OK,就是内网设置61.154.164.x:8000访问不成功,问题在NAT的规则。
请大家有空帮看一下问题所在。。有需要补充的信息我会及时贴上来。
其中我试过将‘iptables -t nat -A POSTROUTING -p tcp -d 192.168.19.218 --dport 9005 -j SNAT --to 10.10.10.1’这一条命令最后的IP改为公网IP与三层IP10.10.10.2都没有成功,还有试过直接三层去掉,只挂 RTX所在的一个网段也没有成功。。 |
|