家庭和企业网络相关
家庭和企业网络相关
记录一些常见的名词和技术。
1 DMZ
1.1 简介
DMZ(Demilitarized Zone,非军事区)是网络安全中的一个重要概念,通常用于在企业网络架构中创建一个独立的安全区域,以便对外部网络(如互联网)提供服务,同时保护内部网络免受潜在的外部攻击。
常见放置在DMZ中的服务包括:
- Web服务器:用于托管公共网站。
- 邮件服务器:用于处理外部邮件通信。
- DNS服务器:提供域名解析服务。
- FTP服务器:提供文件传输服务。
这些服务虽然对外开放,但通常不会包含敏感数据,即使被攻击,攻击者也难以通过这些服务器访问内部网络。
1.2 网络架构
DMZ的网络架构通常包括以下三个区域:
- 外部网络(互联网):不受信任的网络,通常指互联网。
- DMZ区域:放置公共服务的区域,如Web服务器、FTP服务器、邮件服务器等。这个区域既可以与外部网络通信,也可以有限制地与内部网络通信。
- 内部网络:受信任的区域,通常是企业或组织的局域网,包含敏感数据和资源。
1.3 防火墙配置
在DMZ架构中,防火墙通常起到关键作用。常见的配置是使用双防火墙或单防火墙来实现DMZ隔离:
- 单防火墙配置:在单防火墙配置中,防火墙被配置为有三个网段:一个连接外部网络,一个连接内部网络,一个连接DMZ区域。防火墙使用不同的规则来控制这三个区域之间的流量。
假设有一个单防火墙架构,DMZ区域网络段为192.168.2.0/24
,Web服务器地址为192.168.2.10
,内部网络为192.168.3.0/24
,内网数据库地址为192.168.3.20
,配置如下:
外部网络到DMZ规则: 允许外部访问DMZ中Web服务器的HTTP和HTTPS服务:
1 | # 允许外部网络访问DMZ中Web服务器的HTTP服务 |
DMZ到内部网络规则: 限制DMZ中Web服务器访问内部网络中的数据库服务器,仅允许访问数据库端口:
1 | # 允许DMZ Web服务器访问内网数据库服务器 |
内部网络到DMZ规则: 允许内部网络的用户访问DMZ中的服务器进行管理:
1 | # 允许内网用户通过SSH访问DMZ中的服务器 |
- 双防火墙配置:一个防火墙位于外部网络和DMZ之间,另一个防火墙位于DMZ和内部网络之间。这种配置提供了更高的安全性,增加了攻击者从外部网络进入内部网络的难度。
1.4 优点和局限性
DMZ的核心思想是限制外部网络只能访问DMZ中的服务器,而不能直接访问内部网络。同时,内部网络可以访问DMZ,但从DMZ到内部网络的访问通常是严格限制的。防火墙会基于访问控制列表(ACLs)或其他策略来过滤进出不同区域的流量。
DMZ的安全性和优势
- 隔离外部攻击:即使DMZ中的服务器被攻破,攻击者也难以直接进入内部网络,增加了安全保护层。
- 流量控制:防火墙能够根据规则控制流量,防止未经授权的访问。
- 集中管理:通过DMZ区域可以更好地管理和监控对外开放的服务,减少风险。
DMZ的局限性
- 配置复杂性:设置和管理DMZ需要对网络和防火墙有深入的理解。
- 资源消耗:双防火墙配置需要额外的硬件和管理成本。
- 安全依赖防火墙:DMZ的安全性高度依赖防火墙的配置和维护。如果防火墙配置错误或出现漏洞,整个网络可能面临风险。
1.5 配置示例
使用cisco packet tracer
模拟DMZ。
① 使用路由器做防火墙
配置如下的网络拓扑:
这里的路由器兼具了路由器和防火墙的功能。
路由器配置如下:
1 | Router> enable |
配置 ACL 以控制不同区域的访问权限,例如允许外网访问 DMZ 的 Web 服务器,但不允许直接访问内网。配置规则如下:
- 允许外部网络访问 DMZ 中 Web 服务器的 HTTP 服务(
192.168.2.2:80
)。 - 阻止外部网络访问内网
192.168.1.0/24
,以保护内部网络的安全。 - 除上述规则外,其他流量都被允许通过。
1 | Router(config)# access-list 100 permit tcp any host 192.168.2.2 eq 80 |
- access-list 100: 创建或修改一个编号为
100
的标准扩展 ACL。扩展 ACL 可以基于源地址、目标地址、协议类型、端口号等进行精细的流量控制。编号100-199
用于扩展 ACL。 - permit tcp: 允许 TCP 流量通过。
- any: 指定源地址为任何 IP 地址(即,所有来源)。
- host 192.168.2.2: 指定目标 IP 地址为
192.168.2.2
(通常是 DMZ 区域的 Web 服务器)。 - eq 80: 指定目标端口为
80
,即 HTTP(Web)流量。这意味着只有访问该服务器的 HTTP 请求会被允许。
1 | Router(config)# access-list 100 deny ip any 192.168.1.0 0.0.0.255 |
- deny ip: 拒绝所有 IP 协议流量。
- any: 指定源地址为任何 IP 地址。
- 192.168.1.0 0.0.0.255: 指定目标网络地址为
192.168.1.0/24
,即内网网络。0.0.0.255
是反掩码(Wildcard Mask),表示匹配192.168.1.x
范围的所有地址。
1 | Router(config)# access-list 100 permit ip any any |
- permit ip: 允许所有 IP 协议流量。
- any any: 允许从任何源地址到任何目标地址的流量通过。
最后应用ACL到连接到外网的接口:
- 进入路由器的
gig0/2
接口配置模式。
1 | Router(config)# interface gig0/2 |
- 将编号为
100
的 ACL 应用于进入该接口的流量(in
表示进入该接口的流量)。
1 | Router(config-if)# ip access-group 100 in |
整体配置如下:
1 | Router(config)# access-list 100 permit tcp any host 192.168.2.2 eq 80 |
当用外网计算机ping内网计算机时:
1 | C:\>ping 192.168.1.4 |
使用内网计算机pingDMZ区服务器:
1 | C:\>ping 192.168.2.2 |
② 使用硬件防火墙
略
2 防火墙
2.1 简介
防火墙是网络安全中的关键设备或软件,用于监控和控制进出网络的数据流,以阻止未经授权的访问和潜在的安全威胁。它通过一组预定义的安全规则来过滤流量,确保只有合法的流量能够通过,保护网络和系统免受攻击。
2.2 形态
2.1.1 基于网络的防火墙(Network Firewall)
这是部署在网络边界的硬件或软件,用于保护整个网络。它通常用于企业、数据中心和云环境中,能够过滤进出网络的所有流量。
- 硬件防火墙:如Cisco ASA、Fortinet、Palo Alto等,主要是专用设备,性能强大,适合高流量环境。
- 软件防火墙:如Linux服务器上的
iptables
、nftables
、firewalld
,用于保护单台服务器或小型网络。
2.1.2 基于主机的防火墙(Host-Based Firewall)
这是安装在操作系统或设备上的软件防火墙,保护单个设备免受网络威胁。常见示例包括Windows防火墙、MacOS防火墙、Linux上的ufw
和iptables
等。
2.1.3 下一代防火墙(NGFW, Next-Generation Firewall)
NGFW不仅具有传统防火墙的功能,还集成了入侵检测/防御系统(IDS/IPS)、应用层过滤、SSL解密、内容过滤等高级安全功能。
NGFW能基于应用、用户身份和上下文进行流量控制,提供更细粒度的安全策略。
2.1.4 代理防火墙(Proxy Firewall)
代理防火墙通过充当客户端和服务器之间的中间代理,检查并过滤所有流量。它能隐藏内部网络的真实IP地址,增加一层安全防护。
2.3 iptables
iptables
是一款广泛使用的防火墙工具,支持对流量进行包过滤、NAT和路由等操作。
2.3.1 基本概念
链(Chains): iptables
使用三种主要的链:
- INPUT: 控制进入防火墙本机的流量。
- FORWARD: 控制转发流量(即流经防火墙的流量)。
- OUTPUT: 控制从防火墙本机发出的流量。
表(Tables): 主要有三种表:
- filter: 默认表,用于包过滤。
- nat: 用于NAT(网络地址转换)。
- mangle: 用于修改包的标志位等高级操作。
2.3.2 配置示例
1 | # 清空所有现有规则 |
用于清空所有规则(-F
)和自定义链(-X
),确保配置从头开始。
1 | # 设置默认策略:丢弃所有流量(最严模式) |
这里设置默认策略:
INPUT
: 默认丢弃所有进入流量。FORWARD
: 默认丢弃所有转发流量。OUTPUT
: 默认允许所有本机发出的流量。
1 | # 允许本机发起的请求的返回流量 |
这条规则允许已经建立或相关的会话流量进入,比如响应的HTTP数据包。
1 | # 允许本地回环接口(用于本机通信) |
允许回环接口的流量(即localhost
或127.0.0.1
),通常本机通信依赖此接口。
1 | # 允许指定IP访问HTTP(80端口)和HTTPS(443端口) |
允许来自特定IP(203.0.113.10
)的流量访问HTTP和HTTPS端口(80和443)。
1 | # 允许内网访问SSH(22端口) |
允许来自内网(192.168.1.0/24
)的SSH访问(22端口)。
1 | # 拒绝一切其他流量 |
在所有允许规则之后,默认拒绝其他所有流量。
保存规则:
1 | iptables-save > /etc/iptables/rules.v4 # ubuntu |
2.4 配置示例
详见:[[Cisco Packet Tracer学习笔记#3.3.3 场景模拟]]
3 光猫
3.1 简介
光猫(光纤调制解调器),全称为光纤网络单元(Optical Network Unit,ONU
)或光纤终端(Optical Network Terminal,ONT
),是一种用于接入光纤宽带网络的设备。光猫的主要功能是将光纤信号转换为我们常见的以太网信号(电信号),提供互联网接入。光猫通常被用于家庭、企业以及其他场所的宽带网络连接。
下面是光猫的接口,其中网口3-4
可以直连电脑或笔记本,也可以连接下游路由器。
应用场景
无需额外路由器: 在光猫负责拨号的情况下,用户无需配置其他路由设备,光猫可以直接为家庭或企业网络提供上网功能。
简单配置与维护: 对于不熟悉网络设置的用户来说,光猫拨号是一种更为简便的方式,所有网络配置集中在一个设备中,减少了设置和维护的复杂性。
3.2 主要组成部分
- 光模块: 光猫中包含一个光模块(SFP模块),它负责将运营商的光纤信号接入并进行接收和发送。这是光猫的核心部件,决定了信号传输的稳定性。
- 电信号转换: 光猫通过内部的转换电路,将接收到的光信号转换为电信号,然后通过以太网接口输出给路由器或计算机,实现宽带接入。
- PON(无源光网络)接口: 光猫通常支持PON技术,如GPON(千兆无源光网络)或EPON(以太网无源光网络)。这些接口通过无源光纤网络与运营商的汇聚设备相连,实现多用户共享光纤资源。
- Wi-Fi功能: 许多光猫内置了Wi-Fi模块,允许直接提供无线网络服务,供家庭用户连接手机、平板等设备使用。
- LAN接口: 光猫通常配有多个LAN(局域网)接口,可以连接有线设备如电脑、路由器、交换机等,提供更稳定的网络接入。
- 语音端口(RJ11): 对于光纤入户服务(FTTH),光猫还支持语音服务,通过连接电话设备,实现电话功能。
3.3 拨号
“拨号”这个词来源于早期互联网连接的方式,特别是在电话线上网(拨号上网,Dial-up)时代。尽管现代的宽带连接已经远离了那种通过电话线拨号的方式,但“拨号”一词依然被沿用,尤其是在需要通过特定协议进行认证连接的情况下。
在早期的互联网接入中,用户通过电话线进行上网,需要使用调制解调器(Modem)拨打一个特定的号码连接到ISP(互联网服务提供商)的服务器。这个过程就像打电话一样,因此被称为“拨号上网”。用户听到调制解调器发出的拨号音,随后是连接音,然后才能上网。
随着技术的发展,宽带取代了电话线拨号上网,但宽带连接中仍保留了“拨号”这个术语。在宽带接入中,拨号的实际含义已经不再是拨打电话,而是指通过一种协议进行网络连接的认证过程。常见的协议是PPPoE
(Point-to-Point Protocol over Ethernet),其中的“拨号”步骤包括以下过程:
- 认证: 用户输入宽带账号和密码,光猫或路由器使用这些信息进行认证。
- 连接建立: 设备向运营商的服务器发送认证请求,一旦通过认证,服务器会分配一个IP地址给用户设备。
- 获取网络访问权限: 认证成功后,用户设备就能连接到互联网。
3.4 工作模式
3.4.1 桥接模式(Bridge Mode)
在桥接模式下,光猫的主要功能仅限于光电信号转换,它将从运营商接收到的光纤信号转换成以太网信号,然后直接将该信号传递给用户的路由器或设备。光猫不会处理数据包的路由、分配IP地址,也不会进行拨号连接。具体来说:
- 光电转换: 光猫将光纤传输的信号转换为以太网信号,这是它在桥接模式下的核心功能。
- 透明传输: 在桥接模式下,光猫将运营商的宽带信号直接传递给路由器,信号传输是透明的,光猫不进行数据包处理。
- 拨号任务移交: 通过桥接模式,用户需要在下游的路由器上进行PPPoE拨号,由路由器来进行账号和密码的认证,并获取IP地址、管理NAT等。
应用场景
桥接模式适用于以下情况:
- 使用自定义路由器: 用户有自己的高性能路由器,想要利用路由器的高级功能(如更好的Wi-Fi覆盖、VLAN设置、端口映射等),而不希望光猫进行路由操作。
- 提升网络控制: 高级用户或网络管理员希望完全掌握网络配置,包括路由规则、网络管理、流量控制等,而不依赖于运营商提供的光猫。
- 避免双重NAT: 如果光猫和路由器都启用了NAT,会产生双重NAT问题,影响某些应用的正常运行(如在线游戏、视频通话)。桥接模式可以避免这种情况。
优缺点
优点:
- 网络配置更灵活: 用户可以完全控制路由器的配置,适合有特殊需求的高级用户。
- 避免双重NAT: 只有路由器进行NAT转换,减少网络延迟和潜在的连接问题。
- 更好性能: 使用高性能路由器管理网络,通常提供更稳定的Wi-Fi和更丰富的功能。
缺点:
- 配置较复杂: 桥接模式需要额外配置路由器,对不熟悉网络配置的用户来说可能有一定难度。
- 光猫的部分功能无法使用: 在桥接模式下,光猫的路由功能、Wi-Fi等可能会被禁用,所有网络管理任务都移交给路由器。
3.4.2 路由模式(Routing Mode)
光猫的路由模式是大多数家庭宽带用户常用的一种配置模式。在这种模式下,光猫不仅负责光电信号转换,还充当路由器的角色,进行PPPoE拨号、分配IP地址、进行NAT(网络地址转换)、管理局域网设备等功能。光猫在路由模式下能为家庭或小型企业网络提供全面的网络管理服务。
- NAT(网络地址转换): 一旦拨号成功,光猫会将运营商分配的公网IP地址通过NAT技术转换为局域网内的私有IP地址(如
192.168.x.x
)。这使得多个设备可以共享一个公网IP地址上网。 - DHCP服务: 光猫在路由模式下通常会开启DHCP服务,自动为接入的设备分配IP地址,简化局域网配置。
3.5 WAN口和LAN口
WAN口(Wide Area Network Port):
- 功能:光猫的WAN口用于连接宽带运营商的光纤网络,也就是连接到ISP的光纤线路。这通常是光纤接口(通常为SC/APC、SC/UPC接口),用于接收来自外部的光信号。
- 作用:将光信号转换为电信号,然后将数据传递给光猫的内部处理单元。
LAN口(Local Area Network Port):
- 功能:光猫的LAN口用于连接家庭或办公局域网内的设备,如路由器、计算机或电视盒子等。
- 作用:光猫将来自外部网络的数据通过LAN口传递给局域网内的设备,通常是通过RJ45以太网接口。
路由器的WAN口和LAN口
WAN口:
- 功能:路由器的WAN口用于连接外部网络(通常是光猫的LAN口或直接连接到宽带调制解调器)。
- 作用:将路由器内部的网络(LAN)与外部互联网连接。WAN口接收来自光猫或调制解调器的数据,并通过路由器的NAT功能将数据传递到内网。
LAN口:
- 功能:路由器的LAN口用于连接局域网内的设备,如计算机、手机、平板电脑等。
- 作用:提供内网设备与路由器的连接,并通过路由器进行局域网内的数据交换,同时访问互联网。
3.6 家庭网络拓扑
一个简单的家庭网络拓扑图如下:
如果路由器接口不够多,也可以在路由器下级加一层交换机。
4 NAT
4.1 简介
网络地址转换(Network Address Translation
,简称 NAT)是一种用于网络设备(如路由器、防火墙)上的技术,主要用于将私有网络的内部 IP 地址转换为外部网络的公共 IP 地址,从而使内部设备能够与外部网络(如互联网)通信。
由于 IPv4 地址的有限性,NAT 技术被广泛应用来缓解公共 IP 地址短缺的问题。NAT 允许多个内部设备共享一个或少量的公共 IP 地址,从而大大减少了对公共 IP 地址的需求。
工作原理:NAT 的核心功能是在数据包从内部网络发送到外部网络时,改变数据包的源 IP 地址;而当返回的数据包到达时,NAT 会将目的 IP 地址还原为原始的内部 IP 地址。
4.2 应用类型
NAT 包含几种常见的类型,分别适用于不同的场景:
4.2.1 静态 NAT(Static NAT)
功能: 将一个私有 IP 地址映射为一个固定的公共 IP 地址。这种映射是一对一的。
应用场景: 通常用于需要从外部访问内部服务器的场景,例如公司内部的 Web 服务器、邮件服务器。
示例: 内部 IP 192.168.1.10
映射为公共 IP 203.0.113.10
。
4.2.2 动态NAT(Dynamic NAT)
功能: 动态地将一组私有 IP 地址映射到一组可用的公共 IP 地址。这个映射是动态的,一旦某个内部设备发起连接,路由器会从公共 IP 池中分配一个公共 IP 地址给它。
应用场景: 通常用于拥有多个公共 IP 地址的组织,其中内部设备需要动态访问外部网络。
示例: 内部 IP 192.168.1.10
可能动态映射为 203.0.113.10
,而下次可能映射为 203.0.113.11
。
4.2.3 端口地址转换(Port Address Translation,PAT)
功能: 这是最常见的 NAT 类型,将多个内部 IP 地址映射为一个公共 IP 地址。PAT 通过端口号来区分不同的内部设备,使得多个设备可以同时使用同一个公共 IP 地址访问外部网络。
应用场景: 通常用于家庭网络或小型公司,其中只有一个公共 IP 地址(如从 ISP 获取的 IP),但多个设备需要上网。
示例: 内部 IP 192.168.1.10
、192.168.1.11
和 192.168.1.12
都可以通过 203.0.113.1
这个公共 IP 地址访问互联网,路由器通过端口号来识别不同的连接。
4.2.4 端口转发(Port Forwarding)
定义:端口转发是一种NAT的应用,允许外部网络通过特定端口访问内网中的设备或服务。
工作原理:
- 在NAT设备上配置端口转发规则,将指定的外部端口号映射到内网中某个设备的IP地址和端口号。外部请求到达指定的公共IP地址和端口后,NAT设备会将其转发到相应的内网设备上。
应用:
- 远程访问内网服务:如访问内网的Web服务器、远程桌面、FTP服务器等。
- 游戏和P2P应用:外部网络需要访问内网设备的特定端口时,需要端口转发。
配置详见:[[Cisco Packet Tracer学习笔记#3.3.3 场景模拟]]
4.3 逻辑类型
根据私网IP地址和端口到NAT出口的公网IP地址和端口的映射方式,把NAT分为四种类型。
4.3.1 全锥形NAT(Full Cone NAT)
① 简介
全锥形NAT也称为完全锥形NAT或一对一NAT。在这种NAT类型中,所有从内网设备(私有IP地址)发出的请求(无论是TCP还是UDP)都会映射到一个公共IP地址和特定的外部端口,并且这个映射是全局的,任何外部设备都可以通过该公共IP地址和端口与内网设备进行通信。
② 工作原理
- 初始连接:内网设备通过NAT设备(如路由器)向外部网络发起连接请求。此时,NAT设备会将内网设备的私有IP地址和端口映射到公共IP地址和一个随机选择的外部端口。
- 映射规则:当内网设备的某个端口被映射到NAT的外部端口后,所有来自外部网络的请求,只要指向该公共IP地址和外部端口,都会被直接转发到内网设备的相应端口。这个映射对所有外部设备开放,不限制外部IP地址。
- 响应通信:外部设备无需先发送数据包,也无需在NAT设备中配置端口映射规则,只要知道该内网设备的公共IP地址和端口,就可以直接与内网设备通信。
③ 特点
映射全局开放:一旦某个内网设备的端口被映射到外部端口,所有外部设备都可以通过这个端口访问内网设备。这使得全锥形NAT的行为非常接近直接的IP路由。
不依赖外部IP:全锥形NAT不限制哪个外部IP地址可以访问内网设备,只要外部设备使用正确的公共IP和端口就可以直接访问内网设备。
易于穿透:全锥形NAT是所有NAT类型中最容易穿透的,因为其映射规则是开放的,对UDP打洞和TCP打洞等内网穿透技术非常友好。
安全性较低:由于全锥形NAT对所有外部设备开放端口,这意味着内网设备暴露在更大的攻击面下,潜在的安全风险较高。
④ 配置
1 | Router(config)#ip nat inside source static tcp 192.168.0.254 80 223.0.0.1 80 |
这种配置确保了任何外部设备只要访问 223.0.0.1:80
,都会直接与内网设备 192.168.0.254:80
通信,达到全锥形NAT的效果。
或者:
1 | Router(config)# ip nat inside source static 192.168.1.10 203.0.113.10 |
这种配置确保了任何外部设备只要访问 203.0.113.10
,都会直接与内网设备 192.168.1.10
通信,达到全锥形NAT的效果。
4.3.2 受限锥形NAT(Restricted Cone NAT)
受限锥形NAT允许只有先前从内网主机发送数据的外部主机可以通过NAT的公共IP地址和端口向内网主机发送数据。换句话说,受限锥形NAT限制了只有与内网设备通信过的外部IP地址才能向内网设备发送数据包,而其他外部IP地址即使知道该公共IP地址和端口,也无法直接与内网设备通信。
特点:
- 与全锥形NAT不同,受限锥形NAT要求外部设备的IP地址必须与内网设备通信过,才允许通过映射的公共IP和端口进行通信。其他外部IP地址将无法访问这个端口。
- 尽管有外部IP地址的限制,受限锥形NAT依然相对容易穿透。对于UDP打洞等内网穿透技术,受限锥形NAT通常是可以成功的。
配置:可以通过动态NAT来实现:
1 | Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255 |
4.3.3 端口受限锥形NAT(Port Restricted Cone NAT)
端口受限锥形NAT确保只有内网设备先前通信过的外部设备的特定端口才能通过NAT映射访问内网设备。NAT设备记录内网设备的私有IP、端口、目标外部设备的IP和端口,并将其映射到公共IP和外部端口。只有与这个目标外部设备的特定端口相匹配的通信请求才能通过NAT设备访问内网设备。
特点:
- 更高的安全性
- 通信穿透难度更大
4.3.4 对称NAT(Symmetric NAT)
映射规则:
- 对称NAT会为每个内网设备和外网设备的通信对创建独立的NAT映射。即,内网设备的每个目的地IP地址和端口号都会生成不同的公共IP地址和端口号映射。
- 这意味着,如果内网设备的IP地址和端口号与多个外网设备进行通信,每个通信对将有不同的NAT映射。
映射特性:
- 内网设备发起连接:当内网设备向外网设备发起连接时,NAT设备将为这对内网和外网的IP地址及端口分配一个唯一的公共IP地址和端口号。
- 回应要求:只有从与内网设备之前建立的映射相同的外网设备和端口号发来的响应流量,才能通过NAT映射返回内网设备。其他来自不同源地址或端口号的流量将被阻止。
特点:
- 安全性高:对称NAT提供较高的安全性,因为每个内网设备的会话都使用不同的公共IP和端口映射。未授权的外部设备无法访问到内网设备,除非它们使用相同的源IP地址和端口号进行通信。
- 穿透难度大:由于每个会话的映射是独特的,且只有特定的外部设备和端口号可以访问内网设备,这使得对称NAT的穿透变得非常困难。常规的NAT穿透技术(如STUN、TURN)可能难以在这种NAT环境下工作。
4.4 优缺点
优点:
- 节省公共 IP 地址: 通过共享公共 IP 地址,大量设备可以使用有限的 IP 地址。
- 提高网络安全性: 内部网络的 IP 地址被隐藏在 NAT 之后,外部网络无法直接访问内部设备。
- 灵活的网络配置: 允许在内部网络中自由分配 IP 地址而不影响外部连接。
缺点:
- 性能影响: NAT 需要实时修改数据包的 IP 地址和端口号,在高流量情况下会增加路由器的处理负担。
- 某些协议兼容性问题: 一些应用层协议(例如 SIP、FTP)在经过 NAT 处理时可能会遇到问题,因为这些协议会嵌入 IP 地址在数据中。
4.5 配置示例
详见[[Cisco Packet Tracer学习笔记#⑤ NAT]]
5 VLAN
5.1 简介
VLAN(Virtual Local Area Network
,虚拟局域网)是一种将物理网络划分为多个逻辑子网的技术,使得即使在同一个物理网络中,设备也可以被隔离到不同的逻辑网络中。每个VLAN有自己的广播域。
目的:实现网络的隔离、提高安全性、简化网络管理以及优化网络性能。
5.2 工作原理
标记:VLAN的工作原理基于交换机对数据帧的标记。通过VLAN标记,交换机可以识别不同VLAN的流量。最常见的标记协议是IEEE 802.1Q
,它在数据帧中插入一个VLAN标记字段。
广播域:每个VLAN都是一个独立的广播域,即一个VLAN内的广播流量不会被传递到其他VLAN。
使用VLAN前:
使用VLAN后:
5.3 类型
静态VLAN:由网络管理员手动配置端口和VLAN的映射。每个交换机端口都被指定为某个VLAN的成员。
动态VLAN:基于特定的策略(如MAC地址、协议类型等)自动分配设备到VLAN。这种方式需要使用VLAN管理工具(如VLAN管理器)。
5.4 通信
VLAN是广播域。而通常两个广播域之间由路由器连接,广播域之间来往的数据包都是由路由器中继的。因此,VLAN间的通信也需要路由器提供中继服务,这被称作“VLAN间路由”。
VLAN间路由,可以使用普通的路由器,也可以使用三层交换机。
5.5 VTP
5.5.1 简介
VTP(VLAN Trunking Protocol)是由思科(Cisco)开发的专有协议,用于在同一个VTP域内的Cisco交换机之间同步VLAN信息。它简化了大规模网络中VLAN管理的复杂性,通过自动分发和管理VLAN配置信息,使得VLAN的创建、删除和重命名可以在多台交换机之间自动更新。
VTP协议主要工作在Trunk链路上,常用的Trunk协议包括IEEE 802.1Q和Cisco ISL。
5.5.2 工作模式
VTP有三种主要模式,每种模式在VTP域中的角色和行为不同:
- 服务器模式(Server Mode):
- 这是VTP的默认模式。
- 在服务器模式下,交换机可以创建、修改和删除VLAN,并将这些更改通告给整个VTP域。
- VTP服务器将VLAN信息保存在NVRAM中。
- 客户端模式(Client Mode):
- 在客户端模式下,交换机不能创建、修改或删除VLAN。
- 客户端从VTP服务器接收VLAN更新,并应用到自己的VLAN配置中。
- VTP客户端不保存在NVRAM中。
- 透明模式(Transparent Mode):
- 在透明模式下,交换机不参与VTP域的VLAN同步。
- 交换机不会从其他VTP交换机接收或发送VLAN更新。
- 透明模式下的交换机可以创建、修改和删除本地VLAN,但这些更改不会被通告给其他交换机。
5.5.3 基本概念
VTP域:一个VTP域是交换机共享同一个VTP域名的逻辑组。只有在同一个VTP域内的交换机才能同步VLAN信息。
VTP修订号(Revision Number):VTP修订号用于跟踪VLAN数据库的更新。每次有VLAN更改时,VTP修订号会递增。交换机会根据修订号来决定是否接受VLAN更新,以确保只有最新的VLAN配置信息被应用。
VTP通过VTP广告(VTP Advertisements)在VTP域内传播VLAN信息。VTP广告分为以下几种类型:
- 摘要广告(Summary Advertisements):定期发送,包含VTP域名和修订号等信息。
- 子集广告(Subset Advertisements):包含具体的VLAN配置信息。
- 请求广告(Advertisement Requests):当交换机需要更新时发送,用于请求VLAN信息。
5.5.4 基本命令
1 | # 查看VTP状态 |
5.6 生成树协议(STP)
5.6.1 简介
生成树协议(Spanning Tree Protocol, STP)是一种网络协议,用于防止以太网交换机网络中的环路,确保只有一条活跃的路径存在于两个网络设备之间,从而避免网络广播风暴和不稳定的网络状态。生成树协议由IEEE 802.1D
标准定义,后续有多种改进和变种,如RSTP(快速生成树协议)和MSTP(多生成树协议)。
5.6.2 工作原理
生成树协议通过以下步骤来防止环路:
- 选举根桥(Root Bridge):
- 生成树算法通过交换BPDU(Bridge Protocol Data Units)帧来选举网络中的根桥。根桥是整个网络的参考点,通常是具有最低桥ID的交换机。
- 桥ID由桥优先级和交换机的MAC地址组成,默认优先级为32768。优先级越低,桥ID越小。
- 选择根端口(Root Port):
- 每个非根桥选择一个与根桥连接的成本最低的端口作为根端口。根端口用于转发数据到根桥。
- 选择指定端口(Designated Port):
- 对于每个网段,指定一个成本最低的交换机端口作为该网段的指定端口,用于转发到该网段的流量。
- 阻塞冗余端口:
- 所有非根端口中既不是根端口也不是指定端口的将被阻塞,防止产生环路。
5.6.3 端口状态
生成树协议将交换机端口分为以下五种状态:
- 阻塞(Blocking):端口处于监听BPDU状态,不转发数据帧。
- 监听(Listening):端口开始准备进入转发状态,但不学习MAC地址。
- 学习(Learning):端口开始学习MAC地址表,但不转发数据帧。
- 转发(Forwarding):端口转发数据帧和学习MAC地址表。
- 禁用(Disabled):端口被手动禁用,不参与生成树。
5.6.4 基本命令
1 | # 查看生成树协议状态 |
5.7 配置示例
详见:[[Cisco Packet Tracer学习笔记#3.2.3 VLAN配置]]
6 ACL
6.1 简介
访问控制列表 (ACL, Access Control List
) 是一种用于过滤流量的规则集,可以在路由器或防火墙上配置。ACL 可以控制进出网络设备的流量,根据源地址、目的地址、协议类型和端口号等条件进行允许或拒绝操作。ACL 常用于限制特定流量、增加安全性、以及实现流量管理。
6.2 类型
ACL 主要有两种类型:
- 标准 ACL:基于源 IP 地址进行流量过滤。编号范围为 1-99(扩展范围 1300-1999)。
- 扩展 ACL:基于源 IP、目的 IP、协议类型、端口号等多种条件进行流量过滤。编号范围为 100-199(扩展范围 2000-2699)。
6.3 工作原理
ACL 是按照顺序逐行进行匹配的,匹配到符合条件的规则后,剩下的规则将不再被检查。ACL 在最后隐含有一个默认的 deny all
规则,这意味着如果没有匹配到任何规则,流量将被拒绝。
- **入口 (inbound)**:流量在进入接口时进行过滤。
- **出口 (outbound)**:流量在离开接口时进行过滤。
6.4 配置示例
详见:[[Cisco Packet Tracer学习笔记#⑥ ACL]]
7 内网穿透
7.1 简介
内网穿透用于解决在NAT(网络地址转换)或防火墙环境下,外部设备无法直接访问内网设备的问题。NAT和防火墙通常会阻止外部设备直接与内网设备通信,内网穿透技术使得这种通信成为可能,尤其在P2P网络、远程访问、物联网等应用场景中非常重要。
7.2 基本方法
7.2.1 端口转发(Port Forwarding)
手动在路由器或防火墙上配置端口映射(即端口转发),将外部请求的特定端口号映射到内网设备的IP地址和端口。详见4.2.4节
。
优点:配置简单,适合少量端口映射需求。
缺点:需要手动配置,对外暴露了特定端口,存在一定安全风险。
7.2.2 STUN(Session Traversal Utilities for NAT)
① 工作原理
STUN(Session Traversal Utilities for NAT) 是一个网络协议,用于帮助应用程序在网络地址转换(NAT)环境下实现端到端的连接。它的主要目的是帮助在 NAT 环境中发现公共 IP 地址,并进行 NAT 穿透。
- NAT 类型检测:STUN 可以帮助确定 NAT 的类型(例如全锥形、受限锥形、端口受限锥形、对称 NAT),这对于选择合适的 NAT 穿透技术非常重要。
- 公共地址发现:STUN 服务器可以告诉客户端其在 NAT 后的公共 IP 地址和端口号。客户端通过将其本地 NAT 地址和端口与 STUN 服务器通信来获取此信息。
- Keep-alive 消息:STUN 客户端可以定期向 STUN 服务器发送保持活动消息,防止 NAT 设备关闭会话。
② 工作流程
- 客户端发送 STUN 请求:客户端向 STUN 服务器(位于公网)发送一个 STUN 请求。这个请求是一个 UDP 数据包,包含客户端的私有 IP 地址和端口号。请求的目的是询问 STUN 服务器客户端的公共 IP 和端口号。
- STUN 服务器接收请求:STUN 服务器接收到来自客户端的 STUN 请求。由于 STUN 请求是通过 NAT 路由器转发的,服务器能够看到数据包的源 IP 地址和端口号,即客户端的公共 IP 和端口号。STUN 服务器记录下客户端的源 IP 地址和端口号,这些信息表示 NAT 设备映射后的公共 IP 地址和端口号。
- STUN 服务器检查 NAT 映射:STUN 服务器可以通过不同的 NAT 类型来分析客户端的映射情况。
- STUN 服务器回复客户端:STUN 服务器向客户端发送 STUN 响应,包含客户端的公共 IP 地址和端口号。
- 客户端解析 STUN 响应:客户端收到 STUN 响应后,解析其中的公共 IP 地址和端口号。这些信息帮助客户端了解它在公共网络中的地址,便于建立与其他对等端的直接连接。
③ NAT穿透
- 处于同一NAT下:
通过STUN服务可以获取其NAT的公网IP和端口,从服务器中获取到想要连接的对端公网IP和端口后可以比较IP,相同则处于同一NAT下,此时只需内部连接即可。
- 处于不同NAT下:
- Client A,Client B分别登录STUN服务器,获取其对外ip和port,记作A:
202.120.23.79:5500
B:202.120.36.181:6600
- 假如A想同B建立连接,则只需要通过STUN服务向B发送A的IP和Port,让B主动向A发消息,这样在B的NAT会有一条
202.120.36.181:6600 -> 202.120.23.79:5500
的纪录,此时A再向B发消息就可以通过NAT到达B。
7.2.3 TURN(Traversal Using Relays around NAT)
① 简介
在 NAT 环境下,特别是对称 NAT 环境,传统的打洞技术可能会失败,导致内网设备无法直接与外部设备通信。TURN 协议通过中继服务器将内网设备的通信数据转发到对方,从而实现 NAT 穿透。
② 工作流程
- 客户端向 TURN 服务器请求中继地址:当打洞技术失败时,客户端可以向 TURN 服务器发送请求,请求一个中继地址(即,TURN 服务器上的 IP 地址和端口)。
- 数据通过 TURN 服务器中继:客户端将数据发送到 TURN 服务器,TURN 服务器再将数据转发到对方客户端。对于对方客户端而言,它收到的数据就像是直接从原始发送者那里发送的一样。
- 反向通信:对方客户端也可以将数据发送回 TURN 服务器,然后 TURN 服务器将数据转发给原始发送者。
7.2.4 打洞(Hole Punching)
① 简介
打洞(Hole Punching) 是一种用于 NAT 穿透的技术,使得两个处于不同 NAT(网络地址转换)后的内部网络的设备能够直接进行对等通信。这在实现 P2P(点对点)通信、VoIP、视频聊天、文件共享等应用时非常有用。
② 工作流程
候选地址交换:客户端 A 和客户端 B 通过某种信令机制(例如,通过一个信令服务器)交换各自的公共 IP 地址和端口号。
发送测试数据包:
- 客户端 A 向客户端 B 发送测试数据包(通常是 UDP 数据包)到 B 的公共 IP 地址和端口号。
- 客户端 B 向客户端 A 发送测试数据包到 A 的公共 IP 地址和端口号。
NAT 设备的映射:当客户端 A 和 B 的数据包通过 NAT 路由器时,NAT 设备会创建相应的映射规则,使得这些数据包能够通过 NAT 设备到达目的地。
建立对等连接:一旦 NAT 设备的映射规则建立,客户端 A 和 B 可以通过这些公共 IP 地址和端口直接进行通信。
7.2.5 反向代理
暂略
7.2.6 UPnP(通用即插即用)
暂略
8 VPN
8.1 简介
VPN(虚拟专用网络,Virtual Private Network
)是一种用于在公用网络(如互联网)上建立安全、加密连接的技术。VPN 可以保护用户的隐私,确保数据的安全传输,并实现不同网络之间的安全连接。
8.2 应用
企业远程访问:VPN 使员工能够安全地从世界任何地方访问公司的内部网络和资源,尤其在远程办公日益普及的背景下。
保护个人隐私:普通用户可以通过 VPN 隐藏他们的 IP 地址和浏览活动,防止被广告商、黑客或政府机构跟踪。
规避网络审查和地理封锁:在一些国家和地区,VPN 被广泛用于绕过政府的网络封锁和内容限制,访问受限网站和服务。
公共 Wi-Fi 安全:用户在使用不安全的公共 Wi-Fi 网络时,通过 VPN 可以有效防止数据被窃取或攻击。
游戏加速和跨区访问:玩家可以通过 VPN 加速连接到游戏服务器,或访问受地域限制的游戏内容。
8.3 工作原理
VPN 的核心是通过加密隧道将数据从一端安全地传输到另一端。VPN 使用各种协议和技术来创建这些加密隧道,并确保数据在传输过程中不会被窃听或篡改。
8.3.1 基本原理
VPN 通过以下步骤工作:
- 加密数据:VPN 客户端将用户数据进行加密,然后通过互联网发送这些加密的数据。
- 隧道协议:VPN 使用隧道协议(如 PPTP、L2TP/IPsec、OpenVPN、IKEv2、WireGuard 等)在用户设备和 VPN 服务器之间创建一条安全隧道。
- VPN 服务器解密和转发:加密数据到达 VPN 服务器后,服务器对数据进行解密,然后将数据转发到目标资源或互联网。
- 返回过程:返回的数据通过相同的 VPN 服务器,再次加密后发送回用户设备,用户设备最后解密数据并使用。
8.3.2 主要协议
- PPTP(Point-to-Point Tunneling Protocol): 早期的 VPN 协议,速度快但安全性较低。
- L2TP/IPsec(Layer 2 Tunneling Protocol): 提供更好的安全性,结合 IPsec 提供加密和隧道保护。
- OpenVPN: 开源且高度安全,支持多种加密算法和认证方式,广泛应用于商业和个人 VPN。
- IKEv2/IPsec: 提供高安全性和快速连接,适合移动设备使用。
- WireGuard: 现代且高效的 VPN 协议,速度快、配置简单,逐渐被广泛采用。
8.4 工作流程
以 IPsec Site-to-Site VPN 为例,其工作流程可以分为以下几步:
- IKE Phase 1(互联网密钥交换第一阶段):
- 双方(客户端和服务器)通过 IKE 协议协商安全策略,包括加密算法、哈希算法、身份验证方法等。
- 建立一个安全通道(ISAKMP SA),用于后续的密钥交换。
- IKE Phase 2:
- 基于第一阶段建立的安全通道,双方协商 IPsec SA(安全关联),定义具体的加密和认证算法。
- 生成对称密钥,用于实际数据的加密。
- 数据加密和传输:
- 使用协商好的加密算法,对数据包进行加密,通过建立的 IPsec 隧道传输。
- 对方收到数据后使用对称密钥解密数据,确保数据的完整性和机密性。
- 数据返回:
- 返回数据时,重复上述的加密和解密过程,确保整个通信过程的安全性。
8.5 配置示例
详见:[[Cisco Packet Tracer学习笔记#⑧ VPN]]
9 SSH
9.1 简介
SSH (Secure Shell
)是一种用于加密的网络协议,广泛用于在不安全的网络环境中安全地访问和管理远程设备。它可以通过加密的方式提供远程登录、命令执行、文件传输等功能,确保通信的机密性和完整性。
sftp
是 SSH 提供的安全文件传输协议,类似于 FTP,但通信经过加密。
SSH的服务端(SSHD)的默认监听端口为22
。
9.2 常用命令
- 远程登录
1 | ssh root@192.168.1.100 |
- 文件传输
1 | scp /path/to/localfile user@hostname:/path/to/remotedir |
- 使用sftp传输
1 | sftp user@hostname |
- 服务的查看和重启
1 | systemctl status sshd |
9.3 配置文件
在 Linux 系统中,SSH 的配置文件主要分为 客户端配置文件 和 服务器端配置文件,它们分别位于不同的位置。
9.3.1 客户端配置文件
- 全局客户端配置文件:
/etc/ssh/ssh_config
- 这是系统级的配置文件,影响所有用户的 SSH 客户端行为。
- 用户客户端配置文件:
~/.ssh/config
- 这是用户级别的配置文件,只对当前用户生效。可以在这里为特定服务器定义特定的连接参数,例如密钥文件、端口、用户名等。
9.3.2 服务器端配置文件
SSH 服务器配置文件:/etc/ssh/sshd_config
。服务器端的配置文件控制 SSH 服务(sshd
)的行为,如监听的端口、允许的身份验证方式等。
9.4 服务单元文件
/lib/systemd/system/ssh.service
是 SSH 服务 的 systemd 单元文件。它用于定义和控制 ssh
(即 OpenSSH 服务器 sshd
)服务的启动、停止、重启等行为。这个文件被 systemd 用来管理 SSH 服务在系统启动时自动启动,以及如何处理服务的生命周期。
1 | [Unit] |
修改该文件后需要执行下列命令以重启:
1 | systemctl daemon-reload |
10 DNS
10.1 简介
DNS(Domain Name System
)协议是互联网的重要组成部分,用于将域名(如www.example.com
)转换为IP地址(如192.0.2.1
),从而使用户能够通过易于记忆的域名访问网站和服务。DNS是基于UDP和TCP运行的应用层协议,通常使用53端口。
10.2 查询过程
递归查询:客户端(通常是浏览器)向本地域名服务器发出请求,本地服务器会递归查询其他DNS服务器,直到找到所请求的IP地址为止。
迭代查询:本地域名服务器会依次向根域名服务器、顶级域名服务器(TLD服务器,如.com
、.org
)、权威域名服务器发出查询请求,直到获取目标IP地址。
为了减少查询延迟和减轻服务器负载,DNS使用缓存机制。本地计算机和DNS服务器都会缓存已解析的域名信息一段时间,这个时间由DNS记录中的TTL(Time to Live)字段决定。
Windows下查看缓存内容:
1 | ipconfig /displaydns # 查看缓存 |
示例:
1 | C:>ipconfig /displaydns |
10.3 主要记录类型
10.3.1 A记录(Address Record)
- 用途:将域名映射到IPv4地址。
- 示例:
www.example.com
->192.0.2.1
- 用途场景:当用户输入域名时,通过A记录可以获取相应的IPv4地址。
10.3.3 AAAA记录(IPv6 Address Record)
- 用途:将域名映射到IPv6地址。
- 示例:
www.example.com
->2001:0db8::1
- 用途场景:用于支持IPv6的网络,确保域名能够解析到IPv6地址。
10.3.3 CNAME记录(Canonical Name Record)
- 用途:为一个域名创建别名,使其指向另一个域名。
- 示例:
blog.example.com
->www.example.com
- 用途场景:常用于子域名的重定向,比如将多个子域名指向同一个主域名。
10.3.4 MX记录(Mail Exchange Record)
- 用途:指定负责处理电子邮件的服务器。
- 示例:
example.com
->mail.example.com
- 用途场景:用于电子邮件的路由,通过优先级字段(优先级越低优先级越高)指定邮件服务器的顺序。
10.3.5 PTR记录(Pointer Record)
- 用途:将IP地址映射回域名,通常用于反向DNS查询。
- 示例:
192.0.2.1
->www.example.com
- 用途场景:用于验证邮件服务器的身份,增加邮件发送的可信度。
10.4 域名结构
域名的结构遵循层次化的命名系统,这使得它们在互联网中具有唯一性和组织性。域名结构的各个部分由点(.
)分隔,形成了一个层次化的域名系统。
10.4.1 顶级域名(Top-Level Domain, TLD)
- 位置:域名结构的最右侧部分。
- 分类:
- 通用顶级域名(gTLD):如
.com
、.net
、.org
、.info
。 - 国家代码顶级域名(ccTLD):如
.us
(美国)、.uk
(英国)、.jp
(日本)、.cn
(中国)。 - 新顶级域名(nTLD):例如
.xyz
、.tech
、.club
等。
- 通用顶级域名(gTLD):如
10.4.2 二级域名(Second-Level Domain, SLD)
- 位置:在顶级域名的左侧。
- 示例:
example.com
中的example
是二级域名。 - 功能:通常由组织、企业或个人注册,代表特定的业务或名称。
10.4.3 三级域名(Third-Level Domain)
- 位置:在二级域名的左侧。
- 示例:
www.example.com
中的www
是三级域名。 - 功能:用于细分二级域名下的不同子域,例如
www
用于网站,mail
用于邮件服务器等。
10.4.4 子域名(Subdomain)
- 位置:在二级域名的左侧。
- 示例:
blog.example.com
中的blog
是子域名。 - 功能:用于创建更具体的子区域或服务。
11 DHCP
11.1 DHCP Relay
DHCP Relay用于在不同的网络(通常是不同的子网)之间中继DHCP请求和响应。它允许在没有直接访问DHCP服务器的网络中分配IP地址。
11.1.1 工作原理
- DHCP请求的发起:
- 当一个设备(例如电脑、手机)首次连接到网络时,它会发送一个DHCP Discover广播消息,来请求网络上的DHCP服务器为它分配IP地址。
- 这个广播消息通常只能在本地网络(子网)内传播,无法穿越到其他子网。
- DHCP Relay的作用:
- 如果设备所在的子网内没有DHCP服务器,但有一个DHCP Relay设备(通常是路由器或三层交换机),这个设备会接收到设备发出的DHCP Discover消息。
- DHCP Relay会将这个广播消息转换为一个单播消息,并将其发送到配置好的远程DHCP服务器。这种转换允许DHCP请求跨越不同的子网。
- DHCP服务器的响应:
- 远程DHCP服务器接收到DHCP Relay转发的请求后,会根据请求分配IP地址,并通过DHCP Relay将响应消息(如DHCP Offer)发送回设备所在的子网。
- 最终,设备接收到DHCP服务器分配的IP地址和其他网络配置信息(如子网掩码、网关、DNS服务器等)。
11.1.2 使用场景
- 大型企业网络:在大型企业网络中,可能会有多个子网,而这些子网可能没有各自的DHCP服务器。在这种情况下,可以通过配置DHCP Relay,使得所有子网都能从一个中心化的DHCP服务器获取IP地址。
- 跨越多个网络段:在一些网络中,DHCP服务器位于一个子网中,而客户端位于不同的子网中。通过DHCP Relay,客户端仍然可以通过跨子网的方式获取IP地址。
11.1.3 配置示例
在配置DHCP Relay时,通常需要在路由器或三层交换机上指定DHCP服务器的IP地址。例如:
1 | SW(config)# interface GigabitEthernet0/1 |
在上面的配置中,192.168.1.1
是客户端所在的子网的接口地址,而 192.168.2.1
是DHCP服务器的地址。ip helper-address
命令告诉路由器将接收到的DHCP请求转发到指定的DHCP服务器。
更详细的配置详见:
12 路由器
12.1 串口
12.1.1 简介
路由器的串口(Serial Interface)是一种用于连接广域网(WAN)的接口,主要用于路由器之间的通信,或者连接到调制解调器、专线终端设备等广域网设备。串口通常用于低速的广域网连接,适用于点对点通信等场景。
12.1.2 类型
串口接口有多种类型,常见的包括:
RS-232: 传统的串行接口标准,主要用于低速连接。
V.35: 常见于高速的广域网连接,支持速率通常为64 Kbps到2 Mbps。
X.21: 用于数字数据通信,通常用于较高速的广域网连接。
RS-449: 适用于中速广域网连接,类似于RS-232。
Smart Serial: 一种紧凑型、高密度的串口接口,能够支持多种不同的物理层协议。
12.1.3 连接线类型
根据串口类型,连接线也不同。以下是几种常见的连接线:
V.35电缆:
- V.35电缆 通常用于连接高速广域网设备。V.35电缆一端连接到路由器的V.35接口,另一端连接到DCE设备(如调制解调器或通信处理器)。
RS-232电缆:
- RS-232电缆 用于低速串行通信。RS-232电缆通常用于连接DTE(数据终端设备)和DCE(数据通信设备),例如路由器与调制解调器之间的连接。
X.21电缆:
- X.21电缆 用于数字数据通信,连接X.21串口接口的路由器和其他通信设备。
Smart Serial电缆:
- Smart Serial电缆 是一种较新的接口类型,能够通过单根电缆支持多种协议和速率。它常用于需要高密度接口的设备。
12.1.4 常见的连接场景
路由器到路由器:在这种情况下,通常一个路由器配置为DTE,另一个配置为DCE。DCE设备提供时钟信号,因此需要在其串口上设置 clock rate
。
路由器到调制解调器:这种连接通常通过V.35或RS-232电缆完成,适用于接入广域网。
12.2 动态路由
12.2.1 RIP
RIP(Routing Information Protocol
,路由信息协议)是最早期的动态路由协议之一,用于在小型到中型网络中分配路由信息。
它的类型为距离矢量路由协议(Distance-Vector Routing Protocol)。
工作原理
- 距离矢量算法: RIP使用距离矢量算法,即以跳数(Hop Count)作为路由度量标准。每一跳的距离计为1。
- 最大跳数: RIP允许的最大跳数为15,跳数为16表示不可达。因此,RIP适用于小型网络。
- 更新机制: 路由器周期性地(每30秒)通过广播或组播发送其路由表,并接收邻居路由器发送的路由信息。
- 路由选择: 当路由器收到新的路由信息时,会根据跳数更新其路由表。跳数较少的路径优先级较高。
- 水平分割(Split Horizon): 为了避免路由环路,RIP使用水平分割技术,即不向路由信息的来源发送该信息。
- 路由中毒(Route Poisoning): 当一条路由失效时,RIP将该路由的跳数设置为16,表示不可达,并通过广播告知其他路由器。
- 触发更新(Triggered Updates): 当网络拓扑发生变化时,RIP会立即发送更新,而不等待定期更新周期。
配置示例详见:[[Cisco Packet Tracer学习笔记#3.1.5 RIP]]
12.2.2 OSPF
① 简介
OSPF(Open Shortest Path First
,开放式最短路径优先)是一种广泛使用的链路状态路由协议,适用于大型和复杂的网络。
类型: 链路状态路由协议(Link-State Routing Protocol)
协议类型: 内部网关协议(IGP)
标准: 基于IETF的标准(RFC 2328)
目的: 通过计算网络中每个路由器到目的网络的最短路径,确保数据包能以最快速和最有效的方式传输。
② 工作原理
OSPF通过链路状态算法和Dijkstra算法来计算最短路径,并生成路由表。
- 链路状态广告(LSA)
- LSA类型: OSPF使用不同类型的LSA来传播网络拓扑信息,如路由器LSA、网络LSA、汇总LSA等。
- Flooding机制: 每个路由器通过洪泛(Flooding)机制将其链路状态信息发送给其他所有路由器,确保网络拓扑信息的同步。
- 链路状态数据库(LSDB)
- LSDB: 每个路由器维护一份链路状态数据库,存储从网络中所有其他路由器接收到的LSA信息。这份数据库反映了整个网络的拓扑结构。
- 同步: 所有OSPF路由器的LSDB必须保持一致,以确保路由决策的一致性。
- Dijkstra算法
- SPF树: 基于LSDB,路由器使用Dijkstra算法计算最短路径优先树(SPF树),并根据该树生成路由表。
- 度量标准: OSPF使用链路带宽作为度量标准(Cost),带宽越高,路径Cost越低。
③ 路由器类型
主干区域(Area 0): 所有非零区域必须通过主干区域进行通信,主干区域是整个OSPF网络的核心。
边界路由器(ABR): 区域边界路由器用于连接不同的OSPF区域,并交换区域间的路由信息。
自治系统边界路由器(ASBR): 负责在OSPF网络和其他路由协议之间交换路由信息。
④ 区域类型
标准区域: 正常的OSPF区域,包含所有类型的LSA。
Stub区域: 不接受外部路由信息,只接收默认路由,减少了LSA类型和网络开销。
Totally Stubby区域: 只接收默认路由,进一步减少了LSA和路由表规模。
Not-So-Stubby Area (NSSA): 类似于Stub区域,但允许引入一些外部路由。
⑤ 特点
快速收敛: OSPF比RIP等协议收敛速度更快,当网络拓扑发生变化时,OSPF可以迅速更新路由表。
无类路由(CIDR)支持: OSPF支持无类路由和VLSM(可变长度子网掩码),能够高效利用IP地址。
路由汇总: 在区域边界,OSPF支持路由汇总,减少路由表规模和更新开销。
负载均衡: OSPF支持等成本负载均衡,可以在多个路径上均衡流量。
⑤ 配置示例
详见:[[Cisco Packet Tracer学习笔记#3.1.11 OSPF]]
12.2.3 BGP
暂略
12.3 单臂路由
12.3.1 简介
单臂路由(Router-on-a-Stick
,或称棒上路由)是一种网络配置方式,常用于在同一个物理路由器接口上处理多个VLAN(虚拟局域网)的流量。这种方式使得路由器能够在不同的VLAN之间进行路由,而无需为每个VLAN配置单独的物理接口。
在单臂路由配置中,路由器的一个物理接口被划分为多个子接口,每个子接口被配置为处理特定VLAN的流量。通过使用802.1Q
(一种VLAN标记协议),路由器可以识别并处理来自不同VLAN的流量。
当数据包从交换机进入路由器时,它带有VLAN标签。路由器根据VLAN标签将数据包转发到相应的子接口,再根据路由表决定数据包的去向。如果目的地在另一个VLAN中,路由器将数据包重新封装,并通过同一个物理接口发回交换机,交换机将数据包发送到目标VLAN。
物理视图:
逻辑视图:
此时,上图中子接口192.168.1.1
就是VLAN 10
的网关,子接口10.1.0.1
就是VLAN 20
的网关。
12.3.2 配置示例
详见:[[Cisco Packet Tracer学习笔记#3.1.13 单臂路由]]