- 手动配置:管理员需要手动输入路由信息,包括目标网络、子网掩码、下一跳地址等。
- 固定不变:一旦配置完成,静态路由不会自动更改,除非管理员手动修改或删除。
- 简单易用:由于不需要复杂的算法来计算路由,静态路由的配置和管理相对简单。
- 安全性高:因为路由是手动配置的,不存在动态路由协议中的潜在安全风险(如路由欺骗)。
- 资源消耗低:静态路由不依赖于动态路由协议的周期性更新消息,因此对网络带宽和设备资源的消耗较小。
如果路由表中存在匹配的静态路由条目,路由器将根据该条目中的信息将数据包转发到指定的下一跳地址或接口。
-
目标网络 :指数据包的目的地网络(例如
192.168.1.0/24
)。 -
子网掩码 :用于确定目标网络的范围(例如
/24
表示 255.255.255.0)。 -
下一跳地址:指数据包应该被发送到的下一个路由器的 IP 地址。
-
出接口:在某些情况下,静态路由可以直接指定数据包应从哪个物理接口发出,而不是通过下一跳地址。
-
192.168.1.0
是目标网络。 -
255.255.255.0
是子网掩码。 -
10.0.0.1
是下一跳地址。
这条命令的意思是:对于所有目的地为 192.168.1.0/24
的数据包,路由器将通过 10.0.0.1
进行转发。
- 静态路由:手动配置,适合小型、稳定的网络,资源消耗低,安全性高,但维护成本较高,缺乏自适应性。
- 动态路由:自动学习和更新路由信息,适合大型、复杂的网络,能够自动适应网络拓扑的变化,但资源消耗较大,可能存在安全风险。
- 下一跳:默认路由指定了一个下一跳路由器的IP地址,所有不匹配其他路由的数据包都会被发送到这个路由器。
- 网关:默认路由中的下一跳通常被称为"默认网关"(Default Gateway),它是本地网络与外部网络之间的桥梁。
192.168.1.0/24
是本地网络的子网,直接通过接口en0
访问。10.0.0.0/8
是一个更具体的路由,数据包会通过网关192.168.1.1
转发。0.0.0.0/0
是默认路由,表示所有不匹配前两个条目的数据包都将通过网关192.168.1.1
发送。
如果没有默认路由,路由器在遇到无法匹配任何特定路由条目的数据包时,将无法决定如何转发这些数据包,最终会导致这些数据包被丢弃。这可能会导致网络连接问题,特别是当设备需要访问外部网络(如互联网)时
如果网络中的所有目标网络都有明确的静态或动态路由条目,那么内部网络之间的通信不会受到影响。例如,局域网内的设备可以相互通信,因为它们的 IP 地址和子网掩码已经配置了相应的路由。
对于那些需要访问外部网络(如互联网)的数据包,如果没有默认路由,路由器将无法找到通往外部网络的路径,导致这些数据包被丢弃。结果是:
- 无法访问互联网:设备将无法访问外部网站、云服务、电子邮件等。
- 跨网段通信中断:如果网络中有多个网段,并且某些网段之间的通信依赖于默认路由,那么这些通信也会中断。
- 远程访问失败:通过远程桌面、SSH 或其他远程管理工具访问外部设备或服务器的操作将无法成功。
简化路由表
- 减少路由条目数量:在网络中,尤其是小型网络或分支办公室,可能不需要为每个外部网络都配置具体的路由条目。通过配置一条默认路由,路由器可以将所有未知的目的地流量都发送到指定的下一跳地址(通常是上游网关或互联网服务提供商的路由器)。这大大简化了路由表的管理
拥有默认路由确实可以使得网络设备将数据包转发到外部网络,但要实现这一点,还需要满足一些前提条件和理解其工作原理
默认路由(Default Route)是路由表中的一个特殊条目,通常表示为 0.0.0.0/0
(对于IPv4)或 ::/0
(对于IPv6)。它的作用是:当路由器或主机在查找路由表时,如果找不到更具体的路由匹配目标地址,则会使用默认路由来决定下一跳的地址。
默认路由中指定的下一跳地址通常被称为"默认网关"(Default Gateway)。默认网关是一个路由器的IP地址,它负责将数据包从本地网络转发到外部网络。这个网关通常是连接到互联网服务提供商(ISP)的路由器,或者是企业网络中的核心路由器。
当你尝试访问一个外部网络的IP地址(例如,8.8.8.8
,这是Google的公共DNS服务器),你的计算机会在路由表中查找匹配的目标地址。由于 8.8.8.8
不在本地子网 192.168.1.0/24
内,也没有更具体的路由条目匹配该地址,因此它会匹配默认路由 0.0.0.0/0
。根据默认路由,计算机知道应该将数据包发送到默认网关(例如,192.168.1.1
)。
-
有效的默认网关:默认网关必须是一个能够连接到外部网络的路由器。它应该有正确的配置,能够将数据包转发到下一个合适的路由器或直接连接到互联网。
-
可达性:默认网关本身必须是可达的。也就是说,本地网络中的设备必须能够通过物理链路(如以太网、Wi-Fi等)与默认网关通信
-
正确的路由配置:默认网关的路由表中必须有正确的路由条目,以便它可以将数据包正确地转发到外部网络。对于互联网连接,这通常意味着默认网关有一个通往ISP的路由。
-
防火墙和安全策略:某些网络设备(如防火墙)可能会限制或阻止某些类型的流量。确保防火墙规则允许必要的流量通过,默认网关和路由器的安全策略不会阻止外部网络的通信。
-
NAT 配置:如果使用私有IP地址,确保NAT配置正确,以便内部设备能够通过公共IP地址与外部网络通信。
-
私有 IP 地址:根据 RFC 1918,某些 IP 地址范围被保留用于私有网络,这些地址不能直接在互联网上使用。常见的私有 IP 地址范围包括:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
-
公共 IP 地址:这些是全球唯一的 IP 地址,可以在互联网上直接使用。每个连接到互联网的设备都需要一个公共 IP 地址。
-
NAT 设备:通常是一个路由器或防火墙,它位于内部私有网络和外部公共网络之间,负责执行 IP 地址的转换。
静态 NAT(Static NAT)
-
定义:静态 NAT 是一种一对一的地址转换方式,内部网络中的每个私有 IP 地址都与一个固定的公共 IP 地址相对应。
-
应用场景:适用于需要从外部网络直接访问内部网络中的特定设备的情况,例如 Web 服务器、邮件服务器等
- 内部服务器的私有 IP 地址为
192.168.1.10
,通过静态 NAT 转换为公共 IP 地址203.0.113.1
。 - 当外部用户访问
203.0.113.1
时,NAT 设备会将请求转发到192.168.1.10
,并确保响应数据包能够正确返回给外部用户
-
:动态 NAT 是一种多对多的地址转换方式,内部网络中的多个私有 IP 地址可以共享一组公共 IP 地址池。每次内部设备发起请求时,NAT 设备会从池中分配一个可用的公共 IP 地址。
-
应用场景:适用于内部网络中有多个设备需要访问互联网,但不需要长期占用公共 IP 地址的情况。
-
示例:
- 内部网络中有 100 台设备,但只有 10 个公共 IP 地址可用。NAT 设备会根据需要动态分配这 10 个公共 IP 地址给正在访问互联网的设备。
- 当设备不再需要访问互联网时,NAT 设备会释放该公共 IP 地址,供其他设备使用。
- IP地址 :互联网协议地址,用于标识网络中的设备。IPv4地址由32位组成,通常表示为四个十进制数,每个数之间用点分隔(例如,
192.168.1.1
)。 - 子网掩码:也是一个32位的二进制数,用于区分IP地址中的网络部分和主机部分
假设一家公司拥有以下网络结构:
- 主办公室位于A地,使用网段
192.168.1.0/24
。 - 分支机构位于B地,使用网段
192.168.2.0/24
。 - IT部门使用专用网段
192.168.3.0/24
。 - 客户服务部门使用专用网段
192.168.4.0/24
。
在这种情况下,公司内部的不同部门和地点可以通过各自的网段进行通信,同时也可以通过路由器和其他网络设备相互连接。这种划分有助于更好地管理和控制网络资源,确保网络安全和高效运行。
192.168.1.1
属于网络 192.168.1.0
,主机号为 1
-
原始网络 :
192.168.1.0/24
-
子网掩码 :
255.255.255.0
-
可用IP范围 :
192.168.1.1
到192.168.1.254
-
广播地址 :
192.168.1.255
-
子网掩码 :
255.255.255.128
(11111111.11111111.11111111.10000000
) -
子网1 :
- 网络地址:
192.168.1.0/25
- 可用IP范围:
192.168.1.1
到192.168.1.126
- 广播地址:
192.168.1.127
- 网络地址:
-
子网2 :
- 网络地址:
192.168.1.128/25
- 可用IP范围:
192.168.1.129
到192.168.1.254
- 广播地址:
192.168.1.255
- 网络地址:
- 点分十进制表示法 :
- 例如:
255.255.255.0
- 例如:
- CIDR表示法 (无类别域间路由):
- 表示为IP地址后面跟斜杠和前导1的数量。
- 例如:
192.168.1.0/24
子网掩码 | CIDR | 可用主机数量 |
---|---|---|
255.255.255.0 | /24 | 254 |
255.255.255.128 | /25 | 126 |
255.255.255.192 | /26 | 62 |
255.255.255.224 | /27 | 30 |
255.255.255.240 | /28 | 14 |
255.255.255.248 | /29 | 6 |
255.255.255.252 | /30 | 2 |
-
计算所需的子网掩码:
- 每个子网至少需要20台设备,所以需要至少5个主机位(因为 25=3225=32,减去网络地址和广播地址后还有30个可用IP)。
- 因此,子网掩码应为
/27
或更小(更多主机位)。
-
选择子网掩码:
- 使用
/27
子网掩码(255.255.255.224
),每个子网有30个可用IP地址。
- 使用
-
划分子网:
- 子网1 :
- 网络地址:
172.16.0.0/27
- 可用IP范围:
172.16.0.1
到172.16.0.30
- 广播地址:
172.16.0.31
- 网络地址:
- 子网2 :
- 网络地址:
172.16.0.32/27
- 可用IP范围:
172.16.0.33
到172.16.0.62
- 广播地址:
172.16.0.63
- 网络地址:
- 子网3 :
- 网络地址:
172.16.0.64/27
- 可用IP范围:
172.16.0.65
到172.16.0.94
- 广播地址:
172.16.0.95
- 网络地址:
- 继续划分...
- 子网1 :
子网的第一个地址 是该子网的网络地址 ,它用于标识整个子网。这个地址的所有主机位都设置为0
,表示这是一个网络的标识符,而不是一个具体的主机。
- 用途:网络地址用于路由选择和网络识别。当路由器或交换机接收到数据包时,它们会检查目标IP地址的网络部分,以确定数据包应该发送到哪个子网。
- 不可分配给主机:网络地址不能分配给任何主机,因为它用于标识整个子网,而不是特定的设备。
示例:
假设有一个子网192.168.1.0/24
,其中/24
表示子网掩码为255.255.255.0
。在这个子网中:
- 网络地址是
192.168.1.0
,表示整个子网的标识符。
2. 子网的最后一个地址(Broadcast Address)
子网的最后一个地址 是该子网的广播地址 ,它用于向子网中的所有主机发送广播消息。这个地址的所有主机位都设置为1
,表示这是一个广播地址。
- 用途:广播地址用于将数据包发送到子网中的所有主机。当一台设备向广播地址发送数据包时,子网中的所有其他设备都会接收到该数据包。广播通常用于网络发现、ARP请求等场景。
- 不可分配给主机:广播地址也不能分配给任何主机,因为它用于向整个子网发送广播消息,而不是与特定的设备通信。
对于子网192.168.1.0/24
:
- 网络地址:
192.168.1.0
- 广播地址:
192.168.1.255
- 可用的主机地址范围:
192.168.1.1
到192.168.1.254
子网掩码 | 总地址数 | 网络地址 | 广播地址 | 可用主机地址范围 |
---|---|---|---|---|
/24 |
256 | 192.168.1.0 | 192.168.1.255 | 192.168.1.1 - 192.168.1.254 |
/25 |
128 | 192.168.1.0 | 192.168.1.127 | 192.168.1.1 - 192.168.1.126 |
/26 |
64 | 192.168.1.0 | 192.168.1.63 | 192.168.1.1 - 192.168.1.62 |
/27 |
32 | 192.168.1.0 | 192.168.1.31 | 192.168.1.1 - 192.168.1.30 |
/28 |
16 | 192.168.1.0 | 192.168.1.15 | 192.168.1.1 - 192.168.1.14 |
/29 |
8 | 192.168.1.0 | 192.168.1.7 | 192.168.1.1 - 192.168.1.6 |
/30 |
4 | 192.168.1.0 | 192.168.1.3 | 192.168.1.1 - 192.168.1.2 |
- 内部网络中有 100 台设备,但只有一个公共 IP 地址
203.0.113.1
可用。NAT 设备会为每个设备分配一个唯一的端口号,例如:- 设备 A 的私有 IP 地址为
192.168.1.10
,NAT 设备将其转换为203.0.113.1:10001
。 - 设备 B 的私有 IP 地址为
192.168.1.11
,NAT 设备将其转换为203.0.113.1:10002
。
- 设备 A 的私有 IP 地址为
动态 NAT(Dynamic NAT)
-
定义:动态 NAT 是一种多对多的地址转换方式,内部网络中的多个私有 IP 地址可以共享一组公共 IP 地址池。每次内部设备发起请求时,NAT 设备会从池中分配一个可用的公共 IP 地址。
-
应用场景:适用于内部网络中有多个设备需要访问互联网,但不需要长期占用公共 IP 地址的情况。
-
示例:
- 内部网络中有 100 台设备,但只有 10 个公共 IP 地址可用。NAT 设备会根据需要动态分配这 10 个公共 IP 地址给正在访问互联网的设备。
- 当设备不再需要访问互联网时,NAT 设备会释放该公共 IP 地址,供其他设备使用。
- 内部网络中有 100 台设备,但只有一个公共 IP 地址
203.0.113.1
可用。NAT 设备会为每个设备分配一个唯一的端口号,例如:- 设备 A 的私有 IP 地址为
192.168.1.10
,NAT 设备将其转换为203.0.113.1:10001
。 - 设备 B 的私有 IP 地址为
192.168.1.11
,NAT 设备将其转换为203.0.113.1:10002
。
- 设备 A 的私有 IP 地址为
- 当外部服务器响应时,NAT 设备会根据端口号将响应数据包正确转发给相应的内部设备。
6.3 移动网络
-
大多数家庭路由器都启用了 NAT 功能,允许家中的多台设备(如 PC、手机、平板电脑等)通过一个公共 IP 地址访问互联网。
-
示例:
- 家庭网络中有三台设备:PC(
192.168.1.10
)、手机(192.168.1.11
)和平板电脑(192.168.1.12
)。 - 家庭路由器的公共 IP 地址为
203.0.113.1
。 - 当这些设备访问互联网时,NAT 设备会将它们的私有 IP 地址转换为
203.0.113.1
,并通过不同的端口号区分各个设备的流量。
- 家庭网络中有三台设备:PC(
-
NAT 常用于保护内部服务器和工作站,同时允许员工访问互联网。企业通常会为关键服务器配置静态 NAT,以便外部用户可以通过公共 IP 地址访问这些服务器。
-
示例:
- 企业内部有一台 Web 服务器,私有 IP 地址为
10.0.0.10
。 - 企业路由器的公共 IP 地址为
203.0.113.1
。 - 通过静态 NAT,Web 服务器的私有 IP 地址被映射为
203.0.113.1
,外部用户可以通过203.0.113.1
访问该服务器。
- 企业内部有一台 Web 服务器,私有 IP 地址为
-
场景描述:移动运营商通常使用 NAT 来管理大量用户的互联网访问。由于 IPv4 地址资源有限,运营商可能会为多个用户分配相同的公共 IP 地址,并通过 PAT 区分不同用户的流量。
-
示例:
- 移动网络中有 1000 名用户,但运营商只分配了 100 个公共 IP 地址。
- 运营商使用 PAT 技术,为每个用户分配一个唯一的端口号,确保他们可以共享这 100 个公共 IP 地址。
-
动态 NAT:动态 NAT 只转换 IP 地址,而不转换端口号。它允许多个私有 IP 地址共享一组公共 IP 地址池,但每次只能有一个设备使用某个公共 IP 地址。如果多个设备同时需要访问互联网,NAT 设备会从池中分配不同的公共 IP 地址。
-
PAT:PAT 不仅转换 IP 地址,还会转换端口号,因此多个设备可以共享同一个公共 IP 地址。PAT 适用于内部网络中有大量设备需要访问互联网,但只有一个公共 IP 地址可用的情况。
-
ICMP 消息使用 类型(Type) 和 代码(Code) 字段来标识不同的消息类型和子类型。每个 ICMP 消息都有一个唯一的类型值,表示该消息的用途。例如:
- 类型 0 表示"Echo Reply"(Ping 响应)。
- 类型 8 表示"Echo Request"(Ping 请求)。
- 类型 3 表示"Destination Unreachable"(目的地不可达),并且有多个代码值来进一步说明不可达的原因(如主机不可达、网络不可达等)。
-
无需端口号:由于 ICMP 消息的类型和代码字段已经能够唯一地标识消息的类型和用途,因此不需要额外的端口号来区分不同的应用进程。
-
ICMP 消息通常是针对某个特定的 IP 数据包生成的。例如,当路由器无法转发某个 IP 数据包时,它会生成一条 ICMP 错误消息,并将该消息发送回数据包的源 IP 地址。在这种情况下,ICMP 消息的上下文已经包含了足够的信息(如原始 IP 数据包的头部),因此不需要端口号来进一步标识消息的来源或目标。
-
无连接协议:ICMP 是一种无连接的协议,不像 TCP 那样需要建立持久的连接。因此,ICMP 消息不需要像 TCP 或 UDP 那样使用端口号来维护连接状态或区分不同的会话。
网关是指当数据包需要离开本地网络并前往其他网络时,它必须经过的下一跳路由器或设备。简单来说,网关是连接不同网络的桥梁。对于默认路由,网关通常是通往外部网络的"默认网关"。
在你的路由表中,第一行的网关是 192.168.67.159
。这意味着,当你的计算机需要发送数据包到任何不在本地子网 192.168.67.0/24
内的地址时,它会将数据包发送到这个网关。
端口号的主要作用是确保数据包能够被正确地传递到目标应用程序。在网络通信中,IP地址用于标识设备,而端口号用于标识设备上的具体服务或应用程序。因此,IP地址和端口号共同构成了一个完整的"套接字"(Socket),用于唯一标识一个网络连接
当客户端发送请求到服务器时,它不仅需要指定服务器的IP地址,还需要指定目标端口号。例如,浏览器会向http://example.com
发送请求,实际上是向example.com:80
发送请求;而HTTPS请求则会发送到example.com:443
http://example.com:80
:访问默认的HTTP服务。http://example.com:8080
:访问另一个Web应用,可能是一个开发环境或内部服务。
在不使用PAT的情况下,网络拓扑通常较为简单,每台设备都有自己的独立IP地址。以下是一个典型的场景:
- 局域网(LAN):每台设备都有一个唯一的私有IP地址(如192.168.1.x),并且可以直接相互通信。
- 广域网(WAN):每台设备都有一个唯一的公共IP地址,可以直接访问互联网。
如果你有多个服务器在同一网络中,每台服务器都有自己的独立IP地址,那么你可以通过不同的端口号来区分它们提供的服务。例如:
-
服务器A(IP: 192.168.1.100):
- 端口80:HTTP服务
- 端口443:HTTPS服务
- 端口22:SSH服务
-
服务器B(IP: 192.168.1.101):
- 端口80:HTTP服务
- 端口443:HTTPS服务
- 端口22:SSH服务
-
LSA (Link State Advertisement): 当路由器检测到网络变化时,生成 LSA 并发送给相邻路由器。
-
LSDB 构建: 每个路由器接收并存储来自邻居的 LSA,形成自己的 LSDB。
-
LSA 类型 :
- Type 1 (Router LSA): 描述单个路由器及其直接相连的链路。
- Type 2 (Network LSA): 描述广播或多播网络上的路由器集合。
- Type 3 (Summary LSA Type 3): 描述区域内汇总的外部路由。
- Type 4 (Summary LSA Type 4): 描述区域间的汇总路由。
- Type 5 (AS External LSA): 描述自治系统外部的目的地。
- Type 7 (NSSA External LSA): 描述 NSSA 区域内的外部目的地。
区域划分
OSPF 支持将大型网络划分为多个区域,以提高效率和管理性。
- 骨干区域 (Area 0): 所有区域必须与骨干区域相连。
- 标准区域: 正常的 OSPF 区域。
- Stub 区域: 不接受外部路由的区域。
- Totally Stub 区域: 不接受任何外部路由的区域。
- NSSA (Not-So-Stubby Area): 接受默认路由但不接受明细外部路由的区域。
- Totally NSSA 区域: 接受默认路由但不接受明细外部路由的区域。
假设路由器R1有一个接口连接到192.168.1.0/24网络,那么R1会自动将这条路由添加到它的路由表中。
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
-
初始LSA生成:
- R1生成Router-LSA,包含接口ID、数据链路ID和邻居信息。
- R2生成Router-LSA,包含接口ID、数据链路ID和邻居信息。
- R3生成Router-LSA,包含接口ID、数据链路ID和邻居信息。
环回接口的标准IP地址是127.0.0.1
,对应的子网掩码通常是255.0.0.0
。这个地址范围127.0.0.0/8
(即127.0.0.0
到127.255.255.255
)都被保留用于环回通信。最常用的环回地址是127.0.0.1
,也被称为localhost。
LSA的同步:
- 所有路由器会收集来自邻居的所有LSA,并存储在一个数据库中,称为链路状态数据库(LSDB)。
- 每个路由器的LSDB应该是相同的,以确保一致性
-
SPF算法:
- 每个路由器使用Dijkstra算法来计算最短路径树(SPT),基于其LSDB中的信息。
- 计算完成后,路由器会根据SPT更新其路由表。
-
LSA的刷新和老化:
- LSA具有生存时间(TTL),通常为30分钟。
- 如果LSA过期,路由器会重新生成并广播新的LSA。
- 如果网络发生变化(如链路故障或新链路加入),受影响的路由器会立即生成新的LSA,并通知邻居。
-
初始LSA生成:
- R1生成Router-LSA,包含接口ID、数据链路ID和邻居信息。
- R2生成Router-LSA,包含接口ID、数据链路ID和邻居信息。
- R3生成Router-LSA,包含接口ID、数据链路ID和邻居信息。
-
LSA交换:
- R1和R2交换各自的Router-LSA。
- R2和R3交换各自的Router-LSA。
-
DR选举:
- R2被选为DR。
- R2生成Network-LSA,包含连接它的所有路由器的Router IDs。
-
LSA广播:
- R2广播其Network-LSA给R1和R3。
- R1和R3收到Network-LSA后,将其添加到自己的LSDB中。
-
SPF计算:
- R1、R2和R3各自使用SPF算法计算最短路径树,更新路由表。
这条路由表明所有发往 192.168.1.0/24
网络的数据包应该直接通过 eth0
接口发送出去,而不需要经过任何中间路由器。这是因为这些设备都在同一个物理或逻辑链路上,可以相互直接通信。这种情况下,操作系统会利用ARP(Address Resolution Protocol)来解析目标IP地址对应的MAC地址,然后构建以太网帧并将其发送到正确的接口上
- Destination (
192.168.1.0
):指定了此路由的目标网络。 - Genmask (
255.255.255.0
):定义了目标网络的子网掩码,这里表示这是一个C类网络,共有254个可用的IP地址(除去网络地址和广播地址)。 - Flags (
U
):这里的U
标志表示该路由是激活状态(up),并且可以用于数据传输。由于没有G
标志,说明这不是一条需要通过网关转发的路由。 - Metric (
0
):度量值通常用来决定当有多条可达相同目的地的路由时,哪一条是最优路径。较低的数字表示优先级更高。在这个例子中,度量值为0,意味着这是最优路径之一。 - Ref 和 Use :这两个字段在Linux内核中并不常用,通常保持为0。
Ref
表示引用计数,而Use
则记录了这条路由被使用的次数。 - Iface (
eth0
):指明了与此路由相关联的网络接口,这里是eth0
,也就是数据包将通过这个接口发送出去。
SSH 的工作流程可以分为以下几个步骤:
-
建立连接:客户端(通常是用户的计算机)发起与服务器的连接请求,服务器监听指定的端口(默认为 22)并接受连接。
-
密钥交换:客户端和服务器之间进行密钥交换,协商加密算法和会话密钥。这个过程使用非对称加密(如 RSA、ECDSA)来确保双方能够安全地生成共享的对称密钥。
-
身份验证:客户端通过选择的身份验证方式(如密码或公钥)向服务器证明自己的身份。如果身份验证成功,服务器将允许客户端建立会话。
-
加密通信:一旦身份验证完成,客户端和服务器之间的所有通信都将使用对称加密(如 AES、ChaCha20)进行加密,确保数据的机密性和完整性。
-
执行命令或传输文件:客户端可以通过 SSH 会话执行远程命令、打开 shell 终端、传输文件(通过 SFTP 或 SCP),或者隧道化其他协议。
-
会话结束:当用户完成操作后,可以手动关闭会话,或者通过超时机制自动断开连接。
根据你的路由表,192.168.67.159
是你的 默认网关(Default Gateway)。默认网关的作用是:
- 当你的计算机需要发送数据包到任何不在本地子网
192.168.67.0/24
内的目标地址时,它会将数据包发送到这个网关。 - 默认网关负责将这些数据包转发到下一个合适的路由器或直接连接到外部网络(如互联网)。
这个网关可能是以下几种设备之一:
-
家庭路由器 :如果你使用的是家用网络,
192.168.67.159
可能是你的无线路由器或宽带调制解调器(如光猫)。这个设备通常会连接到互联网服务提供商(ISP),并为家庭网络提供互联网访问。 -
企业网络中的核心路由器 :如果你在企业网络中,
192.168.67.159
可能是企业内部的核心路由器,它负责将数据包从本地子网转发到其他子网或外部网络。企业网络中可能有多个路由器,但默认网关通常是连接到互联网的边界路由器。 -
虚拟路由器 :如果你在一个虚拟化环境中(如VMware、Hyper-V等),
192.168.67.159
可能是一个虚拟路由器,它负责管理虚拟网络之间的通信
假设有两台路由器 R1 和 R2,它们通过以太网电缆连接。
-
接口 ID:
- R1 上的接口 ID:
GigabitEthernet0/1
- R2 上的接口 ID:
GigabitEthernet0/1
- R1 上的接口 ID:
-
数据链路 ID:
- 连接 R1 的
GigabitEthernet0/1
和 R2 的GigabitEthernet0/1
的数据链路 ID 可以视为这条具体的物理连接。
- 连接 R1 的
-
interface GigabitEthernet0/1
定义了接口 ID。 -
ip address 192.168.1.1 255.255.255.0
配置了接口的 IP 地址。 -
network 192.168.1.0 0.0.0.255 area 0
将该接口加入到 OSPF 区域 0 中。
网卡 (Network Interface Card, NIC)
- 功能 :
- 允许计算机与网络进行通信。
- 支持不同的网络接口类型(如以太网、Wi-Fi)。
- 应用场景 :
- 计算机、服务器、工作站等设备连接到网络。
- 内置在笔记本电脑中,或作为外置设备使用。
7. 网关 (Gateway)
- 功能 :
- 作为不同网络之间的桥梁,通常集成了路由器的功能。
- 提供防火墙、VPN等功能。
- 应用场景 :
- 家庭和企业的网络边界,保护内部网络免受外部威胁。
- 企业数据中心中的核心网络设备。
8. 防火墙 (Firewall)
- 功能 :
- 监控和控制进出网络的数据流。
- 根据预设的安全规则阻止未经授权的访问。
- 应用场景 :
- 家庭和企业的网络入口,保护内部资源。
- 数据中心中的关键安全设备。
9. 中继器 (Repeater)
- 功能 :
- 扩展网络信号的覆盖范围。
- 重复接收到的电信号,使其能够传播得更远。
- 应用场景 :
- 增强弱信号区域的网络覆盖。
- 在大型建筑物中扩展有线网络。
10. 网络适配器 (Network Adapter)
-
功能 :
- 使计算机能够与其他设备进行通信。
- 支持各种网络协议和技术。
-
应用场景 :
- 同步网卡,提供额外的网络接口。
- 适用于需要多网络接口的服务器和高性能计算机。
-
ARP(Address Resolution Protocol):在 IPv4 网络中,ARP 用于将 IP 地址解析为 MAC 地址。数据链路层需要知道目标设备的 MAC 地址才能正确发送数据帧。因此,数据链路不仅依赖于接口,还需要依赖于地址解析机制。
-
帧格式:数据链路层使用的帧格式因协议而异。每个帧包含源 MAC 地址、目标 MAC 地址、类型字段、数据负载以及校验和等信息。即使两个接口之间有物理连接,如果帧格式不匹配,数据链路层也无法正确处理数据帧。
-
封装与解封装:当数据从上层(如网络层)传递到数据链路层时,数据链路层会将数据封装成帧。同样,当数据帧到达目标节点时,数据链路层会解封装帧并将其传递给上层。这个过程涉及到复杂的协议处理,而不仅仅是简单的接口间通信。
-
数据帧可能会发送到多个接口,而不仅仅是两个接口。因此,数据链路不能简单地被认为是由两个接口确定的。
4. 总结
数据链路不仅仅是由两个接口确定的。虽然数据链路确实涉及到两个接口之间的通信,但它还包括了更复杂的逻辑层面的内容,如协议支持、帧格式、地址解析、流量控制、错误检测和纠正等。数据链路层的任务是确保数据帧能够在相邻节点之间可靠地传输,而不仅仅是提供物理连接。
网络设备可以配置多个网关,但这取决于具体的网络拓扑结构、需求以及操作系统的能力。在某些情况下,配置多个网关可以提高网络的冗余性、负载均衡能力或访问不同类型的网络。然而,并不是所有的操作系统和网络设备都支持多个网关的配置,或者它们可能需要额外的配置才能正确处理多个网关。
-
冗余性:通过配置多个网关,可以在一个网关失效时自动切换到另一个网关,从而提高网络的可靠性和可用性。
-
负载均衡:多个网关可以分担流量,避免单个网关成为瓶颈,尤其是在高流量的环境中。
-
访问不同的网络:如果你的网络中有多个子网或多个互联网连接(例如,通过不同的ISP),你可以为每个子网或ISP配置不同的网关,以便更灵活地控制流量路由。
-
多路径路由:在某些高级网络配置中,使用多个网关可以实现多路径路由(Multipath Routing),允许数据包通过不同的路径到达同一目的地,以提高性能或可靠性。
默认网关 + 静态路由
最常见的方式是配置一个 默认网关 ,并为特定的网络或主机配置 静态路由 。这种方式下,所有不匹配静态路由的数据包都会通过默认网关发送,而特定的流量则通过静态路由指定的网关发送。
- 默认网关:
192.168.67.159
- 静态路由:
10.0.0.0/24
的流量通过192.168.67.200
网关发送
在这种配置下,当你访问 10.0.0.0/24
子网内的设备时,数据包会通过 192.168.67.200
网关发送;而对于其他所有流量,数据包仍然通过默认网关 192.168.67.159
发送。
链路聚合(Link Aggregation)
在某些情况下,你可以使用 链路聚合(如 LACP,链路聚合控制协议)将多个物理接口组合成一个逻辑接口,并通过多个网关进行负载均衡。这通常用于服务器或交换机之间的高速连接。
-
- Windows 10/11:默认情况下,Windows 只支持一个默认网关。你可以通过添加静态路由来实现多网关配置,但不能直接配置多个默认网关。
- Windows Server:支持更复杂的路由配置,包括策略路由和多默认网关。
-
Linux:
- Linux 支持 策略路由 和 多默认网关 。你可以使用
ip rule
和ip route
命令来配置多个路由表,并根据不同的策略选择不同的网关。 - 例如,你可以为不同的网络接口配置不同的默认网关,并通过策略路由将流量分配到不同的网关。
- Linux 支持 策略路由 和 多默认网关 。你可以使用
-
macOS:
- macOS 也支持 静态路由 和 策略路由 ,但默认情况下只支持一个默认网关。你可以通过命令行工具(如
route
和pfctl
)来配置多个网关。
- macOS 也支持 静态路由 和 策略路由 ,但默认情况下只支持一个默认网关。你可以通过命令行工具(如
-
路由器和防火墙:
- 大多数企业级路由器和防火墙(如 Cisco、Juniper、Fortinet 等)都支持 动态路由协议 和 多默认网关,并且可以通过配置实现冗余和负载均衡。
-
路由冲突:如果你配置了多个网关,确保没有路由冲突。例如,不要为同一个目标网络配置多个不同的网关,除非你明确知道如何处理这种情况。
-
负载均衡的复杂性:负载均衡可能会导致一些复杂的问题,例如某些应用程序依赖于固定的IP地址或端口,可能会因为流量被分配到不同的网关而导致问题。
-
冗余的延迟:虽然多个网关可以提供冗余,但在网关切换时可能会有一定的延迟。确保你的应用程序能够容忍这种短暂的中断。
-
安全性:如果你有多个互联网连接,确保每个连接都有适当的安全措施(如防火墙、入侵检测系统等),以防止潜在的安全风险。
5. 总结
- 可以配置多个网关,但具体实现方式取决于操作系统和网络设备的支持情况。
- 最常见的方法 是配置一个默认网关,并为特定的网络或主机配置静态路由。
- 高级配置 可以使用策略路由、动态路由协议或链路聚合来实现多网关的负载均衡和冗余。
- 注意事项 包括避免路由冲突、处理负载均衡的复杂性以及确保安全性和冗余的延迟。
-
物理层:负责定义电气、机械、过程和功能特性,确保数据能够在物理介质(如电缆或光纤)上正确传输。物理层规定了信号的电压电平、传输速率、电缆类型等。
-
数据链路层:负责将数据封装成帧(Frame),并确保这些帧能够可靠地从一个节点传输到另一个节点。数据链路层还负责错误检测和纠正、流量控制以及MAC地址的管理
。MAC地址是一个48位的二进制数,通常表示为12个十六进制字符(例如:00:1A:2B:3C:4D:5E
)。MAC地址用于标识网络中的设备,确保数据帧能够正确地发送到目标设备。
CSMA/CD的工作原理如下:
- 载波侦听(Carrier Sense):在发送数据之前,设备会先监听网络介质,检查是否有其他设备正在传输数据。
- 多路访问(Multiple Access):如果介质空闲,设备可以开始发送数据。
- 冲突检测(Collision Detection):如果两个或多个设备同时尝试发送数据,会发生冲突。此时,所有涉事设备会停止发送,并等待随机时间后重新尝试。
在半双工模式下,设备在同一时间内只能进行单向通信,即要么发送数据,要么接收数据。早期的以太网(如10BASE-T)通常使用半双工模式,并依赖CSMA/CD来管理共享介质上的冲突。
4.2 全双工模式
在全双工模式下,设备可以在同一时间内同时发送和接收数据,而不会发生冲突。现代以太网(如100BASE-TX、1000BASE-T及以上)通常支持全双工模式,提供了更高的吞吐量和更好的性能。
-
Hello 报文交换:
- 所有路由器在启动时发送 Hello 报文,开始邻居发现过程。
- Hello 报文中包含优先级(Priority)、Router ID 等信息。
-
确定候选 DR:
- 如果路由器的优先级不为 0,则被视为候选 DR。
- 默认情况下,所有路由器的优先级为 1。
-
选举规则:
- 优先级最高 的路由器当选为 DR。
- 如果优先级相同,则 Router ID 最大 的路由器当选为 DR。
- 优先级设置为 0 的路由器不会参与 DR 选举。
-
Backup DR 选举:
- 在选出 DR 后,剩余的候选路由器中优先级最高的路由器当选为 Backup DR。
- Backup DR 在 DR 故障时接管 DR 的职责。
- R1: Priority = 1, Router ID = 192.168.1.1
- R2: Priority = 1, Router ID = 192.168.1.2
- R3: Priority = 1, Router ID = 192.168.1.3
- R4: Priority = 2, Router ID = 192.168.1.4
- 虚拟接口:环回地址是通过虚拟的环回接口实现的,不依赖于任何物理网络硬件。
- 不可路由 :环回地址是不可路由的,意味着它们不能通过互联网或其他网络传输。环回地址只能在本地计算机上使用。
- 高速通信:由于环回接口不涉及物理网络设备,数据包的传输速度非常快,几乎没有任何延迟。
-
物理接口:每个物理接口是网络设备(如交换机、路由器或服务器)上的一个独立端口,通常通过电缆或其他介质连接到另一个设备。
-
逻辑接口:链路聚合将多个物理接口组合成一个虚拟的逻辑接口,这个逻辑接口可以被视为一个单一的高带宽链路。逻辑接口的行为与单个物理接口类似,但它能够利用多个物理链路的带宽,并在某个物理链路故障时自动切换到其他可用链路。
-
标准协议:链路聚合通常遵循标准化的协议,如 IEEE 802.3ad(也称为 LACP,Link Aggregation Control Protocol),以确保不同厂商的设备之间能够兼容和互操作。