[Cloud Networking] Layer3 (Continue)

1. DHCP Protocol

DHCP: Dynamic Host Configuration Protocol, 动态主机配置协议。是一个局域网络协议,用途:

  1. 内部网络或者网络服务供应商自动分配IP给用户
  2. 提供内部网络管理员作为对所有电脑中央管理的手段

当一个机器启动时,没有IP,会发送 DHCP Discover message. DHCP Server 收到 Discover message, 为机器分配一个永久的IP。

在这里插入图片描述

1.1 DHCP 三种分配方式

  1. 自动分配:

管理员在server上建立地址池进行分配

  1. 手工分配

由 管理员为少数特定客户端(如WWW服务器等) 静态绑定固定的IP地址,通过DHCP将配置的固定IP地址发给客户端

  1. 动态分配

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相连。

区域之间的路由器 ABR(汇聚IP),AS边界路由器 ASBR
在这里插入图片描述

2.2.2 Route ID / DR / BDR

Router ID 路由器ID,32位无符号整数,默认用loopback接口中最大的IP作为 Router ID。

Name Info
DR Designated Router, 选举Router ID最大的路由为DR
BDR Backup Designated Router,选举Router ID第二大的路由为 BDR
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/0

R3> 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/0

R2> 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)链路状态通告,用于描述链路状态信息,路由器接口的状态信息,例如接口开销、连接的对象。

OSPF在传递链路状态信息之前,需要建立 OSPF邻居关系 ,通过hello包文件里,OSPF邻居表显示了OSPF路由器之间的邻居状态,使用 display ospf peer 查看:

在这里插入图片描述

R1 > display ospf peer
	OSPF Process 1 with Router ID 10.0.1.1
			Neighbors
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: Normal
  State: Rull Mode:Nbr is Master Priority:1
  DR: 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)

相关推荐

  1. Python3 笔记:continue语句和break语句的区别

    2024-06-12 11:04:04       32 阅读
  2. continue语句

    2024-06-12 11:04:04       36 阅读
  3. x.permute(0, 3, 1, 2).contiguous() 和 x.permute(0, 3, 1, 2)

    2024-06-12 11:04:04       30 阅读
  4. c语言之continue

    2024-06-12 11:04:04       38 阅读
  5. break、continue、return

    2024-06-12 11:04:04       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-12 11:04:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-12 11:04:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-12 11:04:04       87 阅读
  4. Python语言-面向对象

    2024-06-12 11:04:04       96 阅读

热门阅读

  1. 面试计算机网络八股文十问十答第八期

    2024-06-12 11:04:04       36 阅读
  2. C语言从头学19——类型的显式转换

    2024-06-12 11:04:04       28 阅读
  3. mysql的锁和事务、索引的关系

    2024-06-12 11:04:04       29 阅读
  4. B/S项目如何上线?前端如何打包

    2024-06-12 11:04:04       26 阅读
  5. C++算法——埃氏筛

    2024-06-12 11:04:04       28 阅读
  6. 安全通告:NGINX HTTP/3 QUIC 漏洞

    2024-06-12 11:04:04       31 阅读
  7. 切换到root用户的方法和区别

    2024-06-12 11:04:04       23 阅读
  8. Git最全管理详解

    2024-06-12 11:04:04       34 阅读
  9. STM32 UART 错误代码 HAL_UART_ERROR_PE

    2024-06-12 11:04:04       29 阅读
  10. 实现EM算法的主循环

    2024-06-12 11:04:04       29 阅读