基于PactTracer仿真平台,根据拓扑结构设计一个简单的企业网络

实验一:静态路由的部署与实施

Router0为某公司总部,Router1Router3是两个分部,主机PC0PC1所在的网段分别模拟两个分部中的办公网络。现需要总部与各个分部、分部与分部都能够通信,且分部之间在进行通信时,之间的直连链路为主用链路,通过总部的链路为备用链路

静态路由:需要网络管理员手动在路由器上配置路由信息;定义的路径是固定的,除非管理员手动修改,否则不会改变,即使网络拓扑结构发生变化;仅指定数据包从源到目的地的路径,需要额外配置回程路由以实现双向通信

浮动静态路由及负载均衡静态路由拓扑图

image-20250303155615281

image-20250303160307565

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
【Router0】
进入特权模式并开始配置
Router>enable
Router#configure terminal
配置Serial0/0/0接口
Router(config)#interface Serial0/0/0
分配IP地址和子网掩码
Router(config-if)#ip address 172.16.0.1 255.255.255.252
设置时钟速率,通常用于DCE端口,以提供时钟信号给DTE端口
Router(config-if)#clock rate 64000
激活接口
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface Serial0/0/1
Router(config-if)#ip address 172.16.0.5 255.255.255.252
Router(config-if)#clock rate 64000
Router(config-if)#no shutdown
Router(config-if)#exit
配置静态路由
将目的网络192.168.10.0/24的数据包发送到下一跳172.16.0.2
Router(config)#ip route 192.168.10.0 255.255.255.0 172.16.0.2
Router(config)#ip route 192.168.20.0 255.255.255.0 172.16.0.6
1
ip route <目标网络> <子网掩码> <下一跳地址> [管理距离]

最后这里的配置是确保Router0通过Router1和Router2来访问PC0和PC1。具体实现是通过PC0的默认网关可知Router1的FastEthernet0/1接口是PC0的直接网关,它通过该接口去访问网络,总体上Router0能够将数据包转发到Router1,从而通过Router1访问192.168.10.0/24网络;到PC1同理

值得注意的是,这里两条静态路由命令是单向通信的,若PC0要访问Router0则需要Router1上配置反向静态路由,但PC0和Router1之间是可以进行双向通信的,因为两者在同一网络端下

show ip route查看路由表

image-20250304140913793

1
2
3
4
5
6
7
8
9
10
11
12
13
14
【Router1】
Router>enable
Router#configure terminal
Router(config)#interface Serial0/0/0
Router(config-if)#ip address 172.16.0.9 255.255.255.252
Router(config-if)#clock rate 64000
Router(config-if)#no shut
Router(config-if)#exit
Router(config)#interface Serial0/0/1
Router(config-if)#ip address 172.16.0.2 255.255.255.252
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#ip route 192.168.20.0 255.255.255.0 172.16.0.10
Router(config)#ip route 192.168.20.0 255.255.255.0 172.16.0.1 120

这里有一个管理距离,管理距离用于衡量路由的可信度,值越小表示路由越可信。默认情况下,静态路由的管理距离是1

所以这两条命令的意思是,Router1会优先将数据交给Router2去转发到PC1,如果这条路失效那么我们选择由Router0去转发到PC1,至于到了Router0后又怎么转发,那就是我们刚才Router0配置的静态路由规则所决定的

1
2
3
4
5
6
7
8
9
10
11
12
13
【Router2】
Router>enable
Router#configure terminal
Router(config)#interface Serial0/0/0
Router(config-if)#ip address 172.16.0.10 255.255.255.252
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface Serial0/0/1
Router(config-if)#ip address 172.16.0.6 255.255.255.252
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#ip route 192.168.10.0 255.255.255.0 172.16.0.5 120
Router(config)#ip route 192.168.10.0 255.255.255.0 172.16.0.9

该路由器同理

负载均衡

负载均衡是一种将网络流量或工作负载分配到多个服务器、链路或其他资源的机制,旨在优化资源使用、最大化吞吐量、最小化响应时间,并避免单个资源的过载。通过负载均衡,系统可以提高可靠性、可用性和性能。

这里我们去掉管理距离120,使两条路由的管理距离相同,这样,路由器会将流量均衡分配到两条路径,实现负载均衡

实验二:OSPF动态路由的部署和实施

OSPF(Open Shortest Path First,开放式最短路径优先)是一种用于TCP/IP网络的动态路由协议,主要用于路由器和三层交换机之间确定数据包转发目的地。它是一种内部网关协议(IGP),适用于单一自治系统(AS)内的网络

OSPF动态路由通过路由协议自动学习和更新路由信息,不需要手动指定具体路径,能够自动适应网络的变化,当网络拓扑结构发生变化时,路由协议会自动更新路由表,适用于大型网络、网络拓扑结构复杂或变化频繁的环境;

而实验一中静态路由由网络管理员手动配置路由信息,需要明确指定数据包从源地址到目的地址的路径,路径是固定的,不会随着网络的变化而自动调整,适用于小型网络、网络边界控制以及安全需求高的网络

我们介入一个场景来理解

首先为了实现公司总部的网络互通,考虑到公司网络的扩展性,我们决定使用OSPF路由协议,由于目前的路由设备并不多(包括Switch0、Router0,Router1、Router2、Router5),我们就将所有的设备划分到区域0内,组成OSPF的骨干网。

使用OSPF路由协议比静态路由有以下优势:

  1. 动态适应性:OSPF能够自动适应网络拓扑的变化,当网络结构发生变化时,OSPF会自动更新路由表,而静态路由需要手动修改
  2. 快速收敛:OSPF在网络拓扑发生变化时能够快速收敛,确保最小的服务中断时间,这在动态网络环境中尤为重要
  3. 可扩展性:OSPF支持大规模网络的扩展,不受路由跳数限制,适合公司网络的未来扩展需求
  4. 避免路由环路:OSPF使用链路状态数据库和SPF算法,能够有效避免路由环路问题,确保网络的稳定性和可靠性(这是RIP协议所存在的问题)

相当于OSPF提供一种算法来解决路由规则的制定(利用 Dijkstra 的最短路径算法计算出到达每个网络的最短路径,也就是路由表中的内容)

⚠OSPF并不是单纯靠路径长短来制定规则,在下面的RIP&OSPF有所讲解

image-20250304155242814

1
2
3
4
5
6
7
8
9
【Switch0】
Switch(config)#interface loopback 0
Switch(config-if)#ip address 1.1.1.1 255.255.255.255
Switch(config-if)#exit
Switch(config)#router ospf 1(启动ospf进程,进程号为1)
Switch(config-router)#router-id 1.1.1.1
Switch(config-router)#network 172.16.1.0 0.0.0.3 area 0
(指定哪些网络接口参与OSPF协议,并将它们加入到区域0中。这里的172.16.1.0 0.0.0.3表示IP地址段172.16.1.0/30,即子网掩码为255.255.255.252)可以理解为绑定Switch0和Router0
Switch(config-router)#exit

Loopback虚拟配置接口:通常用于作为路由器的Router-ID,因为它始终处于Up状态,这确保了Router-ID的稳定性,即使物理接口出现故障,也不会影响OSPF邻居关系的建立和维护。OSPF为何需要Loopback接口

Router-ID:是一个32位值,用于唯一标识OSPF网络中的每个路由器,1.1.1.1是作为Router-ID使用的,不是一个需要被访问的真实IP地址

255.255.255.255:需要注意的是,在Loopback接口中,这里是为了确保该接口仅作为一个单一的主机地址,整个IP地址都是主机部分,使用/32掩码可以简化配置,提供一个稳定的标识符

配置VLAN接口

由于3560是三层交换机,因此我们使用VLAN接口来实现该接口的IP和子网掩码配置

1
2
3
4
5
6
7
8
9
10
11
12
13
【Switch0】
创建vlan10
Switch(config-if)#vlan 10
Switch(config-vlan)#exit
Switch(config)#interface FastEthernet0/12
配置端口模式
Switch(config-if)#switch mode access
把vlan10划分到端口中
Switch(config-if)#switch access vlan 10
Switch(config-if)#exit
Switch(config)#interface vlan 10
Switch(config-if)#ip add 172.16.1.1 255.255.255.252
Switch(config-if)#exit
1
2
3
4
5
6
7
8
9
10
【Router0】
Router(config)#interface loopback 0
Router(config-if)#ip address 2.2.2.2 255.255.255.255
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#router-id 2.2.2.2
Router(config-router)#network 172.16.1.0 0.0.0.3 area 0
Router(config-router)#network 172.16.1.4 0.0.0.3 area 0
Router(config-router)#network 172.16.1.8 0.0.0.3 area 0
Router(config-router)#exit
1
2
3
4
5
6
7
8
9
【Router1】
Router(config)#interface loopback 0
Router(config-if)#ip address 3.3.3.3 255.255.255.255
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#router-id 3.3.3.3
Router(config-router)#network 172.16.1.12 0.0.0.3 area 0
Router(config-router)#network 172.16.1.4 0.0.0.3 area 0
Router(config-router)#exit
1
2
3
4
5
6
7
8
9
【Router2】
Router(config)#interface loopback 0
Router(config-if)#ip address 4.4.4.4 255.255.255.255
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#router-id 4.4.4.4
Router(config-router)#network 172.16.1.8 0.0.0.3 area 0
Router(config-router)#network 172.16.1.12 0.0.0.3 area 0
Router(config-router)#network 172.16.1.24 0.0.0.3 area 0

接下来需要配置一个缺省路由

1
2
3
4
【Router2】
Router(config-router)#default-information originate
Router(config)#ip route 0.0.0.0 0.0.0.0 202.44.43.2
Router(config-router)#exit

这条命令配置了一条静态默认路由,指向IP地址为202.44.43.2的下一跳设备。这意味着当Router2收到目的地址不在其路由表中的数据包时,它将将这些数据包发送到202.44.43.2

1
2
3
4
5
6
7
8
【Router5】
Router(config)#interface loopback 0
Router(config-if)#ip address 5.5.5.5 255.255.255.255
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#router-id 5.5.5.5
Router(config-router)#network 172.16.1.24 0.0.0.3 area 0
Router(config-router)#exit

image-20250304222905358

实验三:RIP的规划与配置

在实现了公司总部的网络互通之后,我们接下来进行公司分部的网络互通的配置。

因为公司分部规模较小,且其扩展性不大,我们决定使用配置简单的RIP路由协议,也方便维护。

RIP 是一种基于距离向量的路由选择协议,它使用跳数(Hop Count)作为度量值来衡量到达目的地址的距离。直接相连的路由器跳数为 1。跳数最多为 15,超过则表示不可达

RIP 每隔30秒和相邻路由器交换自己的路由表,经过若干次交换之后,所有路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器地址。

RIP非常适合小型网络,几乎所有路由器都支持它,但是跳数有限,限制了网络的规模;

RIP网络收敛速度非常慢,当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器;

RIP不支持同一路由上的多条路径,这可能会产生更多的路由环路

RIP&OSPF

RIP是距离矢量协议,它认为经过最少路由器的路径是最佳路径,不考虑带宽、速度或路径拥塞等因素;

而OSPF是链路状态协议,OSPF使用开销(Cost)作为度量值,开销通常根据接口的带宽计算,带宽越高,开销越低。它综合考虑了速度、成本和路径拥塞等因素来选择最短路径

让我们回到实验中来,此次需要路由器2811(3台)、Switch2950T(1台)、PC机(2台)

image-20250305143303092

image-20250305143313715

1
2
3
4
5
6
7
【Router3】
Router(config)#router rip
Router(config-router)#no auto-summary
Router(config-router)#version 2
Router(config-router)#network 172.16.0.0
Router(config-router)#network 192.168.100.0
Router(config-router)#exit

no auto-summary:禁用自动汇总功能。主要针对有类网络边界,当我们启用汇总时,如果路由器连接了多个子网,并且这些子网属于同一个有类网络(如172.16.0.0/16),RIP会将它们汇总为一个有类网络地址(如172.16.0.0)向外通告

路由器连接了172.16.1.0/24172.16.2.0/24两个子网,如果启用了自动汇总,RIP会向外通告172.16.0.0/16,而不是具体的子网172.16.1.0/24172.16.2.0/24

若遇到不连续子网,自动汇总会导致路由信息丢失

网络A:172.16.1.0/24172.16.2.0/24 通过路由器R1连接

网络B:172.16.3.0/24172.16.4.0/24 通过路由器R2连接

如果R1和R2都启用了自动汇总,它们会向外通告172.16.0.0/16,这就会导致其他路由器无法区分172.16.1.0/24172.16.3.0/24,导致路由混乱或数据包无法正确转发

同时遇到子网划分不一致时,/24、/26,自动汇总也会导致路由信息不准确

version 2:这条命令将RIP版本设置为RIPv2RIPv2支持无类域间路由(CIDR)、可变长子网掩码(VLSM)以及组播更新(使用组播地址224.0.0.9),而RIPv1不支持这些功能。RIPv2RIPv1更适用于现代网络。

network 172.16.0.0:我们可以看到这里不像OSPF配置那样需要指定具体的子网掩码,这是因为RIP这种种传统的距离矢量路由协议,最初设计时是基于有类网络的,即有类网络地址会自动根据地址范围确定默认的子网掩码172.16.0.0/16,那我们根据接口表来看就很正常了

1
2
3
4
5
6
7
【Router4】
Router(config)#router rip
Router(config-router)#no auto-summary
Router(config-router)#version 2
Router(config-router)#network 172.16.0.0
Router(config-router)#network 192.168.100.0
Router(config-router)#exit
1
2
3
4
5
6
7
【Router5】
Router(config)#router rip
Router(config-router)#no auto-summary
Router(config-router)#version 2
Router(config-router)#network 172.16.0.0
Router(config-router)#passive-interface Serial0/0/0
Router(config-router)#exit

passive-interface Serial0/0/0:这个接口是与总部的Router2相连的,在实验二中我们知道总部使用的是OSPF路由协议,这显然与分部的RIP路由协议冲突,这两种路由协议不能直接交换路由信息;如果没有设置,这些RIP更新报文对Router2来说是无效的,会导致CPU的资源、带宽浪费

passive-interface命令用于指定某个接口为被动接口,在该接口上,路由器不会发送RIP协议的路由更新报文

但值得注意的是,两者之间仍然可以相互通信,因为他们对接的接口属于直连网络,属于同一个子网下

由于我们现在的实验是分开的,在整合时,你会看到Router5的路由表上存在RIP和OSPF两种路由规则

image-20250305160630364

这里依旧有一点和实验二不同的是,我们这里使用的是2950二层交换机,主要工作在OSI模型的第二层(数据链路层),通过MAC地址进行数据转发,也就不需要单独配置IP了

OSPF与RIP路由协议的重发布

在整合时,你会发现总部无法直接发送信息到分部的PC,这是因为两者使用的不同路由协议,我们要进行路由重发布的操作,否则双方网络无法学习彼此的路由条目

1
2
3
4
5
6
7
8
9
【Router5】
Router5(config)# router ospf 1
将RIP路由注入OSPF
Router5(config-router)# redistribute rip subnets
Router5(config-router)# exit
Router5(config)# router rip
将OSPF路由注入RIP(设置合理metric)
Router5(config-router)# redistribute ospf 1 metric 3
Router5(config-router)# exit

观察与Router5连接的路由器,协议已互相注入,此时就可以互相访问了

实验四:VLAN的规划与配置

公司总部园区网为了方便管理,将公司的各部门划分到不同的VLAN,并用二层、三层交换机将其连接起来,通过交换机实现不同公司内部不同部门的相互联系。

为了使VLAN间可以互相通信,我们使用三层交换机的方式进行,通过开启交换机的路由功能并配置vlanif接口实现三层互通。

在VLAN配置完成后,为了让员工电脑可以访问公司网络以及外部网络,我们需要将vlanif接口宣告进ospf协议中。

VLAN也就是虚拟局域网,这种技术可以把一个LAN划分成多个逻辑的VLAN,每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,而VLAN间则不能直接互通,不同部门业务也相互隔离

image-20250305222557069

image-20250305222609353

1
2
3
4
5
6
7
8
9
10
11
【Switch0】
Switch(config)#vlan 200
Switch(config-vlan)#exit
Switch(config)#interface FastEthernet0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 200
Switch(config-if)#exit
Switch(config)#interface FastEthernet0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 200
Switch(config-if)#exit

这里只有一点,配置VLAN分为Access端口和Trunk端口,前者多用于连接终端设备,仅允许一个VLAN的流量通过;后者主要用于交换机之间的连接,传输多个VLAN的流量。当然也不绝对,可以看到在前面配置F0/12,因为只有一个VLAN因此也用了Access端口

销售部,财务部,服务器同上,Switch1的VLAN配置同上

现在给两个交换机配置Trunk

1
2
3
4
5
6
7
8
9
10
11
【Switch0】
Switch(config)#interface FastEthernet0/10
Switch(config-if)#switchport trunk encap dot1q
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 200
Switch(config-if)#switchport trunk allowed vlan add 500
【Switch1】
Switch(config)#interface FastEthernet0/10
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 200
Switch(config-if)#switchport trunk allowed vlan add 500

switchport trunk encap dot1q:指定 Trunk 端口使用 802.1Q 封装协议(携带 VLAN 标签),但是Cisco 交换机默认是这个封装协议,所以不太清楚这个命令的意义

接着仅允许 VLAN 200 和 VLAN 500 通过 Trunk 链路

⚠这里也需要注意底层逻辑,事实上销售部和财务部依然可以访问服务器,VLAN300会将数据包通过交换机交给VLAN500的网关发出去,在经过Trunk链时是被打上了VLAN500的标签。如果确实需要限制访问,我们可以采用ACL(访问控制列表),禁止VLAN300和VLAN400到VLAN500的通信

思科交换机中没有 vlanif 命令,要实现不同VLAN之间的通信,要在VLAN端口上配置IP地址(这里是网关地址);在实验二中已经给出解决办法

接下来在Switch0启用路由协议,创建VLANIF虚拟接口,将VLANIF接口设置为员工电脑的默认网关实现不同VLAN之间的互通

VLANIF 虚拟接口(也称为 SVI,Switch Virtual Interface)是三层交换机或支持三层功能的交换机上的一个逻辑接口,用于实现 VLAN 间的路由 或为 VLAN 提供 网关功能

其为不同 VLAN 提供三层转发功能,使不同 VLAN 的设备可以互相通信;同时为 VLAN 内的设备提供默认网关,使它们能够访问其他网络;VLANIF 接口需要配置 IP 地址,该 IP 地址通常作为 VLAN 内设备的网关

1
2
3
4
5
6
7
8
9
10
11
【Switch0】
Switch(config)#ip routing(开启路由功能)
Switch(config)#interface vlanif 200
Switch(config-if)#ip add 192.168.2.254 255.255.255.0
Switch(config-if)#interface vlanif 300
Switch(config-if)#ip add 192.168.3.254 255.255.255.0
Switch(config-if)#interface vlanif 400
Switch(config-if)#ip add 192.168.4.254 255.255.255.0
Switch(config-if)#interface vlanif 500
Switch(config-if)#ip add 192.168.5.254 255.255.255.0
Switch(config-if)#exit

因此

1
2
3
4
5
6
7
8
9
10
11
12
13
【Switch0】
Switch(config)# interface Vlan 200
Switch(config-if)# ip address 192.168.2.254 255.255.255.0
Switch(config-if)# exit
Switch(config)# interface Vlan 300
Switch(config-if)# ip address 192.168.3.254 255.255.255.0
Switch(config-if)# exit
Switch(config)# interface Vlan 400
Switch(config-if)# ip address 192.168.4.254 255.255.255.0
Switch(config-if)# exit
Switch(config)# interface Vlan 500
Switch(config-if)# ip address 192.168.5.254 255.255.255.0
Switch(config-if)# exit

⚠这里需要注意,Switch1不需要单独给VLAN设置IP网关,这里是二层交换机和三层交换机相连,二层交换机的核心职责是VLAN划分和帧转发网关由三层交换机Switch0统一管理

例如,现在要发送信息从PC0到Server0192.168.5.1/24,PC0发现该IP地址不在同一子网,于是将数据包发送到网关192.168.2.254,也就是Switch0的VLAN200接口,查询路由表发现,VLAN500子网192.168.5.0/24直连,通过VLAN500接口192.168.5.254转发,数据包通过Trunk链(携带VLAN500标签)到达Switch1,由Switch1根据VLAN500成员端口转发至Server0

将VLAN加入到OSPF网络中

为了保证总部PC可以访问到分部PC,我们需要将VLAN加入到OSPF网络中

1
2
3
4
5
6
7
【Switch0】
Switch(config)#router ospf 1
Switch(config-router)#network 192.168.2.0 0.0.0.255 area 0
Switch(config-router)#network 192.168.3.0 0.0.0.255 area 0
Switch(config-router)#network 192.168.4.0 0.0.0.255 area 0
Switch(config-router)#network 192.168.5.0 0.0.0.255 area 0
Switch(config-router)#exit

实验五:路由策略

我们已经配置好了总部的ospf网络以及公司分部的rip网络,但是我们会发现,虽然总部和分部都配置好了路由协议,但是实现了各自的网络互通,并没有实现总部和分布的互通,原因是总部和分部之间使用了不同的路由协议

在大型的企业中,可能在同一网内使用到多种路由协议,为了实现多种路由协议的协同工作,路由器可以使用路由重分发(route redistribution)将其学习到的一种路由协议的路由通过另一种路由协议广播出去,这样网络的所有部分都可以连通了。为了实现重分发,路由器必须同时运行多种路由协议,这样,每种路由协议才可以取路由表中的所有或部分其他协议的路由来进行广播

在实验三中我们已经解决

实验六:动态NAT的配置

Router2为公司总部的出口路由器,公司内网都使用私网地址,为了实现公司内部员工可以访问外网,需要在路由器Router2上配置NAT。出口路由器使用静态默认路由指向运营商路由器。公司可以使用私有地址对他们的主机进行寻址,然后使用NAT访问公共的因特网。使用私有地址+NAT,可以对外部网络隐藏内部地址,因此增加了网络的保密性

NAT(Network Address Translation) 是一种用于将内部网络的私有IP地址转换为公共IP地址的技术,主要解决IPv4地址短缺问题。它使得局域网内的设备能够与外部互联网进行通信

当内部网络的设备需要访问外部互联网时,数据包会发送到NAT设备(通常是路由器);NAT设备将源IP地址从私有IP转换为公共IP,并记录这种转换关系,当响应数据包返回时,NAT设备会根据记录将目标IP地址转换回原来的私有IP,并将数据包转发给内部设备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
【Router2】
Router(config)#interface FastEthernet0/0
Router(config-if)#ip nat inside
Router(config-if)#interface FastEthernet0/1
Router(config-if)#ip nat inside
Router(config-if)#interface Serial0/0/0
Router(config-if)#ip nat inside
Router(config-if)#interface Serial0/0/1
Router(config-if)#ip nat outside
Router(config-if)#interface Serial0/1/0
Router(config-if)#ip nat inside
Router(config-if)#exit

Router(config)#access-list 1 permit 192.168.2.0 0.0.0.255
Router(config)#access-list 1 permit 192.168.3.0 0.0.0.255
Router(config)#access-list 1 permit 192.168.4.0 0.0.0.255
Router(config)#access-list 1 permit 192.168.5.0 0.0.0.255
Router(config)#access-list 1 permit 192.168.100.0 0.0.0.255
Router(config)#ip nat pool p1 202.44.43.4 202.44.43.254 netmask 255.255.255.0
Router(config)#ip nat inside source list 1 pool p1
1
2
【Router6】
Router(config)#ip route 202.44.43.0 255.255.255.0 202.44.43.1

ip nat inside:将该接口标记为NAT的“内部”接口,表示该接口连接的是内部网络(私有网络)

access-list 1 permit:创建一个标准访问控制列表(ACL),允许设定的网段的流量通过

ip nat pool p1 202.33.43.1 202.33.43.254 netmask 255.255.255.0:创建一个名为p1的NAT地址池,地址范围从202.33.43.1202.33.43.254,子网掩码为255.255.255.0,这个地址池将用于NAT转换

ip nat inside source list 1 pool p1:将ACL 1中定义的内部网络流量通过NAT地址池p1进行转换。这意味着内部网络的私有IP地址将被转换为地址池p1中的公共IP地址

而后需要在Router6中配一个静态回程路由

⚠显然这么做了以后,内网依旧是无法访问外网的,因为在202.44.43.0/30子网内,根本就无法与NAT池里面的IP进行通信,但是之前我们在实验二中配了一个缺省路由

1
2
3
4
【Router2】
Router(config-router)#default-information originate
Router(config)#ip route 0.0.0.0 0.0.0.0 202.44.43.2
Router(config-router)#exit

这样一来该默认路由就会将所有未知目的地的IP转发到运营商路由器中

当然如果我们只想让内部PC访问特定的外网IP,我们就需要在NAT路由器上配一个静态路由,最重要的是因为我们的NAT路由器本身已经属于OSPF网络的范畴,因此我们需要将静态路由注入到OSPF中,以供他学习

image-20250307151237313

1
2
3
4
【Router2】
Router(config)#ip route 47.103.3.0 255.255.255.0 202.44.43.2
Router(config)#router ospf 1
Router(config-router)#redistribute static subnets

以上我们采用的是动态NAT,他会从NAT池中选公网IP,当然我们也可以使用下面这种静态NAT,即一对一绑定

在动态NAT中如果过了超时时间,分配的外网IP就会发生变化。因此,看具体需求,以下绑定的固定公网IP可以使得外网Ping内网主机分配的外网IP

1
2
3
4
5
【Router2】
Router(config)#ip nat inside source static 192.168.2.1 202.44.43.4
Router(config)# access-list 100 permit icmp any host 202.44.43.4
Router(config)# interface Serial0/0/1
Router(config-if)# ip access-group 100 in