免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chong232
打印 上一主题 下一主题

[网络管理] 请教,dnat没有生效,如何检查??? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2010-08-09 14:13 |只看该作者
回复 20# platinum

应该是这样的,我再检查检查环境,解决了,我再来说明,谢谢!

论坛徽章:
0
22 [报告]
发表于 2010-08-09 15:44 |只看该作者
我也搭车问一下关于通过外网访问虚拟机的问题。

我现在宿主机用的是ubuntu 10.4,用kvm安装了centos5做为虚拟机。用virt这个管理软件管理虚拟机,网络也是用virt的默认方式,应该是一种host方式吧,因为虚拟机的网段是默认的192.168.122.0/24,然后我看到在宿主机上有对应的NAT规则。

我在centos5上配置了web服务,在宿主机上增加了如下的iptables策略:
iptables -t nat -A PREROUTING -d 172.16.10.20 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.122.120:80

并且FORWARD链默认是ACCEPT。

我从另一台主机访问宿主机的8080端口,用iptables -t nat -vnL可以看到对应的NAT策略是匹配了的。但是在虚拟机里抓包却看不到来自外网访问80端口的数据,并且从另一台主机也打不开虚拟机的页面。
从宿主机直接访问192.168.122.80,是可以打开页面的。

iptables-save
# Generated by iptables-save v1.4.4 on Mon Aug  9 15:40:18 2010
*nat
REROUTING ACCEPT [71614:7665435]
OSTROUTING ACCEPT [13004:795856]
:OUTPUT ACCEPT [12943:791046]
-A PREROUTING -d 172.16.10.20/32 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.122.120:80
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
COMMIT
# Completed on Mon Aug  9 15:40:18 2010
# Generated by iptables-save v1.4.4 on Mon Aug  9 15:40:18 2010
*filter
:INPUT ACCEPT [639796:339905033]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [295388:66773014]
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Mon Aug  9 15:40:18 2010

请问我的配置有什么问题?

我加了一条iptables -A FORWARD -d 172.16.10.20 -j ACCEPT,仍然不能访问,不过用iptables -vnL,却看不到匹配这条策略,是不是规则顺序有什么问题?
# Generated by iptables-save v1.4.4 on Mon Aug  9 15:43:50 2010
*nat
REROUTING ACCEPT [72159:7720832]
OSTROUTING ACCEPT [13013:796485]
:OUTPUT ACCEPT [12952:791675]
-A PREROUTING -d 172.16.10.20/32 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.122.120:80
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
COMMIT
# Completed on Mon Aug  9 15:43:50 2010
# Generated by iptables-save v1.4.4 on Mon Aug  9 15:43:50 2010
*filter
:INPUT ACCEPT [645444:341227330]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [298150:66965899]
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -d 172.16.10.20/32 -j ACCEPT
COMMIT
# Completed on Mon Aug  9 15:43:50 2010

论坛徽章:
0
23 [报告]
发表于 2010-08-09 15:55 |只看该作者
回复 22# chinaunix874


    建议把不相关的规则先删了,只剩下要测试的规则,这样容易看

论坛徽章:
0
24 [报告]
发表于 2010-08-09 15:56 |只看该作者
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
这两个是做什么用的?

论坛徽章:
0
25 [报告]
发表于 2010-08-09 16:09 |只看该作者
回复 20# platinum


    我下午又测试了下,还是不行,于是又换了个虚拟机guest---ubuntu 9.10。
   抓包后,问题依旧!两条规则都加上:

  1. iptables -t nat -A PREROUTING -p tcp -s 192.168.0.2 -d 159.226.x.x  --dport 80 -j DNAT --to-destination 192.168.0.2
  2. #trace
  3. iptables -A FORWARD -p tcp -s 192.168.0.2 -d 192.168.0.2 --dport 80 -j ACCEPT
  4. iptables -t nat  -A POSTROUTING -p tcp -s 192.168.0.2 -d 192.168.0.2 --dport 80 -j SNAT --to-source 192.168.0.1
复制代码
查看iptables -t nat -nvL
        iptables -nvL

发现上面的规则都匹配了,看来是生效了,但抓包后,还是最后一步,即SNAT后的包:从192.168.0.1到192.168.0.2,发出去后就不了下文,在guest上也抓不到。

不知是不是跟老大测试用的虚拟机是vmware有关??

论坛徽章:
0
26 [报告]
发表于 2010-08-09 16:10 |只看该作者
麻烦你把你的测试环境及配置(包括宿主机和虚拟机的)详细说一下,我看我们的差异在哪里

论坛徽章:
0
27 [报告]
发表于 2010-08-09 16:25 |只看该作者
本帖最后由 chong232 于 2010-08-09 16:26 编辑

回复 26# platinum
    麻烦老大了!

环境:
   宿主机:
                             OS:  ubuntu10.04  
                             内核: 2.6.32
                             eth0:  159.226.x.x  (对不起,数据中心的办公环境,不方便)
                             vboxnet0(虚拟机): 192.168.0.1
                             iptables: 1.4.4
                             ip转发,已开启,cat /proc/sys/net/ipv4/ip_forward 结果为1

            虚拟机:
                             windows xp sp3   防火墙关
                             网络方式: host-only
       ip: 192.168.0.2
                            网关:192.168.0.1

            virtualbox :
                           版本3.2.6

         现在规则:
  1. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:24:39 2010
  2. *raw
  3. :PREROUTING ACCEPT [170:22335]
  4. :OUTPUT ACCEPT [41:4733]
  5. COMMIT
  6. # Completed on Mon Aug  9 16:24:39 2010
  7. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:24:39 2010
  8. *filter
  9. :INPUT ACCEPT [161:21482]
  10. :FORWARD ACCEPT [1:65]
  11. :OUTPUT ACCEPT [35:4205]
  12. -A FORWARD -s 192.168.0.3/32 -d 192.168.0.3/32 -p tcp -m tcp --dport 80 -j ACCEPT
  13. COMMIT
  14. # Completed on Mon Aug  9 16:24:39 2010
  15. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:24:39 2010
  16. *mangle
  17. :PREROUTING ACCEPT [170:22335]
  18. :INPUT ACCEPT [161:21482]
  19. :FORWARD ACCEPT [7:425]
  20. :OUTPUT ACCEPT [41:4733]
  21. :POSTROUTING ACCEPT [42:4630]
  22. COMMIT
  23. # Completed on Mon Aug  9 16:24:39 2010
  24. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:24:39 2010
  25. *nat
  26. :PREROUTING ACCEPT [21:3295]
  27. :POSTROUTING ACCEPT [29:2115]
  28. :OUTPUT ACCEPT [28:2050]
  29. -A PREROUTING -s 192.168.0.3/32 -d 159.226.x.x/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.3
  30. -A POSTROUTING -s 192.168.0.3/32 -d 192.168.0.3/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.0.1
  31. COMMIT
  32. # Completed on Mon Aug  9 16:24:39 2010
复制代码

论坛徽章:
0
28 [报告]
发表于 2010-08-09 16:28 |只看该作者
发现几个地方比较可疑
1、我使用的是 vmware,你使用的是 vbox,我不知道 vbox 在实现上是否和 vmware 一样
2、你的环境描述虚拟机的地址是 192.168.0.2,但贴出的配置却是 192.168.0.3
3、你的 POSTROUTING 做 SNAT 时好像和我前面描述的不一致

论坛徽章:
0
29 [报告]
发表于 2010-08-09 16:38 |只看该作者
回复 28# platinum


    说明一下,192.168.0.3是我下午测试另一台guest时用的ip,现在再改过来
 规则先前用了你说的,没有成功,后来就自己修改了下,为了跟踪iptables,现在都再改过来。。
  1. root@xcch-desktop:/home/xcch# iptables-save
  2. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:38:34 2010
  3. *raw
  4. :PREROUTING ACCEPT [534:110949]
  5. :OUTPUT ACCEPT [226:35443]
  6. COMMIT
  7. # Completed on Mon Aug  9 16:38:34 2010
  8. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:38:34 2010
  9. *filter
  10. :INPUT ACCEPT [404:97359]
  11. :FORWARD ACCEPT [22:3237]
  12. :OUTPUT ACCEPT [222:35123]
  13. -A FORWARD -s 192.168.0.2/32 -d 192.168.0.2/32 -p tcp -m tcp --dport 80 -j ACCEPT
  14. COMMIT
  15. # Completed on Mon Aug  9 16:38:34 2010
  16. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:38:34 2010
  17. *mangle
  18. :PREROUTING ACCEPT [534:110949]
  19. :INPUT ACCEPT [404:97359]
  20. :FORWARD ACCEPT [26:3445]
  21. :OUTPUT ACCEPT [226:35443]
  22. :POSTROUTING ACCEPT [248:38568]
  23. COMMIT
  24. # Completed on Mon Aug  9 16:38:34 2010
  25. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:38:34 2010
  26. *nat
  27. :PREROUTING ACCEPT [144:15301]
  28. :POSTROUTING ACCEPT [121:8131]
  29. :OUTPUT ACCEPT [121:8131]
  30. -A PREROUTING -d 159.226.13.157/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2
  31. -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
  32. COMMIT
  33. # Completed on Mon Aug  9 16:38:34 2010
复制代码

论坛徽章:
0
30 [报告]
发表于 2010-08-09 16:41 |只看该作者
回复 28# platinum


  再发个完整版本的:

环境:
   宿主机:
                             OS:  ubuntu10.04  
                             内核: 2.6.32
                             eth0:  159.226.x.x  (对不起,数据中心的办公环境,不方便)
                             vboxnet0(虚拟机): 192.168.0.1
                             iptables: 1.4.4
                             ip转发,已开启,cat /proc/sys/net/ipv4/ip_forward 结果为1

            虚拟机:
                             windows xp sp3   防火墙关
                             网络方式: host-only
       ip: 192.168.0.2
                            网关:192.168.0.1

            virtualbox :
                           版本3.2.6

         现在规则:

  1. root@xcch-desktop:/home/xcch# iptables-save
  2. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:38:34 2010
  3. *raw
  4. :PREROUTING ACCEPT [534:110949]
  5. :OUTPUT ACCEPT [226:35443]
  6. COMMIT
  7. # Completed on Mon Aug  9 16:38:34 2010
  8. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:38:34 2010
  9. *filter
  10. :INPUT ACCEPT [404:97359]
  11. :FORWARD ACCEPT [22:3237]
  12. :OUTPUT ACCEPT [222:35123]
  13. -A FORWARD -s 192.168.0.2/32 -d 192.168.0.2/32 -p tcp -m tcp --dport 80 -j ACCEPT
  14. COMMIT
  15. # Completed on Mon Aug  9 16:38:34 2010
  16. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:38:34 2010
  17. *mangle
  18. :PREROUTING ACCEPT [534:110949]
  19. :INPUT ACCEPT [404:97359]
  20. :FORWARD ACCEPT [26:3445]
  21. :OUTPUT ACCEPT [226:35443]
  22. :POSTROUTING ACCEPT [248:38568]
  23. COMMIT
  24. # Completed on Mon Aug  9 16:38:34 2010
  25. # Generated by iptables-save v1.4.4 on Mon Aug  9 16:38:34 2010
  26. *nat
  27. :PREROUTING ACCEPT [144:15301]
  28. :POSTROUTING ACCEPT [121:8131]
  29. :OUTPUT ACCEPT [121:8131]
  30. -A PREROUTING -d 159.226.13.157/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.2
  31. -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
  32. COMMIT
  33. # Completed on Mon Aug  9 16:38:34 2010

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP