网关和IP必须设置在同一个网段吗?

网关和IP必须设置在同一个网段吗?

网关和IP必须设置在同一个网段,我一直是这样认为的,但是有一天,我在中国电信的办公室,看到一台电脑:
网络设置如下:
IP:172.16.20.8
子网掩码:255.255.255.0
网关:192.168.1.254
DNS:172.16.20.1
IE里设置为局域网上网
这样的设置竟然可以上网,百思不得其解,在此向大侠们请教,这是怎么回事?

[[i] 本帖最后由 loveme23 于 2007-10-21 11:00 编辑 [/i]]

我是来灌水的 发表于 2006-4-17 09:05

要深入理解这个问题,首先要搞清楚网络通讯的原理,网络上通讯工作在物理层和数据链路层,源地址和目标地址是通过源和目的的mac地址进行通讯的。

当源主机访问目标主机时,首先看两者的IP在不在同一网段,结果是

1 两者在同一网段,就会直接把包发向目标IP,这时要做:

        1.1 查本地arp缓存,看看是否有IP和Mac的对应表.

              1.1.1 有,直接向网络上发包,包中包括原mac及目标mac 。

               1.1.2 没有,则向网络发arp 广播,用来查找与目标IP对应的mac地址。

                         1.1.2.1 如果查到了,则向网络发包。

                         1.1.2.2 没查到,则不通讯。

2 两者不在同一网段,则把目标地址转为网关地址(也就是平时说的向网关发包),然后查找本地arp缓存,继续1.1 。

由此可以看出,源主机和网关的通讯过程中,并不会检查两者是不是同一网段,而是直接去查arp缓存。所以是可能通讯的。

当然,这里说的只是单向的,要想让目标主机响应的包能回到源地址上,还要在路由器上做路由策略,这里不说了。

什么情况下用这样,一般情况下单臂路由时用到的较多。路由器的一个内网接口接几个不同的子网,网管为了省事儿,就这样设了。

这样有什么好处呢,我想,这样可以对网关起到一定的保护作用,使得网关不轻易暴露(外部攻击)。但这样做对于网络调试可能会有麻烦,或者当网络故障时,查错比较麻烦。一般不建议这样做。

你可能感兴趣的:(网关和IP必须设置在同一个网段吗?)