《Cisco计网实验》Notes

长文警告!!!

来源:【教辅视频】Cisco Packet Tracer视频教程

2023.8.8@Seymour0314

第一章、认识软件

1.1 实验

  • 一台二层交换机
  • 两台PC机
  • 直连线互联(连接 FastEthernet 口)
  • 配置PC0、PC1的 IP 分别为 192.168.1.2192.168.1.3
image-20230808140520077

image-20230808140546448 image-20230808140613869

1.2 测试

  • 打开PC0的cmd,ping PC1
  • 同理 PC1 ping PC0

image-20230808140913617 image-20230808140940635

1.3 说明

  • 二层交换机下同属一个广播域,PC0与PC1可以互相通信

第二、三章、交换机管理

2.1 原理

  • 交换机有两种管理方法

    • 带内管理

      通过Console 端口进行管理

    • 带外管理

      通过Telnet、拨号等方法远程登录进行管理

    第一次配置只能是带内管理。

交换机命令行模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
用户模式	Switch>
特权模式 Switch#
全局配置 Switch(config)#
端口模式 Switch(config-if)#

en 进入特权模式
conf t 进入全局配置
int fa 0/1 进入交换机端口

exit 退回上一级模式
end 退到全局模式
shutdown 关闭
no shutdown 开启

ip routing #开启三层交换机路由功能(#下)

show run 查看当前生效的配置信息(#下)
show vlan 查看vlan配置信息(#下)

show int vlan 1 查看vlan1的具体信息(#下)
show ip route 查看ip路由配置信息(#下)
show ip protocols 查看路由协议(#下)

speed 配置交换机端口参数,带宽
duplex 配置交换机端口参数,全双工

clock rate 64000 设置serial串口时钟频率(进入int se设置)

reload 重启

? 帮助信息
houstname 设备重新命名
  • 命令可以简写

    int fa 0/1interface fastEthernet 0/1的简写

    解释:

    • fa 0/1

      fa是fastEthernet线,最高100Mbps

      0是这个板卡上的0槽位

      1是这个槽位上的1端口

    Gi 0/1的G指Gigabit,千兆以太网接口。

  • Tab 键可以补全

2.2 实验

采用 Telnet 远程登录配置交换机

  • 配置交换机 IP 地址(计算机 IP 和交换机 IP 必须属于同一个网段)

    1
    2
    3
    Switch(config)#int vlan 1
    Switch(config-if)#ip address 192.168.1.1 255.255.255.0
    Switch(config-if)#no shutdown

    一般来说,二层交换机是不需要 IP 地址的,因为没有网络层功能。

    这里却配置了IP地址,是因为要通过PC机远程登陆交换机,所以需要设置 IP 地址。

  • 为 Telnet 用户配置用户名、登陆口令

    • 密码1:进入特权模式的密码

      1
      Switch(config)#enable password 123456
    • 密码2:console口连接、Telnet远程登录等的密码

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      Switch(config)#line console 0
      Switch(config-line)#password 123abc
      Switch(config-line)#login

      Switch(config)#line vty 0 4
      Switch(config-line)#password 123abc
      Switch(config-line)#login

      配置好了之后,可以查看一下
      Switch#show run
  • 实验步骤

    • 一台交换机2960

    • 一台PC机

    • Consle线连接(PC机-RS232口、交换机-Console口)

    • 直连线(fastEthernet口)

    • 打开PC 终端,是Switch 的配置终端

    • 配置 Switch IP地址为192.168.1.1

    • 配置特权模式密码、配置Telent远程登录密码

    image-20230808145419593 image-20230808145358929 image-20230808145451238

image-20230808145708527 image-20230808145734877

2.3 测试

  • 配置PC机自己的 IP 在同一个网段下

    此时已经可以吧Console线去掉了,不需要了。

  • ping 交换机测试

  • telnet登陆测试

    登陆密码是前面设置的abc123

    特权模式密码是前面设置的123456

    输入密码时,会看不到输入,但是实际上输入了

image-20230808145935899 image-20230808150049471

第四章、交换机VLAN划分

4.1 原理

  • VLAN

    Virtual LAN,虚拟局域网

  • 通过二层交换机的VLAN设置,使得同一物理区域的PC机,属于不同的逻辑区域,隔离广播域、冲突域。

    同一VLAN下的PC可以相互通信,不同VLAN下的PC不能直接通信。

    不同VLAN下的PC的通信需要经过三层交换机,后面介绍,这里只做二层交换机实验。

  • 划分VLAN的两种方法

    • Port VLAN

      交换机的同一端口下的PC只能属于同一个VALN

    • Tag VLAN

      遵循 IEEE802.1q 协议标准,数据帧内添加4字节的802.1q标签信息,用于标识该数据帧属于哪个VLAN,便于对端交换机接收到后进行过滤。

交换机的端口类型,可以分为以下两种:

  • (1)访问链接(Access Link)

    访问链接,指的是“只属于一个VLAN,且仅向该VLAN转发数据帧”的端口。在大多数情况下,访问链接所连的是客户机。

    通常设置VLAN的顺序是:(1)生成VLAN(2)设定访问链接(决定各端口属于哪一个VLAN)

    设定访问链接的手法,可以是事先固定的、也可以是根据所连的计算机而动态改变设定。

    • 前者被称为“静态VLAN”

      静态VLAN又被称为基于端口的VLAN(PortBased VLAN)。

      顾名思义,就是明确指定各端口属于哪个VLAN的设定方法。

    • 后者自然就是“动态VLAN”

      动态VLAN则是根据每个端口所连的计算机,随时改变端口所属的VLAN。

      分为3类:(1)基于MAC地址的VLAN(MAC Based VLAN)(2)基于子网的VLAN(Subnet Based VLAN)(3)基于用户的VLAN(User Based VLAN)

      image-20230809002315109

      其间的差异,主要在于根据OSI参照模型哪一层的信息决定端口所属的VLAN。

  • (2)汇聚链接(Trunk Link)

    汇聚链接(Trunk Link)指的是能够转发多个不同VLAN的通信的端口。

    在交换机的汇聚链接上,可以通过对数据帧附加VLAN信息,构建跨越多台交换机的VLAN。

    附加VLAN信息的方法,最具有代表性的有:

    • IEEE 802.1Q

      俗称“Dot One Q”,是经过IEEE认证的对数据帧附加VLAN识别信息的协议。

    • ISL

      Cisco产品支持的一种与IEEE 802.1Q类似的、用于在汇聚链路上附加VLAN信息的协议。

    另外,汇聚链路上流通着多个VLAN的数据,自然负载较重。

    因此,在设定汇聚链接时,有一个前提就是必须支持100Mbps以上的传输速度。

4.2 实验

  • 两台交换机2960
  • 四台PC机
  • 直连线连接(fastEthernet,交换机之间连fa0/24)
image-20230808153231479
  • 配置PC机IP地址为192.168.1.1192.168.1.4,不用设置网关。

  • 测试ping

    从PC0去ping其他所有PC,都是能通的。

    也就是说,同属于一个LAN。

    image-20230808153409161
  • 交换机划分VLAN

    打开Switch-CLI窗口,划分vlan如下:

    创建vlan2、vlan3,把端口划分进对应vlan,交换机之间设置trunk模式。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Switch>en
    Switch#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Switch(config)#vlan 2
    Switch(config-vlan)#exit
    Switch(config)#vlan 3
    Switch(config-vlan)#exit
    Switch(config)#int fa 0/1
    Switch(config-if)#switchport access vlan 2
    Switch(config-if)#exit
    Switch(config)#int fa 0/2
    Switch(config-if)#switchport access vlan 3
    Switch(config-if)#exit
    Switch(config)#int fa 0/24
    Switch(config-if)#switchport mode trunk
  • 两个交换机都操作(完全相同操作)

    show vlan查看vlan设置

    image-20230808154004077 image-20230808154109397

4.3 测试

  • 实验过程中已经测过一次

    PC0到其他所有PC都能通

  • 现在重新测试PC0到其他所有PC

    • PC0属于vlan 2
    • 只能ping通同属于vlan 2 的PC2
    • 其他ping 不通
  • 换一个,PC1同理只能ping通 PC3

image-20230808155142189 image-20230808155034124

第五章、三层交换机实现VLAN间路由

详细资料:

5.1 原理

  • VLAN是广播域。

    而通常两个广播域之间由路由器连接,广播域之间来往的数据包都是由路由器中继的。

    因此,VLAN间的通信也需要路由器提供中继服务,这被称作“VLAN间路由”。

    VLAN间路由,可以使用普通的路由器,也可以使用三层交换机。

  • 三层交换机具备网络层功能,能够实现 VLAN 间的访问。

    利用三层交换机的路由功能,通过识别数据包的 IP 地址,查找路由表并选路转发。

  • 三层交换机给接口配置 IP 地址,采用 SVI(交换机虚拟接口)的方式实现 VLAN 间互联。

    SVI 是指为交换机中的 VLAN 创建虚拟接口,并配置 IP 地址。

VLAN间路由原理

  • 两台计算机即使连接在同一台交换机上,只要所属的VLAN不同就无法直接通信。

    为什么?

    在LAN内的通信,必须在数据帧头中指定通信目标的MAC地址。而为了获取MAC地址,TCP/IP协议下使用的是ARP。ARP解析MAC地址的方法,则是通过广播。计算机分属不同的VLAN,也就意味着分属不同的广播域,自然收不到彼此的广播报文。

  • 为了能够在VLAN间通信,需要利用OSI参照模型中更高一层——网络层的信息(IP地址)来进行路由

  • 方法

    先将用于连接路由器的交换机端口设为汇聚链接(Trunk Link),而路由器上的端口也必须支持汇聚链路。双方用于汇聚链路的协议自然也必须相同。接着在路由器上定义对应各个VLAN的“子接口”(Sub Interface)。

    尽管实际路由器与交换机连接的物理端口只有一个,但在理论上我们可以把它分割为多个虚拟端口。

    image-20230809003629996

    交换机通过对各端口所连计算机MAC地址的学习,生成如下的MAC地址列表。

    image-20230809003651516

    分析:

    • 同一VLAN内的通信:A --> B

      交换机查VLAN1下的MAC表,直接发给了B

      image-20230809003844623
    • 不同VLAN间的通信:A --> C

      image-20230809003956228

      计算机A从通信目标的IP地址(192.168.2.1)得出C与本机不属于同一个网段。

      因此会向设定的默认网关(DefaultGateway,GW)转发数据帧。在发送数据帧前,需要先用ARP获取路由器的MAC地址。

      得到路由器的MAC地址R后,接下来就是按图中所示的步骤发送往C去的数据帧。①的数据帧中,目标MAC地址是路由器的地址R、但内含的目标IP地址仍是最终要通信的对象C的地址。

      交换机在端口1上收到①的数据帧后,检索MAC地址列表中与端口1同属一个VLAN的表项。由于汇聚链路会被看作属于所有的VLAN,因此这时交换机的端口6也属于被参照对象。这样交换机就知道往MAC地址R发送数据帧,需要经过端口6转发。

      从端口6发送数据帧时,由于它是汇聚链接,因此会被附加上VLAN识别信息。由于原先是来自红色VLAN的数据帧,因此如图中②所示,会被加上红色VLAN的识别信息后进入汇聚链路。路由器收到②的数据帧后,确认其VLAN识别信息,由于它是属于红色VLAN的数据帧,因此交由负责红色VLAN的子接口接收。

      接着,根据路由器内部的路由表,判断该向哪里中继。

      由于目标网络192.168.2.0/24是蓝色VLAN,,且该网络通过子接口与路由器直连,因此只要从负责蓝色VLAN的子接口转发就可以了。这时,数据帧的目标MAC地址被改写成计算机C的目标地址;并且由于需要经过汇聚链路转发,因此被附加了属于蓝色VLAN的识别信息。这就是图中③的数据帧。

      交换机收到③的数据帧后,根据VLAN标识信息从MAC地址列表中检索属于蓝色VLAN的表项。由于通信目标——计算机C连接在端口3上、且端口3为普通的访问链接,因此交换机会将数据帧去除VLAN识别信息后(数据帧④)转发给端口3,最终计算机C才能成功地收到这个数据帧。

      注:进行VLAN间通信时,即使通信双方都连接在同一台交换机上,也必须经过:“发送方——交换机——路由器——交换机——接收方”这样一个流程。

路由器与交换机

  • 路由器,则基本上是基于软件处理的。

  • 三层交换机,本质上就是“有第三层路由功能的(二层)交换机”。

    与传统的路由器相比,可以实现高速路由。

    并且,路由与交换模块是汇聚链接的,由于是内部连接,可以确保相当大的带宽。

    VLAN接口,是用于各VLAN收发数据的接口。

    (注:在Cisco的Catalyst系列交换机上,VLAN Interface被称为SVI——Switched Virtual Interface)

image-20230809004858899 image-20230809005057754

image-20230809005359698
  • 既然三层交换机能够提供比传统型路由器更为高速的路由处理,那么网络中还有使用路由器的必要吗?

    使用路由器的必要性,主要表现在以下几个方面:

    (1)用于与WAN连接

    (2)保证网络安全

    (3)支持除TCP/IP以外的异构网络架构

  • 下面让我们来看一个路由器和交换机搭配构建LAN的实例。

    image-20230809010007772

    利用在各楼层配置的二层交换机定义VLAN,连接TCP/IP客户计算机。各楼层间的VLAN间通信,利用三层交换机的高速路由加以实现。如果网络环境要求高可靠性,还可以考虑冗余配置三层交换机。

    与WAN的连接,则通过带有各种网络接口的路由器进行。并且,通过路由器的数据包过滤和VPN等功能实现网络安全。此外,使用路由器还能支持Novell Netware等TCP/IP之外的网络。

    只有在充分掌握了二层、三层交换机以及传统路由器的基础上,才能做到物竞其用,构筑出高效率、高性价比的网络。

  • 例:分析下面的网络

    image-20230809011747934

5.2 实验

  • 三层交换机3560一台
  • 二层交换机2960一台
  • PC机三台
  • 直连线连接
  • 设置PC机 IP 和网关
image-20230808184117306
  • 配置二层交换机的vlan2、vlan3并连接到对应接口
  • 配置二层交换机trunk口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Switch>en
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 2
Switch(config-vlan)#exit
Switch(config)#vlan 3
Switch(config-vlan)#exit
Switch(config)#int fa 0/2
Switch(config-if)#switchport access vlan 2
Switch(config-if)#exit
Switch(config)#int fa 0/3
Switch(config-if)#switchport access vlan 3
Switch(config-if)#exit
Switch(config)#int fa 0/1
Switch(config-if)#switchport mode trunk
image-20230808190553126
  • 配置三层交换机

    创建vlan2、vlan3,连接vlan下的PC机

    创建vlan2、vlan3的SVI,配置 IP 地址,并开启

    开启三层交换机的路由功能,开始工作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Switch>en
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 2
Switch(config-vlan)#exit
Switch(config)#vlan 3
Switch(config-vlan)#exit
Switch(config)#int fa 0/2
Switch(config-if)#switchport access vlan 2
Switch(config-if)#exit

Switch(config)#int vlan 2
Switch(config-if)#ip address 192.168.1.1 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#int vlan 3
Switch(config-if)#ip address 192.168.2.1 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit

Switch(config)#ip routing #开启三层交换机路由功能
Switch(config)#end

Switch#show ip route #查看路由配置
image-20230808190347880

5.3 测试

  • 由PC0 去ping其他主机,均能通
  • 由PC1 去ping其他主机,均能通
  • 由PC2 去ping其他主机,均能通

image-20230808190749565 image-20230808190834265

image-20230808191018147

第六章、快速生成树RSTP

6.1 原理

  • 生成树协议(spanning-tree)

    作用是在交换网络中提供冗余备份链路,并且解决交换网络中的环路问题。

  • 生成树协议是利用SPA算法,在存在交换环路的网络中生成一个没有环路的树形网络。

    运用该算法将交换网络的冗余备份链路从逻辑上断开,当主链路出现故障时,能够自动的切换到备份链路,保证数据的正常转发。

  • 生成树协议版本

    • STP
    • RSTP(快速生成树协议)
    • MSTP(多生成树协议)
  • 生成树协议特点

    收敛时间长,从主要链路出现故障,到切换至备份链路需要50秒的时间。

    快速生成树协议在生成树协议的基础上,增加了两种端口角色:替换端口、备份端口,分别作为根端口和指定端口的冗余端口。

    当根端口或指定端口出现故障时,冗余端口不需要经过50秒的收敛时间,可以直接切换到替换端口或备份端口,从而实现RSTP的小于1秒的快速收敛。

6.2 实验

  • 二层交换机2960两台
  • PC机两台
  • 直连线连接(二层交换机之间连两次)
  • 设置PC机 IP 地址
image-20230809020343067
  • 二层交换机配置

    • 划分vlan10进对应端口
    • 把汇聚端口的一组端口,设置为trunk模式
    • 打开spanning-tree的RSTP协议
    • 查看spanning-tree状态

    两台二层交换机一样的设置。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Switch>en
    Switch#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Switch(config)#int fa 0/10
    Switch(config-if)#switchport access vlan 10
    % Access VLAN does not exist. Creating vlan 10
    Switch(config-if)#exit
    Switch(config)#int range fa 0/1 - 2
    Switch(config-if-range)#switchport mode trunk
    Switch(config-if-range)#exit
    Switch(config)#spanning-tree mode rapid-pvst
    Switch(config)#end
    Switch#show spanning-tree

    image-20230809020226590 image-20230809020325914

6.3 测试

  • 可以看到上面的spanning-tree的状态

    目前是S0的Fa 0/2是Block堵塞状态,所以说,并不会出现环路,网络通信正常。

  • 我们让PC0去不停的ping PC1

    在此期间,把S1原来用来通信的fa 0/1给关闭shutdown,

    那么S1只能使用fa 0/2通信了,而对应的S0必须把原来堵塞的fa 0/2给打开。

    我们测试一下,看看是不是很快就会自动打开了

    (通过看PC0 不停ping PC1的过程中,有没有丢包)

    1
    2
    3
    4
    5
    6
    7
    # PC0打开cmd
    C:\>ping -t 192.168.1.2

    # 然后S1断开fa 0/1
    Switch#conf t
    Switch(config)#int fa 0/1
    Switch(config-if)#shutdown
    image-20230809020946725
  • 可以看到,整个过程中,都没有丢包。

    在拓扑图也可以发现,S0与S1之间的路线变了(绿色、红色点变了),说明确实更换了路线。

    可见,快速生成树协议切换速度很快,快到甚至不会丢包(小于1秒)。

第七章、路由器的基本配置

7.1 原理

  • 管理,与交换机一样

    • 带内管理,Console 端口
    • 带外管理,telent 远程连接
  • 路由器与三层交换机

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    三层交换机配置端口IP:创建vlan,划分端口进vlan,再进入int vlan配置网关IP,开启端口
    (且需要ip routing 命令打开三层交换机的路由功能)
    ip routing
    vlan 10
    exit
    int fa 0/1
    switch access vlan 10
    exit
    int vlan 10
    ip address 192.168.1.1 255.255.255.0
    no shutdown

    路由器配置端口IP:直接进入对应端口,开启物理端口,配置端口IP作为网关
    int fa 0/0
    no shutdown
    ip address 192.168.1.1 255.255.255.0

路由器命令行模式

1
2
3
4
5
6
# 与交换机一样
# 还有
router rip 配置RIP协议信息
router ospf 配置OSPF协议信息
show ip route 查看路由信息(#下)
show ip protocols 查看路由协议(#下)

7.2 实验

  • 路由器2811一台

  • PC机一台

  • console线(蓝色线)连接PC-RS232口、路由器-console口

  • 交叉线(黑色虚线)连接PC-fa口、路由器fa口

    • PC机与交换机直接相连,是用直连线(黑色实线)

    • PC机与路由器直接相连,是用交叉线(黑色虚线)

  • 设置PC机IP配置

    IPv4:192.168.1.2

    子网掩码:255.255.255.0

    网关:192.168.1.1

image-20230809131005748 image-20230809131026999

  • 路由器配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Router>en
    Router#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#int fa 0/0
    Router(config-if)#ip address 192.168.1.1 255.255.255.0
    Router(config-if)#no shutdown

    查看配置情况
    Router(config-if)#end
    Router#show running-config
    看到有以下的内容即可
    interface FastEthernet0/0
    ip address 192.168.1.1 255.255.255.0
    duplex auto
    speed auto

    配置远程登录密码
    Router#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#enable password 123456 设置特权模式密码
    Router(config)#line vty 0 4 设置远程登录密码
    Router(config-line)#password 123abc
    Router(config-line)#login
    Router(config-line)#exit

7.3 测试

  • 可以把console线(蓝色)取消了

  • 先在PC机cmd窗口ping网关192.168.1.1

    能ping通

  • 再尝试远程登陆路由器

    telent 192.168.1.1

    登陆密码是刚刚设置的123abc

    特权模式密码是刚刚设置的123456

image-20230809132109645

第八章、路由器单臂路由

8.1 原理

  • 效果:可以实现原来不同VLAN之间的互联互通。

  • 单臂路由(router-on-a-stick)

    是指在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不存在真正物理接口)的方式,实现原来相互隔离的不同VLAN之间的互联互通。

  • 单臂路由子接口

    路由器的物理接口可以被划分成多个逻辑接口,这些被划分后的逻辑接口被形象的称为子接口。值得注意的是这些逻辑子接口不能被单独的开启或关闭,也就是说,当物理接口被开启或关闭时,所有的该接口的子接口也随之被开启或关闭。

  • 其实本质上,和前面的第五章原理类似

    第五章是三层交换机的vlan间通信,通过虚拟接口SVI实现。

    这里是路由器的vlan间通信,通过单臂路由实现。

    两者都是通过第三层网络层实现的,只是实现细节不同,前面是通过vlan出现虚拟端口,这里是.1.2实现子端口。

8.2 实验

  • 路由器2811一台

  • 二层交换机2960一台

  • PC机两台

  • 直连线连接PC机、二层交换机

  • 交叉线连接二层交换机、路由器

    image-20230809170922603
  • 配置主机的IP

    image-20230809165608173 image-20230809165640405

  • 二层交换机划分vlan、设置trunk

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Switch>en
    Switch#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Switch(config)#vlan 10
    Switch(config-vlan)#exit
    Switch(config)#vlan 20
    Switch(config-vlan)#exit
    Switch(config)#int fa 0/2
    Switch(config-if)#switchport access vlan 10
    Switch(config-if)#exit
    Switch(config)#int fa 0/3
    Switch(config-if)#switchport access vlan 20
    Switch(config-if)#exit
    Switch(config)#int fa 0/1
    Switch(config-if)#switchport mode trunk
    Switch(config-if)#exit
    Switch(config)#end

    Switch#show running-config
  • 路由器开启物理端口,打开子端口、封装协议、配置 IP

    这里是进行vlan间路由的,所以打开子端口设置IP,

    实际上,本身可以直接对 int fa 0/0进行ip address设置的。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Router>en
    Router#conf t
    Router(config)#int fa 0/0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int fa 0/0.1
    Router(config-subif)#encapsulation dot1Q 10
    Router(config-subif)#ip address 192.168.1.1 255.255.255.0
    Router(config-subif)#exit
    Router(config)#int fa 0/0.2
    Router(config-subif)#encapsulation dot1Q 20
    Router(config-subif)#ip address 192.168.2.1 255.255.255.0
    Router(config-subif)#exit
    Router(config)#end
    查看配置
    Router#show running-config
    看到有下面的内容就可以了
    interface FastEthernet0/0
    no ip address
    duplex auto
    speed auto
    !
    interface FastEthernet0/0.1
    encapsulation dot1Q 10
    ip address 192.168.1.1 255.255.255.0
    !
    interface FastEthernet0/0.2
    encapsulation dot1Q 20
    ip address 192.168.2.1 255.255.255.0
    !

8.3 测试

  • 测试两个PC机相互ping,均能通。

    我们先ping了网关,然后ping对方主机,发现ping对方主机的第一次是丢包的。

    这是正常的,因为第一次路由器的路由表中还没有记录去往对方主机的路由,会丢包。

    而之后PC1再来ping PC0时,为什么没有丢包呢?因为路由器在前面已经记录了路由,会自动学习。

    image-20230809171054136 image-20230809171130835

第九章、路由器静态路由

详细来源:静态路由(Static Routing)

9.1 原理

  • 路由表的形成

    • 直连路由

      本地接口配置IP地址和子网掩码,端口开启后,形成的路由

    • 非直连路由

      不是本地接口配置IP地址和子网掩码,接口开启后,形成的路由

      对于非直连路由的学习,有两种方式:

      • 静态路由(管理员手动添加)
      • 动态路由(路由器通过路由协议自动学习)
  • 静态路由的特点
    管理员添加的路由的传输方向是单向的

    • 优点:配置灵活,管理员手工配置,节省链路开销

    • 缺点:当拓扑发生改变时,需要管理员去每台路由器上修改路由配置

    建议五条以内的非直连路由用静态路由协议,五条以上的用动态路由协议
    静态路由协议只能用于小规模的企业网络,大型企业网络用的是动态路由协议

案例剖析

案例1(静态路由配置)
image-20230809180642495

图中,路由器R1和R2通过接口0和接口1所配置的IP地址和子网掩码,可自动得到每个接口所在的网络。同时,接口与网络直连,属于直接交付。R1,R2最基本的路由表如下表所示。

image-20230809180709479 image-20230809180722817

假设网络子网1中的主机A向子网3中的主机B发送数据报,从图中可以看出,数据报的转发顺序为:主机AR1接口0 R1接口1 R2接口0 R2接口1 主机B。

可是R1 现有的路由表中并没有关于子网3的路由条目,即R1并不知道目的网络的存在。因此,我们可以给路由器R1添加一条到达子网3的路由条目,如下表所示。

这样,子网1中的主机就可以将数据报发送至子网3的主机。

同理,若想子网3中的主机能向子网1中的主机发送数据报,则路由器R2的路由表应配置为如下所示。

image-20230809180827358 image-20230809180858227

案例2(默认路由配置)
image-20230809181104776

假设子网1中的主机A向因特网发送数据报,从图中可以看出,数据报的转发顺序为:主机AR1接口0 R1接口1 R2接口0 R2接口3 因特网的某个主机。

正如案例1中总结,如果我们在路由器R1中逐个添加通往因特网的路由条目,一方面不符合实际需求,另一方面会使得路由器的路由表非常庞大,降低查表转发速度,因此我们可以通过添加默认路由解决这一问题。

默认路由条目用于替代具有相同下一跳的不同目的网络的路由条目,默认路由条目的目的网络为0.0.0.0,地址掩码为0.0.0.0,因此R1的路由表可配置为如下所示。

image-20230809181142879
  • 我们可以发现如果我们从子网1发送数据报到子网3,数据报既可以走目的网络为192.168.2.0/24的路由条目,也可以走目的网络为0.0.0.0/0的默认路由条目,那数据报到底会走哪一条路由条目呢?

    由于192.168.2.0/24的网络前缀更长,所以路由也就更具体。而默认路由的网络前缀较短,路由也就更模糊, 因此当路由器查表转发IP数据报时,若有多条路由条目可选,通常会采用最长前缀匹配原则,选择目的网络前缀最长的那条路由条目进行转发 。所以如果子网1的主机向子网3的主机发送数据报,会走192.168.2.0/24这一路由条目。

  • 路由环路问题的解决方案?

    • 静态路由配置错误

      为了防止IP数据报在路由环路中永久兜圈,在 IP数据报首部中设置了生存时间TTL字段,数据报每进入一个路由器,TTL字段的值便会减1,若TTL的值不为0,则路由器继续转发该IP数据报,否则便丢弃这个IP数据报。

    • 聚合了不存在网络

      所谓聚合网络,就是将若干个网络的共同前缀保持不变,其余位取0,同时将相同前缀的个数写在斜线后面,如下图所示。

      image-20230809181711255

      我们可以在路由表中用192.168.0.0/22表示192.168.0.0/24,192.168.1.0/24,192.168.2.0/24以及192.168.3.0/24四个网络。

      我们可以在路由表中针对不存在的网络添加黑洞路由来解决上述问题,黑洞路由的下一跳为null0,这是路由器内部的虚拟接口,IP数据报进入后便会被自动丢弃。 我们可以将路由器R2的路由表设置为如下所示:

      image-20230809181819953

      若按上表配置,当路由器R2向一个不存在的子网(192.168.3.0/24)发送数据报,路由器会根据最长前缀匹配原则选择目的网络为192.168.3.0/24的路由条目,该条目的下一跳为虚拟接口null0,这样,该IP数据报便会被快速丢弃。

    • 网络故障

      我们可以针对故障的网络(192.168.1.0/24)添加黑洞路由。经过一段时间后,路由器R1的0号接口网络恢复正常,R1又自动得到了192.168.1.0/24的直连路由条目, 则我们先前设置的黑洞路由会自动失效。

9.2 实验

搭建拓扑

  • 路由器Router-PT两台
  • 二层交换机2960两台
  • PC机两台
  • 直连线(黑色直线Copper Straight-Through)连接PC机、二层交换机(Fa口)
  • 交叉线(黑色虚线Copper Cross-Over)连接二层交换机、路由器(Fa口)
  • 串口线(红色带钟Serial DCE)连接两台路由器(Serial口)
image-20230809190642907

配置IP

  • 配置主机IP

    image-20230809184722567 image-20230809184748606

  • 二层交换机不用配置

  • 路由器配置

    开启fa端口,配置 IP

    开启se端口,配置IP,设置时钟

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Router>en
    Router#conf t
    Router(config)#int fa 0/0
    Router(config-if)#no shutdown
    Router(config-if)#ip address 192.168.1.1 255.255.255.0
    Router(config-if)#exit
    Router(config)#int se 2/0
    Router(config-if)#no shutdown
    Router(config-if)#ip address 192.168.3.1 255.255.255.0
    Router(config-if)#clock rate 64000
    Router(config-if)#exit
    Router(config)#end

    Router#show run
    看到有以下内容即可
    interface FastEthernet0/0
    ip address 192.168.1.1 255.255.255.0
    duplex auto
    speed auto
    !
    interface FastEthernet1/0
    no ip address
    duplex auto
    speed auto
    shutdown
    !
    interface Serial2/0
    ip address 192.168.3.1 255.255.255.0
    clock rate 64000
    !

    另一台路由器看到的应该是
    interface FastEthernet0/0
    ip address 192.168.2.1 255.255.255.0
    duplex auto
    speed auto
    !
    interface FastEthernet1/0
    no ip address
    duplex auto
    speed auto
    shutdown
    !
    interface Serial2/0
    ip address 192.168.3.2 255.255.255.0
    !

    两台路由器都对应配置(IP写对)

  • 可以先测试一下,两台PC机应该是无法通信的,

    虽然路由器已经工作了,但是只知道自己两个端口的路由,并不知道非直连的路由,所以是无法通信的。

    image-20230809185954270

配置路由

  • 我们现在来把那个非直连路由,配置为静态路由,使其可以通信。

    将去往非直连网段的路由配置下一跳为对方路由器的直连接口IP

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    路由器0
    Router(config)#ip route 192.168.2.0 255.255.255.0 192.168.3.2
    可以查看
    Router#show ip route
    有下面的内容即可
    C 192.168.1.0/24 is directly connected, FastEthernet0/0
    S 192.168.2.0/24 [1/0] via 192.168.3.2
    C 192.168.3.0/24 is directly connected, Serial2/0

    路由器1
    Router(config)#ip route 192.168.1.0 255.255.255.0 192.168.3.1
    可以查看
    Router#show ip route
    有下面的内容即可
    S 192.168.1.0/24 [1/0] via 192.168.3.1
    C 192.168.2.0/24 is directly connected, FastEthernet0/0
    C 192.168.3.0/24 is directly connected, Serial2/0

9.3 测试

  • 之前测试ping并不能通信,现在重新ping,能正常通信

    image-20230809190610900

第十章、路由器RIP动态路由

10.1 原理

  • 路由协议分类

    • 内部网关协议 IGP

      RIP、EIGRP(距离矢量路由协议)

      OSPF、IS-IS(链路状态路由协议)

    • 外部网关协议 EGP

      BGP

  • RIP协议
    RIP是Routing Information Protocol(路由信息)的简称,它是一种较为简单的内部网关路由协议(Interior Gateay Protocol),是内部网关协议IGP中最先得到广泛使用的协议。RIP是基于距离矢量的路由选择协议,是因特网标准协议,其最大优点就是实现简单,开销较小,适用于网络拓扑较小的环境。

    • 具体原理

      RIP是一种基于距离矢量(Distance-Vector)算法的协议,每30秒 会与相邻的路由器交换路由信息,以动态建立路由表。
      它使用跳数(Hop Count)作为度量值来衡量达到目的的地址的距离(最大跳数15跳)。设备到与它直连网络的设备跳数为0,然后每经过一 个三层设备跳数增加1。也就是说通过一个3层设备到达的网络的跳数 为1。度量值等于从本网络到达目的网络间的设备数据量。为限制收敛 时间,RIP规定度量值取1~15之间的整数,大于或等于16的跳数(也 就是3层设备数量)被定义为无穷大,即目的网络或主机不可达。也就 是说最大跳数15跳所以流量只能经过15个3层设备,16跳第16个3 层设备为不可达。

    • 版本

      RIP包含RIP-v1、RIP-v2、RIPng三个版本,RIP-2对RIP-1进行了扩充,使其更具有优势,RIP-1和IPR-2应用在IPV4环境中,RIPng 则应用在IPV6环境中。

      RIPv1是有类路由协议,RIPv2是无类路由协议,即RIPv2的报文中含有掩码信息。

    • 优点

      配置实现简单、开销较小、问题定位快、适用于网络规模小的环境。

    • 缺点

      本身的度量值限制了网络规模、交换完整的路由信息随着网络规模的扩大开销也叫增加了、坏消息传播的慢使更新过程收敛时间较长。

  • 路由表标志

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    R:表示RIP路由协议
    C:直连网段路由
    S:静态路由
    B:BGP路由协议
    D:EIGRP路由协议
    O:OSPF
    N1:为OSPF的宣告类型1
    N2:为OSPF的宣告类型2
    E1:为OSPF的内部路由
    E2:为OSPF的外部路由
    i:为IS-IS路由协议
    L1:为IS-IS的类型1路由协议

    例:C 192.168.4.0/24 is directly connected, FastEthernet3/0
    该字段中的C表示直连网段,192.168.4.0/24表示目标网段,FastEthernet3/0表示下一跳接口。
    例:R 192.168.1.0/24 [120/3] via 192.168.4.1, 00:00:02,FastEthernet3/0
    该字段中R表示使用的是RIP路由协议,192.168.1.0/24表示达到 的目标网段,120表示为RIP协议的优先级,3达到目标网络的跳数(也就是需要经过3个路由器),FastEthernet3/0表示下一跳接口地址。

10.2 实验

搭建拓扑

  • PC机两台
  • 三层交换机3560 一台
  • 路由器Router-PT 两台
  • 直连线连接PC机、交换机
  • 交叉线连接交换机、路由器
  • 交叉线连接主机、交换机
  • 串口线连接路由器、路由器
  • 主机与交换机之间、交换机与交换机之间的连接用直连线Copper Straight-Through

    (二层交换机、三层交换机均属于交换机)

  • 主机或交换机连接到 路由器 时,采用交叉线Copper Cross-Over

  • 路由器之间的连接,采用串口线Serial DCE

image-20230810023500985

配置IP、路由

  • 按照图示配置PC机IP

image-20230810015207538 image-20230810015233238

  • 三层交换机

    (1)开启路由功能;创建vlan,划分端口进vlan,配置vlan的IP,开启;

    (2)开启RIP协议,写入直连网段,版本为2,开启;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    (1)配置IP信息
    Switch>en
    Switch#conf t
    Switch(config)#ip routing
    Switch(config)#vlan 10
    Switch(config-vlan)#exit
    Switch(config)#vlan 20
    Switch(config-vlan)#exit
    Switch(config)#int fa 0/1
    Switch(config-if)#switchport access vlan 10
    Switch(config-if)#exit
    Switch(config)#int fa 0/2
    Switch(config-if)#switchport access vlan 20
    Switch(config-if)#exit
    Switch(config)#int vlan 10
    Switch(config-if)#ip address 192.168.1.1 255.255.255.0
    Switch(config-if)#no shutdown
    Switch(config-if)#exit
    Switch(config)#int vlan 20
    Switch(config-if)#ip address 192.168.2.1 255.255.255.0
    Switch(config-if)#no shutdown
    Switch(config-if)#exit
    Switch(config)#end
    查看配置信息
    Switch#show running-config
    可以看到以下内容
    !
    interface FastEthernet0/1
    switchport access vlan 10
    !
    interface FastEthernet0/2
    switchport access vlan 20
    !
    ...
    !
    interface Vlan1
    no ip address
    shutdown
    !
    interface Vlan10
    mac-address 0003.e414.5101
    ip address 192.168.1.1 255.255.255.0
    !
    interface Vlan20
    mac-address 0003.e414.5102
    ip address 192.168.2.1 255.255.255.0
    !

    (2)配置RIP协议
    Switch#conf t
    Switch(config)#router rip
    Switch(config-router)#network 192.168.1.0
    Switch(config-router)#network 192.168.2.0
    Switch(config-router)#version 2
    Switch(config-router)#end
    查看配置信息
    Switch#show running-config
    看到以下内容
    !
    router rip
    version 2
    network 192.168.1.0
    network 192.168.2.0
    !
  • 路由器

    开启fa端口,配置IP;

    开启se端口,配置IP,配置时钟64000;

    开启RIP协议,配置直连网段,版本为2;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    (1)配置端口IP信息
    Router>en
    Router#conf t
    Router(config)#int fa 0/0
    Router(config-if)#no shutdown
    Router(config-if)#ip address 192.168.2.2 255.255.255.0
    Router(config-if)#exit
    Router(config)#int se 2/0
    Router(config-if)#no shutdown
    Router(config-if)#clock rate 64000
    Router(config-if)#ip address 192.168.3.1 255.255.255.0
    Router(config-if)#exit
    Router(config)#end

    (2)配置RIP协议
    Router#conf t
    Router(config)#router rip
    Router(config-router)#version 2
    Router(config-router)#network 192.168.2.0
    Router(config-router)#network 192.168.3.0
    Router(config-router)#end

    查看配置信息
    Router#show running-config
    有以下内容即可
    !
    interface FastEthernet0/0
    ip address 192.168.2.2 255.255.255.0
    duplex auto
    speed auto
    !
    interface FastEthernet1/0
    no ip address
    duplex auto
    speed auto
    shutdown
    !
    interface Serial2/0
    ip address 192.168.3.1 255.255.255.0
    clock rate 64000
    !
    interface Serial3/0
    no ip address
    shutdown
    !
    interface FastEthernet4/0
    no ip address
    shutdown
    !
    interface FastEthernet5/0
    no ip address
    shutdown
    !
    router rip
    version 2
    network 192.168.2.0
    network 192.168.3.0
    !
  • 另一台路由器类似配置

10.3 测试

  • 从PC0去ping PC1,能通。

    image-20230810023355251

第十一章、路由器OSPF动态路由

11.1 原理

详细说明:快速带你了解OSPF协议!

  • OSPF(Open Shortest Path First,开放最短路径优先)

    是IETF(Internet Engineering Task Force,互联网工程任务组)组织开发的一个基于链路状态的内部网关协议。目前针对IPv4协议使用的是OSPF Version 2。下文中所提到的OSPF均指OSPF Version 2。

  • 工作过程

    由邻居信息构建网络拓扑图

    1
    2
    3
    4
    R1邻居:R2 R4
    R2邻居:R1 R3
    R3邻居:R2 R4
    R4邻居:R1 R3
    image-20230810130755714

    通过拓扑图计算开销

    image-20230810130936466
  • 工作进程

    image-20230810130549810

11.2 实验

搭建拓扑

  • PC机 两台
  • 三层交换机3560 一台
  • 路由器Router-PT 两台
  • 按要求连线
image-20230810140927339

配置IP、路由

  • PC机配置IP

image-20230810134049540 image-20230810134116402

  • 三层交换机配置

    创建vlan,划分vlan,配置vlan的IP,开启;

    开启路由模块,配置ospf 协议,写入直连网段(网段、反掩码、区域);

    记住!三层交换机,再配置ospf 功能前,必须先开启路由模块ip routing!!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    (1)配置vlan和IP
    Switch>en
    Switch#conf t
    Switch(config)#vlan 10
    Switch(config-vlan)#exit
    Switch(config)#vlan 20
    Switch(config-vlan)#exit
    Switch(config)#int fa 0/1
    Switch(config-if)#switchport access vlan 10
    Switch(config-if)#exit
    Switch(config)#int fa 0/2
    Switch(config-if)#switchport access vlan 20
    Switch(config-if)#exit
    Switch(config)#int vlan 10
    Switch(config-if)#ip address 192.168.1.1 255.255.255.0
    Switch(config-if)#no shutdown
    Switch(config-if)#exit
    Switch(config)#int vlan 20
    Switch(config-if)#ip address 192.168.2.1 255.255.255.0
    Switch(config-if)#no shutdown
    Switch(config-if)#exit
    Switch(config)#end
    查看配置
    Switch#show running-config
    看到以下内容即为正确
    !
    interface FastEthernet0/1
    switchport access vlan 10
    !
    interface FastEthernet0/2
    switchport access vlan 20
    !
    ...
    !
    interface Vlan1
    no ip address
    shutdown
    !
    interface Vlan10
    mac-address 0001.6347.2d01
    ip address 192.168.1.1 255.255.255.0
    !
    interface Vlan20
    mac-address 0001.6347.2d02
    ip address 192.168.2.1 255.255.255.0
    !

    (2)配置ospf 协议
    Switch#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Switch(config)#ip routing 注意这里!!!先开启路由模块!
    Switch(config)#router ospf 1 这里的1意思是本地进程号是1
    Switch(config-router)#network 192.168.1.0 0.0.0.255 area 0
    Switch(config-router)#network 192.168.2.0 0.0.0.255 area 0
    Switch(config-router)#exit
    Switch(config)#end
    查看配置信息
    Switch#show ip protocols
    有以下内容即可
    Routing Protocol is "ospf 1"
    Outgoing update filter list for all interfaces is not set
    Incoming update filter list for all interfaces is not set
    Router ID 192.168.2.1
    Number of areas in this router is 1. 1 normal 0 stub 0 nssa
    Maximum path: 4
    Routing for Networks:
    192.168.1.0 0.0.0.255 area 0
    192.168.2.0 0.0.0.255 area 0
    Routing Information Sources:
    Gateway Distance Last Update
    192.168.2.1 110 00:00:42
    Distance: (default is 110)
  • 路由器

    配置端口IP,开启;

    开启ospf 协议,写入直连网段(网段、反掩码、区域);

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    (1)配置端口IP
    Router>en
    Router#conf t
    Router(config)#int fa 0/0
    Router(config-if)#ip address 192.168.2.2 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int se 2/0
    Router(config-if)#ip address 192.168.3.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#clock rate 64000
    Router(config-if)#exit
    Router(config)#end
    查看配置
    Router#show run
    看到以下内容即可
    interface FastEthernet0/0
    ip address 192.168.2.2 255.255.255.0
    duplex auto
    speed auto
    !
    interface Serial2/0
    ip address 192.168.3.1 255.255.255.0
    clock rate 64000
    !

    (2)配置ospf 协议
    Router#conf t
    Router(config)#router ospf 1
    Router(config-router)#network 192.168.2.0 0.0.0.255 area 0
    Router(config-router)#network 192.168.3.0 0.0.0.255 area 0
    Router(config-router)#exit
    Router(config)#end
    查看配置信息
    Router#show ip protocols
    看到以下内容即可
    Routing Protocol is "ospf 1"
    Outgoing update filter list for all interfaces is not set
    Incoming update filter list for all interfaces is not set
    Router ID 192.168.3.1
    Number of areas in this router is 1. 1 normal 0 stub 0 nssa
    Maximum path: 4
    Routing for Networks:
    192.168.2.0 0.0.0.255 area 0
    192.168.3.0 0.0.0.255 area 0
    Routing Information Sources:
    Gateway Distance Last Update
    192.168.2.1 110 00:00:23
    192.168.3.1 110 00:00:23
    Distance: (default is 110)

    路由台路由器一样操作(不用设置时钟频率,因为不是DCE端)

11.3 测试

  • 全部都设置好之后,打开最后一个路由器,查看路由表,会是如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Router#show ip route
    Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
    D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
    N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
    E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
    i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
    * - candidate default, U - per-user static route, o - ODR
    P - periodic downloaded static route

    Gateway of last resort is not set

    O 192.168.1.0/24 [110/66] via 192.168.3.1, 00:00:14, Serial2/0
    O 192.168.2.0/24 [110/65] via 192.168.3.1, 00:00:14, Serial2/0
    C 192.168.3.0/24 is directly connected, Serial2/0
    C 192.168.4.0/24 is directly connected, FastEthernet0/0
  • 通过PC机ping,发现能互通

    image-20230810140830075 image-20230810140854624

第十二章、路由器综合路由

12.1 原理

  • 路由重分布

    为了在同一个网络中有效地支持多种路由协议,必须在不同的路由协议之间共享路由信息。在不同的路由协议之间交换路由信息的过程称为路由重分布,它将一种路由选择协议获悉的路由信息告知给另一种路由选择协议。

    路由重分布为在同一个互连网络中高效地支持多种路由协议提供了可能,执行路由重分布的路由器被称为边界路由器,因为它们位于两个或多个自治系统的边界上。

    • 考虑的问题:
      1. 路由反馈:双向重分布有可能把从一个自治系统学到的路由信息发送回该自治系统。
      2. 路由信息的兼容:不同路由协议的度量标准是不同的
      3. 收敛时间不一致
  • 协议

    • 内部路由器:RIPv2协议
    • 连接处路由器:一边RIPv2协议,一边OSPF协议,进行路由重分布
    • 外部路由器:OSPF协议
  • 备注

    • 本身协议的开启,是软件实现的。

      因此,开启的是什么协议,取决于你把这个网段写成了哪个协议里的直连网段。

    • 同一个路由器可以同时开启多种协议。

      进行路由重分布,就是进入一种协议后,把另一种协议的路由表重分布进来即可。

12.2 实验

搭建拓扑

  • PC机 两台
  • 三层交换机3560 一台
  • 路由器Router-PT 两台
  • 连线
image-20230810161744306

说明一下:我们这里,是

  • 左侧作为内部,采用RIP协议
  • 右侧作为外部,采用OSPF协议
  • 以中间的R0作为分界线,R0同时配置RIP、OSPF协议,并进行路由重分布。

配置IP、路由

  • PC机配置IP

image-20230810151256124 image-20230810151326849

  • 三层交换机

    创建vlan,划分vlan端口,配置vlan的IP,开启;

    开启路由模块,采用RIP协议,版本号2,写入直连网段;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    (1)配置vlan的IP并开启
    Switch>en
    Switch#conf t
    Switch(config)#vlan 2
    Switch(config-vlan)#exit
    Switch(config)#int fa 0/1
    Switch(config-if)#switchport access vlan 1
    Switch(config-if)#exit
    Switch(config)#int fa 0/2
    Switch(config-if)#switchport access vlan 2
    Switch(config-if)#exit
    Switch(config)#int vlan 1
    Switch(config-if)#ip address 192.168.1.1 255.255.255.0
    Switch(config-if)#no shutdown
    Switch(config-if)#exit
    Switch(config)#int vlan 2
    Switch(config-if)#ip address 192.168.2.1 255.255.255.0
    Switch(config-if)#no shutdown
    Switch(config-if)#exit
    Switch(config)#end
    查看配置信息
    Switch#show running-config
    看到以下内容即可
    !
    interface FastEthernet0/1
    !
    interface FastEthernet0/2
    switchport access vlan 2
    !
    ...
    !
    interface Vlan1
    ip address 192.168.1.1 255.255.255.0
    !
    interface Vlan2
    mac-address 0090.2b3a.7a01
    ip address 192.168.2.1 255.255.255.0

    (2)路由模块,RIP协议配置
    Switch#conf t
    Switch(config)#ip routing
    Switch(config)#router rip
    Switch(config-router)#version 2
    Switch(config-router)#network 192.168.1.0
    Switch(config-router)#network 192.168.2.0
    Switch(config-router)#exit
    Switch(config)#end
    查看配置信息
    Switch#show ip protocols
    看到以下内容即可
    Routing Protocol is "rip"
    ...
    Routing for Networks:
    192.168.1.0
    192.168.2.0
  • 路由器R0(中间的路由器)

    配置端口IP,开启(注意se有时钟频率设置);

    运行RIP协议,写入左边的网段192.168.2.0

    运行OSPF协议,写入右边的网段192.168.3.0

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    (1)配置端口IP并开启
    Router>en
    Router#conf t
    Router(config)#int fa 0/0
    Router(config-if)#ip address 192.168.2.2 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int se 2/0
    Router(config-if)#ip address 192.168.3.1 255.255.255.0
    Router(config-if)#clock rate 64000
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#end
    查看配置信息
    Router#show run
    看到以下内容即可
    !
    interface FastEthernet0/0
    ip address 192.168.2.2 255.255.255.0
    duplex auto
    speed auto
    !
    ...
    interface Serial2/0
    ip address 192.168.3.1 255.255.255.0
    clock rate 64000
    !

    (2)运行RIP协议
    Router#conf t
    Router(config)#router rip
    Router(config-router)#version 2
    Router(config-router)#network 192.168.2.0
    Router(config-router)#exit
    Router(config)#router ospf 1
    Router(config-router)#network 192.168.3.0 0.0.0.255 area 0
    Router(config-router)#exit
    Router(config)#end
    查看配置信息
    Router#show ip protocols
    看到以下内容即可
    Routing Protocol is "rip"
    ...
    Routing for Networks:
    192.168.2.0
    ...
    Routing Protocol is "ospf 1"
    ...
    Routing for Networks:
    192.168.3.0 0.0.0.255 area 0
  • 路由器R1(右边的)

    配置端口IP,开启;

    运行OSPF协议;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    (1)配置端口IP并开启
    Router>en
    Router#conf t
    Router(config)#int se 2/0
    Router(config-if)#ip address 192.168.3.2 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int fa 0/0
    Router(config-if)#ip address 192.168.4.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#end
    查看配置信息
    Router#show run
    看到以下内容即可
    !
    interface FastEthernet0/0
    ip address 192.168.4.1 255.255.255.0
    duplex auto
    speed auto
    !
    ...
    !
    interface Serial2/0
    ip address 192.168.3.2 255.255.255.0
    !

    (2)运行OSPF协议
    Router#conf t
    Router(config)#router ospf 1
    Router(config-router)#network 192.168.3.0 0.0.0.255 area 0
    Router(config-router)#network 192.168.4.0 0.0.0.255 area 0
    Router(config-router)#exit
    Router(config)#end
    查看配置信息
    Router#show ip protocols
    看到以下内容即可
    Routing Protocol is "ospf 1"
    ...
    Routing for Networks:
    192.168.3.0 0.0.0.255 area 0
    192.168.4.0 0.0.0.255 area 0
  • 现在先测试一下,从PC0去ping PC1,发现并不能通信。

    image-20230810154513709

    打开各个路由器或三层交换机,查看路由表,

    你会发现,左右两边的路由器并没有全部网段的路由,只有中间的路由器拥有完全的路由表,

    但实际上中间的路由表的路由是两个分立的路由表共同显示的,并不会完全把路由信息对邻居路由器通告,

    • 标志C:直连网段;
    • 标志O:OSPF协议;
    • 标志R:RIP协议。

    因此无法通信是正常的。

    image-20230810154614447 image-20230810154552549 image-20230810154636419

    所以接下来我们对中间的路由器进行路由重分布设置。

  • 路由器R0

    进入RIP协议,把OSPF路由表进行路由重分布加入;

    进入OSPF协议,把RIP路由表进行路由重分布加入;

    1
    2
    3
    4
    5
    6
    7
    8
    Router#conf t
    Router(config)#router rip
    Router(config-router)#redistribute ospf 1
    Router(config-router)#exit
    Router(config)#router ospf 1
    Router(config-router)#redistribute rip subnets 这里写subnets意思是把具体子网也加入进来
    Router(config-router)#exit
    Router(config)#end
  • 三层交换机 静态路由

    到这里,有些人可能已经可以了,但是有些人还不能。(因为一些设备会自动设置静态路由)

    可能是版本问题,不能的人,可以手动设置一下静态路由,

    使得三层交换机的默认下一跳(没有下一跳就会走默认)为R0连接处的IP(即默认走向R0来处理)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    Switch#conf t
    Switch(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.2
    Switch(config)#end
    查看配置信息
    Switch#show ip route
    看到下面的内容即可(主要是看到有S*这一行,这就是静态路由)
    C 192.168.1.0/24 is directly connected, Vlan1
    C 192.168.2.0/24 is directly connected, Vlan2
    S* 0.0.0.0/0 [1/0] via 192.168.2.2

12.3 测试

  • 前面,我们测试了PC机之间是无法正常通信的,

    这里,我们再次测试,发现可以正常通信了。

    image-20230810161049622 image-20230810161633727

  • 我们也再次打开三个路由器或三层交换机的路由表看看,发现

    • 三层交换机有静态路由
    • 路由器R0有四个网段路由
    • 路由器R1也有四个网段路由

    因此可以实现正常通信。

image-20230810161235069 image-20230810161214324 image-20230810161257774

第十三章、标准IP访问控制列表

详细资料:访问控制列表ACL ------标准IP访问列表 (理论+实验)

13.1 原理

  • 访问控制列表(Access Control Lists,ACL)

    俗称“防火墙”。是应用在路由器接口的指令列表,这些指令列表用来告诉路由器哪些数据包可以接收、哪些数据包需要拒绝。访问控制是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用和访问。它是保证网络安全最重要的核心策略之一。访问控制涉及的技术也比较广,包括入网访问控制、网络权限控制、目录级控制以及属性控制等多种手段。

  • 功能

    • 限制网络流量、提高网络性能。例如,ACL可以根据数据包的协议,指定这种类型的数据包具有更高的优先级,同等情况下可预先被网络设备处理。
    • 提供对通信流量的控制手段。
    • 提供网络访问的基本安全手段。
    • 在网络设备接口处,决定哪种类型的通信流量被转发、哪种类型的通信流量被阻塞。
  • 分类

    • 标准IP访问列表

      编号范围:1 - 99,也可以命名

      一个标准IP访问控制列表匹配IP包中的源地址或源地址中的一部分,可对匹配的包采取拒绝或允许两个操作。

    • 扩展IP访问列表

      编号范围:100 - 199,也可以命名

      扩展IP访问控制列表比标准IP访问控制列表具有更多的匹配项,包括协议类型、源地址、目的地址、源端口、目的端口、建立连接的和IP优先级等。

image-20230811140522042
  • ACL的放置规则
    每一个路由器接口的每一个方向,每一种协议只能创建一个ACL;在适当的位置放置 ACL 可以过滤掉不必要的流量,使网络更加高效。ACL 可以充当防火墙来过滤数据包并去除不必要的流量。ACL 的放置位置决定了是否能有效减少不必要的流量。例如,会被远程目的地拒绝的流量不应该消耗通往该目的地的路径上的网络资源。每个 ACL 都应该放置在最能发挥作用的位置。

    基本的规则

    • 因为标准 ACL 不会指定目的地址,所以其位置应该尽可能靠近目的地。

    • 将扩展 ACL 尽可能靠近要拒绝流量的源。这样,才能在不需要的流量流经网络之前将其过滤掉。

    • 出:已经过路由器的处理,正离开路由器接口的数据包

    • 入:已到达路由器接口的数据包,将被路由器处理

  • 使用方法

    • 配置规则
    • 应用到端口上
  • 语法

    1
    2
    3
    4
    5
    6
    ip access-list standard 1		这里1的意思是编号,可以为1-99
    permit 172.16.1.0 0.0.0.255 注意要用反掩码
    deny 172.16.2.0 0.0.0.255

    int fa 0/0
    ip access-group 1 out

13.2 实验

搭建拓扑

  • PC机 三台
  • 路由器Router-PT两台
  • 连线
image-20230811152052906

配置IP

  • PC机配置IP

image-20230811142124219 image-20230811142145167 image-20230811142220279

  • 路由器配置 IP

    R0配置端口IP,开启(记得配置时钟频率);

    R1配置端口IP,开启;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    (1)R0配置
    Router>en
    Router#conf t
    Router(config)#int fa 0/0
    Router(config-if)#ip address 172.16.1.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int fa 1/0
    Router(config-if)#ip address 172.16.2.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int se 2/0
    Router(config-if)#ip address 172.16.3.1 255.255.255.0
    Router(config-if)#clock rate 64000
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#end

    (2)R1配置
    Router>en
    Router#conf t
    Router(config)#int se 2/0
    Router(config-if)#ip address 172.16.3.2 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config-if)#int fa 0/0
    Router(config-if)#ip address 172.16.4.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit

配置路由

  • 路由器路由配置

    目前只有直连路由,因此,

    • R0 知道去往 1.0、2.0、3.0 网段的路由,但是并不知道 4.0 网段的路由;

    • R1 知道去往 3.0、4.0 网段的路由,但是并不知道 1.0、2.0 网段的路由。

    image-20230811145552561 image-20230811145610051

    因此,可以

    • R0 配置 静态路由 去往 4.0 网段
    • R1 配置 默认路由 去往 1.0、2.0 网段

    默认路由是一种特殊的静态路由

    1
    2
    3
    4
    (1)R0配置静态路由
    Router(config)#ip route 172.16.4.0 255.255.255.0 172.16.3.2
    (2)R1配置默认路由
    Router(config)#ip route 0.0.0.0 0.0.0.0 172.16.3.1

    再次查看路由情况,如下:

    image-20230811145759157 image-20230811145811919

  • 现在可以先测试一下,所有的PC机现在都能ping通了

image-20230811145949050 image-20230811150045099 image-20230811150119258

配置标准ACL

  • 我们要禁止销售部访问财务部,其他均可

    所以,可以在路由器R1上设置(R0也可以,但是尽量靠近目的地址更好)。

  • 路由器R1配置标准ACL

    创建一个标准ACL;

    进入端口,应用在端口的出out /入in ;

    1
    2
    3
    4
    5
    6
    7
    8
    Router#conf t
    Router(config)#ip access-list standard 1 这里1的意思是编号,可以为1-99
    Router(config-std-nacl)#permit 172.16.1.0 0.0.0.255 注意要用反掩码
    Router(config-std-nacl)#deny 172.16.2.0 0.0.0.255
    Router(config-std-nacl)#exit
    Router(config)#int fa 0/0
    Router(config-if)#ip access-group 1 out 这里即:进入端口后,把编号1的ACL应用在该端口的出口上
    Router(config-if)#exit

13.3 测试

  • 之前测试,是全部都能互相ping通的,

    现在测试,发现只有销售部无法ping通财务部(反过来也不可以)。

image-20230811151316918 image-20230811151340891 image-20230811151500559

但是两者出现的情况是不一样的,

  • 销售部 ping 财务部

    Reply from 172.16.3.2: Destination host unreachable.

    无法抵达。这是明确被中间的路由器172.168.3.2告知了无法到达财务部的。

    因为是这个路由器进行的ACL拦截,会回复这个拦截停通知。

  • 财务部 ping 销售部

    Request timed out.

    请求超时。这是没有被告知中间出了什么问题的。

    因为财务部实际上确实把包发出去了,也没有人拦截,但是,销售部回复的包被拦截了。而这种情况下,销售部会收到无法抵达的通知,财务部这边看来就是什么都没有,不知道发生了什么,仍然一直等待,所以,请求超时。

第十四章、扩展IP访问控制列表

14.1 原理

  • 原理

    见标准ACL

  • 语法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    【具体命令】
    access-list 访问控制列表号 {deny/permit} 协议类型 源网络地址 [通配符掩码(反掩码)] 目的网络地址 [通配符掩码] [运算符 端口号]

    【选项查看】
    Router(config)#access-list ?
    <1-99> IP standard access list
    <100-199> IP extended access list
    Router(config)#access-list 100 ?
    deny Specify packets to reject
    permit Specify packets to forward
    remark Access list entry comment
    Router(config)#access-list 100 permit ?
    ahp Authentication Header Protocol
    eigrp Cisco's EIGRP routing protocol
    esp Encapsulation Security Payload
    gre Cisco's GRE tunneling
    icmp Internet Control Message Protocol
    ip Any Internet Protocol
    ospf OSPF routing protocol
    tcp Transmission Control Protocol
    udp User Datagram Protocol
    Router(config)#access-list 100 permit tcp ?
    A.B.C.D Source address
    any Any source host
    host A single source host
    Router(config)#access-list 100 permit tcp any ?
    A.B.C.D Destination address
    any Any destination host
    eq Match only packets on a given port number
    gt Match only packets with a greater port number
    host A single destination host
    lt Match only packets with a lower port number
    neq Match only packets not on a given port number
    range Match only packets in the range of port numbers
    Router(config)#access-list 100 permit tcp any host ?
    A.B.C.D Destination address
    Router(config)#access-list 100 permit tcp any host 172.16.4.2 ?
    dscp Match packets with given dscp value
    eq Match only packets on a given port number
    established established
    gt Match only packets with a greater port number
    lt Match only packets with a lower port number
    neq Match only packets not on a given port number
    precedence Match packets with given precedence value
    range Match only packets in the range of port numbers
    <cr>
    Router(config)#access-list 100 permit tcp any host 172.16.4.2 eq ?
    <0-65535> Port number
    ftp File Transfer Protocol (21)
    pop3 Post Office Protocol v3 (110)
    smtp Simple Mail Transport Protocol (25)
    telnet Telnet (23)
    www World Wide Web (HTTP, 80)
    Router(config)#access-list 100 permit tcp any host 172.16.4.2 eq 80 ?
    dscp Match packets with given dscp value
    established established
    precedence Match packets with given precedence value
    <cr>
    Router(config)#access-list 100 permit tcp any host 172.16.4.2 eq 80

14.2 实验

搭建拓扑

  • PC机 一台
  • 服务器 一台
  • 路由器 三台
image-20230811164351517

配置IP

  • PC机配置

    image-20230811154814736
  • 服务器配置IP

    image-20230811154910102
  • 路由器配置端口IP

    三个路由器按照图示配置端口IP,开启;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    (1)路由器R0
    Router>en
    Router#conf t
    Router(config)#int fa 0/0
    Router(config-if)#ip address 172.16.1.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int se 2/0
    Router(config-if)#ip address 172.16.2.1 255.255.255.0
    Router(config-if)#clock rate 64000
    Router(config-if)#no shutdown
    Router(config-if)#exit
    (2)路由器R1
    Router>en
    Router#conf t
    Router(config)#int se 2/0
    Router(config-if)#ip address 172.16.2.2 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int se 3/0
    Router(config-if)#ip address 172.16.3.1 255.255.255.0
    Router(config-if)#clock rate 64000
    Router(config-if)#no shutdown
    Router(config-if)#exit
    (3)路由器R2
    Router>en
    Router#conf t
    Router(config)#int se 2/0
    Router(config-if)#ip address 172.16.3.2 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config-if)#int fa 0/0
    Router(config-if)#ip address 172.16.4.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit

配置路由

  • 路由器配置路由

    如图所示,三个路由器都只有直连网段的路由

    • R0:1.0、2.0
    • R1:2.0、3.0
    • R2:3.0、4.0
    image-20230811160354745

    因此,可以让R1拥有全网段的路由(配置1.0、4.0网段的静态路由)

    其他两个路由器则把默认路由设置下一跳为R1,交给R1处理。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    (1)路由器R0
    Router(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.2

    (2)路由器R1
    Router(config)#ip route 172.16.1.0 255.255.255.0 172.16.2.1
    Router(config)#ip route 172.16.4.0 255.255.255.0 172.16.3.2

    (3)路由器R2
    Router(config)#ip route 0.0.0.0 0.0.0.0 172.16.3.1

    再次查看三个路由器的路由表如下,即可

    image-20230811161112555
  • 好的。

    到这里,测试一下,已经可以ping通了。

    image-20230811161222448
  • 开启服务器web服务

    点开服务器Server0,点击服务Services,把HTTP、HTTPS改为On按钮(默认会自动开启,检查一下即可)

    image-20230811161302775
  • 主机访问服务器web访问

    点开主机,打开web浏览器,输入服务器地址172.16.4.2回车,发现能够正常访问。

    image-20230811161534602

配置扩展ACL

  • 我们实际上希望主机只能够访问服务器的web服务,并不能ping通。

    因此,要使用扩展访问控制列表,

  • 扩展ACL控制

    创建扩展ACL,允许访问TCP协议的80端口(即HTTP服务),禁止 ICMP协议;

    进入端口,把该扩展ACL应用到端口的出口上;

    1
    2
    3
    4
    5
    6
    路由器R1设置
    Router(config)#access-list 100 permit tcp any host 172.16.4.2 eq 80
    Router(config)#access-list 100 deny icmp any host 172.16.4.2
    Router(config)#int se 3/0
    Router(config-if)#ip access-group 100 out
    Router(config-if)#exit

14.3 测试

  • 至此,我们再次测试,发现
    • ping服务器不通
    • 服务器的web服务能够正常访问

image-20230811164258821 image-20230811164322105

第十五章、网络地址转换NAT

15.1 原理

  • NAT (Network Address Translation)

    又称为网络地址转换,用于实现私有网络和公有网络之间的互访。

  • 工作原理

    • NAT用来将内网地址和端口号转换成合法的公网地址和端口号,建立一个会话,与公网主机进行通信。

    • NTA外部的主机无法主动跟位于NAT内部的主机通信,NAT内部主机想要通信,必须主动和公网的一个IP通信,路由器负责建立一个映射关系,从而实现数据的转发。

    • 数据包从内网到外网时,会转换源lP地址,由私网地址转换成公网地址

    • 数据包从外网到内网时,会转换目的IP地址,由公网地址转换成私网地址

  • 功能
    NAT不仅能解决了IP地址不足的问题,而且还能够有效的避免来自网络外部的入侵,隐藏并保护网络内部的计算机

    • 宽带分享 ,这是NAT主机最大的功能

    • 安全防护,NAT之内的PC联机到 nternet上面时,他所显示的IP是NAT主机的公网IP,所以client端的PC就具有一定程度的安全了,外界在进行portscan(端口扫描)的时候,就侦测不到源client端的PC

    优点:节省公有合法IP地址,处理地址重叠,增强灵活性,安全性

    缺点:延迟增大,配置和维护的复杂性,不支持某些应用(比如VPN)

  • 分类

    • 一对一

      • 静态转换

        一对一,私有ip和共有ip的映射关系定下来就不会变了

      • 动态转换

        也是一对一,但是每次私有ip跟共有ip的映射关系都是不一样

    • 多对一

      • 端口多路复用NAPT

        内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。

        因此,网络中应用最多的就是端口多路复用方式。

  • 静态NAT

    静态NAT实现私网地址和公网地址的一对一转换。有多少个私网地址就需要配置多少个公网地址。

    静态NAT不能节约公网地址,但可以起到隐藏内部网络的作用。

    • 内部网络向外部网络发送报文时,静态NAT将报文的源IP地址替换为对应的公网地址

    • 外部网络向内部网络发送响应报文时,静态NAT将报文的目的地址替换为相应的私网地址。

  • 动态NAT

    多个私网IP地址对应多个公网IP地址,基于地址池一对一映射。

  • 使用方法

    1
    2
    3
    4
    配置静态NAT(config下)
    ip nat inside
    ip nat outside
    ip nat inside source static 192.168.1.2 222.0.1.2

15.2 实验

搭建拓扑

  • 路由器Router-PT 两台

  • 二层交换机2960 一台

  • 服务器Server 一台

  • PC机 一台

  • 连线

image-20230812172932438

配置IP

  • PC机配置IP,服务器配置IP

image-20230812143215478 image-20230812143136713

  • 二层交换机

    不用动

  • 路由器

    R0、R1配置各端口IP

    (注意,我们没有使用222.0.1.2,留着给后面作为NAT使用)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    (1)R0配置IP
    Router>en
    Router#conf t
    Router(config)#int fa 0/0
    Router(config-if)#ip address 192.168.1.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int se 2/0
    Router(config-if)#ip address 222.0.1.1 255.255.255.0
    Router(config-if)#clock rate 64000
    Router(config-if)#no shutdown
    Router(config-if)#exit

    (2)R1配置IP
    Router>en
    Router#conf t
    Router(config)#int se 2/0
    Router(config-if)#ip address 222.0.1.3 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int fa 0/0
    Router(config-if)#ip address 222.0.2.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit

配置路由

  • 注意,这里192.168.x.x的网段是私有地址网段,

    并不会被外部知道路由,只有R0知道私钥网段的路由。

    因此,R1并不需要配置到192.168.x.x的路由。

    (教学视频中却配置了,是不正确的,不需要配置。所以教学视频中下一步是完全能通信到192.168.1.2的。)

    只需要配置R0到222.0.2.0网段的静态路由即可。

    1
    2
    对R0配置路由
    Router(config)#ip route 222.0.2.0 255.255.255.0 222.0.1.3
  • 现在,注意,是不能够通信的,PC机是无法与内网服务器通信的。

    为什么?因为外部主机无法直接通过私有地址去访问内部服务器。

    因此,我们需要在内部服务器出口路由器上配置NAT,使得其在走出内部网络时,带着的是公有地址。

    从而外部主机就可以通过公有地址来访问内部服务器了。

    image-20230812144308315 image-20230812144332766

配置NAT

  • 在路由器R0上,配置一个静态NAT

    我们把原本留着的222.0.1.2用来作为静态NAT的一个出口IP。

    • 指定内部端口
    • 指定外部端口
    • 配置静态NAT
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    在路由器R0上配置
    Router(config)#int fa 0/0
    Router(config-if)#ip nat inside
    Router(config-if)#exit
    Router(config)#int se 2/0
    Router(config-if)#ip nat outside
    Router(config-if)#exit
    Router(config)#ip nat inside source static 192.168.1.2 222.0.1.2
    Router(config)#end

    查看配置信息
    Router#show ip nat translations
    看到下面的内容即可
    Pro Inside global Inside local Outside local Outside global
    --- 222.0.1.2 192.168.1.2 --- ---

15.3 测试

  • 现在,内部服务器在外部实际上有一个公网IP了,就是222.0.1.2

    因此,外部主机只需要通过访问这个公网IP,就会访问到内部服务器。

    image-20230812150106558 image-20230812150122091

第十六章、网络端口地址转换NAPT

16.1 原理

  • 端口多路复用 NATP

    PAT又称为NAPT (Network Address Port Translation)

    它实现一个公网地址和多个私网地址之间的映射,因此可以节约公网地址

    PAT的基本原理是将不同私网地址的报文的源IP地址转换为同一公网地址,但他们被转换为该地址的不同端口号,因而仍然能够共享同一地址。

    • 作用

      • 改变数据包的IP地址和端口号

      • 能够大量节约公网IP地址

    • 类型

      • 动态PAT,包括NAPT和Easy IP

        NAPT:多个私网IP地址对应固定外网IP地址(比如200.1.1.10),配置方法与动态NAT类似。

        Easy IP:多个私网IP地址对应路由器外网接口公网IP地址(比如12.0.0.1)

      • 静态PAT,包括NAT Server

        端口映射,将私网地址端口映射到公网地址,实现内网服务器供外网用户访问

16.2 实验

搭建拓扑

  • PC机 两台
  • 服务器Server 一台
  • 二层交换机 一台
  • 路由器 两台
  • 连线
image-20230812171025568

配置IP

  • PC机配置IP

image-20230812160151295 image-20230812160215520

  • 服务器配置IP
image-20230812160252391
  • 路由器配置端口IP

    R0、R1配置端口IP

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    (1)路由器R0配置
    Router>en
    Router#conf t
    Router(config)#int fa 0/0
    Router(config-if)#ip address 192.168.1.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int se 2/0
    Router(config-if)#ip address 200.0.1.1 255.255.255.0
    Router(config-if)#clock rate 64000
    Router(config-if)#no shutdown
    Router(config-if)#exit

    (2)路由器R1配置
    Router>en
    Router#conf t
    Router(config)#int se 2/0
    Router(config-if)#ip address 200.0.1.2 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int fa 0/0
    Router(config-if)#ip address 200.0.2.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit

配置路由

  • 分析网段

    • 外部网段

      200.0.1.0

      200.0.2.0

    • 内部网段

      192.168.1.0

  • 这里左边是内部网络,192.168.x.x网段是私有的,并不会直接被外部的路由器直接路由到。

    因此,路由器R1只需要配置外部网段的路由即可,而外部的两个网段都是R1的直连网段,因此不需要配置。

    路由器R0则是内部、外部网段均需要,内部网段是直连网段,不需要配置;外部网段的2.0网段需要配置一下。

    1
    2
    只需要配置路由器R0的一个静态路由即可
    Router(config)#ip route 200.0.2.0 255.255.255.0 200.0.1.2

配置NAPT

  • 其实,到现在,你要是去测试ping,会发现是请求超时。

    image-20230812161819278

    这就很有意思,为什么是请求超时?为什么不是不可抵达?

    分析一下两个问题:

    • PC机的包发出去,服务器收到了吗?

      收到了!

    • 服务器如果是收到了请求,服务器回复的包发出去,PC机收到了吗?为什么没收到?

      显然是PC机没收到回复。

      为什么没收到?因为路由器R1处并不能转发私有地址192.168.1.0网段的数据包,也没有这个网段的路由(你不能直接配置静态路由。实际情况中,外部路由器即便收到了私有地址的包,也是会直接丢弃的)

    所以,PC机发了出去,也送到了,可以迟迟收不到回复,所以是请求超时。

  • 进行NAPT网络端口转换配置

    内部主机在出口路由器处,先转换为一个公有地址,再出去。

    这样做,外部服务器回复时,也是向这个公有地址回复,

    回复抵达出口路由器时,会自动转换回内部的私有地址,PC机就可以收到了。

    • 指定内部端口
    • 指定外部端口
    • 创建访问列表
    • 创建IP地址池
    • 配置NAPT:从访问列表映射到IP地址池
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Router(config)#int fa 0/0
    Router(config-if)#ip nat inside
    Router(config-if)#exit
    Router(config)#int se 2/0
    Router(config-if)#ip nat outside
    Router(config-if)#exit
    Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
    解释:上面是创建一个标准访问控制列表(注意后面是反掩码)
    Router(config)#ip nat pool mypool 200.0.1.3 200.0.1.3 netmask 255.255.255.0
    解释:上面是创建IP地址池,命名为mypool,写入起始地址、结束地址(这里是同一个,也就是说只有一个IP),后面写netmask+子网掩码
    Router(config)#ip nat inside source list 1 pool mypool overload
    解释:上面是配置NAPT,意思是把内网中编号1的访问列表的IP转换到名为mypool的地址池再出去,映射方式允许重载
    (若不允许重载,即,不带上overload,那么就是前面的动态NAT,需要一对一,地址池中的IP数量要够多)

如若猜测自己的配置可能哪里出问题,

可以使用命令show run查看配置信息,检查问题。

16.3 测试

  • 现在先看一下

    在路由器R0上查看一下NAPT情况

    1
    show ip nat translations

    你会发现,什么信息都没有,这是正常的。

    只有有内部主机发起请求了,才会出现信息。

  • 测试从PC机去ping以及访问 外部服务器。

image-20230812170255660 image-20230812170343202

image-20230812170437449 image-20230812170405578

  • 现在再看NAPT情况

    1
    2
    3
    4
    Router#show ip nat translations 
    Pro Inside global Inside local Outside local Outside global
    tcp 200.0.1.3:1024 192.168.1.2:1025 200.0.2.2:80 200.0.2.2:80
    tcp 200.0.1.3:1025 192.168.1.3:1025 200.0.2.2:80 200.0.2.2:80

    这里就是PC机在访问时,进行的网络地址端口转换情况。