网络
快来分享你的内容吧~
- 01-02 15:32·Java后端学习NAT类型与实战各类型打洞可行性查看全文加油鸭:感谢分享如此详尽的NAT打洞技术解析!内容结构清晰、原理深入,从工具到实战场景全覆盖,极具参考价值,为网络穿透学习者提供了宝贵的路线图,点赞!221分享
- 2025-08-05·后端开发
- 2024-11-04·网络工程师
- 2024-11-01·网络工程师
- 2024-11-01·网络工程师
- 2024-11-01·网络工程师
- 2024-10-31·网络工程师
- 2024-10-31·网络工程师
- 2024-10-30·网络工程师
- 2024-08-29·网络工程师
学习NAT类型与实战各类型打洞可行性
来源:https://blog.itrf.cn/nat-3e9c16b9b06f/ ## 一、相关工具(含使用场景) - 在线检测NAT类型:[NAT Checker](https://natchecker.com)(核心功能:检测映射/过滤行为,精准判定NAT1-9类型,建议打洞前必测) - 通用打洞工具:[Tailscale](https://tailscale.com/)(适配EasyNAT全场景,HardNAT需依赖UPnP,操作简单,适合新手) - 复杂NAT适配工具:[Easytier](https://easytier.cn/)(支持端口扫描/预测,可尝试HardNAT组合,适合进阶用户) - 辅助排查工具:Wireshark(抓包分析流量走向,定位打洞失败原因,如端口过滤、映射端口变化) ## 二、必备知识(打洞原理基础) 路由器通过两张核心表实现NAT管控,这是打洞能否成功的关键: 1. **NAT映射表**:记录内部主机(内网IP:端口)与公网(公网IP:端口)的映射关系,仅当内部主机向外发起请求时生成/更新; 2. **状态表**:记录内部主机的对外请求状态(如请求目标IP:端口、连接状态),仅当外部流量与状态表匹配时,才允许穿透NAT进入内网。 打洞的核心逻辑:通过中转服务器交换双方公网映射信息,再主动发起请求触发对方状态表更新,让后续流量能被放行。 ### 2.1 NAT映射行为(决定公网端口是否固定) - **地址和端口相关映射**(HardNAT特征):仅当请求的「目标IP+目标端口」与历史请求完全一致时,才复用原公网映射端口;只要有一项不同,就生成新的公网端口(如内网主机先访问中转服务器A:8080,再访问主机B:80,会生成两个不同公网端口)。 - **地址相关映射**(HardNAT特征):只要请求的「目标IP」与历史一致,即使目标端口不同,也复用原公网端口;若目标IP不同,则生成新端口(如内网主机访问A:8080和A:80,共用一个公网端口;访问A:8080和B:80,生成两个端口)。 - **端点无关映射**(EasyNAT特征):无论请求的目标IP、目标端口如何变化,始终复用同一个公网映射端口(如内网主机访问A:8080、B:80、C:443,均使用同一个公网端口)。 ### 2.2 NAT过滤行为(决定外部流量能否放行) - **地址和端口相关过滤**:仅当外部响应的「源IP+源端口」与内部主机之前的请求目标完全一致时,才放行流量;否则直接过滤。 - **地址相关过滤**:只要外部响应的「源IP」与内部请求的目标IP一致,即使源端口不同,也放行流量;源IP不同则过滤。 - **端点无关过滤**:无论外部响应的源IP、源端口是什么,均直接放行(最宽松的过滤规则)。 ### 2.3 NAT类型对照表(含打洞难度标注) | NAT类型 | RFC 5780映射方式 | RFC 5780过滤方式 | RFC 3489对应类型 | 分类 | 打洞难度 | | :--------- | :----------------- | :----------------- | :----------------------------------- | :------ | :--------- | | NAT Type 1 | 端点无关映射 | 端点无关过滤 | 全锥型(Full Cone) | EasyNAT | ⭐ 极低 | | NAT Type 2 | 端点无关映射 | 地址相关过滤 | 受限锥型(Restricted Cone) | EasyNAT | ⭐ 低 | | NAT Type 3 | 端点无关映射 | 地址和端口相关过滤 | 端口受限锥型(Port Restricted Cone) | EasyNAT | ⭐⭐ 中低 | | NAT Type 4 | 地址相关映射 | 端点无关过滤 | - | HardNAT | ⭐⭐⭐⭐ 高 | | NAT Type 5 | 地址相关映射 | 地址相关过滤 | - | HardNAT | ⭐⭐⭐⭐ 高 | | NAT Type 6 | 地址相关映射 | 地址和端口相关过滤 | - | HardNAT | ⭐⭐⭐⭐⭐ 极高 | | NAT Type 7 | 地址和端口相关映射 | 端点无关过滤 | - | HardNAT | ⭐⭐⭐⭐ 高 | | NAT Type 8 | 地址和端口相关映射 | 地址相关过滤 | - | HardNAT | ⭐⭐⭐⭐⭐ 极高 | | NAT Type 9 | 地址和端口相关映射 | 地址和端口相关过滤 | 对称型(Symmetric) | HardNAT | ⭐⭐⭐⭐⭐ 极高 | ## 三、各NAT类型打洞可行性(详细拆解) 前置操作:双方均通过NAT Checker确认自身NAT类型,安装Tailscale(基础场景)或Easytier(复杂场景),确保双方网络能访问中转服务器(Tailscale/Easytier官方服务器)。 ### 3.1 NAT1(全锥型) ↔ NAT1(全锥型) #### 核心原理 双方均为端点无关映射(公网端口固定)+ 端点无关过滤(任意外部流量放行),无需触发状态表更新,交换公网信息后可直接通信。 #### 实战步骤 1. 双方启动Tailscale,自动连接中转服务器,完成身份认证; 2. 中转服务器同步双方的公网IP和映射端口(因端点无关映射,此端口固定不变); 3. 双方获取对方公网信息后,直接向对方的「公网IP:映射端口」发起TCP/UDP连接; 4. 由于双方过滤规则宽松,流量直接放行,打洞成功,后续通信脱离中转服务器。 #### 可行性结论 ✅ 100%稳定可行,无特殊条件限制,是打洞最理想的场景。 #### 问题排查 若失败,优先排查:① 防火墙是否拦截对应端口(如Tailscale默认使用41641端口,需放行);② 公网IP是否为运营商内网IP(极少数情况,可通过IP138查询公网IP是否一致)。 ### 3.2 NAT1(全锥型) ↔ NAT3(端口受限锥型) #### 核心原理 NAT1公网端口固定+过滤宽松,NAT3公网端口固定但过滤严格(仅放行「之前请求过的IP+端口」的响应)。关键是让NAT3先向NAT1发起请求,更新NAT3的状态表,从而放行NAT1的后续请求。 #### 实战步骤 1. 双方启动Tailscale,连接中转服务器,同步对方公网IP:端口(记为NAT1:A:PortA;NAT3:B:PortB); 2. 关键操作:让NAT3主机主动向NAT1的A:PortA发起请求(Tailscale会自动触发此步骤,无需手动操作); 3. NAT3的状态表更新:记录「请求目标A:PortA」,此时允许A:PortA的流量进入内网; 4. NAT1主机向NAT3的B:PortB发起请求,由于NAT3状态表已记录A:PortA,此请求被放行; 5. 双方建立双向连接,打洞成功。 #### 可行性结论 ✅ 可行性95%以上,核心依赖「NAT3先发起请求」的顺序,Tailscale等工具会自动协调此顺序,无需手动干预。 #### 问题排查 若失败,排查:① NAT3主机是否被路由器限制“主动对外发起连接”;② 双方是否同时启动工具(若NAT1先发起请求,会被NAT3过滤,可重启双方Tailscale重试)。 ### 3.3 NAT3(端口受限锥型) ↔ NAT3(端口受限锥型) #### 核心原理 双方均为“端口固定+地址和端口相关过滤”,仅放行「自身之前请求过的IP:端口」的流量。需让双方在极短时间内同时向对方发起请求,互相更新对方的状态表,实现流量双向放行。 #### 实战步骤 1. 双方启动Tailscale,连接中转服务器,同步对方公网IP:端口(NAT3-1:C:PortC;NAT3-2:D:PortD); 2. 工具协调:Tailscale会通过中转服务器向双方发送“同步发起请求”的指令,确保双方在1秒内同时行动; 3. 双方同时向对方公网地址发起请求:NAT3-1→D:PortD;NAT3-2→C:PortC; 4. 双方状态表同时更新:NAT3-1记录D:PortD,允许其流量进入;NAT3-2记录C:PortC,允许其流量进入; 5. 双方请求均被对方放行,建立双向连接,打洞成功。 #### 可行性结论 ✅ 可行性90%以上,核心依赖「双方同时发起请求」的时间同步。若网络延迟过高(如跨运营商、跨地域),同步难度增加,成功率会略降。 #### 问题排查 若失败,排查:① 双方网络延迟是否过高(可通过ping中转服务器判断,延迟>200ms建议换同运营商网络);② 工具是否未正常协调同步请求(重启工具或切换网络重试)。 ### 3.4 NAT1(全锥型) ↔ NAT4(地址相关映射+端点无关过滤) #### 核心原理 NAT1公网端口固定,NAT4为HardNAT(映射端口随目标IP变化):NAT4向中转服务器发起请求时,生成映射端口Port4-1;当NAT4向NAT1发起请求时,因目标IP变化,会生成新的映射端口Port4-2(与Port4-1不同)。打洞关键是让NAT1识别到NAT4的新端口Port4-2,重新发起请求。 #### 实战步骤 1. 双方启动Tailscale,连接中转服务器,同步的NAT4公网信息为「E:Port4-1」(NAT4与中转服务器通信的端口); 2. NAT1先向E:Port4-1发起请求,因Port4-1仅对应“NAT4→中转服务器”的状态,此请求被NAT4的映射表匹配失败,直接过滤; 3. 中转服务器触发NAT4向NAT1的A:PortA发起请求,此时NAT4因目标IP变为A,生成新映射端口Port4-2; 4. NAT1接收到NAT4的请求(源地址E:Port4-2),自动更新NAT4的公网信息为「E:Port4-2」; 5. NAT1向E:Port4-2重新发起请求,此时NAT4的状态表已记录「请求目标A:PortA」,且Port4-2为当前映射端口,请求被放行; 6. 双方建立连接,打洞成功。 #### 可行性结论 ⚠️ 可行性70%左右,需依赖工具支持“动态端口识别与二次请求”(Tailscale、Easytier均支持)。若NAT4的映射端口变化频繁(如部分运营商每30秒刷新一次),可能导致连接不稳定。 #### 问题排查 若失败,排查:① 工具是否支持动态端口更新(老旧版本可能不支持,需升级);② NAT4的映射端口刷新周期是否过短(可通过Wireshark抓包观察端口变化频率)。 ### 3.5 NAT3(端口受限锥型) ↔ NAT4(地址相关映射+端点无关过滤) #### 核心原理 双方均有严格限制:NAT3仅放行「自身请求过的IP:端口」,NAT4映射端口随目标IP变化。常规情况下,NAT3请求NAT4的“中转端口”会被过滤,NAT4请求NAT3时,因NAT3未记录其新端口,也会被过滤。需通过辅助方案突破限制。 #### 实战步骤(分两种辅助方案) ##### 方案1:开启UPnP/NAT-PNP(推荐,成功率高) 1. 登录NAT4所在的路由器管理后台,找到「UPnP」或「NAT-PNP」功能(通常在“高级设置-端口映射”中),开启该功能; 2. 双方启动Tailscale,工具会通过UPnP向路由器申请“固定映射端口”(强制NAT4使用固定端口,而非动态变化); 3. 后续步骤与「NAT3↔NAT3」一致:双方通过中转服务器同步固定端口,同时发起请求,互相更新状态表; 4. 流量双向放行,打洞成功。 ##### 方案2:使用Easytier(无UPnP时备选,成功率低) 1. 双方启动Easytier,工具自动检测到NAT类型组合,触发“端口扫描+预测”模式; 2. NAT4主机向NAT3的C:PortC连续发送100-500条请求(目标端口固定,源端口动态生成,形成多个映射端口:Port4-3、Port4-4...); 3. NAT3主机同时向NAT4的E:Port4-3~Port4-500依次发起扫描请求; 4. 当NAT3扫描到NAT4正在向自己发起请求的端口(如Port4-10)时,双方状态表同时记录对方信息,请求被放行,建立连接。 #### 可行性结论 ❌ 常规不可行;✅ 开启UPnP后可行性85%;⚠️ 用Easytier可行性30%-50%(依赖端口扫描命中率,且易被运营商判定为网络攻击,不推荐公网使用)。 #### 问题排查 若UPnP方案失败,排查:① 路由器是否支持UPnP(部分老旧路由器无此功能);② 工具是否有权限调用UPnP(需以管理员身份运行);若Easytier方案失败,排查:① 网络是否限制高频端口扫描(如企业内网可能拦截);② 双方网络延迟是否过高(延迟越高,扫描命中率越低)。 ### 3.6 NAT4(地址相关映射) ↔ NAT4(地址相关映射) #### 核心原理 双方均为HardNAT,映射端口随目标IP动态变化,且过滤规则严格。打洞需满足“双方同时扫描到对方当前的动态端口”,而每个动态端口的有效期通常仅几十秒,命中率极低;同时高频扫描易触发运营商的DDoS防护机制,导致IP被临时封禁。 #### 实战尝试(不推荐) 1. 双方启动Easytier,开启“深度端口扫描”模式(需手动设置扫描范围,如1000-65535); 2. 双方同时向对方公网IP的全端口范围发起扫描请求,试图匹配对方的动态映射端口; 3. 若运气极佳,双方扫描到对方当前的动态端口,可建立连接;否则扫描持续数分钟后失败。 #### 可行性结论 ❌ 强烈不建议尝试,可行性低于10%,且存在IP被封禁的风险。推荐替代方案:① 让一方切换到EasyNAT网络(如连接手机热点);② 使用中转服务器转发流量(Tailscale默认支持中转,稳定性高但延迟略高);③ 升级IPv6网络。 ## 四、打洞可行性总结表(详细版) | 通信组合 | 打洞结果 | 核心条件 | 推荐工具 | 风险/注意事项 | | :-------- | :------------------------------------------------- | :------------------------------------- | :---------------------------------- | :----------------------------------------- | | NAT1↔NAT1 | ✅ 100%稳定 | 无需特殊条件,交换公网信息即可 | Tailscale、Easytier | 低风险,仅需放行工具端口 | | NAT1↔NAT3 | ✅ 95%可行 | NAT3先向NAT1发起请求 | Tailscale(自动协调顺序) | 低风险,跨地域延迟高时成功率略降 | | NAT3↔NAT3 | ✅ 90%可行 | 双方同时发起请求,时间同步 | Tailscale(自动同步) | 中低风险,延迟>200ms需重试 | | NAT1↔NAT4 | ⚠️ 70%可行 | 工具支持动态端口识别与二次请求 | Tailscale、Easytier | 中风险,NAT4端口刷新频繁可能导致连接不稳定 | | NAT3↔NAT4 | ❌ 常规不可行;✅ UPnP后85%可行;⚠️ 扫描后30%-50%可行 | 开启UPnP(推荐)或工具端口扫描(备选) | Tailscale(UPnP)、Easytier(扫描) | 高风险,扫描模式易被判定为攻击 | | NAT4↔NAT4 | ❌ 可行性<10% | 双方同时扫描到对方动态端口(极难) | Easytier(不推荐) | 极高风险,易导致IP被封禁 | ## 五、补充:IPv6替代方案(最优解) 若双方网络支持IPv6(可通过[test-ipv6.com](https://test-ipv6.com/)检测),优先放弃NAT打洞,直接使用IPv6通信: 1. **核心优势**:IPv6为每个设备分配独立公网地址,无需NAT转换,直接通过IPv6地址建立连接,稳定性100%,延迟低于NAT打洞; 2. **实战步骤**: 1. 双方开启设备IPv6功能(电脑:设置-网络-属性,勾选IPv6;路由器:开启IPv6拨号,获取前缀); 2. 通过命令行获取自身IPv6地址(Windows:ipconfig;Linux:ifconfig); 3. 使用支持IPv6的工具(如Tailscale、SSH、FTP),直接输入对方IPv6地址建立连接,无需中转和打洞。 3. **注意事项**:部分运营商IPv6地址为动态分配(重启路由器会变化),可在路由器中设置“IPv6地址绑定”,固定设备的IPv6后缀。 ## 六、打洞核心规律与建议 1. **EasyNAT之间(Type1-3)**:打洞成功率高,优先使用Tailscale,操作简单且稳定,适合大多数个人/家庭场景; 2. **EasyNAT↔HardNAT**:优先尝试开启UPnP,其次使用Easytier,避免手动操作,减少风险; 3. **HardNAT之间(Type4+)**:放弃打洞,选择中转服务器或IPv6,既保证稳定性,又避免IP被封禁; 4. **实战优先级**:检测NAT类型 → 尝试EasyNAT打洞 → 开启UPnP重试 → 切换IPv6 → 使用中转服务器。
使用 mkcert 生成自签名证书,实现局域网 HTTPS 安全访问
## 痛点说明 局域网设备(测试机、NAS、开发服务器)无法直接使用公共 SSL 证书,浏览器持续报「不安全」警告,严重影响开发测试效率和安全验证。 ## 环境准备 - **操作系统**:Windows 10/11 - **必备工具**:mkcert(一款简单的自签名证书生成工具) > 提示:mkcert 工具可通过其官方 GitHub 仓库下载:https://github.com/FiloSottile/mkcert ### 验证安装 安装完成后,打开 PowerShell 验证安装: ```powershell # 验证安装 mkcert.exe --version > v1.4.4 ``` ## 四步实现局域网 HTTPS ### 步骤 1:安装本地信任根证书 以管理员身份运行 PowerShell,执行以下命令: ```powershell # 安装本地信任根证书 mkcert.exe -install ``` ✅ **作用**:创建本地证书颁发机构(CA),将根证书注入系统信任库,消除浏览器警告。 ### 步骤 2:生成服务器证书 替换为您的内网 IP 地址,执行以下命令: ```powershell # 替换为您的内网IP mkcert.exe 192.168.1.100 ``` ✅ **生成文件**: - 192.168.1.100.pem - 证书文件 - 192.168.1.100-key.pem - 私钥文件 > 提示:如果需要为多个域名或 IP 生成证书,可以用逗号分隔,例如: > `mkcert.exe 192.168.1.100 localhost litchi.local` ### 步骤 3:配置 Nginx (示例) 将生成的证书文件复制到 Nginx 配置目录,修改 Nginx 配置文件: ```nginx server { listen 443 ssl; server_name 192.168.1.100; ssl_certificate C:/certs/192.168.1.100.pem; ssl_certificate_key C:/certs/192.168.1.100-key.pem; # 基础 SSL 配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;'; ssl_prefer_server_ciphers on; location / { root html; index index.html; } } ``` ### 步骤 4:其他设备信任证书 局域网内的其他设备需要信任我们创建的根证书才能消除警告: ```powershell # 获取 CA 证书路径 mkcert.exe -CAROOT > C:/Users/YourUser/AppData/Local/mkcert ``` 将此目录下的 `rootCA.pem` 重命名为 `rootCA.crt` 发送给其他设备,并按照以下步骤安装: - **Windows**:双击 `rootCA.crt` → 安装证书 → 选择「受信任的根证书颁发机构」 ## 访问效果验证 访问 `https://192.168.1.100`: - ✅ 浏览器显示绿色安全锁 - ✅ 无证书警告提示 ## 工作原理总结 | 步骤 | 作用 | 跨设备同步 | |------|------|------------| | mkcert -install | 创建本地CA并信任 | 仅需一次 | | mkcert <IP> | 生成站点专用证书 | 每台服务器独立生成 | | 分发 rootCA.pem | 信任局域网CA | 每台客户端需安装 | 通过此方案: - 彻底解决局域网 HTTPS 警告问题 - 避免购买公网证书的开销 - 支持所有浏览器及移动设备访问 - 证书有效期长达 2 年(自动续期只需重新执行命令) > 注:本方案仅适用于开发和测试环境,生产环境仍需使用正规 CA 机构证书。
HCIP-VRRP+MSTP典型组网案例
<img src="https://pic.code-nav.cn/post_picture/1810917631972016129/xAiqIoXVD7GlJ9I4.webp" alt="image.png" width="100%" /> 1、IP地址配置 如图,四台PC配置IP地址192.168.x0.1,然后网关为192.168.x0.254 2、接下来对交换机SW3配置,SW3作为接入层交换机,命名为JR1 JR1: sy sysname JR1 vlan batch 10 20 30 40 //批量创建vlan int g0/0/1 //此处为对接入层-PC的接口进行VLAN 放行配置 port link-type access port default vlan 10 ...... int g0/0/4 port link-type access port default vlan 40 //接下来对接入层-汇聚层接口进行配置 int g0/0/10 port link-type trunk port trunk allowpass vlan 10 20 30 40 int g0/0/20 port link-type trunk port trunk allowpass vlan 10 20 30 40 qu stp mode mstp stp region-configuration region-name GBLXZDXZ instance 10 vlan 10 20 instacne 20 vlan 30 40 activie region-configuration qu stp enable 3、接下来对汇聚层交换机进行配置,汇聚层左边交换机为HJ1,右边为HJ2 HJ1: sy sy HJ1 vlan batch 10 20 30 40 int g0/0/10 port link-type trunk port trunk allow-pass vlan 10 20 30 40 //vlan 配置完成 //链路聚合配置 LACP int Eth-Trunk 1 //创建并进入链路聚合接口1 trunkpork g0/0/23 //将g0/0/23接口加入聚合组 trunkport g0/0/24 //将g0/0/24接口加入聚合组 port link-type trunk //对聚合口设置为trunk模式 port trunk allow-pass vlan 10 20 30 40 //放行vlan 10 20 30 40 //配置VRRP: int vlanif 10 //进入vlan接口 ip addr 192.168.10.251 24 //配置IP地址 vrrp vrid 10 virtual-ip 192.168.10.254 //配置虚拟网关 vrrp vrid 10 priority 120 //修改优先级为120 ...... int vlanif 40 //进入vlan接口 ip addr 192.168.40.251 24 //配置IP地址 vrrp vrid 40 virtual-ip 192.168.40.254 //配置虚拟网关 //配置MSTP,将vlan 10 20 映射到Instance10 vlan 30 40映射到Instance20 将Instance10 配置为HJ1的主根桥,HJ2的次根桥 stp mode mstp stp region-configuration region-name GBLXZDXZ instacne 10 vlan 10 20 instacne 20 vlan 30 40 actice region-configuration qu stp instance 10 root primary stp instance 20 root secondary stp enable HJ2: sy sy HJ2 vlan batch 10 20 30 40 int g0/0/20 port link-type trunk port trunk allow-pass vlan 10 20 30 40 //链路聚合配置 LACP int Eth-Trunk 1 //创建并进入链路聚合接口1 trunkpork g0/0/23 //将g0/0/23接口加入聚合组 trunkport g0/0/24 //将g0/0/24接口加入聚合组 port link-type trunk //对聚合口设置为trunk模式 port trunk allow-pass vlan 10 20 30 40 //放行vlan 10 20 30 40 //配置VRRP: int vlanif 10 //进入vlan接口 ip addr 192.168.10.252 24 //配置IP地址 vrrp vrid 10 virtual-ip 192.168.10.254 //配置虚拟网关 ...... int vlanif 40 //进入vlan接口 ip addr 192.168.40.252 24 //配置IP地址 vrrp vrid 40 virtual-ip 192.168.40.254 //配置虚拟网关 vrrp vrid 40 priority 120 //修改优先级为120 //配置MSTP,将vlan 10 20 映射到Instance10 vlan 30 40映射到Instance20 //将Instance10 配置为HJ1的主根桥,HJ2的次根桥 //将Instance20 配置为HJ2的主根桥,HJ1的此根桥 stp mode mstp stp region-configuration region-name GBLXZDXZ instacne 10 vlan 10 20 instacne 20 vlan 30 40 actice region-configuration qu stp instance 20 root primary stp instance 10 root secondary stp enable 以上配置全部完成 接下来检查 <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/cq4IxB9xOpUmvAXA.png" alt="image.png" width="572px" /> \ HJ1: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/DhO2oILHaNXwBrl7.png" alt="image.png" width="632px" /> HJ2: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/VrrOilIKnMLjFG62.png" alt="image.png" width="581px" /> 接下来进行连通性检查: PC1 ping 网关: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/JiJMiEYEmjXMcJ5K.png" alt="image.png" width="611px" /> \ PC1 ping PC2: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/TrauBGkMFnAHBHgd.png" alt="image.png" width="653px" />
HCIP-基础VRRP
实验拓扑图如下: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/aECWgx8d9CWqrIAb.webp" alt="image.png" width="542px" /> PC1 IP:192.168.1.1/24 网关为虚拟网关 192.168.1.254 在R1上配置: int g0/0/0 ip addr 192.168.1.253 24 vrrp vrid 1 virtual-ip 192.168.1.254 //此处为虚拟IP地址无需配置子网掩码 vrrp vrid priority 120 在R2上配置: int g0/0/0 ip addr 192.168.1.252 24 vrrp vrid 1 virthal-ip 192.168.1.254 以上 配置完成 R1第四条命令是设置优先级,Vrrp的优先级默认为100,越大越优先 设置完成之后查看: R1 <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/5QxXchnCln9N20Eh.webp" alt="image.png" width="571px" /> R2 <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/26wGZmDvIhjqIJ9j.webp" alt="image.png" width="661px" /> 实验结束
HCIP实验-三层交换机配置
实验拓扑图如下: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/0L9nGdU8zApydMCl.webp" alt="image.png" width="100%" /> 如图,先配置好IP地址,随后在SW1上进行配置 SW1: vlan batch 10 20 int e0/0/1 port link-type access port default vlan10 int e0/0/2 port link-type access port default vlan 20 int e0/0/3 port link-type trunk port trunk allow-pass vlan 10 20 在SW2: vlan batch 10 20 99 int g0/0/1 port link-type trunk port trunk alllo-pass vlan 10 20 int g0/0/2 port link-type access port default vlan 99 qu int vlanif 10 ip addr 192.168.10.254 24 int vlanif 20 ip addr 192.168.20.254 24 int vlanif 99 ip addr 192.168.99.1 24 qu ospf 1 router-id 2.2.2.2 area 0 net 0.0.0.0 0.0.0.0 qu 在R1上配置: ospf 1 router-id 1.1.1.1 area 0 net 0.0.0.0 0.0.0.0 到此所有配置结束,接下来是连通性验证 在SW1上查看 <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/wgqnwliDoWTbomok.png" alt="image.png" width="628px" /> \ SW2: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/ZlezPPOuvLn8LO9O.png" alt="image.png" width="635px" /> <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/c1umE84l2RNY4yNC.webp" alt="image.png" width="680px" /> \ R1: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/6uwIYHxMFxtR8Ccx.webp" alt="image.png" width="663px" /> 连通性验证: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/eav7lqpTihfSydyr.png" alt="image.png" width="571px" /> \ <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/cOgp0eJ657UuX2EX.png" alt="image.png" width="556px" /> \ <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/EgHF5KSZMeuIjBKM.png" alt="image.png" width="612px" /> ----------------------------------------------------------- 至此,本实验结束
HCIP实验-路由器子接口配置
实验拓扑图如下 <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/xZI83agxVw2eMD05.webp" alt="image.png" width="718px" /> 先对各个设备配置IP地址:IP地址如图 随后在交换机创建vlan vlan batch 10 20 int g0/0/2 port link-type access port default vlan 10 int g0/0/3 port link-type access port default vlan 20 int g0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 交换机配置完成 接下来对路由器进行配置 int g0/0/0.10 //进入子接口 dot1q termination vid 10 //设置放行vlan 这里理解为解掉vlan 10的标签 ip address 192.168.10.254 24 //设置IP地址,即网关 arp broadcast enable //开启arp转发功能,ensp模拟器默认是关闭的,必须手动打开,否则PC互相ping不通 此处重点 int g0/0/0.20 dot1q termination vid 20 ip addr192.168.20.254 24 arp broadcast enable 以上配置完成,进行验证 <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/xCvgoqsIrzFeH9c6.webp" alt="image.png" width="640px" /> \ <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/pZvCmVZQBJ4DAOik.png" alt="image.png" width="623px" /> <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/G0KysVRG9f643LDd.webp" alt="image.png" width="616px" /> \ 现在PC1与PC2通信: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/lDHNbrTQ0CejEvQh.png" alt="image.png" width="677px" /> --------------------------------------------------------------------------- 本次实验完成
HCIP实验-Access与Trunk类型接口的基础配置
实验拓扑图如下: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/0tuljr3QYuFLYzSi.webp" alt="image.png" width="100%" /> IP地址如上图,PC的网关留空 交换机命令配置: SW1: vlan batch 10 20 int g0/0/1 port link-type access port default vlan 10 int g0/0/2 port link-type access port default vlan 20 int g0/0/3 port link-type trunk port trunk allow-pass vlan 10 20 在SW1上创建VLAN10 VLAN20 然后将端口与VLAN绑定 随后在G0/0/3上允许VLAN10和20通行 SW2: vlan batch 10 20 int g0/0/2 port link-type access port default vlan 10 int g0/0/3 port link-type access port default vlan 20 int g0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 SW2同理创建并配置 在配置完成之后,在SW1上查看vlan信息: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/ebVlRdyErXWhl5hH.webp" alt="image.png" width="624px" /> 在SW2查看: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/qadynGfJiEdSlXzi.webp" alt="image.png" width="644px" /> 查看端口绑定的VLAN <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/E8NUXoqHFhbtoH0l.png" alt="image.png" width="583px" /> 至此本实验结束
HCIP实验-OSPF多区域配置
实验拓扑如下 <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/8wIGZyLas5PxaL80.webp" alt="image.png" width="100%" /> IP地址: PC1:172.16.1.2/24 PC2:172.16.2.2/24\ PC3:172.16.9.2/24\ PC4:172.16.10.2/24\ 不用对交换机做任何配置,启动即可\ 路由器与PC相连的接口配上网关地址\ R1 G0/0/1:172.16.1.254/24\ R1 G0/0/2:172.16.2.254/24\ R2 G0/0/1:172.16.9.254/24\ R3 G0/0/2:172.16.10.254/24\ 边界路由器接口即R1和R2的 G0/0/0口配置IP\ R1:172.16.0.1/30 R2:172.16.0.5/30 注意:此处IP地址的掩码为30位,Core的G0/0/0和R1的G0/0/0是一个网段,Core的G0/0/1和R2的G0/0/0是一个网段 如果分辨不明白,此处IP地址请换成别的IP段/24位掩码即可明白 搭建完成之后开始配置OSPF Core路由器: ospf 1 router-id 3.3.3.3 area 0 network 0.0.0.0 0.0.0.0 R1: ospf 1 router-id 1.1.1.1 area 1 network 172.16.1.0 0.0.0.255 network 172.16.2.0 0.0.0.255 qu area 0 network 172.16.0.0 0.0.0.3 R2: ospf 1 router-id 2.2.2.2 area 2 network 172.16.9.0 0.0.0.255 network 172.16.10.0 0.0.0.255 qu area 0 network 172.16.0.0 0.0.0.3 这里配置完R1和R2的Area1和Area2之后还需要配置Area0区域,所有区域都与Area0 区域相接 配置完成之后查看邻居表: Core: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/Z0zNdRRyWGhJ9cN4.webp" alt="image.png" width="641px" /> R1: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/FMKIiH3flDOhGmWv.png" alt="image.png" width="556px" /> R2: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/8kzhQDDOFiQCt5HH.png" alt="image.png" width="591px" /> 路由表: Core:  R1: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/XikEVlGsRns2nfID.webp" alt="image.png" width="659px" /> R2: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/2rynxKgvlpLRUd7O.webp" alt="image.png" width="659px" /> 对连通性进行验证: PC1 ping PC2 & PC3 <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/a9xNg1hTgUvn7F5W.webp" alt="image.png" width="640px" />
HCIP实验01-OSPF单区域配置
实验拓扑图如下: <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/32BsfsEuqdHqsmil.webp" alt="image.png" width="100%" /> IP地址: PC1:172.16.1.2/24\ PC2:172.16.2.2/24\ AR1 G0/0/0:172.16.2.254 24\ AR1 G0/0/1:172.16.1.254 24\ AR1 G0/0/2:172.16.12.1 24\ AR2 G0/0/0:172.16.12.2 24\ AR2 Loopback 0:172.16.255.2 第一步:配置各个设备、接口的IP地址,不会配置请私信或者自行百度。\ 第二步:在AR1、AR2上启动OSPF服务\ 1.AR1:命令 ospf 1 router-id 1.1.1.1 area 0 network 0.0.0.0 0.0.0.0 2.AR2:命令 ospf 1 router-id 2.2.2.2 area 0 network 0.0.0.0 0.0.0.0 到此配置已经完成,接下来进行验证,ping命令进行验证 <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/whWo01PQx6qlJUFU.png" alt="image.png" width="520px" /> \ <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/U7XRUKyHnrtQolFr.png" alt="image.png" width="533px" /> \ 查看邻居表 <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/AJP1iaQC6GhM15XB.png" alt="image.png" width="603px" /> \ 查看OSPF路由表 <img src="https://pic.code-nav.cn/post_picture/1810917631972016129/zduqmKxbQKawpBJr.png" alt="image.png" width="632px" /> \ 以上结果 网络通信无故障
HCIP数通-路由 04.OSPF DR&BDR
网络类型 |网络类型|接口类型|HELLO/DEAD|DR/BDR|主动建立邻居|产生32位主机路由| |---|---|---|---|---|---| |P2P|PPP/HDLC/Loopback|10/40|不选举|是|不产生| |BMA|以太网|10/40|选举|是|不产生| |NBMA|FR帧中继(链路以及淘汰)|30/120|选举|不能|不产生| |P2MP|None|30/120|不选举|是|产生| P2MP 部分互联 场景 MA网络中的问题 n*(n-1)/2和临接关系,管理复杂.\ 重复的LSA泛洪,造成资源浪费 解决方法:\ 在MA网络中选举DR:\ DR(Designated Router 指定路由器)负责在MA网络建立和维护临接关系并负责LSA的同步\ DR与其他所有路由器形成临接关系并交换链路状态信息,其他路由器之间不直接交换链路状态信息.\ 为了规避单点故障风险,通过选举BDR(Backup Designated Router 备份指定路由器),在DR失效时快速接管DR的工作\ 无论哪个路由器成为DR都无所谓,对拓扑或OSPF进程无影响 DR与BDR的选举规则:\ DR/BDR的选举是非抢占式的(选出来不会抢)\ DR/BDR的选举是基于接口的(DR与BDR是二层网络的概念)\ 接口的DR优先级越大越优先\ 接口的DR优先级相等时,Router ID越大越优先\ (二层比大,三层比小:大部分二层设备都是越大越优先,三层越小越优先) 当路由器的优先级设置为0后就不参与选举了\ 新加入的设备不能直接成为DR/BDR(重启OSPF进程也算新加入设备)\ MA网路才有DR BDR概念\ 接口下的概念(每一个二层网络,单独选举DR和BDR)\ DR必须有一个(是谁无所谓) BDR可以没有或有一个 其他的都叫DROther\ DR不抢占,选举后不发生变化,除非DR/BDR失效 DR优先级修改:进入接口下\ Int g0/0/0 \ Ospf dr-priority x(具体优先级的值)\ 查看DR/BDR命令:display OSPF interface\ 存在OSPF的Hello Packers包中 旧路由器加入(合并)\ 发出去的第一个报文携带了DR\ DR发生了抢占\ 如果HEllo包收到了携带DR和自己携带的DR不一样就出发选举 DR设备上发生更新: |||| |---|---|---| |DR|LSU|224.0.0.5| |BDR|ACK|224.0.0.6| |DROther|ACK|224.0.0.6| BDR设备上发生更新: |||| |---|---|---| |BDR|LUS|224.0.0.5| |DROther|ACK|224.0.0.6| |DR|ACK|224.0.0.5| DROther上发生更新: |||| |---|---|---| |DROther|LSU|224.0.0.6| |DR|LSU|224.0.0.5| |BDR|ACK|224.0.0.5| DROther 只用224.0.0.6\ DR和DROther 上面监控224.0.0.6这个地址\ 所有的OSPF设备监控224.0.0.5\ DROther只和DR交流,不理BDR
