形容阴天的句子唯美短句

本站作者 2023-06-18 05:51:00

描写阴天的唯美短句

即使是家用路由器,每个接口的IP所在的网段也不能相同。

这个问题可以简化为:为何一台路由器的两个接口IP不能一样?

全局变量

如果问程序员,两个全局变量名可以一摸一样吧?

程序员会强压内心的鄙视与不屑,然后故作轻松地回答,那肯定不能一样啊,系统编译肯定报错!

全局路由表

路由器的接口IP地址所在的网段,可以看作全局变量,全局变量是唯一的,不能冲突,如果有冲突,系统会禁止这样的配置。

举例

一个接口IP = 10.1.1.1/24,另外一个接口也是IP = 10.1.1.1/24,可以吗?

一个接口IP = 10.1.1.1/24,另外一个接口IP =10.1.1.2/24,可以吗?

不可以,两个接口的网段都是10.1.1,冲突了。

有同学肯定不服气,后一种情况,两个接口的网段即使相同,但IP地址却是不同的,冲突在哪里?

我的问题是,如果该路由器收到一个目的IP =10.1.1.3的报文,请问转发到哪个接口?

肯定没法回答我,对吗?

所以路由器的不同接口IP所在网段不能冲突,不是大脑一热临时想出来的,是深思熟虑的结果。

局部变量

有编程经验的同学,还使用过局部变量。所谓局部变量,就是在不同的函数内,可以定义完全相同的变量名,而不会引起歧义。那是因为即使变量名相同,但是由于它们的生存空间没有重叠,所以不会有冲突,这就是俗话说的,井水不犯河水!

VRF路由表

对于运营商来说,一台PE设备可能会端接成百上千的客户CE设备,通常PE使用子接口来完成一个CE设备的端接,比如:

PE G0/0.1001 ----------- CE1

PE G0/0.1002 ----------- CE2

PE G0/0.1003 ----------- CE3

问题来了,这些CE设备往往使用10.0.0.0/8网段的地址,假如CE设备都使用10.1.1.2/24来连接PE设备:

PE G0/0.1001 ----------- CE1 (10.1.1.2/24)

PE G0/0.1002 ----------- CE2 (10.1.1.2/24)

PE G0/0.1003 ----------- CE3 (10.1.1.2/24)

...

这不是逼着G0/0众多子接口都处于10.1.1.0/24这个网段的吗?

上文的全局路由表说过,接口、子接口的IP不能处在相同网段!

如何解决这个问题?

很好办,只要定义G0/0的子接口不在全局的路由表里,而是在一个局部的路由表里,就可以了。

如何定义局部路由表?

VRF路由表,VRF是 Virtual Routing Forwarding的缩写,通俗地说,就是一个用于收纳客户私有路由的小池子。每个VRF路由表天然隔离,井水不犯河水,所以即使G0/0子接口的IP地址是一样的,也不会引起任何歧义。

Interface G0/0.1001

VRF forwarding VRF1001

IP address 10.1.1.1/24

Interface G0/0.1002

VRF forwarding VRF1002

IP address 10.1.1.1/24

Interface G0/0.1003

VRF forwarding VRF1003

IP address 10.1.1.1/24

有了VRF的逻辑隔离,即使每个子接口的IP地址都是相同的,也是一点问题没有。

简单的分析这个问题:

用一个比较普遍的例子

对于 A 的来说的路由表是

192.168.1.1/24, LANWANIP/32, WANdefault, gateway WANIP, NAT

对于 B 来说:

192.168.1.1/24, LAN192.168.1.100/24, WANdefault, gateway 192.168.1.1, NAT

(很显然 B 的路由表是有冲突的)

此时一个设备 C 接入在 B 的 LAN 上, 一般家用路由器进行 DHCP, C 获得了 IP 192.168.1.253/24, 网关于 192.168.1.1.

我们的 C 想上网访问 8.8.8.8 这个 IP, 那么他就打了一个包:

二层: 起点为 C 的 mac, 终点是通过 ARP 协议得知 192.168.1.1 的 B 的 mac

三层: 起点为 C 的 IP 192.168.1.253/24, 终点为 8.8.8.8

好了我们的路由器 B 要转发这个包, 它开始看路由表.

显然 8.8.8.8 不属于前两个表内, 所以换到默认路由. 而其 WAN 口通过 DHCP 协议, 得到网关 IP 192.168.1.1/24, 此时它开始解析网关 IP 的 mac.

等等, 这不就是他自己嘛?

所以此时出现了混乱, 192.168.1.1 对于他来说有两个对应的 mac 地址, 其中有一个甚至是它本身. 这个冲突就导致他无法上网.

但是这个情况并不是所有路由器都这样. 很多路由器是以会以 Interface 为 Gateway, 将物理端口和网关绑定, 所以对于这些路由器来说, 192.168.1.1%WAN, 192.168.1.1%LAN 是不同的两个地址.

当然对于家庭网络来说, 第二个路由器应该设置为 Bridge 模式, 或者如果不支持这个模式, 就应该关闭 DHCP 直接当作交换机来用... 要么直接买个交换机.

所以这就是为什么要学计算机网络的重要性.

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权本站发表,未经许可,不得转载。