文章目录
- 1. DHCP Protocol
- 1.1 DHCP 三种分配方式
- 1.2 DHCP Relay (中继)
- 2. 路由协议 (Routing Protocol)
- 2.1 RIP (Routing Information Protocol)
- 2.2 OSPF Protocol
- 2.2.1 OSPF Area
- 2.2.2 Route ID / DR / BDR
- 2.2.3 LSA / OSPF 邻居表 / LSDB / OSPF路由表
- 2.3 BGP Protocol
- 2.4 IS-IS Protocol
- 2.5 ICMP(Internet Control Message Protocol)
- 3 Subnet 子网
- 4 VLAN (Virtual Local Area Network) 虚拟局域网
1. DHCP Protocol
DHCP: Dynamic Host Configuration Protocol, 动态主机配置协议。是一个局域网络协议,用途:
- 内部网络或者网络服务供应商自动分配IP给用户
- 提供内部网络管理员作为对所有电脑中央管理的手段
当一个机器启动时,没有IP,会发送 DHCP Discover message. DHCP Server 收到 Discover message, 为机器分配一个永久的IP。
1.1 DHCP 三种分配方式
- 自动分配:
管理员在server上建立地址池进行分配
- 手工分配
由 管理员为少数特定客户端(如WWW服务器等) 静态绑定固定的IP地址,通过DHCP将配置的固定IP地址发给客户端
- 动态分配
DHCP给主机指定一个有时间限制的IP地址,到达使用期限后或主机明确表示放弃这个地址时,客户端需要重新申请地址; 如果客户端没有重新申请,则这个地址将可能被其它的主机使用; 绝大多数客户端得到的都是这种 动态分配的地址(可以解决IP地址不够用的困扰)
1.2 DHCP Relay (中继)
如果DHCP服务器与客户端不在同一个网络,就需要中继 (Relay) 代理。
大型企业网络中会有很多vlan,不可能为每个vlan设置DHCP服务器,同时 vlan 间通信是靠高层的、三层交换机路由器防火墙,通讯的实质即拆分子接口然后分配给各个vlan端口,但是路由设备在处理物理网络流量的时候,是不允许广播包通过,所以 DHCP Relay实质就是把 DHCP 广播包转化为单播包再进行传输。
2. 路由协议 (Routing Protocol)
由于互联网规模庞大,所以网络会被分为许多 自治系统(AS-Autonomous system)。AS内部的路由器全部运行在同样的路由算法,AS之间是互联的,所以每个AS中一个或多个路由器用于不同AS之间的通信,这些路由器称为 网关路由器,用于将AS之外的目的地址转发分组。
所以路由选择协议可以划分为两大类:内部网关协议和外部网关协议。
AS之间的路由选择也叫做 域间路由选择,AS内部的路由选择叫做 域内路由选择。
内部网关协议 IGP(interior gateway protocol),常见的有 RIP、OSPF 、IS-IS协议
外部网关协议 EGP(external gateway protocol),常见的有BGP协议
2.1 RIP (Routing Information Protocol)
RIP 路由信息协议,是一种分布式的基于距离向量的动态路由选择协议,使用“跳数”(最大15)来衡量到达目标地址的路由距离,最大的优点是简单。
R2 路由转发表
类型 | 网络 | 端口 | 下一跳IP | 度量 |
---|---|---|---|---|
C | 10.0.0.0/8 | G0/0 | – | 0 |
L | 10.0.0.2/32 | G0/0 | – | 0 |
C | 20.0.0.0/8 | G0/1 | – | 0 |
L | 20.0.0.2/32 | G0/1 | – | 0 |
R | 30.0.0.0/8 | G0/1 | 20.0.0.1 | 1 |
R | 30.0.0.0/8 | G0/0 | 10.0.0.1 | 1 |
R | 192.168.0.0/24 | G0/1 | 20.0.0.1 | 1 |
R | 192.168.1.0/24 | G0/0 | 10.0.0.1 | 1 |
RIP的距离称为跳数,RIP允许一条路径最多只能包含15个路由器,距离大于等于16即为不可达,所以适用于中小型网络。
由于RIP仅和相邻路由器狡猾信息,并且按照固定的时间间隔交换信息,如果某个路由器出现故障,相邻的路由器会把距离更新为16(不可达),但需要经过固定的时间间隔才能把更新信息传递给其他相邻的路由器并依次传递,即坏消息传递速度慢。
2.2 OSPF Protocol
开放式最短路径优先(Open Shortest Path First)是一种动态路由协议,它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码和汇总、层次区域划分等优点。
2.2.1 OSPF Area
为了适应大型网络,OSPF在AS内划分了多个Area,每个OSPF路由器值维护所在区域的完整链路状态信息。划分区域时,会创建一个称为Area 0的中心区域,其他区域始终与Area 0相连。
路由器分类 | 说明 |
---|---|
区域内路由器IR | 所连接的网络属于同一个区域,IR只运行一个OSPF协议实例。 |
主干路由器BBR | 主干区域中的路由器 |
区域之间的路由器 ABR(汇聚IP) | 连接到多个AS,且必须连到主干区域,为每个链接Area分别运行一个OSPF协议实例 |
AS边界路由器 ASBR | 与其他AS交换路由信息 |
虚拟链路
- 主干区域必须是联通的,所有区域边界路由器ABR都能通过主干区域到达其他区域边界路由器
- 如果不满足上面的条件,主干区域可以配置虚拟链路(virtual link)使其变成联通的
下图中 R3 和 R4 在主干区域,但是需要通过Area3才能实现联通。这时,可以在主干区域的R3、R4之间配置一条 virtual link,使得主干区域连续,实际上这条链路是通过N1中的物理连接来进行通信
2.2.2 Route ID / DR / BDR
Router ID 路由器ID,32位无符号整数,默认用loopback接口中最大的IP作为 Router ID。
Name | Info |
---|---|
DR | Designated Router, 选举Router ID最大的路由为DR 只有DR能代表该网络发送网络的链路状态 |
BDR | Backup Designated Router,选举Router ID第二大的路由为 BDR DR发生故障的时候,BDR变成DR |
DROTHER | Not DR nor BDR |
R1> show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.123.2 1 FULL/BDR 00:00:32 192.168.123.2 FastEthernet0/0
192.168.123.3 1 FULL/DR 00:00:31 192.168.123.3 FastEthernet0/0R3> show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.123.1 1 FULL/DROTHER 00:00:36 192.168.123.1 FastEthernet0/0
192.168.123.2 1 FULL/BDR 00:00:39 192.168.123.2 FastEthernet0/0R2> show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.123.1 1 FULL/DROTHER 00:00:31 192.168.123.1 FastEthernet0/0
192.168.123.3 1 FULL/DR 00:00:32 192.168.123.3 FastEthernet0/0
2.2.3 LSA / OSPF 邻居表 / LSDB / OSPF路由表
LSA (Link State Advertisement)链路状态通告,用于描述链路状态信息,路由器接口的状态信息,例如接口开销、连接的对象。
借用CSDN其他文章中的图 原文链接
- 相邻路由器之间周期性发送HELLO报文,以便建立和维护邻居关系
- 建立邻居关系后,给邻居路由器发送数据库描述报文(DBD),也就是将自己链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器
- 收到数据库描述报文后,若发现自己缺少其中某些链路状态项目,则会发送链路状态请求报文(LSR)。
- 对方收到链路状态请求报文后,则会将其所缺少的链路状态项目的详细信息封装在链路状态更新报文(LSU)中发送回去
- 收到链路状态更新报文后,将这些信息添加到自己的链路状态数据库中,随后发回链路状态确认报文(LSACK)
如上,OSPF在传递链路状态信息之前,需要建立 OSPF邻居关系 ,通过hello包文件里,OSPF邻居表显示了OSPF路由器之间的邻居状态,使用 display ospf peer
查看:
R1 > display ospf peerOSPF Process 1 with Router ID 10.0.1.1Neighbors
Area 0.0.0.0 interface 10.0.12.1(G1/0/0)'s neighbors
Router ID:10.0.12.1 Address: 10.0.12.2 GR State: NormalState: Rull Mode:Nbr is Master Priority:1DR: 10.0.12.1 BDR:10.0.12.2 MTU:0...
LSDB(Link State DataBase, 链路状态数据库),用于描述AS内部的拓扑结构。
每个路由器负责发现、维护与邻居的关系,并将已知的邻居和链路费用 LSA报文 描述,通过可靠的泛洪与 AS 内的其他路由器周期性交互,每个 AS 内的路由器收到所有 LSA 并放入自己的 LSDB。
每台路由器基于 LSDB,使用 SPF(Shortest Path First,最短路径优先) 算法进行计算,每台路由器都计算出一棵以自己为根、无环的、拥有最短路径的树,这样路由器就已经知道了到达所有网段的优选路径。
边界路由器可以通过距离矢量算法互相传递路由,从而实现整个网络的互联。
每隔一段时间或链路状态发生变化时,重新生成LSA,路由器通过泛洪将LSA通告出去,实现路由实时更新。
2.3 BGP Protocol
2.4 IS-IS Protocol
2.5 ICMP(Internet Control Message Protocol)
3 Subnet 子网
既然Layer 2 可以通过switch实现设备互连,何必通过IP划分子网呢?
看过之前 [Cloud Networking] Layer 2 协议 文章,可以知道 Layer 2的协议需要通过广播来发现对方,假如一个二层网络包含了大量的客户机,那么就会产生广播风暴,假如把网络划分成不同的网段,每个网段内的客户及数量进行限制,那么引起的广播风暴比较良性,对网络的影响就会较小。
再有一个原因,工作在三层的是路由器 Router,它比交换机更聪明,能够支持更多的网络配置,例如Router的某个接口上,只允许访问80端口(HTTP),其他都过滤掉。
因此,我们对网络进行划分,将网络划分为不同的子网,每个子网内部处于同一个网段,比如 10.0.0.0/24,子网通过 Router 连接其他的子网。
4 VLAN (Virtual Local Area Network) 虚拟局域网
如图所示,2个switch分别连了2台电脑,A和C都是Vlan10, B和D都是Vlan20,如果想要A和C通信,B和D通信,且不同vlan的电脑不能通信,那么就要用到 Vlan,两个switch之间的link叫做 Trunck。
一个Trunk可以连接 Switch,也可以链接 Switch 和 Router,默认情况,一个trunk既可以处理switch 所有 vlan 的vlan流量,也可以配置为只允许传递某一个vlan的流量。
下面再来认识一下Vlan用到的端口:
-
Trunk/Tagged Port: Trunk 和 普通物理连线并无区别,但是一条trunck两端的接口需要经过特殊的配置。两端接口再Cisco设备上被称为 trunk port,其他vendor的设备上则叫做 tagged port,图中红色圈。Trunk/Tagged Port 用于给数据包添加 Vlan Tag。
-
Access/Untagged Port: 橙色圈是客户机连到switch上的端口,叫做 Access Port,这里应该有4个,圈一个示例一下。Access Port用来发送和接受没有 Vlan Tag 的数据包。也就是说,Access/Untagged Port只能用于一个Vlan。
- A向 switch 1 发送数据包 Ethernet Frame
- Trunk / Tagged Port 发送前会添加Tag信息,其中 VLAN Identifier标识属于哪个Vlan的流量
- Frame经过Trunk到达switch 2,switch 2解析Tag之后,丢掉Tag发送到指定的 Access Port发给客户机C