所以说,一个路由器会属于不同的网络中,比如我们常见的默认网关,它就属于内网和外网,在内网和外网均有一个角色。因此它有至少2个IP地址,内网网卡上的IP地址标识其内网的角色,而外网的IP地址标识其外网的角色。 对于更加复杂动态路由域的划分,也是如此。以OSPF为例,Area的边界在路由器。 这种编址方式直接影响了转发动作中的路由查找。路由器收到一个数据包之后,如果数据包的目标地址属于自己的一个网络,那么将会匹配到一种特殊的路由,即链路层路由。这种链路层路由不需要配置,是根据网卡所配置的IP地址自动生成的,也叫做自动发现的路由。比如路由器的一个网卡eth0配置了IP地址192.168.1.20/24,数据包的目标IP为192.168.1.30,那么将会配置到下面的一条路由项,我以Linux为例: 192.168.1.0/24 dev eth0 proto kernel scope link 这个项中proto kernel以及scope link的含义就是内核自动发现的链路层路由。线缆两端只要不跨越三层设备,且配置同一个网络标识(即IP地址与掩码的按位与)的IP地址,就可以通过这个链路层路由通信,无需任何配置。不过如果你非要配置一个两端属于不同网段的IP地址,然后靠配置静态路由的方式来保证两边的互通,那谁也拦不住你。 总的来讲,在IP网络中,链路层路由几乎总是数据包的最后一跳采用的路由,后面提到OSI模型时,我们就会知道OSI采用了另一种完全不同的方式处理最后一跳。 因此,IP地址的编址方式实际上是与MAC地址对应的,它标识的是一块网卡所延伸出去的那条链路。之所以不直接使用网卡的MAC地址而引入一个IP地址,是因为IP地址在MAC地址上增加了逻辑含义,表现为以下几个方面: