关于DMZ的疑问
路由器设置了DMZ之后,为什么路由器本身还可以正常上网(路由器里的ntp、DNS等服务都可以正常使用)?不是说路由器设置了DMZ之后会把自己收到的所有数据包都转发给DMZ主机吗? 回复 1# hamgl
方向是不同的,如果是在WAN上收到的请求,那当然就根据DMZ要求去转发罗。但如果是发自LAN端口的的请求,那就是请求路由器本身的服务了麻。这很好区分。 不过你这个贴内容好像跟内核话题无关呀。 换一种说法:就是我设置了DMZ之后,为什么还可以从路由器里ping通外网?
从路由器里ping外网的时候,icmp replay先到WAN口,由于设置了DMZ这个replay应该会发送给DMZ主机,但是为什么还能在路由器里看到这个replay?
我是想着读过内核代码的高手对这些内容知道的会更深入。 在一般家用路由器中,DMZ是指一部所有端口都暴露在外部网络的内部网络主机,除此以外的端口都被转发。PING报文不属于转发的范畴。 本帖最后由 hamgl 于 2015-01-31 10:00 编辑
我看了一下,路由器里的iptables规则如下,192.168.1.100 是DMZ主机,10.88.84.25是WAN口地址,eth1是WAN接口。在这种配置规则下,路由器是不是应该收不到icmp replay才对?
Chain PREROUTING (policy ACCEPT 76 packets, 4194 bytes)
pkts bytes target prot opt in out source destination
0 0 WANPREROUTINGall--* * 0.0.0.0/0 10.88.84.25
0 0 DROP all--eth1 * 0.0.0.0/0 192.168.1.0/24
Chain POSTROUTING (policy ACCEPT 1 packets, 56 bytes)
pkts bytes target prot opt in out source destination
11 840 MASQUERADEall--* eth1 0.0.0.0/0 0.0.0.0/0
0 0 SNAT all--* br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1
Chain OUTPUT (policy ACCEPT 6 packets, 476 bytes)
pkts bytes target prot opt in out source destination
Chain WANPREROUTING (1 references)
pkts bytes target prot opt in out source destination
0 0 DNAT all--* * 0.0.0.0/0 0.0.0.0/0 to:192.168.1.100 netfilter连接跟踪的优先级高于设置的规则,所以回复的icmp replay会收到协议栈去而不是转发到DMZ主机上去,只有外面主动发起的连接(此时在netfilter连接跟踪里还没有记录)才会被转发到DMZ主机上去 7楼正解。
6楼列出的规则都是ipables/nat表的规则,它们只针对连接的首包有效(即ctinfo=IP_CT_NEW的报文),其它报文直接从连接表上获取如何修改tuple的信息。
页:
[1]