很有意思的一个问题,我上网这么久,从来没有想过这个问题。
一般来说,在网络设计方案中,都会将IP地址段的第一个,或者是最后一个IP作为网关的IP。那么,网关的IP可以是其他IP么?
比如网段是192.168.1.0/24,那么网关IP,一般来说是192.168.1.1或者是192.168.1.254。它可以是其他IP,比如说192.168.1.4么?
想要了解这个问题的答案,需要知道IP包的构成。
我们上网访问网站,用的是HTTPS协议,这些数据经过层层加头,形成我们目前最常见的以太网帧。两台接在同一个交换机IP设置为同子网的电脑,最初并不知道对方的MAC地址。他们最开始会使用广播,大喊一声,来获取对方的MAC地址。之后就可以愉快的通过MAC地址进行通讯。
有同学可能会问,我们不是通过IP来通讯么,怎么是MAC地址?是的。要知道,普通交换机它并不懂IP,它只懂MAC地址。一台机器发出去的以太网帧,经过交换机时,交换机就会发给相对应MAC的电脑。
目标电脑收到以太网帧时,发现MAC地址和自己一样,于是解开以太网封包,拿到目标IP地址。这时候有两个选项:
目标IP地址是自己
目标IP地址不是自己
对于1来说,目标IP地址就是自己,那么可以进一步处理。但是,如果目标IP地址不是自己时,它的行为是什么样子的?
一般来说,普通的电脑就会将这个包丢弃。但是对于特殊设备,比如网关来说,它不会丢弃这个包,而是重新封装(假设他的网关也是以太网),发给它的网关。(网关的网关)
从上面的行为来看,网关的IP地址确实没有必要是第一个IP或者最后一个IP,可以是子网中的任意IP。就像下图中
LAN中的4号机器能连通Internet,所以大家都可以将不是本地IP地址的包发给4,让他送到外面去。我们统称设置成第一个或者最后一个,完全是为了方便记忆而已。