【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇

电信运营商实战工程师之思科设备篇

文章目录

    • 1. 网络工程师必备基础知识
      • 1.1 电信运营商网络设备机房
      • 1.2 认识并管理运营商网络设备
      • 1.3 GNS3 安装与配置
      • 1.4 IPv4地址及子网划分 VLSM-CIDR 详解
      • 1.5 OSI 七层参考模型及进制转换技巧
    • 2. 思科设备企业网实战篇
      • 2.1 思科设备基本开局配置
      • 2.2 ARP协议、交换机工作原理及广播风暴问题
      • 2.3 思科设备 VLAN 及单臂路由实战
      • 2.4 思科三层交换机实现 VLAN 间路由实战
      • 2.5 思科设备静态默认及浮动路由实战
      • 2.6 思科设备NAT实战全集
    • 3. 思科设备园区网实战篇
      • 3.1 思科设备链路捆绑实战
      • 3.2 思科设备VRRP、HSRP实战
      • 3.3 思科设备ACL实战全集
      • 3.4 思科设备RIP协议实战
      • 3.5 思科设备OSPF协议全集-理论
      • 3.6 思科设备OSPF协议全集-实战

1. 网络工程师必备基础知识

1.1 电信运营商网络设备机房

知识点:

  • 机房基础组件(ODF、走线架、列头柜)
  • 汇聚/核心层网络设备
  • 运营商网络架构/拓扑

进入时:

  • 刷卡开门
  • 远程控制

离开时:

  • 使用电控开关开门
  • 转动门锁旋钮会触发远程告警
    在这里插入图片描述

机房内有如下设备

1.机柜

  • 列头柜:设备供电
    需要专用的电源扎扣进行标识(正极:+48v,负极:0v)
    【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第1张图片
    细小的线连接电源监控系统
    电容丝

  • 设备机柜:安置通信设备

2.跳线架:连接不同机房间的设备

  • ODF架
    【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第2张图片
  • DDF架(逐渐淘汰)

3.走线架:

  • 电源新走线架
  • 光纤走线槽

4.备用电池组

5.机房专用空调

6.专用通风通道(一般核心机房)

1.2 认识并管理运营商网络设备

知识点:

  • 认识运营商机房及常见网络设备
  • 网络工程的实施流程介绍
  • 网络设备的控制台连接方式
  • 通过控制台对设置进行命令行配置

Cicso 3725 路由器
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第3张图片

Fast Ethernet 槽位/端口

CONSOLE端口 AUX端口

控制线

  • 使用控制线连接设备的 CONCOSE 端口 和 计算机的 COM 端口,在计算机上配置路由器

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第4张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第5张图片
Cicso 3750 路由器
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第6张图片

华为 ME60-X16 BRAS 设备

  • 第 9 槽和 10 槽分别为主控板和备用主控板 MPU. ACT 指示灯亮起表示正在工作,如果出现告警 ALM 指示灯亮起,备用主控板将接管.
  • 第 11 槽为SFU. 它是交换网单元,作为数据缓存、交换、快速转发的一个调度点

机房设备施工流程:

  1. 硬件工程师在软件督导监督下,安装网络设备,布置通信线缆和电源线缆
  2. 安装完毕后,由软件督导加电开启设备
  3. 设备开启后,由网络工程师对设备进行开局配置

使用终端软件通过 Serial 协议连接设备.

  • 端口:默认或在计算机硬件管理中查看.
  • 波特率:无论思科还是华为,都是9600.
    【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第7张图片

1.3 GNS3 安装与配置

知识点:

  • 安装 GNS3 0.8.6 版本
  • 设置 Cisco IOS 镜像,并计算 IDLEPC 值
  • 用 c2691 模拟交换机
  • 设置 ASA 防火墙
  • 真实机器GNS3 虚拟机VMware 虚拟机分别连入 GNS3 虚拟网络拓扑进行试验

安装 GNS3 0.8.6 版本

GNS3 0.8.6 下载地址

下载得到 GNS3-0.8.6-all-in-one.exe 后开始安装
在这里插入图片描述
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第8张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第9张图片

注意选择 SuperPutty.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第10张图片
选择安装路径.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第11张图片
点击 Install 安装开始后,会安装 WinPcapWhireShark.

开始安装 WinPcap.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第12张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第13张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第14张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第15张图片
开始安装 WhireShark.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第16张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第17张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第18张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第19张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第20张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第21张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第22张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第23张图片
在这里插入图片描述
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第24张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第25张图片
安装完成,打开 GNS3 如下所示.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第26张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第27张图片
可以关闭其它窗口,仅保留工作区即可.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第28张图片


设置 Cisco IOS 镜像,并计算 IDLEPC 值

下面设置 Cisco IOS 镜像. 以 c3700 为例.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第29张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第30张图片

  • c1700 (1710, 1720. 1721, 1750, 1751, 1760)
  • c2600 (2610, 2611, 2620, 2621, 2610XM, 2611XM, 2620XM, 2621XM, 2650XM, 2651XM)
  • c2691 (2691)
  • c3600 (3620, 3640, 3660)
  • c3700 (3725, 3745)
  • c7200. (7200)

Image file 输入 IOS 的路径.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第31张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第32张图片
添加 Image file 后,会自动识别 PlatformModelIDLE PC 值后续填入. 点击 SaveClose.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第33张图片
添加成功后,c3700 的图标由灰变亮. 可以将其拖动至工作.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第34张图片
在侧边栏将 c3700 拖至工作区,得到 R1. 右键 R1 图标点击 Start 或点击上方绿色三角形图标,启动 R1.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第35张图片

启动 R1 后,右键 R1 图标点击 Console ,或者点击上方 Console 按钮,或者直接双击 R1 图标,打开的控制台页面.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第36张图片
在 SuperPutty 中打开了 R1 的配置页面.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第37张图片
输入任意命令,例如 write ,并回车
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第38张图片
回到工作区,右键单击 R1 图标点击 idle PC 按钮,计算 c3700 的 idle PC 值.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第39张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第40张图片
在下拉框中选择带有星号标识的结果,并点击 OK.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第41张图片
在这里插入图片描述
此时,c3700 的 idle PC 值便自动填入了设置中,并且以后无须设置,可一直使用.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第42张图片

  • 不设置 idle PC 值,gns3 也可以正常工作,但是会占据非常庞大的 CPU 资源. 选择合适的 idle PC 值可以极大降低 CPU 使用率.
  • idle PC 值在不同的机器不同的时间,计算出的结果不同,按照提示选择带有星号即可.

用 c2691 模拟交换机

GNS3 不支持交换机,利用 c2691 的交换板卡模拟交换机.

同样按照前面的步骤,添加 c2691 的 IOS,并计算 idle PC 值. 将 c2691 拖至工作区得到 R2. 右键单击 R2 图标并点击 Configure 或者直接双击 R2 图标后进入 R2 的配置页面.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第43张图片
选择 R2 node,并点击 Slots 页面,在 slot 1 的下拉菜单选择 NM-16ESW 并点击 OK. 这表示在 R2 的第1槽位插入了 NM-16ESW 板卡. NM-16ESW 是 16 口的交换板卡,仅提供交换功能.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第44张图片
在工作区内,将鼠标悬停在 R2 图标上,显示以下信息. 如果将 0 槽位自带的路由功能关闭,仅使用 1 槽位的交换板卡,那么 R2 就相当于一个交换机.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第45张图片
修改 R2 的主机名和图标,使其在工作区外观上是交换机.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第46张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第47张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第48张图片
将 R2 修改为 SW1 后,开启电源.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第49张图片
进入 c2691 的配置终端,关闭 0 槽位的三层路由功能,仅使用 1 槽位的二层交换功能,则 c2691 此时就是一台交换机 SW1.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第50张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第51张图片
进入全局配置模式,关闭路由功能

SW1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#
SW1(config)#
SW1(config)#no ip routing
SW1(config)#

退出全局配置模式

SW1(config)#exit
SW1#

查看端口状态,可见 0 槽位的端口 down 掉了,只有 1 槽位的端口是 up 的.

SW1#show ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  administratively down down
FastEthernet0/1            unassigned      YES unset  administratively down down
FastEthernet1/0            unassigned      YES unset  up                    down
FastEthernet1/1            unassigned      YES unset  up                    down
FastEthernet1/2            unassigned      YES unset  up                    down
FastEthernet1/3            unassigned      YES unset  up                    down
FastEthernet1/4            unassigned      YES unset  up                    down
FastEthernet1/5            unassigned      YES unset  up                    down
FastEthernet1/6            unassigned      YES unset  up                    down
FastEthernet1/7            unassigned      YES unset  up                    down
FastEthernet1/8            unassigned      YES unset  up                    down
FastEthernet1/9            unassigned      YES unset  up                    down
FastEthernet1/10           unassigned      YES unset  up                    down
FastEthernet1/11           unassigned      YES unset  up                    down
FastEthernet1/12           unassigned      YES unset  up                    down
FastEthernet1/13           unassigned      YES unset  up                    down
FastEthernet1/14           unassigned      YES unset  up                    down
FastEthernet1/15           unassigned      YES unset  up                    down
Vlan1                      unassigned      YES unset  up                    down
SW1#

使用的 c2691 IOS 是经过精心挑选的,可以再全局配置模式下设置 vlan
在这里插入图片描述

SW1(config)#vlan 10
SW1(config-vlan)#

设置 ASA 防火墙

Preferences >> Qemu >> ASA,进入 ASA 的设置页面.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第52张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第53张图片
GNS3 0.8.6 仅支持 ASA 8.0(2) 和 ASA 8.4(2),选择需要配置的 ASA 型号并点击 Apply,此时需要的配置自动填入,仅需要填入 InitrdKernel 的路径保存即可.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第54张图片

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第55张图片
添加成功后,ASA firewall 的图标由灰变亮. 由于我将 802 和 842 两种 ASA 都添加了,在拖动 ASA 图标时需要选择 ASA 型号.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第56张图片
启动 ASA 的电源,ASA 便开始工作并弹出它的模拟器窗口.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第57张图片
在 ASA 工作时,不能关闭 ASA 模拟器窗口.
在这里插入图片描述
同样方式可以进入 ASA 的配置终端页面.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第58张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第59张图片
模拟器中 ASA 不支持直接与 PC 互联,现实应用场景中也不存在这种情况


将真实机器、GNS3 虚拟机、VMware 虚拟机分别连入 GNS3 虚拟网络拓扑进行试验

在实验前将全部外部网络网口禁用,只开启 VMware 虚拟网络的适配器,关闭宿主机的防火墙.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第60张图片

R1 和 SW1 都是 c2691,SW1 使用前述方法使用 c2691 模拟.
C1 绑定真机,C2 表示 gns3 虚拟机,C3绑定 VMware 中安装的虚拟机.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第61张图片
SW1 的端口如下

  • f1/0 连接 C1
  • f1/1 连接 C2
  • f1/15 连接 R1 的 f0/0,R1 的 f0/1 连接 C3
    【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第62张图片

连接完成的结果如下. 点击红色方框图标显示连接端口. 连接完成后开启全部设备.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第63张图片
C1 绑定 VMnet1,悬停鼠标可以查看 VMnet1 的绑定 MAC 地址. 双击 C1 图标也可查看.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第64张图片
C2 的网口由 127.0.0.1:20001 模拟
在这里插入图片描述
C3 绑定 VMnet2,悬停鼠标可以查看 VMnet2 的绑定 MAC 地址. 双击 C13图标也可查看.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第65张图片
设置宿主机中 VMnet1 网口,与 VMware 虚拟网络编辑器中 VMnet1 网络处于相同网络断,并指定网关.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第66张图片
设置宿主机中 VMnet2 网口,与 VMware 虚拟网络编辑器中 VMnet2 网络处于相同网络断.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第67张图片
C3 是 VMware 虚拟机 WindowsXP,通过 VMnet2 在 GNS3 中绑定,VMnet2 为 host-only 模式.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第68张图片
在 VMware 中配置 XP 的 ip、mask 和 gateway. 这里的 ip 要和 VMware 虚拟网络 VMnet2 设置不在同一个网段中. 避免 WinXP 通过 VMnet2 和宿主机通信. 设置 XP 的 ip 为 192.168.100.100,其它如下:
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第69张图片
关闭 VMware 虚拟机 WinXP 的防火墙


下面开始配置交换机和路由器

配置 SW1,关闭 0 槽位的路由功能即可.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第70张图片
配置 R1
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第71张图片
配置 R1 的 f0/0 端口
在这里插入图片描述

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.41.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#

配置成功,可以和 C1 相互 ping 通.
在这里插入图片描述

R1(config-if)#do ping 192.168.41.80

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.41.80, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/16/32 ms
R1(config-if)#

配置 R1 的 f0/1 端口
在这里插入图片描述

R1(config-if)#int fa0/1
R1(config-if)#ip add 192.168.100.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#

配置成功,可以和 C1 相互 ping 通.
在这里插入图片描述

R1(config-if)#do ping 192.168.41.80

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.41.80, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/16/24 ms
R1(config-if)#

设置 C2

Tools > VPCS,打开 gns3 的虚拟主机模拟器.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第72张图片
gns3 虚拟主机模拟器如下. VPCS 模拟器的页面不可关闭,且只能开启一个窗口,多个 VPCS 在同一个窗口中设置.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第73张图片
show 命令查看虚拟主机编号、虚拟网卡、模拟端口. 我们设置 C2 绑定 20001 端口,也就是说 C2 是 VPCS2. 直接输入 编号 切换虚拟主机.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第74张图片
配置 C2 的 ip 和 gateway. 此时 C1, C2, C3 就可以互相 ping 通了.
C2 上 ping C1
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第75张图片
C2 上ping C3
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第76张图片
C1 上 ping C2
在这里插入图片描述
C1 上 ping C3
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第77张图片
C3 上 ping 网关
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第78张图片
在这里插入图片描述
C3 上 ping C1
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第79张图片
C3 上 ping C2
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第80张图片

跟踪路由信息,经过网关 192.168.41.1,说明数据包通过 R1 转发.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第81张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第82张图片

将 WindowsXP 换为 Ubuntu,设置 Ubuntu 的 ip 地址为 192.168.100.200,其它配置如下:
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第83张图片
C1 上 ping C3
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第84张图片
C2 上 ping C3
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第85张图片
C3 上平 C1
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第86张图片
C3 上 ping C2
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第87张图片

1.4 IPv4地址及子网划分 VLSM-CIDR 详解

知识点:

  • IPv4 分类/默认边界/私有保留块
  • IPv4 子网划分技巧
  • IPv4 可变长子网简介 (VLSM)
  • IPv4 网络聚合技巧 (CIDR)

IPv4 分类/默认边界/私有保留块

全球43亿个IPv4地址在2019年11月26日已经全部耗尽,但是IPv4依然网络中具有重要作用.

IPv4一共32位,分4组,每组8位,为便于理解和读写,用十进制表示.

11000000.10101000.00000001.00000001
192.168.1.1

一个完整的 IP 地址除去地址还有子网掩码

192.168.1.1/24    255.255.255.0

在这里插入图片描述

  • A 类地址范围是 0~127.xxx.xxx.xxx. 0.0.0.0 表示任意地址,127.xxx.xxx.xxx 用于本地主机环回测试,A类地址实际可用范围是 1~126.xxx.xxx.xxx.
  • B 类地址范围是 128~191.xxx.xxx.xxx. 常用的是 A、B、C 三类地址,它们是单播地址,可以分配给网卡使用. 即可以作为源地址,也可以作为目标地址.
  • C 类地址范围是 192~223.xxx.xxx.xxx.
  • D 类地址范围是 224~239.xxx.xxx.xxx. 不可以作为源地址,可以作为目标地址,广泛用于 IPv4 的组播应用.
  • E 类地址范围是 240~255.xxx.xxx.xxx. 用于科研领域,日常生活不会用到.

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第88张图片

  • A 类地址默认的第 1 个 8 bits 做网络位,后面 3 个 8 bits 做主机位. 默认子网掩码 /8,也即 255.0.0.0.
  • B 类地址默认的前 2 个 8 bits 做网络位,后面 2 个 8 bits 做主机位. 默认子网掩码 /16,也即 255.255.0.0.
  • C 类地址默认的前 3 个 8 bits 做网络位,最后 1 个 8 bits 做主机位. 默认子网掩码 /24,也即 255.255.255.0. C 类是最常用的 IP 地址段.

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第89张图片

  • 不会出现在公网路由表中.
  • 可以在私有网络重复使用.

IPv4 子网划分技巧

子网划分的目的是为了提高 IP 地址的利用率避免地址浪费.

 
如:202.106.1.0/24 是一个 C 类的公网地址段.

问题1:/24 这个掩码可以产生多少个子网?

计算: 2 X {2^X} 2X

  • X = 子 网 掩 码 二 进 制 形 式 中 " 借 " 的 1 的 位 数 {X=子网掩码二进制形式中"借"的 1 的位数} X=""1,也就是网络段比默认网络段多出的位数.

结果: 2 0 = 1 {2^0=1} 20=1,产生 1 个子网. C 类子网掩码默认 /24,这个地址段的掩码也是 /24,“借”了 0 位.

 
如:202.106.1.0/24 是一个 C 类的公网地址段.

问题2:这个默认的 C 类网段的每个子网可以包含多少个 IP 地址?

计算: 2 Y − 2 {2^Y-2} 2Y2

  • − 2 {-2} 2 是因为要去掉网络号和广播地址. 202.106.1.0 是网络号,202.106.1.255 是广播地址,网络号和广播地址不能作为主机 IP 地址.
  • Y = 子 网 掩 码 二 进 制 形 式 中 “ 0 ” 的 个 数 {Y=子网掩码二进制形式中“0”的个数} Y=0.

结果: 2 8 − 2 = 254 {2^8-2=254} 282=254,包含 254 个 IP 地址.

 
如:202.106.1.0/25 这不是一个默认的 C 类公网地址段了
它可以产生多少个子网? 2 1 = 2 {2^1=2} 21=2
每个子网可以包含多少个 IP 地址? 2 7 − 2 = 126 {2^7-2=126} 272=126

问题3:列出子网的网络号.

计算:从第一个网络号开始,以“块大小“为单位向后相加

  • “ 块 大 小 ” = 256 − 子 网 掩 码 中 倒数 第 1 个 非 255 八 位 组 {“块大小”= 256 - 子网掩码中\colorbox{aqua}{倒数}第 1 个\colorbox{aqua}{非 255} 八位组} =2561 255

这里 / 25 = 255.255.255.128 {/25=255.255.255.128} /25=255.255.255.128,128 是倒数第 1 个非 255 八位组, “ 块 大 小 " = 256 − 128 = 128 { “块大小"=256-128=128} "=256128=128

结果:第一个子网是 202.106.1.0/25,第二个子网是 202.106.1.128/25

 
如:202.106.1.0/25 这不是一个默认的 C 类公网地址段了

问题4:子网 202.106.1.0/25 的第一个 IP 地址是什么?最后一个 IP 地址是什么?它的广播地址是什么?

计算:
子网的第一个 IP 地址 = 子网的网络号 + 1 = 202.106.1.1
子网的最后的 IP 地址 = 下一个子网的网络号 - 2 = 202.106.1.126
子网的广播地址 = 下一个子网的网络号 -1 = 202.106.1.127

思考:202.106.1.128/25 这个子网的第一个和最后一个 IP 地址,以及广播地址是什么?

此时,202.106.1.128 是一个网络号,不再表示 IP 地址.
第一个 IP 地址是 202.106.1.129
最后一个 IP 地址是 202.106.1.254
广播地址是 202.106.1.255

 
再如:202.106.1.0/26 这不是一个默认的 C 类公网地址段了

1.子网个数?
2 2 = 4 2^2=4 22=4

2.子网 IP 个数?
2 6 − 2 = 62 2^6-2=62 262=62

3.哪些子网?
/ 26 = 255.255.255.192 , 块 大 小 = 256 − 192 = 64 /26=255.255.255.192,块大小=256-192=64 /26=255.255.255.192=256192=64
202.106.1.0202.106.1.64202.106.1.128202.106.1.192.

4.每个子网的第一和最后一个 IP 地址?
202.106.1.1202.106.1.62
202.106.1.65202.106.1.126
202.106.1.129202.106.1.190
202.106.1.193202.106.1.254

5.每个子网的广播地址
202.106.1.63202.106.1.127202.106.1.191202.106.1.255

 
再如:202.106.1.0/30 这不是一个默认的 C 类公网地址段了

1.子网个数?
2 6 = 64 2^6=64 26=64

2.子网 IP 个数?
2 2 − 2 = 2 2^2-2=2 222=2

3.哪些子网?
/ 30 = 255.255.255.252 , 块 大 小 = 256 − 252 = 4 /30=255.255.255.252,块大小=256-252=4 /30=255.255.255.252=256252=4
202.106.1.0202.106.1.4202.106.1.8、…、202.106.1.252.

4.每个子网的第一和最后一个 IP 地址?
202.106.1.1202.106.1.2
202.106.1.5202.106.1.6
202.106.1.8202.106.1.10

202.106.1.253202.106.1.254

  • 用于两个路由器互联,仅需要 2 个 IP 地址.

5.每个子网的广播地址?
202.106.1.3202.106.1.7202.106.1.11、…、202.106.1.255.

  • /31/32 已经没有意义了,划分的子网不存在可用的主机 IP 地址.

 
再如:128.16.0.0/19 这不是一个默认的 B 类公网地址段了

1.子网个数?
2 3 = 8 2^3=8 23=8

2.子网 IP 个数?
2 13 − 2 2^{13}-2 2132

3.哪些子网?
/ 19 = 255.255.224.0 /19=255.255.224.0 /19=255.255.224.0,224 是倒数第 1 个非 255 八位组, 块 大 小 = 256 − 224 = 32 块大小=256-224=32 =256224=32
128.16.0.0128.16.32.0128.16.64.0128.16.96.0128.16.128.0128.16.160.0128.16.192.0128.16.224.0

4.每个子网的第一和最后一个 IP ?
128.16.0.1128.16.31.254
128.16.32.1128.16.63.254
128.16.64.1128.16.95.254
128.16.96.1128.16.127.254
128.16.128.1128.16.159.254
128.16.160.1128.16.191.254
128.16.192.1128.16.223.254
128.16.224.1128.16.255.254

思考:128.16.0.255 是可用 IP 吗?
128.16.0.255 此时不是广播地址,是一个 IP 地址.

5.每个子网的广播地址
128.16.31.255128.16.63.255128.16.95.255128.16.127.255128.16.159.255128.16.191.255128.16.223.255128.16.255.255

一个 IP 子网划分练习题:
1.202.112.112.113/28 这是一个可用 IP 吗?属于哪个子网?广播地址是什么?
计算:
/ 28 = 255.255.255.240 /28=255.255.255.240 /28=255.255.255.240 “ 块 大 小 ” = 256 − 240 = 16 “块大小”=256-240=16 =256240=16
113 ∣ 16 = 7 113 \mid 16=7 11316=7 113 m o d    16 = 1 113 \mod 16=1 113mod16=1
这是一个 C 类地址
第 1 个网络号是 202.112.112.0,第 7 个网络号是 202.112.112.112,第 8 个网络号是 202.112.112.128.
202.112.112.113 不是网络号,也不是广播地址,它是一个可用的 IP 地址.
它所在子网的网络号是 202.112.112.112,广播地址是 202.112.112.127


VLSM 可变长子网掩码
例:有6个网段,有一个网段中需要27个IP,有一个需要55个IP,有一个需要110个IP,其它都需要2个IP. 给一个 202.106.1.0/24 的网段,如何分配?

解法:根据主机数量确定"块大小",得出掩码长度.
110 需要的"块大小"是128,子网掩码 /25,分配子网 202.106.1.0/25
55 需要的"块大小"是64,子网掩码 /26,分配子网 202.106.1.128/26
27 需要的"块大小"是32,子网掩码 /27,分配子网 202.106.1.192/27
2 需要的"块大小"是4,子网掩码 /30,分配子网 202.106.1.224/30202.106.1.228/30202.106.1.232/30


CIDR 网络聚合

企业网中一般不存在网络聚合的应用,网络聚合一般在运营商网络中使用.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第90张图片
  R1 下挂载了大量设备,路由表中存在大量 IP 信息. 如果将 R1 中的全部 IP 地址发送给 R2,会使得 R2 的路由表十分庞大,耗费 R2 大量的硬件资源. 并且由于R2 中存储的是下层设备的明细信息,当网络发生变化时路由表会频繁改变,造成路由表波动,会导致网络不稳定. 因此,R1 和 R5 向上级设备 R2 或 R6 发送网络数据时,应当将一个一个小的网段聚合成较大的网络号,避免前述的问题. 同理,市干核心向省干核心发送数据也应当聚合网络,省干向国干或 Internet 也要聚合. 这样就是一个逐级聚合的过程.
这是网络聚合的一个典型应用场景.

202.106.0.0 ~ 202.106.15.0 一共有 16 个 C 类网络.

问题:如何变成一个网络号向外通告?

解法:将不同位部分换成二进制,在找出共同位. 如下:

202.106.0.0 0000 0000 202.106.0.0\hspace{7ex} \textcolor{red}{0000}0000 202.106.0.000000000
202.106.1.0 0000 0001 202.106.1.0\hspace{7ex} \textcolor{red}{0000}0001 202.106.1.000000001
202.106.2.0 0000 0010 202.106.2.0\hspace{7ex} \textcolor{red}{0000}0010 202.106.2.000000010
. . . ... ...
202.106.14.0 0000 1110 202.106.14.0\hspace{6ex} \textcolor{red}{0000}1110 202.106.14.000001110
202.106.15.0 0000 1111 202.106.15.0\hspace{6ex} \textcolor{red}{0000}1111 202.106.15.000001111

聚合结果位 202.106.0.0/20.

反过来,向前借了4位,聚合了 2 4 = 16 2^4=16 24=16个网络.

这是连续的多个网段,如果是不连续的多个网段也可以聚合.

 
再如:202.106.19.0/24 ~ 202.106.33.0/24 最少可以聚合成几个?

解法:
开始网络号不同位部分是连续的 “0”
结束网络号不同位部分是连续的 “1”
能聚合的网段个数是 2 的幂次个

19 = 00010011 19.0 / 24 19=00010011\hspace{6ex} \textcolor{blue}{19.0/24} 19=0001001119.0/24
20 = 000101 00 20.0 / 22 20=000101\textcolor{red}{00}\hspace{6ex} \textcolor{blue}{20.0/22} 20=0001010020.0/22
23 = 000101 11 23=000101\textcolor{red}{11} 23=00010111
24 = 00011 000 24.0 / 21 24=00011\textcolor{red}{000}\hspace{6ex} \textcolor{blue}{24.0/21} 24=0001100024.0/21
31 = 00011 111 31=00011\textcolor{red}{111} 31=00011111
32 = 0010000 0 32.0 / 23 32=0010000\textcolor{red}{0}\hspace{6ex} \textcolor{blue}{32.0/23} 32=0010000032.0/23
33 = 0010000 1 33=0010000\textcolor{red}{1} 33=00100001

202.106.19.0/24 网络号末尾是连续的 “11”,因而它不能和后面的网络聚合,将它自身单独作为一个聚合网络202.106.19.0/24.
202.106.20.0/24 网络号"00010100"末尾是连续的 “00”,后面可以和它聚合的网络号最大为 “0011011”,因而202.106.20.0/24~202.106.24.0/24可以聚合为202.106.20.0/22.
202.106.24.0/24 网络号"00011000"末尾是连续的 “000”,后面可以和它聚合的网络号最大为“00011111”,因而202.106.24.0/24~202.106.31.0/24可以聚合为202.106.24.0/21.
202.106.32.0/24 网络号"00100000"末尾是1个连续的 “0”,202.106.33.0/24 网络号"00100001"末尾是1个连续的 “1”,这两个网络可以聚合成202.106.32.0/23.

总共可以聚合成 4 个网络, 4 = 2 2 4=2^2 4=22满足约束.

1.5 OSI 七层参考模型及进制转换技巧

主要技能:

  • OSI 七层参考模型及歌城功能简介
  • TCP/IP 四层模型简介
  • 二进制和十进制互转速算技巧
  • 二进制和十六进制互转速算技巧

OSI 七层参考模型及歌城功能简介

分层 功能
应用层 网络服务与最终用户的一个接口
表示层 数据的表示、安全、压缩
会话层 建立、管理、种植会话
传输层 定义传输数据的协议端口号,以及流控和差错校验
网络层 进行逻辑地址寻址,实现不同网络之间的路径选择
数据链路层 建立逻辑连接、进行硬件地址寻址、差错校验等功能
物理层 建立、维护、断开物理连接

TCP/IP 四层模型简介

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第91张图片

分层 常见协议
应用层 HTTP FTP TFTP SMPT SNMP DNS
传输层 TCP UDP
网络层 IP ICMP IGMP ARP RARP
接口层 Ethernet PPP

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第92张图片


二进制和十进制互转速算技巧

计算器是最好的技巧


二进制和十六进制互转速算技巧

计算器是最好的技巧


2. 思科设备企业网实战篇

2.1 思科设备基本开局配置

知识点:

  • 主机名
  • 管理 IP 地址
  • 开启远程管理
  • 安全密码

本小节实验环境如下:

  • R1 使用 c2691 模拟路由器(R1 使用任意 Cisco 路由器模拟均可).
  • SW1 使用 c2691 添加 NM-16ESW 模拟交换机(参照前面内容).
  • R1 的 f0/0 连接 SW1 的 f1/0.

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第93张图片
GNS3 模拟器对路由器进行了许多优化.

  1. 登录路由器直接进入了特权模式,而不是用户模式.
    【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第94张图片
    输入 disable 命令退出特权模式,进入用户模式. 用户模式的提示符是 >,而特权模式的提示符是 #.
    【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第95张图片
    从用户模式或特权模式输入 exit 命令,退出登录状态,回到登录页面.
    【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第96张图片
    在登陆页面按回车健,直接登录进入了特权模式. 这是因为没有设置登录密码和特权密码.
    在这里插入图片描述
    在登陆页面按回车健,直接登录进入了特权模式. 这是因为没有设置登录密码和特权密码.
    在这里插入图片描述
  2. 查看 GNS3 模拟器对设备的默认设置.
    show running-config
    其中主机名默认设置为 GNS3 workspace 中的名称. 这是默认设置为了在实验时更加友好.
    【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第97张图片
    空格键,查看更多信息.
    【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第98张图片

主机名

网络设备主机名的命名按照运营商规范要求. 便于运营商的对网络的管理.

设置 R1 的主机名

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#hostname R1-test
R1-test(config)#

设置 SW1 的主机名

SW1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#hostname SW1-test
SW1-test(config)#

管理 IP 地址

设置设备的管理 IP 地址是开局配置的必要操作. 设备互联一般使用 /30 掩码,节约 IP 地址资源.

配置 R1 管理 IP 地址:

R1-test#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1-test(config)#int fa0/0
R1-test(config-if)#ip add 202.106.1.1 255.255.255.252
R1-test(config-if)#no shut
  • 路由器开局时,它的第一个端口地址应该是连接上游设备的互联地址.
  • 将上行口的互联地址作为管理地址.

配置 SW1 管理 IP 地址:

SW1-test#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1-test(config)#int vlan 1
SW1-test(config-if)#ip add 202.106.1.2 255.255.255.252
SW1-test(config-if)#no shut
SW1-test(config-if)#exit
SW1-test(config)#ip default-gateway 202.106.1.1
  • 交换机开局时,它的管理 IP 地址是 VLAN1 的 IP 地址.
  • 需要指定默认网关.

开局配置 3 个公网 IP 地址

  • 1 个管理地址
  • 1 个互联地址(上行端口的地址,可以作为管理地址登录设备)
  • 1 个环回地址(RootID,后续详解)

在 R1 上 ping SW1:

R1-test#ping 202.106.1.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.106.1.2, timeout is 2 seconds:
..!!!
Success rate is 60 percent (3/5), round-trip min/avg/max = 32/37/44 ms

在 SW1 上 ping R1:

SW1-test#ping 202.106.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.106.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 40/40/44 ms

小技巧:
运营商分配的 IP 地址是 202106.1.1,由于使用 /30 掩码,对端 IP 地址一定是 202.106.1.2.


开启远程管理

配置 R1-test 的远程管理.

开启虚拟控制台端口

R1-test(config)#line vty 0 ?
  <1-935>  Last Line number
  

R1-test(config)#line vty 0

最多允许936个用户同时在线,一般开启5个足够使用.

R1-test(config)#line vty 0 4
R1-test(config-line)#

设置远程管理的密码并开启功能. 使用 password 设置密码,然后 login 表示开启验证

R1-test(config-line)#password abc
R1-test(config-line)#login

  配置 R1-test 是简单的接口密码验证. 这种方法开启的远程管理,需要设置特权模式密码,否在在远程登录的时候无法进入特权模式,只能进入用户模式. 后续设置特权模式密码. 下面配置 SW1-test 的时候使用现网通用的方法,本地用户名和密码验证.

 
配置SW1-test 的远程管理.

SW1-test(config)#line vty 0 4
SW1-test(config-line)#login ?
  local   Local password checking
  tacacs  Use tacacs server for password checking
  

SW1-test(config-line)#
  • local 表示本地用户名密码认证.
  • tacacs 表示 tacacs 服务器集中密码认证.

localtacacs 的原理是类似的,区别是 local 将用户名和密码保存在设备本地,而 tacacs 将用户名和密码保存在 tacacs 服务器上. 这里我们使用 local.

SW1-test(config-line)#login local

接下来退出虚拟控制台端口,回到全局配置模式,添加一个用户名和密码

SW1-test(config-line)#exit
SW1-test(config)#username test privilege ?
  <0-15>  User privilege level

SW1-test(config)#username test privilege 15 password ?
  0     Specifies an UNENCRYPTED password will follow
  7     Specifies a HIDDEN password will follow
  LINE  The UNENCRYPTED (cleartext) user password

SW1-test(config)#username test privilege 15 password abc
SW1-test(config)#
  • username 设置用户名. 设置一个 test 用户.
  • privilege 设置用户权限. 0~15级,15级最高. 我们设置 15级的最高权限.
  • password 设置密码. 0 表示显示密码,7 表示隐藏密码. 不带参数直接输入密码 abc ,默认为 0.

并不需要设置特权模式密码,15级权限登录即可获取特权模式.


安全密码

在 R1-test 上远程登录 SW1-test

R1-test#telnet 202.106.1.2
Trying 202.106.1.2 ... Open


User Access Verification

Username:

输入用户名和密码,直接进入了特权模式

Username: test
Password:
SW1-test#

这时一台交换机的远程管理就设置完毕.

 
在 SW1-test 上远程登录 R1-test

SW1-test#telnet 202.106.1.1
Trying 202.106.1.1 ... Open


User Access Verification

Password:

输入密码 abc 并回车,进入用户模式

Password:
R1-test>

enable 尝试进入特权模式,提示密码没有设置

R1-test>enable
% No password set
R1-test>

为了保证设备安全性,在没有设置特权模式密码的情况下,使用接口密码验证的方式远程登录只能进入用户模式,无法进入特权模式进行设置

回到 R1-test 本地,在全局配置模式下,设置特权模式密码

R1-test(config)#enable secret 123abc
R1-test(config)#

再回到 SW1-test 上,远程登录 R1,并进入特权模式. 这个时候提示输入密码,输入密码后就远程进入了 R1-test 的特权模式.

R1-test>enable
Password:
R1-test#

这时一台路由器的远程管理就设置完毕.

 
在登陆页面按回车健,直接登录进入了特权模式. 这是非常危险的. 这意味者任何人进入机房,只要使用控制线连接 CONSOLE 口,就能登录设备控制台. 因此,需要设置控制台登录密码.

以 R1-test 为例,设置接口密码登录 CONSOLE.

R1-test#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1-test(config)#line console 0
R1-test(config-line)#password 123
R1-test(config-line)#login
R1-test(config-line)#

退出登录
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第99张图片

回车,提示输入密码
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第100张图片

输入密码后,进入特权模式
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第101张图片
注意,在现网实际情况下,登录控制台后首先进入的是用户模式,在用户模式输入特权模式密码才能进入特权模式.

以 SW1-test 为例,设置用户名密码登录 CONSOLE.

SW1-test#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1-test(config)#line console 0
SW1-test(config-line)#login local

刚才,我们已经添加了一个用户 test,它的密码是 abc
登录控制台也可以使用 tacacs 服务器.

回到登录界面,回车提示输入用户名
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第102张图片
输入用户名和密码,进入了 SW1-test
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第103张图片

2.2 ARP协议、交换机工作原理及广播风暴问题

知识点:

  • ARP 协议的作用
  • 交换机的工作原理详解
  • ARP 协议的报文抓包分析
  • 以太网广播风暴问题及解决方案
  • 以太网安全问题辩论

实验网络拓扑如图所示. SW1 和 SW2 是 2 台交换机,在 c2691 平台上使用 NM-16ESW 交换板卡模拟. R1 是 1 台路由器,可以使用任何型号模拟. R1 的两个端口 IP 地址分别为 192.168.1.1192.168.2.1. SW1 下面连接 C1 和 C2 ,SW2 下面连接 C3. C1 绑定真实机 VMnet1 网口,IP 地址为 192.168.1.10. C2 是 GNS3 虚拟机 VPCS[1],IP 地址为 192.168.1.20. C3 是 GNS3 虚拟机 VPCS[2],IP 地址为 192.168.2.30.
注意 VMware 虚拟网络 VMnet1 的网络号设置为 192.168.1.0.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第104张图片


ARP 协议的作用

  由 OSI 模型或 TCP/IP 模型可知,当 C1 ping C2 的时候,数据帧的源 IP 地址是 192.168.1.10,源 MAC 地址是虚拟网卡 VMnet1 的 MAC 地址,目标 IP 地址是 192.168.1.20,目标 MAC 地址未知.
  ARP 协议用来发现目标的 MAC 地址. C1 会首先广播发送 ARP request 报文,意思是“192.168.1.20 这个 IP 地址的 MAC 地址是多少?”. 交换机 SW1 上所有的设备都会收到这个报文,但是除了 C2 都不会回复,C2 会单播发送 ARP replay 报文,告知 C1 它的 MAC 地址. C1 接收到 C2 的回复后,将 C2 的 MAC 地址存储在 ARP 缓存表中,ARP 缓存表记录了 IP 地址与 MAC 地址的对应关系. ARP 缓存表在内存中,并且它均有生存时间. 当计算机重启或缓存表到期,ARP 缓存表会被清空,需要再次发现.

在 CMD 中,arp 命令可以管理缓存表

-d 参数删除指定项,带 * 或不带任何参数表示删除缓存表中所有项

>arp -d *

-a 参数查看缓存表中内容

>arp -a

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第105张图片

  • 如果是 Windows10 平台,可能会有 224.0.0.22224.0.0.251224.0.0.252 等组播地址无法清除的现象. 这是Win10 系统自带服务在使用组播协议,清除 arp 缓存表后自动建立. 并不影响实验.

ARP 协议的报文抓包分析

在 GNS3 中使用 Wireshark 抓包工具分析 ARP 协议的报文.

开始监听 SW1 连接 C1 的端口
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第106张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第107张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第108张图片
Wireshark 抓包界面.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第109张图片
使用过滤器,筛选 ARP 协议报文.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第110张图片
由于手动指定了网关,C1 不停的向 R1 发送 ARP request 报文,R1 也不断的向 C1 回复 ARP replay 报文. 因此 C1 的 APR 缓存表中始终存在 R1 的 MAC 地址.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第111张图片
C1 的 ARP 缓存表中没有 C2 的 MAC 地址.

在 C1 上 ping C2.

>ping 192.168.1.20

并再次查看 C1 的 APR 缓存表,可以发现已经学到了 C2 的 MAC 地址.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第112张图片
Wireshark 中也抓取到了:

  • C1 发送的 ARP request 报文,
  • C1 收到的 C2 发送的 ARP replay 报文.

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第113张图片
C1 发送的 ARP request 报文:

  • 在二层网络上,源 MAC 地址是 C1 网口 VMnet1 的 MAC 地址(00-50-56-C0-00-01);目标 MAC 地址是广播地址 (00:00:00:00:00:00)
  • 在三层网络上,源 IP 地址是 C1 的 IP 地址(192.168.1.10),目标 IP 地址是 C2 的 IP 地址(192.168.1.20)
    【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第114张图片

C1 收到的 C2 发送的 ARP replay 报文:

  • 在二层网络上,源 MAC 地址是 C2 的 MAC 地址(00-50-79-66-68-00 );目标 MAC 地址是 C1 网口 VMnet1 的 MAC 地址(00-50-56-C0-00-01)
  • 在三层网络上,源 IP 地址是 C2 的 IP 地址(192.168.1.20) ,目标 IP 地址是 C1 网口的 IP 地址(192.168.1.10).
    【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第115张图片

停止监听
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第116张图片
开始监听 SW1 连接 C2 的接口
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第117张图片
删除 C1 的 ARP 缓存表,C1 ping C2

>arp -d
>ping 192.168.1.20

C2 收到了 C1 发送 ARP request 报文,并向 C1 发送 ARP replay 报文
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第118张图片
关闭监听.

开始监听 R1 连接 SW1 的接口
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第119张图片
删除 C1 的 ARP 缓存表,C1 ping C2

>arp -d
>ping 192.168.1.20

R1 收到了 C1 发送 ARP request 报文,但是它会丢弃并不会返回 replay 报文.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第120张图片
在 C1 上 ping C3

>arp -d
>ping 192.168.2.30

C1 不会去学 C3 的 MAC 地址,因为 C1 不会发送 ARP request 广播报文. C3 的 IP 地址和 C1 不在同一个网段,C1 会直接将数据帧发给网关 R1. R1 会首先向 C3 发送 ARP request 报文,C3 收到后会向 R1 返回 ARP replay 报文.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第121张图片
ARP 报文不能跨网段传输.


交换机的工作原理详解

交换机工作在二层网络,也就是数据链路层. 它依据 MAC 地址表转发数据. 下面以 SW1 为例,详解交换机工作原理.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第122张图片
当 C1 或 C2 初始接入SW1 时,SW1 的 fa1/1 和 fa1/2 口并不知道下面接入设备的 MAC 地址. C1 和 C2 通讯时会向 SW1 发送数据帧,SW1 会从数据帧的源 MAC 地址字段学到 C1 和 C2 的 MAC 地址,并存储到 SW1 的 MAC 地址表中.
在 SW1 上查看它的 MAC 地址表:

SW1#show mac-address-table

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第123张图片

清除 MAC 地址表

SW1#clear mac-address-table

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第124张图片

查看此时的 MAC 地址表
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第125张图片
此时 C1 和 R1 的 MAC 地址仍在 SW1 的 MAC 地址表中,这是因为 C1 一直在向网关 R1 发送 ARP 报文,因此 SW1 一直在学习 C1 和 R1 的 MAC 地址.

但是 SW1 并不知道 C2 的 MAC 地址.

让 C1 ping C2. 由于 SW1 并不知道 C2 的 MAC 地址,SW1 会泛洪向所有连接的端口转发 C1 的 ICMP request 报文,但是只有 C2 在接收后会发送 ICMP replay 报文,其它设备会丢弃收到的报文,例如 R1 收到 ICMP request 报文后没有回复 replay 报文. SW1 会从 C2 发送的数据帧中学到 C2 的 MAC 地址,并存到 MAC 地址表中. 当 SW1 学到 C2 的 MAC 地址后就不会在向其它端口转发到 C2 的数据帧. 因此,R1 只会收到第一个 C1 发送给 C2 的 ICMP request 报文. MAC 地址表也有生存时间,MAC 地址表超过生存时间后需要重新学习.

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第126张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第127张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第128张图片


以太网安全问题分析

在正常情况下,以太网(Ethernet)的安全性可以满足基本要求. 但是由于 TCP/IP 的设计缺陷,在极端情况下会导致安全隐患.

  • SW1 的 MAC 地址表是一段内存空间,如果这段内存空间已经占满,继续向 MAC 地址表写入信息会导致内存溢出,使得 MAC 地址表不停的遗忘. 这时,由于 SW1 的地址表为空,SW1 会转发所有收到的数据帧,此时在第三方设备上就可以监听其它的设备间的通信. 例如 C1 与 R1 间的通讯会被 C2 截获.
  • ARP 协议没有校验机制. 当 C1 没有向 C2 发送 ARP request 报文时,C2 也可以向 C1 发送 replay 报文,C1 会接收这个报文并将报文里的 MAC 地址和 IP 地址写入 C1 自己的 MAC 地址表. 如果 C2 发送的 ARP reply 报文是 C2 自己的 MAC 地址和 网关 R1 的 IP 地址,那么 C1 会将发送到 R1 的数据帧全部发往 C2. 如果与此同时 C2 将含有它自己 MAC 地址和 C1 的 IP 地址的 ARP replay 报文发送给 R1,R1 会将所有发送到 C1 的数据帧全部发往 C2. 那么,此时 C2 就监听了 C1 和 R1 间的通讯. 这叫做 ARP 欺骗.
  • 如果 C2 发送给 C2 的 ARP replay 报文是错误的 MAC 地址和网关 R1 的 IP 地址,那么 C1 就不能正常接入互联网. 这叫做 ARP 攻击.


以太网广播风暴问题及解决方案

如果交换机连接了大量的终端设备,那么以太网中会存在大量的 request(ARP、ICMP 或其它协议) 广播报文. 大量的广播报文会占据大量的带宽资源,降低网络速度,影响网络性能. 这个被称之为广播风暴问题.
广播风暴只存在二层网络中,也就是交换机端口之间会出现这个问题. 路由器端口之间不会转发广播数据帧,因此它能很好的隔绝网络风暴. 当网络中存在数量庞大的终端时,使用路由器可以设计分层化的网络结构,而不是单一的扁平化的网络结构,这样可以将网络风暴隔绝在较小的范围内,减小它对网络性能的影响.
但是路由器工作在三层网络,交换机工作在二层网络. 二层设备的转发效率要高于三层设备. 同时路由器端口有限,无法连接大量的终端设备. 因此设计了 VLAN 技术,使得交换机能避免广播风暴的问题.

2.3 思科设备 VLAN 及单臂路由实战

知识点:

  • VLAN 的工作原理及应用场景
  • 增加和删除基于端口的 VLAN
  • 中继端口的配置
  • 中级端口的 VLAN 过滤
  • 使用单臂路由技术实现 VLAN 间通信

实验网络拓扑如图所示. R1 是 1 台路由器,SW1 和 SW2 是在 c2691 平台上使用 NM-16ESW 交换板卡模拟的 2 台交换机. C1、C2、C3、C4 是 4 台 VPCS. 交换机 SW1 的 f1/1 口连接 C1,f1/2 口连接 C2;交换机 SW2 的 f1/3 口连接 C3,f1/4 口连接 C4. 交换机 SW1 的 f1/15 和 SW2 的 f1/15 连接. 路由器 R1 使用 f0/0 口连接交换机 SW1 的 f1/0 口.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第129张图片


VLAN 的工作原理及应用场景

vlan的全称是Virtual Local Area Network,即“虚拟局域网”,就是把一个大的局域网,分成多个隔离的,小的局域网. 这样做的好处主要有两点.

  1. 隔离广播域,让每个节点(比如电脑、手机)不需要收到太多无关的广播包,从而减少计算性能和网络带宽的无谓消耗. 从而保证局域网的性能.
  2. 隔离常见病毒与攻击,这样即使某个主机感染了arp攻击病毒、dhcp攻击病毒等常见局域网病毒,影响的范围也只限于本vlan,不会影响到其他vlan,可以将故障限制在比较小的范围. 一来造成的影响小,二来排查故障也更加容易.

例如,运营商网络中某个局域网含有成百上千个设备,其中一个设备发送广播报文,其它所有设备都会收到,当有大量的设备发送广播报文时,网络中就会充斥着广播报文,严重降低网络质量. 再如,企业内部有多个部门,可以使用 VLAN 技术将每个部门的计算机组成虚拟局域网,不同部门之间相互隔绝,可以避免安全隐患. 这种大量设备相互连接组成的局域网被称为扁平(Fabric)化网络,利用 VLAN 可以将一个大的平面网络划分为若干相互独立的小网络.


增加和删除基于端口的 VLAN

所有厂商交换机设备默认有一个 vlan1,所有端口都加入了 vlan1. 因此,交换机只要加电,所有端口就能互相通信.

调整 putty 终端的字体大小.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第130张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第131张图片
在这里插入图片描述
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第132张图片

设置 C1~4 的 IP 地址.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第133张图片
现在,要将 C1 和 C3 组成 vlan10,C2 和 C4 组成 vlan20.

查看 vlan 信息

如果是真实思科交换机,查看 vlan 命令为:

SW1#show vlan

但是此处我们只能使用带二层交换功能的路由器模拟,命令为:

SW1#show vlan-switch brief

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第134张图片

SW1#show vlan-switch brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa1/0, Fa1/1, Fa1/2, Fa1/3
                                                Fa1/4, Fa1/5, Fa1/6, Fa1/7
                                                Fa1/8, Fa1/9, Fa1/10, Fa1/11
                                                Fa1/12, Fa1/13, Fa1/14, Fa1/15
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup
SW1#
  • 具有默认 vlan1,fa1/0 ~ fa1/15 都在 vlan1 中.
  • 其它 vlan 都是保留给以太网使用.

在 SW1 上进入全局配置模式添加 vlan10

SW1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#vlan 10
SW1(config-vlan)#

添加描述信息. 也可不添加,会自动生成.

SW1(config-vlan)#name v10
SW1(config-vlan)#

接着添加 vlan20

SW1(config-vlan)#vlan 20
SW1(config-vlan)#

查看 vlan 信息

SW1#show vlan-switch brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa1/0, Fa1/1, Fa1/2, Fa1/3
                                                Fa1/4, Fa1/5, Fa1/6, Fa1/7
                                                Fa1/8, Fa1/9, Fa1/10, Fa1/11
                                                Fa1/12, Fa1/13, Fa1/14, Fa1/15
10   v10                              active
20   VLAN0020                         active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup
SW1#

此时,已经添加了 vlan10 和 vlan20.

在 vlan 中添加端口,这种方法称为静态 vlan.

进入端口,设置端口模式为 access.

SW1(config)#int fa1/1
SW1(config-if)#switchport mode access
SW1(config-if)#

将 fa1/1 设为 access. 当 C1 发送一个数据帧到 SW1,SW1 会将这个数据帧打上标记 (tag) ,当 SW1 收到发往 C1 的数据帧,SW1 会将这个数据帧上的标记脱掉.

将 fa1/1 加入 vlan10

SW1(config-if)#switchport access vlan 10
SW1(config-if)#

将 fa1/2 加入 vlan20

SW1(config-if)#int fa1/2
SW1(config-if)#switchport access vlan 20
SW1(config-if)#

在默认情况下,思科交换机端口就是 access 模式. 因此,switchport mode access 这条命令可以省略.

查看 vlan 信息. fa1/1 端口已经加入了 vlan10,fa1/2 端口已经加入 vlan20.

SW1#show vlan-switch brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa1/0, Fa1/3, Fa1/4, Fa1/5
                                                Fa1/6, Fa1/7, Fa1/8, Fa1/9
                                                Fa1/10, Fa1/11, Fa1/12, Fa1/13
                                                Fa1/14, Fa1/15
10   v10                              active    Fa1/1
20   VLAN0020                         active    Fa1/2
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup
SW1#

在 SW2 上添加 vlan10 和 vlan20.

SW2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW2(config)#vlan 10
SW2(config-vlan)#vlan 20
SW2(config-vlan)#

在 vlan10 中添加 C3,在 vlan20 中添加 C4

SW2(config-vlan)#int fa1/3
SW2(config-if)#switchport access vlan 10
SW2(config-if)#
SW2(config-if)#
SW2(config)#int fa1/4
SW2(config-if)#switchport access vlan 20

查看 SW2 上的 vlan 信息.

SW2#show vlan-switch brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa1/0, Fa1/1, Fa1/2, Fa1/5
                                                Fa1/6, Fa1/7, Fa1/8, Fa1/9
                                                Fa1/10, Fa1/11, Fa1/12, Fa1/13
                                                Fa1/14, Fa1/15
10   VLAN0010                         active    Fa1/3
20   VLAN0020                         active    Fa1/4
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup
SW2#

中继端口的配置

此时,C1 和 C3 之间不能相互通信,C2 和 C4 之间也不能相互通信. 因为 SW1 和 SW2 的 fa1/15 端口目前属于 vlan1 并且是 access 模式,vlan10 和 vlan20 的数据帧都无法通过. 如果将 fa1/15 加入 vlan10,则 vlan20 的数据帧无法通过. 如果将 fa1/15 加入 vlan20,则 vlan10 的数据无法通过.
这里需要引入终极端口. fa1/15 设置为中继端口,并允许 vlan10 和 vlan20 的数据通过. 默认允许所有 vlan 数据帧通过.

将 SW1 的 fa1/15 设置为 trunk 模式.

SW1(config)#int fa1/15
SW1(config-if)#switchport mode trunk
SW1(config-if)#

告诉交换机的封装类型,802.1q. 真实思科交换机默认设置自有协议 isl.

SW1(config-if)#switchport trunk encapsulation ?
  dot1q  Interface uses only 802.1q trunking encapsulation when trunking

设置为 802.1q 封装.

SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#

设置 SW2 的 fa1/15 为中继端口

SW2(config)#int fa1/15
SW2(config-if)#switchport mode trunk
SW2(config-if)#
*Mar  1 01:39:19.355: %DTP-5-TRUNKPORTON: Port Fa1/15 has become dot1q trunk

此时,C1 和 C3 之间可以互通,C2 和 C4 之间可以互通.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第135张图片
但是,C1 和 C2、C1 和 C4、C2 和 C3,C3 和 C4 之间不能互通.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第136张图片


使用单臂路由技术实现 VLAN 间通信

此时,C1 和 C3 属于 vlan10,C2 和 C4 属于 vlan20. 而且 vlan10 和 vlan20 相互隔绝,要想 vlan10 和 vlan20 可以相互通信,只能为 vlan 配置网关并使用路由器连接.

单臂路由就是将路由器的一个端口划分为多个子接口,为多个网段设置网关.

进入 R1 的 fa0/0 端口,激活并去除 IP 设置.

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int fa0/0
R1(config-if)#no shut
R1(config-if)#no ip add

退出 fa0/0

R1(config-if)#exit

最多支持如下子接口数量

R1(config)#int fa0/0.?
  <0-4294967295>  FastEthernet interface number

设置 fa0/0.1 子接口,配置为 802.1q 封装,指定 vlan1 做网关.

R1(config)#int fa0/0.1
R1(config-subif)#encap
R1(config-subif)#encapsulation d
R1(config-subif)#encapsulation dot1Q ?
  <1-4094>  IEEE 802.1Q VLAN ID

R1(config-subif)#encapsulation dot1Q 1
R1(config-subif)#
  • encapsulation dot1Q 1 表示指定为 vlan1 做网关.
  • 先指定 vlan,后配置 IP. 如果不这样,IP 就配不上

为 fa0/0.1 配置 IP 地址.

R1(config-subif)#ip add 192.168.1.1 255.255.255.0
R1(config-subif)#no shut
R1(config-subif)#

为 fa0/0.10 指定 vlan10,设置 802.1q 封装,并配置 IP 地址.

R1(config)#int fa0/0.10
R1(config-subif)#encapsulation dot1Q 10
R1(config-subif)#ip add 192.168.10.1 255.255.255.0
R1(config-subif)#no shut
R1(config-subif)#

为 fa0/0.20 指定 vlan20,设置 802.1q 封装,并配置 IP 地址.

R1(config-subif)#int fa0/0.20
R1(config-subif)#encapsulation dot1Q 20
R1(config-subif)#ip add 192.168.20.1 255.255.255.0
R1(config-subif)#no shut
R1(config-subif)#

查看 R1 上的接口信息

R1#show ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES manual up                    up
FastEthernet0/0.1          192.168.1.1     YES manual up                    up
FastEthernet0/0.10         192.168.10.1    YES manual up                    up
FastEthernet0/0.20         192.168.20.1    YES manual up                    up
FastEthernet0/1            unassigned      YES unset  administratively down down
R1#

配置 SW1 的 fa1/0 为中继端口,允许 vlan1、vlan10、vlan20 的数据帧通过

SW1(config-if)#int fa1/0
SW1(config-if)#switchport mode trunk
SW1(config-if)#

在 SW1 上为 vlan1 配置 IP 并指定网关.

SW1(config)#int vlan 1
SW1(config-if)#ip add 192.168.1.10 255.255.255.0
SW1(config-if)#no shut
SW1(config-if)#exit
SW1(config)#ip default-gateway 192.168.1.1
SW1(config)#

在 SW2 上为 vlan1 配置 IP 并指定网关.

SW2(config)#int vlan 1
SW2(config-if)#ip add 192.168.1.20 255.255.255.0
SW2(config-if)#no shut
SW2(config-if)#exit
SW2(config)#ip default-gateway 192.168.1.1
SW2(config)#

为 C1~4 设置 IP 地址并指定网关.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第137张图片

此时,vlan10、vlan20 和 vlan1 内的设备都能相互通信.


中继端口的 VLAN 过滤

SW1(config)#int fa1/0
SW1(config-if)#switchport trunk ?
  allowed        Set allowed VLAN characteristics when interface is in trunking
                 mode
  encapsulation  Set trunking encapsulation when interface is in trunking mode
  native         Set trunking native characteristics when interface is in
                 trunking mode

SW1(config-if)#switchport trunk allowed vlan ?
  WORD    VLAN IDs of the allowed VLANs when this port is in trunking mode
  add     add VLANs to the current list
  all     all VLANs
  except  all VLANs except the following
  remove  remove VLANs from the current list

SW1(config-if)#switchport trunk allowed vlan remove ?
  WORD  VLAN IDs of the allowed VLANs when this port is in trunking mode

在 SW1 的 fa1/0 接口过滤 vlan20 流量,不让其通过.

SW1(config-if)#switchport trunk allowed vlan remove 20
SW1(config-if)#

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第138张图片
ctrl - A 回到行首. 取消对 vlan20 的过滤.

SW1(config-if)#no switchport trunk allowed vlan remove 20
SW1(config-if)#

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第139张图片

此时,网络中所有设备都要通过 R1 才能互相通信. 路由器 R1 的处理能力和其与 SW1 连接链路成为网络性能的 2 个瓶颈.


2.4 思科三层交换机实现 VLAN 间路由实战

知识点:

  • Interface vlan 原理及配置
  • VLAN 间路由连通测试
  • 三层交换机和路由器互连配置

实验网络拓扑如图所示. 与上面小节类似,M1 是 1 台三层交换机,使用 c2691 插上 NM-16ESW 交换板卡模拟(路由功能关闭). SW1 和 SW2 是2 台交换机,在 c2691 平台上使用 NM-16ESW 交换板卡模拟 (路由功能关闭). C1、C2、C3、C4 是 4 台 VPCS. 交换机 SW1 的 f1/1 口连接 C1,f1/2 口连接 C2;交换机 SW2 的 f1/3 口连接 C3,f1/4 口连接 C4. 交换机 SW1 的 f1/15 和 SW2 的 f1/15 连接. 路由器 R1 使用 f0/0 口连接交换机 SW1 的 f1/0 口.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第140张图片


Interface vlan 原理及配置

实验拓扑与单臂路由相似,只是将路由器替换为三层交换机 M1. 也就是说 M1 具有二层和三层功能.

SW1 的设置与前面相同. 添加 vlan 10 和 vlan 20. 将 fa1/1 加入 vlan 10,fa1/2 加入 vlan 20. 将 fa1/15 设置为 trunk 模式. 为 vlan 1 设置 IP . 指定默认网关.

SW1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#vlan 10
SW1(config-vlan)#vlan 20
SW1(config-vlan)#int fa1/1
SW1(config-if)#switchport access vlan 10
SW1(config-if)#
SW1(config-if)#int fa1/2
SW1(config-if)#switchport access vlan 20
SW1(config-if)#
SW1(config-if)#int fa1/15
SW1(config-if)#switchport mode trunk
SW1(config-if)#int vlan 1
SW1(config-if)#ip add 192.168.1.10 255.255.255.0
SW1(config-if)#no shut
SW1(config-if)#exit
SW1(config)#no ip routing
SW1(config)#ip default-gateway 192.168.1.1

SW2 的设置与前面相同. 添加 vlan 10 和 vlan 20. 将 fa1/3 加入 vlan 10,fa1/4 加入 vlan 20. 将 fa1/15 设置为 trunk 模式. 为 vlan 1 设置 IP . 指定默认网关.

SW2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW2(config)#vlan 10
SW2(config-vlan)#vlan 20
SW2(config-vlan)#int fa1/3
SW2(config-if)#switchport access vlan 10
SW2(config-if)#int fa1/4
SW2(config-if)#switchport access vlan 20
SW2(config-if)#int fa1/15
SW2(config-if)#switchport mode trunk
SW2(config-if)#int vlan 1
SW2(config-if)#ip add 192.168.1.20 255.255.255.0
SW2(config-if)#no shut
SW2(config-if)#exit
SW2(config)#no ip routing
SW2(config)#ip default-gateway 192.168.1.1

为 C1、C2、C3、C4 设定 IP.

VPCS[1]> ip 192.168.10.10 192.168.10.1 24
Checking for duplicate address...
PC1 : 192.168.10.10 255.255.255.0 gateway 192.168.10.1

VPCS[1]> 2
VPCS[2]> ip 192.168.20.20 192.168.20.1 24
Checking for duplicate address...
PC2 : 192.168.20.20 255.255.255.0 gateway 192.168.20.1

VPCS[2]> 3
VPCS[3]> ip 192.168.10.30 255.255.255.0 192.168.10.1
Checking for duplicate address...
PC3 : 192.168.10.30 255.255.255.0 gateway 192.168.10.1

VPCS[3]> 4
VPCS[4]> ip 192.168.20.40 192.168.20.1 24
Checking for duplicate address...
PC4 : 192.168.20.40 255.255.255.0 gateway 192.168.20.1

此时,C1 和 C3 可以相互通信,C2 和 C4 可以相互通信. 但是 C1 不能和 C2、C4 通信,C3 也不能和 C2、C4 通信.

再上一小节中,为了使 vlan 间可以通信,使用了子接口. 这里使用 interface vlan . 在三层交换机 M1 上添加 vlan 10 和 vlan 20,为他们配置 IP,分别作为 vlan 10 和 vlan 20 的网关. 此时相当于在 M1 上的两个虚拟接口接入了 vlan 10 和 vlan 20,并且它们通过 M1 的三层路由功能可以互相通信.

M1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
M1(config)#vlan 10
M1(config-vlan)#vlan 20
M1(config-vlan)#int fa1/0
M1(config-if)#switchport mode trunk
M1(config-if)#jiangh
M1(config-if)#int vlan 10
M1(config-if)#ip add 192.168.10.1 255.255.255.0
M1(config-if)#no shut
M1(config-if)#
M1(config-if)#int vlan 20
M1(config-if)#ip add 192.168.20.1 255.255.255.0
M1(config-if)#no shut
M1(config-if)#
M1(config-if)#int vlan 1
M1(config-if)#ip add 192.168.1.1 255.255.255.0
M1(config-if)#

只要将 SW1 的 fa1/0 接口设为 trunk,VLAN 间路由就配置完成了.

SW1(config)#int fa1/0
SW1(config-if)#sw
SW1(config-if)#switchport mo
SW1(config-if)#switchport mode tr
SW1(config-if)#switchport mode trunk

现在,C1、C2、C3、C4 以及 M1、SW1、SW2 都能相互通信. 此时仍然使用了单臂路由的拓扑,虽然 VLAN 间路由使 M1 的 fa1/0 不再成为性能瓶颈,但是 M1 与 SW1 之间的线路瓶颈依然存在.


VLAN 间路由连通测试

将 SW1 和 SW2 之间的线路删除. 然后将 M1 的 fa1/1 接口与 SW2 的 fa1/0 接口连接. 这样的网络拓扑结构就避免了线路带宽制约性能的问题.
现在只需将 M1 的 fa1/1 和 SW2 的 fa1/0 设为 trunk 模式,VLAN 间路由就配置完成了.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第141张图片
配置 SW2 的 fa1/0 接口

SW2(config-if)#int fa1/0
SW2(config-if)#sw
SW2(config-if)#switchport mo
SW2(config-if)#switchport mode t
SW2(config-if)#switchport mode trunk

配置 M1 的 fa1/1 接口

M1(config-if)#int fa1/1
M1(config-if)#sw
M1(config-if)#switchport mo
M1(config-if)#switchport mode tr
M1(config-if)#switchport mode trunk

此时在真实现网设备上应该就能通信了. 但是 GNS3 模拟器上不支持热插拔,需要手动激活 SW2 的 fa1/0 接口和 M1 的 fa1/1 接口.

SW2(config-if)#end
SW2#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  administratively down down
FastEthernet0/1            unassigned      YES unset  administratively down down
FastEthernet1/0            unassigned      YES unset  up                    down
FastEthernet1/1            unassigned      YES unset  up                    down
FastEthernet1/2            unassigned      YES unset  up                    down
FastEthernet1/3            unassigned      YES unset  up                    up
FastEthernet1/4            unassigned      YES unset  up                    up
FastEthernet1/5            unassigned      YES unset  up                    down
FastEthernet1/6            unassigned      YES unset  up                    down
FastEthernet1/7            unassigned      YES unset  up                    down
FastEthernet1/8            unassigned      YES unset  up                    down
FastEthernet1/9            unassigned      YES unset  up                    down
FastEthernet1/10           unassigned      YES unset  up                    down
FastEthernet1/11           unassigned      YES unset  up                    down
FastEthernet1/12           unassigned      YES unset  up                    down
FastEthernet1/13           unassigned      YES unset  up                    down
FastEthernet1/14           unassigned      YES unset  up                    down
FastEthernet1/15           unassigned      YES unset  up                    up
Vlan1                      192.168.1.20    YES manual up                    up
SW2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW2(config)#int fa1/0
SW2(config-if)#shut
SW2(config-if)#no shut
SW2(config-if)#
M1(config-if)#end
M1#
*Mar  1 01:07:15.787: %SYS-5-CONFIG_I: Configured from console by console
M1#show ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  administratively down down
FastEthernet0/1            unassigned      YES unset  administratively down down
FastEthernet1/0            unassigned      YES unset  up                    up
FastEthernet1/1            unassigned      YES unset  up                    down
FastEthernet1/2            unassigned      YES unset  up                    down
FastEthernet1/3            unassigned      YES unset  up                    down
FastEthernet1/4            unassigned      YES unset  up                    down
FastEthernet1/5            unassigned      YES unset  up                    down
FastEthernet1/6            unassigned      YES unset  up                    down
FastEthernet1/7            unassigned      YES unset  up                    down
FastEthernet1/8            unassigned      YES unset  up                    down
FastEthernet1/9            unassigned      YES unset  up                    down
FastEthernet1/10           unassigned      YES unset  up                    down
FastEthernet1/11           unassigned      YES unset  up                    down
FastEthernet1/12           unassigned      YES unset  up                    down
FastEthernet1/13           unassigned      YES unset  up                    down
FastEthernet1/14           unassigned      YES unset  up                    down
FastEthernet1/15           unassigned      YES unset  up                    down
Vlan1                      192.168.1.1     YES manual up                    up
Vlan10                     192.168.10.1    YES manual up                    up
Vlan20                     192.168.20.1    YES manual up                    up
M1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
M1(config)#int fa1/1
M1(config-if)#shut
M1(config-if)#no shut

现在,C1、C2、C3、C4 以及 M1、SW1、SW2 都能相互通信.,并且制约网络性能的线路瓶颈也被解除了.


三层交换机和路由器互连配置

现在添加 1 台路由器 R1,并将 R1 的 fa0/0 连接 M1 的二层口 fa1/15.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第142张图片
配置 R1 的 fa0/0 接口.

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int fa0/0
R1(config-if)#ip add 202.106.1.2 255.255.255.0
R1(config-if)#no shut

此时,M1 的二层口 fa1/15 与 R1 的三层口互连但不互通. 要想它们彼此之间能互通,需要在 M1 上添加一个 vlan 并将 fa1/15 口加入这个 vlan. 为这个 vlan 配置 IP 后,这个 vlan 便能和路由器 R1 互通. 这就是 interface vlan 和路由器之间通信.

配置 M1 的 fa1/15 口,并手动激活.

M1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
M1(config)#vlan 100
M1(config-vlan)#int fa1/15
M1(config-if)#switchport access vlan 100
M1(config-if)#int vlan 100
M1(config-if)#ip add 202.106.1.1 255.255.255.0
M1(config-if)#no shut

现在,R1 就能和 M1 及其它设备通信了.

在思科设备上,还支持 no switchport 命令将二层口转换成三层口. 这样 fa1/15 就能直接和 R1通信了.

先将 vlan 100 和 interface vlan 100 删除.

M1(config)#no vlan 100
M1(config)#no int vlan 100

直接为 fa1/15 口配置 IP 失败,此时它还是二层口.

M1(config)#int fa 1/15
M1(config-if)#ip add 202.106.1.1 255.255.255.0

% IP addresses may not be configured on L2 links.

M1(config-if)#

将其转换成三层口,并配置 IP.

M1(config-if)#no switchport
M1(config-if)#ip add 202.106.1.1 255.255.255.0
M1(config-if)#no shut

2.5 思科设备静态默认及浮动路由实战

知识点:

  • 静态路由的工作原理及应用场景
  • 默认路由的应用场景及配置方法
  • 静态浮动路由的应用场景及配置方法

静态路由的工作原理及应用场景

缺什么加什么,出口可以使用默认路由

先看如下网络拓扑. 使用 c2691 模拟路由器 R1,SW1 和 SW2 是普通交换机.

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第143张图片
为 C1、C2 和 C3 设置 IP.

VPCS[1]> ip 192.168.1.10 24
Checking for duplicate address...
PC1 : 192.168.1.10 255.255.255.0

VPCS[1]> 2
VPCS[2]> ip 192.168.1.20 24
Checking for duplicate address...
PC2 : 192.168.1.20 255.255.255.0

VPCS[2]> 3
VPCS[3]> ip 192.168.2.10 24
Checking for duplicate address...
PC3 : 192.168.2.10 255.255.255.0

C1 和 C2 在相同的网段内,可以相互通信.

VPCS[1]> ip 192.168.1.10 24
Checking for duplicate address...
PC1 : 192.168.1.10 255.255.255.0

VPCS[1]> 2
VPCS[2]> ip 192.168.1.20 24
Checking for duplicate address...
PC2 : 192.168.1.20 255.255.255.0

VPCS[2]> 3
VPCS[3]> ip 192.168.2.10 24
Checking for duplicate address...
PC3 : 192.168.2.10 255.255.255.0

C3 不在相同的网段内,不能和 C1 和 C2 通信.

VPCS[3]> ping 192.168.1.10
No gateway found

VPCS[3]> ping 192.168.1.20
No gateway found

C1、C2 要和 C3 通信,必须经过网关.

为 C1、C2 指定网关

VPCS[1]> ip 192.168.1.10 192.168.1.1 24
Checking for duplicate address...
PC1 : 192.168.1.10 255.255.255.0 gateway 192.168.1.1

VPCS[1]> 2
VPCS[2]> ip 192.168.1.20 192.168.1.1 24
Checking for duplicate address...
PC2 : 192.168.1.20 255.255.255.0 gateway 192.168.1.1

设置 R1 的 fa0/0 口为 192.168.1.0/24 网段的网关.

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no shut

C1 ping 网关可以通信

VPCS[1]> ping 192.168.1.1
192.168.1.1 icmp_seq=1 ttl=255 time=18.990 ms
192.168.1.1 icmp_seq=2 ttl=255 time=9.991 ms
192.168.1.1 icmp_seq=3 ttl=255 time=20.952 ms
192.168.1.1 icmp_seq=4 ttl=255 time=14.954 ms
192.168.1.1 icmp_seq=5 ttl=255 time=13.957 ms

C1 ping C3 则是目标不可达. 这是因为 C3 没有 IP 地址,R1 中也没有到达 C3 的路由表.

VPCS[1]> ping 192.168.2.10
*192.168.1.1 icmp_seq=1 ttl=255 time=8.995 ms (ICMP type:3, code:1, Destination host unreachable)
*192.168.1.1 icmp_seq=2 ttl=255 time=10.939 ms (ICMP type:3, code:1, Destination host unreachable)
*192.168.1.1 icmp_seq=3 ttl=255 time=18.952 ms (ICMP type:3, code:1, Destination host unreachable)
*192.168.1.1 icmp_seq=4 ttl=255 time=11.963 ms (ICMP type:3, code:1, Destination host unreachable)
*192.168.1.1 icmp_seq=5 ttl=255 time=11.955 ms (ICMP type:3, code:1, Destination host unreachable)

特权模式下 show ip route 查看路由表.

R1#show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

C    192.168.1.0/24 is directly connected, FastEthernet0/0

因为 fa0/0 配置了 IP 地址,所以只有默认与 fa0/0 口直连网段的路由表.

配置 fa0/1 口的 IP 地址.

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int fa0/1
R1(config-if)#ip add 192.168.2.1 255.255.255.0
R1(config-if)#no shut

查看路由表.

R1#show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/1

默认添加了与 fa0/1 口直连网段的路由表.

为 C3 配置 IP 并指定网关

VPCS[3]> ip 192.168.2.10 192.168.2.1 24
Checking for duplicate address...
PC3 : 192.168.2.10 255.255.255.0 gateway 192.168.2.1

C1 ping C3 可以通了.

VPCS[1]> ping 192.168.2.10
192.168.2.10 icmp_seq=1 ttl=64 time=0.001 ms
192.168.2.10 icmp_seq=2 ttl=64 time=0.001 ms
192.168.2.10 icmp_seq=3 ttl=64 time=0.001 ms
192.168.2.10 icmp_seq=4 ttl=64 time=0.001 ms
192.168.2.10 icmp_seq=5 ttl=64 time=0.001 ms

去掉 R1 的 fa0/1 口下的所有节点,添加路由器 R2 和 R3. R1 的 fa0/1 口连接 R2 的 fa0/0,R2 的 fa0/1 口连接 R3 的 fa0/0 口.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第144张图片
R1 的接口设置没有变化.

配置 R2 的 fa0/0 口的 IP

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#int fa0/0
R2(config-if)#ip add 192.168.2.2 255.255.255.0
R2(config-if)#no shut

在 R2 上测试可以 ping 通 R1 的 fa0/1 口.

R2(config-if)#do ping 192.168.2.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 20/28/36 ms

配置 R2 的 fa0/1 口的 IP.

R2(config-if)#int fa0/1
R2(config-if)#ip add 192.168.3.1 255.255.255.0
R2(config-if)#no shut

配置 R3 的 fa0/0 口的 IP

R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#int fa0/0
R3(config-if)#ip add 192.168.3.2 255.255.255.0
R3(config-if)#no shut

在 R2 上测试可以 ping 通 R2 的 f0/1 口.

R3(config-if)#do ping 192.168.3.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 20/22/24 ms

C1 ping R1 的 fa0/1 口可以通.

VPCS[1]> ping 192.168.2.1
192.168.2.1 icmp_seq=1 ttl=255 time=52.919 ms
192.168.2.1 icmp_seq=2 ttl=255 time=15.975 ms
192.168.2.1 icmp_seq=3 ttl=255 time=12.942 ms
192.168.2.1 icmp_seq=4 ttl=255 time=9.955 ms
192.168.2.1 icmp_seq=5 ttl=255 time=45.973 ms

C1 ping R2 的 fa0/0 口不通

VPCS[1]> ping 192.168.2.2
192.168.2.2 icmp_seq=1 timeout
192.168.2.2 icmp_seq=2 timeout
192.168.2.2 icmp_seq=3 timeout
192.168.2.2 icmp_seq=4 timeout
192.168.2.2 icmp_seq=5 timeout

查看 R1 的路由表.

R1#show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/1

在 R2 上开启 debug 模式.

R2#debug ip icmp
ICMP packet debugging is on

C1 ping R2 的 fa0/0 口.

VPCS[1]> ping 192.168.2.2
192.168.2.2 icmp_seq=1 timeout
192.168.2.2 icmp_seq=2 timeout
192.168.2.2 icmp_seq=3 timeout
192.168.2.2 icmp_seq=4 timeout
192.168.2.2 icmp_seq=5 timeout

R2 收到了 C1 发送的 ICMP request 报文,但是它不知道如何到达 C1,因为丢弃了数据包,没有返回 ICMP reply 报文.

R2#
*Mar  1 00:07:22.991: ICMP: echo reply sent, src 192.168.2.2, dst 192.168.1.10
R2#
*Mar  1 00:07:24.987: ICMP: echo reply sent, src 192.168.2.2, dst 192.168.1.10
R2#
*Mar  1 00:07:26.987: ICMP: echo reply sent, src 192.168.2.2, dst 192.168.1.10
R2#
*Mar  1 00:07:28.995: ICMP: echo reply sent, src 192.168.2.2, dst 192.168.1.10
R2#
*Mar  1 00:07:30.995: ICMP: echo reply sent, src 192.168.2.2, dst 192.168.1.10
R2#

查看 R2 的路由表. 它没有到达 192.168.1.0/24 网段的路由.

R2#show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

C    192.168.2.0/24 is directly connected, FastEthernet0/0
C    192.168.3.0/24 is directly connected, FastEthernet0/1

在 R2 上手动添加到达 192.168.1.0/24 网段的路由.

R2(config)#ip route 192.168.1.0 255.255.255.0 192.168.2.1
  • 192.168.1.0 是目的网络号
  • 255.255.255.0 是掩码
  • 192.168.2.1 是转发接口的 IP.

路由用来指导数据转发.

C1 上可以 ping 通 R2 的 fa0/0 口了.

VPCS[1]> ping 192.168.2.2
192.168.2.2 icmp_seq=1 ttl=254 time=40.957 ms
192.168.2.2 icmp_seq=2 ttl=254 time=30.926 ms
192.168.2.2 icmp_seq=3 ttl=254 time=40.922 ms
192.168.2.2 icmp_seq=4 ttl=254 time=24.935 ms
192.168.2.2 icmp_seq=5 ttl=254 time=41.919 ms

R2(config)#
*Mar  1 00:10:21.871: ICMP: echo reply sent, src 192.168.2.2, dst 192.168.1.10
R2(config)#
*Mar  1 00:10:22.911: ICMP: echo reply sent, src 192.168.2.2, dst 192.168.1.10
R2(config)#
*Mar  1 00:10:23.951: ICMP: echo reply sent, src 192.168.2.2, dst 192.168.1.10
R2(config)#
*Mar  1 00:10:24.979: ICMP: echo reply sent, src 192.168.2.2, dst 192.168.1.10
R2(config)#
*Mar  1 00:10:25.999: ICMP: echo reply sent, src 192.168.2.2, dst 192.168.1.10
R2(config)#

在 C1 上 ping R2 的 fa0/1 口,目标不可达.

VPCS[1]> ping 192.168.3.1
*192.168.1.1 icmp_seq=1 ttl=255 time=14.988 ms (ICMP type:3, code:1, Destination host unreachable)
*192.168.1.1 icmp_seq=2 ttl=255 time=21.983 ms (ICMP type:3, code:1, Destination host unreachable)
*192.168.1.1 icmp_seq=3 ttl=255 time=17.955 ms (ICMP type:3, code:1, Destination host unreachable)
*192.168.1.1 icmp_seq=4 ttl=255 time=50.970 ms (ICMP type:3, code:1, Destination host unreachable)
*192.168.1.1 icmp_seq=5 ttl=255 time=13.973 ms (ICMP type:3, code:1, Destination host unreachable)

查看 R1 的路由表. 没有到达 192.168.3.0/24 的路由.

R1#show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/1

在 R1 上添加到达 192.168.3.0/24 的路由.

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#ip route 192.168.3.0 255.255.255.0 192.168.2.2

C1 ping R2 的 fa0/1 口可以通了.

VPCS[1]> ping 192.168.3.1
192.168.3.1 icmp_seq=1 ttl=254 time=74.711 ms
192.168.3.1 icmp_seq=2 ttl=254 time=24.948 ms
192.168.3.1 icmp_seq=3 ttl=254 time=33.946 ms
192.168.3.1 icmp_seq=4 ttl=254 time=33.944 ms
192.168.3.1 icmp_seq=5 ttl=254 time=62.964 ms

查看 R1 的路由表

R1#show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/1
S    192.168.3.0/24 [1/0] via 192.168.2.2
  • [1/0]:1 表示管理距离;0 表示度量值,表示管理员手动添加,信任度最好.

默认路由的应用场景及配置方法

C1 ping R3 的 fa0/0 口不通. 此时 C1 发送的 ICMP request 报文可以到达 R3,但是 R3 不知道到达 192.168.1.0/24 的路由,R3 不会给 C1 发送 ICMP reply 报文.

VPCS[1]> ping 192.168.3.2
192.168.3.2 icmp_seq=1 timeout
192.168.3.2 icmp_seq=2 timeout
192.168.3.2 icmp_seq=3 timeout
192.168.3.2 icmp_seq=4 timeout
192.168.3.2 icmp_seq=5 timeout

由于 R3 是单出口,所有数据包都要经过 fa0/0 口转发. 因此,可以设置全流量的默认路由. 这样可以免去繁琐的静态路由配置工作.

R3(config)#ip route 0.0.0.0 0.0.0.0 192.168.3.1
  • 0.0.0.0/0.0.0.0 表示任意网络.

查看 R3 的路由表.

R3#show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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 192.168.3.1 to network 0.0.0.0

C    192.168.3.0/24 is directly connected, FastEthernet0/0
S*   0.0.0.0/0 [1/0] via 192.168.3.1

在 R3 上 ping C1 可以通.

R3#ping 192.168.1.10

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 92/101/116 ms
R3#ping 192.168.1.20

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.20, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 92/107/120 ms

在 R3 上 ping R1 可以通.

R3#ping 192.168.2.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 44/52/72 ms

静态浮动路由的应用场景及配置方法

保存 R1 的配置以便关电重启后不会丢失已有配置.

R1#write
Building configuration...
[OK]

右键 R1 点击 Stop.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第145张图片
在 R1 的 Slot1 上添加一块任意板卡,此处我使用的是 NM-16ESW. R1 的 fa0/1 口连接 R2 的 fa0/0 口不变. R2 的 fa0/1 连接 R3 的 fa0/1. R1 的 fa1/0 连接 R3 的 fa0/0.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第146张图片

查看 R1 的 IP 配置.

R1#show ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            192.168.1.1     YES NVRAM  up                    up
FastEthernet0/1            192.168.2.1     YES NVRAM  up                    up
FastEthernet1/0            unassigned      YES unset  up                    down
FastEthernet1/1            unassigned      YES unset  up                    down
FastEthernet1/2            unassigned      YES unset  up                    down
FastEthernet1/3            unassigned      YES unset  up                    down
FastEthernet1/4            unassigned      YES unset  up                    down
FastEthernet1/5            unassigned      YES unset  up                    down
FastEthernet1/6            unassigned      YES unset  up                    down
FastEthernet1/7            unassigned      YES unset  up                    down
FastEthernet1/8            unassigned      YES unset  up                    down
FastEthernet1/9            unassigned      YES unset  up                    down
FastEthernet1/10           unassigned      YES unset  up                    down
FastEthernet1/11           unassigned      YES unset  up                    down
FastEthernet1/12           unassigned      YES unset  up                    down
FastEthernet1/13           unassigned      YES unset  up                    down
FastEthernet1/14           unassigned      YES unset  up                    down
FastEthernet1/15           unassigned      YES unset  up                    down
Vlan1                      unassigned      YES unset  up                    down

R1 上 fa0/0 和 fa0/1 的配置都还存在.

配置 192.168.3.0/24 网段.

将 R1 的 fa1/0 转换为三层口,并配置 IP.

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int fa1/0
R1(config-if)#no switchport
R1(config-if)#ip add 192.168.3.1 255.255.255.0
R1(config-if)#no shut

为 R3 的 fa0/0 配置 IP.

R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#int fa0/0
R3(config-if)#ip add 192.168.3.2 255.255.255.0
R3(config-if)#no shut

配置 192.168.4.0/24 网段.

为 R2 的 fa0/1 配置 IP.

R2(config)#int fa0/1
R2(config-if)#ip add 192.168.4.1 255.255.255.0
R2(config-if)#no shut

为 R3 的 fa0/1 配置 IP

R3(config-if)#int fa0/1
R3(config-if)#ip add 192.168.4.2
R3(config-if)#ip add 192.168.4.2 255.255.255.0
R3(config-if)#no shut

在 R2 上添加环回测试口 loopbacl 0,并配置 IP.

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#int loopback 0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
R2(config-if)#no shut

此时,R1 上到达 loopbacl 0 的拓扑路径有 2 条. R1 >> R2,R1 >> R3 >> R2.

在 R1 上配置直接到达 2.2.2.0/24 的路由.

R1(config)#ip route 2.2.2.0 255.255.255.0 192.168.2.2

查看 R1 的路由表.

R1#show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

     2.0.0.0/24 is subnetted, 1 subnets
S       2.2.2.0 [1/0] via 192.168.2.2
C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/1
C    192.168.3.0/24 is directly connected, FastEthernet1/0

R1 上可以 ping 通 2.2.2.2 了.

R1#ping 2.2.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 20/29/40 ms

在 R1 上配置经过 R3 转发到达 2.2.2.0/24 的路由.

R1(config)#ip route 2.2.2.0 255.255.255.0 192.168.3.2

查看 R1 的路由表. 此时到达 2.2.2.0/24 的路由有 2 条. 这样实现了负载均衡.

R1(config)#do show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

     2.0.0.0/24 is subnetted, 1 subnets
S       2.2.2.0 [1/0] via 192.168.3.2
                [1/0] via 192.168.2.2
C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/1
C    192.168.3.0/24 is directly connected, FastEthernet1/0

使用 traceroute 命令跟踪,可以发现发送到 2.2.2.2 的的数据包一个从 fa0/1 转发,一个从 fa1/0 转发.

R1#traceroute 2.2.2.2

Type escape sequence to abort.
Tracing the route to 2.2.2.2

  1 192.168.2.2 28 msec *  *
R1#traceroute 2.2.2.2

Type escape sequence to abort.
Tracing the route to 2.2.2.2

  1 192.168.2.2 44 msec
    192.168.3.2 32 msec
    192.168.2.2 20 msec
R1#traceroute 2.2.2.2

Type escape sequence to abort.
Tracing the route to 2.2.2.2

  1 192.168.3.2 36 msec
    192.168.2.2 32 msec
    192.168.3.2 20 msec
R1#

我们希望的效果是正常情况下,到达 2.2.2.2 的数据包通过 fa0/1 转发;如果 fa0/1 连接的链路不通,则通过 fa1/0 转发. 此时,使用浮动路由.

默认情况下路由的管理距离为 1,最大可以设置为 255.

R1(config)#ip route 2.2.2.0 255.255.255.0 192.168.3.2 ?
  <1-255>    Distance metric for this route
  name       Specify name of the next hop
  permanent  permanent route
  tag        Set tag for this route
  track      Install route depending on tracked item
  

将通过 fa1/0 到达 2.2.2.2 的路由的管理距离设为10.

R1(config)#ip route 2.2.2.0 255.255.255.0 192.168.3.2 10

查看 R1 的路由表. 此时只显示从 fa0/1 到达 2.2.2.2 的路由.

R1(config)#do show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

     2.0.0.0/24 is subnetted, 1 subnets
S       2.2.2.0 [1/0] via 192.168.2.2
C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/1
C    192.168.3.0/24 is directly connected, FastEthernet1/0

跟踪包的路由

R1#traceroute 2.2.2.2

Type escape sequence to abort.
Tracing the route to 2.2.2.2

  1 192.168.2.2 28 msec 24 msec 20 msec
R1#traceroute 2.2.2.2

Type escape sequence to abort.
Tracing the route to 2.2.2.2

  1 192.168.2.2 52 msec 36 msec 20 msec
R1#traceroute 2.2.2.2

Type escape sequence to abort.
Tracing the route to 2.2.2.2

  1 192.168.2.2 40 msec 24 msec 20 msec

手动 shutdown fa0/1 接口.

R1(config)#int fa0/1
R1(config-if)#shut

查看 R1 的路由表. 由于 fa0/1 口 down 掉了,通过 fa1/0 口转发到达 2.2.2.2 的路由就像浮上来一样,替换掉了通过 fa0/1 转发到达 2.2.2.2 的路由.

R1(config-if)#do show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

     2.0.0.0/24 is subnetted, 1 subnets
S       2.2.2.0 [10/0] via 192.168.3.2
C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.3.0/24 is directly connected, FastEthernet1/0

此时如果 R3 到 2.2.2.2 的路由配置完毕,就能正常通信了.

在这个场景下,R1 可以看作企业网的出口路由器,R2 可以看作是运营商 A,R3 可以看作运营商 B,2.2.2.2 可以看作是公网 IP.
这个时候可以使用默认路由,配合浮动路由. 当运营商 A 网络正常时通过 A 连接公网,A 网络异常的时候通过运营商 B 访问公网.

先删除先前配置的路由.

R1(config)#no ip route 2.2.2.0 255.255.255.0 192.168.2.2
R1(config)#no ip route 2.2.2.0 255.255.255.0 192.168.3.2 10

配置默认浮动路由.

R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.2
R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.3.2 10

手动开启 fa0/1 接口.

R1(config)#int fa0/1
R1(config-if)#no shut

查看 R1 的路由表.

R1#show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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 192.168.2.2 to network 0.0.0.0

C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/1
C    192.168.3.0/24 is directly connected, FastEthernet1/0
S*   0.0.0.0/0 [1/0] via 192.168.2.2

R1 的 fa0/0 下可以看作企业网. 此时 R1 有 3 个 C 路由,一个 S* 路由. C 路由的优先级高于 S 路由. 从公网到达内部企业网的流量通过 fa0/0 转发,其它流量按照 S* 路由转发.


2.6 思科设备NAT实战全集

知识点:

  • NAT 的应用场景及工作原理
  • 静态/动态/PAT 的配置方法
  • 静态端口映射的配置方法
  • 效果综合测试

NAT 的应用场景及工作原理

网络地址转换(NAT) 用于节约 IPv4 地址资源,减缓 IPv4 资源枯竭的速度.

实验网络拓扑如下. R1 是企业网出口路由器,它的上联设备是运营商 R2. SW1 是企业网内部交换机. C1 和 C2 是企业网内 2 个用户. R1 和 R2 使用 c2691 模拟,SW1 是普通交换机. R1 的 fa0/0 口连接 SW1 的 8 口,C1 和 C2 分别连接 SW1 的 1 口和 2 口. R1 的 fa0/1 口连接 R2 的 fa0/0 口.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第147张图片
为 C1 和 C2 配置 IP.

VPCS[1]> ip 192.168.1.10 192.168.1.1 24
Checking for duplicate address...
PC1 : 192.168.1.10 255.255.255.0 gateway 192.168.1.1

VPCS[1]> 2
VPCS[2]> ip 192.168.1.20 192.168.1.1 24
Checking for duplicate address...
PC2 : 192.168.1.20 255.255.255.0 gateway 192.168.1.1

C2 ping C1 可以通.

VPCS[2]> ping 192.168.1.10
192.168.1.10 icmp_seq=1 ttl=64 time=1.998 ms
192.168.1.10 icmp_seq=2 ttl=64 time=2.999 ms
192.168.1.10 icmp_seq=3 ttl=64 time=2.999 ms
192.168.1.10 icmp_seq=4 ttl=64 time=2.998 ms
192.168.1.10 icmp_seq=5 ttl=64 time=1.999 ms

配置 R1 的 fa0/0 口为企业网的网关.

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no shut

在 R1 上 ping C1 和 C2 可以通.

R1(config-if)#do ping 192.168.1.10

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.10, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 8/14/24 ms
R1(config-if)#do ping 192.168.1.20

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.20, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 8/15/24 ms

R1 可以通过固定 IP 或 PPPoE 拨号上网.

假设这里 R1 使用固定 IP 连接互联网.

为 R1 的 fa0/1 口配置公网 IP.

R1(config-if)#int fa0/1
R1(config-if)#ip add 202.106.1.2 255.255.255.252
R1(config-if)#no shut

为 R2 的 fa0/0 口配置公网 IP.

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#int fa0/0
R2(config-if)#ip add 202.106.1.1 255.255.255.252
R2(config-if)#no shut

在 R2 上 ping R1 可以通.

R2(config-if)#end
R2#
*Mar  1 00:08:16.507: %SYS-5-CONFIG_I: Configured from console by console
R2#ping 202.106.1.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.106.1.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 20/27/36 ms

在 C2 上 ping R2 不通.

VPCS[2]> ping 202.106.1.1
202.106.1.1 icmp_seq=1 timeout
202.106.1.1 icmp_seq=2 timeout
202.106.1.1 icmp_seq=3 timeout
202.106.1.1 icmp_seq=4 timeout
202.106.1.1 icmp_seq=5 timeout

在 R2 上开启 debug.

R2#debug ip icmp
ICMP packet debugging is on

R2 收到了 C2 发送的 ICMP request 报文,但是不会返回 ICMP reply 报文.

R2#
*Mar  1 00:14:17.895: ICMP: echo reply sent, src 202.106.1.1, dst 192.168.1.20
R2#
*Mar  1 00:14:19.887: ICMP: echo reply sent, src 202.106.1.1, dst 192.168.1.20
R2#
*Mar  1 00:14:21.883: ICMP: echo reply sent, src 202.106.1.1, dst 192.168.1.20
R2#
*Mar  1 00:14:23.895: ICMP: echo reply sent, src 202.106.1.1, dst 192.168.1.20
R2#
*Mar  1 00:14:25.907: ICMP: echo reply sent, src 202.106.1.1, dst 192.168.1.20

R2 的路由表中没有到达 C2 的路由.

R2#show ip route
Codes: C - connected, S - static, 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
       i - IS-IS, su - IS-IS summary, 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

     202.106.1.0/30 is subnetted, 1 subnets
C       202.106.1.0 is directly connected, FastEthernet0/0

在这个场景下,C2 的 IP 地址是私有地址,R2 是公网设备. 公网路由表中不能出现私有地址. 此时就需要使用 NAT 技术,将私有地址转换为 公有地址.


静态/动态/PAT 的配置方法

静态 NAT 指将一条公有地址和一条私有地址对应起来. 这种方法不能节约公有地址.

在 R1 上指定 fa0/0 为 inside 接口.

R1(config)#int fa0/0
R1(config-if)#ip nat inside

在 R1 上指定 fa0/1 为 outside 接口.

R1(config-if)#int fa0/1
R1(config-if)#ip nat outside

现在分配得到 1 个公网 IP 218.8.8.8.

将公网 IP 218.8.8.8 与 C1 的 私有 IP 对应起来.

R1(config)#ip nat inside source static 192.168.1.10 218.8.8.8

查看 NAT 转换表.

R1#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- 218.8.8.8          192.168.1.10       ---                ---

在 R2 上添加到达 218.8.8.8 的路由.

R2(config)#ip route 218.8.8.8 255.255.255.255 202.106.1.2

此时,C1 就能访问公网了.

VPCS[1]> ping 202.106.1.1
202.106.1.1 icmp_seq=1 ttl=254 time=41.968 ms
202.106.1.1 icmp_seq=2 ttl=254 time=30.946 ms
202.106.1.1 icmp_seq=3 ttl=254 time=75.937 ms
202.106.1.1 icmp_seq=4 ttl=254 time=41.940 ms
202.106.1.1 icmp_seq=5 ttl=254 time=42.922 ms

R2(config)#
*Mar  1 00:26:46.403: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.8
R2(config)#
*Mar  1 00:26:47.443: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.8
R2(config)#
*Mar  1 00:26:48.503: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.8
R2(config)#
*Mar  1 00:26:49.547: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.8
R2(config)#
*Mar  1 00:26:50.603: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.8

开启 NAT debug.

R1#debug ip nat ?
  <1-99>     Access list
  cce        NAT-CCE support events
  detailed   NAT detailed events
  fragment   NAT fragment events
  generic    NAT generic ALG handler events
  h323       NAT H.323 events
  ipsec      NAT IPSec events
  nvi        NVI events
  piggyback  NAT Piggyback support events
  port       NAT PORT events
  pptp       NAT PPTP events
  route      NAT Static route events
  sbc        NAT SIP Session Border Controller events
  sip        NAT SIP events
  skinny     NAT skinny events
  vrf        NAT VRF events
  wlan-nat   WLAN NAT events
  

R1#debug ip nat
IP NAT debugging is on

C1 发送数据包时,R1 将 192.168.1.10 转换为 218.8.8.8. C1 接收数据包时,R1 将 218.8.8.8 转换为 192.168.1.10.

R1#
*Mar  1 00:44:25.351: NAT*: s=192.168.1.10->218.8.8.8, d=202.106.1.1 [25066]
*Mar  1 00:44:25.391: NAT*: s=202.106.1.1, d=218.8.8.8->192.168.1.10 [25066]
R1#
*Mar  1 00:44:26.415: NAT*: s=192.168.1.10->218.8.8.8, d=202.106.1.1 [25067]
*Mar  1 00:44:26.435: NAT*: s=202.106.1.1, d=218.8.8.8->192.168.1.10 [25067]
R1#
*Mar  1 00:44:27.431: NAT*: s=192.168.1.10->218.8.8.8, d=202.106.1.1 [25068]
*Mar  1 00:44:27.475: NAT*: s=202.106.1.1, d=218.8.8.8->192.168.1.10 [25068]
R1#
*Mar  1 00:44:28.503: NAT*: s=192.168.1.10->218.8.8.8, d=202.106.1.1 [25069]
*Mar  1 00:44:28.523: NAT*: s=202.106.1.1, d=218.8.8.8->192.168.1.10 [25069]
R1#
*Mar  1 00:44:29.531: NAT*: s=192.168.1.10->218.8.8.8, d=202.106.1.1 [25070]
*Mar  1 00:44:29.575: NAT*: s=202.106.1.1, d=218.8.8.8->192.168.1.10 [25070]

但是,C2 仍然不能访问公网. 因为 C2 无法获得公网 IP.

VPCS[2]> ping 202.106.1.1
202.106.1.1 icmp_seq=1 timeout
202.106.1.1 icmp_seq=2 timeout
202.106.1.1 icmp_seq=3 timeout
202.106.1.1 icmp_seq=4 timeout
202.106.1.1 icmp_seq=5 timeout

这个时候,需要使用 动态 NAT.

动态 NAT 首先建立一个公网 IP 池,私有地址访问公网时在公网 IP 池中取出 1 个公网 IP 并建立对应关系,在生存时间过后将这个公网 IP 返还公网地址池以便其它私有地址使用.

首先删除先前配置的静态 NAT.

R1(config)#no ip nat inside source static 192.168.1.10 218.8.8.8
R1(config)#ip nat pool test ?
  A.B.C.D        Start IP address
  netmask        Specify the network mask
  prefix-length  Specify the prefix length

R1(config)#ip nat pool test 218.8.8.1 218.8.8.100 netmask ?
  A.B.C.D  Network mask

建立公网 IP 地址池,名称是 test,起止范围是 218.8.8.1 ~ 218.8.8.100.

R1(config)#ip nat pool test 218.8.8.1 218.8.8.100 netmask 255.255.255.0

建立访问控制列表 10. 列表中的私有地址被允许建立 NAT.

R1(config)#access-list 10 permit 192.168.1.0 0.0.0.255
  • 0 0.0.0.255 反掩码

配置动态 NAT. 允许列表 10 中的私有地址在公有地址池 test 中建立 NAT.

R1(config)#ip nat inside source list 10 pool test

此时 NAT 转换表为空. 因为还没有私有地址去取回公有地址.

R1#show ip nat translations

在 R2 上建立到达 218.8.8.0/24 的路由.

R2(config)#ip route 218.8.8.0 255.255.255.0 202.106.1.2

C1 可以访问公网.

VPCS[1]> ping 202.106.1.1
202.106.1.1 icmp_seq=1 ttl=254 time=62.959 ms
202.106.1.1 icmp_seq=2 ttl=254 time=41.920 ms
202.106.1.1 icmp_seq=3 ttl=254 time=51.934 ms
202.106.1.1 icmp_seq=4 ttl=254 time=32.925 ms
202.106.1.1 icmp_seq=5 ttl=254 time=40.933 ms

R2(config)#
*Mar  1 00:58:40.799: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.2
R2(config)#
*Mar  1 00:58:41.815: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.2
R2(config)#
*Mar  1 00:58:42.891: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.2
R2(config)#
*Mar  1 00:58:43.923: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.2
R2(config)#
*Mar  1 00:58:44.959: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.2

C2 也可以访问公网了.

VPCS[2]> ping 202.106.1.1
202.106.1.1 icmp_seq=1 ttl=254 time=41.975 ms
202.106.1.1 icmp_seq=2 ttl=254 time=51.955 ms
202.106.1.1 icmp_seq=3 ttl=254 time=52.987 ms
202.106.1.1 icmp_seq=4 ttl=254 time=44.938 ms
202.106.1.1 icmp_seq=5 ttl=254 time=62.961 ms

R2(config)#
*Mar  1 00:59:38.739: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.1
R2(config)#
*Mar  1 00:59:39.771: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.1
R2(config)#
*Mar  1 00:59:40.827: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.1
R2(config)#
*Mar  1 00:59:41.875: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.1
R2(config)#
*Mar  1 00:59:42.951: ICMP: echo reply sent, src 202.106.1.1, dst 218.8.8.1

在 R2 上 ping 218.8.8.1 其实是在 ping 192.168.1.20

R2(config)#do ping 218.8.8.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 218.8.8.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/52/68 ms

在 R2 上 ping 218.8.8.2 其实是在 ping 192.168.1.10

R2(config)#do ping 218.8.8.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 218.8.8.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 64/67/72 ms

查看 NAT 转换表. 此时动态映射还未过期.

R1#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
icmp 218.8.8.2:41062   192.168.1.10:41062 202.106.1.1:41062  202.106.1.1:41062
icmp 218.8.8.2:41318   192.168.1.10:41318 202.106.1.1:41318  202.106.1.1:41318
icmp 218.8.8.2:41574   192.168.1.10:41574 202.106.1.1:41574  202.106.1.1:41574
icmp 218.8.8.2:41830   192.168.1.10:41830 202.106.1.1:41830  202.106.1.1:41830
icmp 218.8.8.2:42086   192.168.1.10:42086 202.106.1.1:42086  202.106.1.1:42086
--- 218.8.8.2          192.168.1.10       ---                ---
icmp 218.8.8.1:37478   192.168.1.20:37478 202.106.1.1:37478  202.106.1.1:37478
icmp 218.8.8.1:37734   192.168.1.20:37734 202.106.1.1:37734  202.106.1.1:37734
icmp 218.8.8.1:37990   192.168.1.20:37990 202.106.1.1:37990  202.106.1.1:37990
icmp 218.8.8.1:38246   192.168.1.20:38246 202.106.1.1:38246  202.106.1.1:38246
icmp 218.8.8.1:38502   192.168.1.20:38502 202.106.1.1:38502  202.106.1.1:38502
--- 218.8.8.1          192.168.1.20       ---                ---

一般 动态 NAT 应用在运营商网络中,建立公网 IP 池,向家庭或个人用户下发公网地址. 它在企业网中极少出现.

稍微多见的情形是,运营商为企业网只提供一个公网 IP. 这个时候需要使用 PAT.

PAT 是端口地址映射. 它使用 1 个公网 IP 的不同端口号和不同的私有地址建立映射关系.

查看 running-config 中 NAT 部分的内容.

R1#show running-config  | section nat
 ip nat inside
 ip nat outside
ip nat pool test 218.8.8.1 218.8.8.100 netmask 255.255.255.0
ip nat inside source list 10 pool test

清除 NAT 转换表中的所有条目. 如果存在条目,被使用的条目配置无法删除.

R1#clear ip nat translation *

删除地址池.

R1(config)#no ip nat pool test 218.8.8.1 218.8.8.100 netmask 255.255.255.0

删除动态 NAT.

R1(config)#no ip nat inside source list 10 pool test

重新建立公网 IP 池 test,起止地址都是 218.8.8.1,也就是说地址池中只有这一个公网 IP.

R1(config)#ip nat pool test 218.8.8.1 218.8.8.1 netmask 255.255.255.0

配置 PAT. 其命令就是在动态 NAT 的命令后面加一个 overload.

R1(config)#ip nat inside source list 10 pool test overload

C1 可以访问公网

VPCS[1]> ping 202.106.1.1
202.106.1.1 icmp_seq=1 ttl=254 time=40.995 ms
202.106.1.1 icmp_seq=2 ttl=254 time=70.959 ms
202.106.1.1 icmp_seq=3 ttl=254 time=34.924 ms
202.106.1.1 icmp_seq=4 ttl=254 time=52.933 ms
202.106.1.1 icmp_seq=5 ttl=254 time=31.943 ms

R1(config)#
*Mar  1 01:14:14.035: NAT*: s=192.168.1.10->218.8.8.1, d=202.106.1.1 [26854]
*Mar  1 01:14:14.051: NAT*: s=202.106.1.1, d=218.8.8.1->192.168.1.10 [26854]
R1(config)#
*Mar  1 01:14:15.079: NAT*: s=192.168.1.10->218.8.8.1, d=202.106.1.1 [26855]
*Mar  1 01:14:15.127: NAT*: s=202.106.1.1, d=218.8.8.1->192.168.1.10 [26855]
R1(config)#
*Mar  1 01:14:16.131: NAT*: s=192.168.1.10->218.8.8.1, d=202.106.1.1 [26856]
*Mar  1 01:14:16.167: NAT*: s=202.106.1.1, d=218.8.8.1->192.168.1.10 [26856]
R1(config)#
*Mar  1 01:14:17.179: NAT*: s=192.168.1.10->218.8.8.1, d=202.106.1.1 [26857]
*Mar  1 01:14:17.223: NAT*: s=202.106.1.1, d=218.8.8.1->192.168.1.10 [26857]
R1(config)#
*Mar  1 01:14:18.227: NAT*: s=192.168.1.10->218.8.8.1, d=202.106.1.1 [26858]
*Mar  1 01:14:18.255: NAT*: s=202.106.1.1, d=218.8.8.1->192.168.1.10 [26858]

C2 可以访问公网.

VPCS[2]> ping 202.106.1.1
202.106.1.1 icmp_seq=1 ttl=254 time=63.949 ms
202.106.1.1 icmp_seq=2 ttl=254 time=38.944 ms
202.106.1.1 icmp_seq=3 ttl=254 time=44.919 ms
202.106.1.1 icmp_seq=4 ttl=254 time=32.926 ms
202.106.1.1 icmp_seq=5 ttl=254 time=48.920 ms

R1(config)#
*Mar  1 01:15:29.875: NAT*: s=192.168.1.20->218.8.8.1, d=202.106.1.1 [26930]
*Mar  1 01:15:29.919: NAT*: s=202.106.1.1, d=218.8.8.1->192.168.1.20 [26930]
R1(config)#
*Mar  1 01:15:30.939: NAT*: s=192.168.1.20->218.8.8.1, d=202.106.1.1 [26931]
*Mar  1 01:15:30.959: NAT*: s=202.106.1.1, d=218.8.8.1->192.168.1.20 [26931]
R1(config)#
*Mar  1 01:15:31.959: NAT*: s=192.168.1.20->218.8.8.1, d=202.106.1.1 [26932]
*Mar  1 01:15:31.995: NAT*: s=202.106.1.1, d=218.8.8.1->192.168.1.20 [26932]
R1(config)#
*Mar  1 01:15:33.003: NAT*: s=192.168.1.20->218.8.8.1, d=202.106.1.1 [26933]
*Mar  1 01:15:33.043: NAT*: s=202.106.1.1, d=218.8.8.1->192.168.1.20 [26933]
R1(config)#
*Mar  1 01:15:34.051: NAT*: s=192.168.1.20->218.8.8.1, d=202.106.1.1 [26934]
*Mar  1 01:15:34.083: NAT*: s=202.106.1.1, d=218.8.8.1->192.168.1.20 [26934]

查看 NAT 转换表.

R1#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
icmp 218.8.8.1:50537   192.168.1.10:50537 202.106.1.1:50537  202.106.1.1:50537
icmp 218.8.8.1:50793   192.168.1.10:50793 202.106.1.1:50793  202.106.1.1:50793
icmp 218.8.8.1:51049   192.168.1.10:51049 202.106.1.1:51049  202.106.1.1:51049
icmp 218.8.8.1:51561   192.168.1.10:51561 202.106.1.1:51561  202.106.1.1:51561
icmp 218.8.8.1:51817   192.168.1.10:51817 202.106.1.1:51817  202.106.1.1:51817
icmp 218.8.8.1:48233   192.168.1.20:48233 202.106.1.1:48233  202.106.1.1:48233
icmp 218.8.8.1:48489   192.168.1.20:48489 202.106.1.1:48489  202.106.1.1:48489
icmp 218.8.8.1:48745   192.168.1.20:48745 202.106.1.1:48745  202.106.1.1:48745
icmp 218.8.8.1:49001   192.168.1.20:49001 202.106.1.1:49001  202.106.1.1:49001
icmp 218.8.8.1:49257   192.168.1.20:49257 202.106.1.1:49257  202.106.1.1:49257

在现网绝大多数情况下,运营商只分配 R1 一个公网 IP 出口地址. 此时可以让 PAT 使用这个路由器出口地址.

清除 NAT 转换表条目.

R1#clear ip nat translation *

删除公网地址池

R1(config)#no ip nat pool test

访问控制列表不变

R1#show ip access-lists
Standard IP access list 10
    10 permit 192.168.1.0, wildcard bits 0.0.0.255 (55 matches)

配置 PAT 使用 fa0/1 的公网 IP.

R1(config)#ip nat inside source list 10 interface fa0/1 overload

C1 可以访问公网.

VPCS[1]> ping 202.106.1.1
202.106.1.1 icmp_seq=1 ttl=254 time=41.926 ms
202.106.1.1 icmp_seq=2 ttl=254 time=44.936 ms
202.106.1.1 icmp_seq=3 ttl=254 time=38.938 ms
202.106.1.1 icmp_seq=4 ttl=254 time=40.939 ms
202.106.1.1 icmp_seq=5 ttl=254 time=40.938 ms

R1(config)#
*Mar  1 01:23:14.651: NAT*: s=192.168.1.10->202.106.1.2, d=202.106.1.1 [27395]
*Mar  1 01:23:14.663: NAT*: s=202.106.1.1, d=202.106.1.2->192.168.1.10 [27395]
R1(config)#
*Mar  1 01:23:15.695: NAT*: s=192.168.1.10->202.106.1.2, d=202.106.1.1 [27396]
*Mar  1 01:23:15.711: NAT*: s=202.106.1.1, d=202.106.1.2->192.168.1.10 [27396]
R1(config)#
*Mar  1 01:23:16.743: NAT*: s=192.168.1.10->202.106.1.2, d=202.106.1.1 [27397]
*Mar  1 01:23:16.763: NAT*: s=202.106.1.1, d=202.106.1.2->192.168.1.10 [27397]
R1(config)#
*Mar  1 01:23:17.767: NAT*: s=192.168.1.10->202.106.1.2, d=202.106.1.1 [27398]
*Mar  1 01:23:17.795: NAT*: s=202.106.1.1, d=202.106.1.2->192.168.1.10 [27398]
R1(config)#
*Mar  1 01:23:18.807: NAT*: s=192.168.1.10->202.106.1.2, d=202.106.1.1 [27399]
*Mar  1 01:23:18.851: NAT*: s=202.106.1.1, d=202.106.1.2->192.168.1.10 [27399]

C2 可以访问公网.

VPCS[2]> ping 202.106.1.1
202.106.1.1 icmp_seq=1 ttl=254 time=106.941 ms
202.106.1.1 icmp_seq=2 ttl=254 time=36.945 ms
202.106.1.1 icmp_seq=3 ttl=254 time=46.921 ms
202.106.1.1 icmp_seq=4 ttl=254 time=37.976 ms
202.106.1.1 icmp_seq=5 ttl=254 time=46.919 ms

R1(config)#
*Mar  1 01:23:52.811: NAT*: s=192.168.1.20->202.106.1.2, d=202.106.1.1 [27433]
*Mar  1 01:23:52.883: NAT*: s=202.106.1.1, d=202.106.1.2->192.168.1.20 [27433]
R1(config)#
*Mar  1 01:23:53.895: NAT*: s=192.168.1.20->202.106.1.2, d=202.106.1.1 [27434]
*Mar  1 01:23:53.935: NAT*: s=202.106.1.1, d=202.106.1.2->192.168.1.20 [27434]
R1(config)#
*Mar  1 01:23:54.939: NAT*: s=192.168.1.20->202.106.1.2, d=202.106.1.1 [27435]
*Mar  1 01:23:54.971: NAT*: s=202.106.1.1, d=202.106.1.2->192.168.1.20 [27435]
R1(config)#
*Mar  1 01:23:55.995: NAT*: s=192.168.1.20->202.106.1.2, d=202.106.1.1 [27436]
*Mar  1 01:23:56.019: NAT*: s=202.106.1.1, d=202.106.1.2->192.168.1.20 [27436]
R1(config)#
*Mar  1 01:23:57.043: NAT*: s=192.168.1.20->202.106.1.2, d=202.106.1.1 [27437]
*Mar  1 01:23:57.059: NAT*: s=202.106.1.1, d=202.106.1.2->192.168.1.20 [27437]

静态端口映射的配置方法

静态端口映射是将私有地址的端口号与公有地址的端口号建立对应关系. 这样可以让内网服务器在公网中提供服务.

实验网络拓扑如下. 添加 1 台 R3 模拟服务器,R3的 f0/0 连接 SW1 的 3 口. 现在需要实现在 R2 上使用 telnet 远程登录 R3.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第148张图片
为 R3 配置 IP.

R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#int fa0/0
R3(config-if)#ip add 192.168.1.80 255.255.255.0
R3(config-if)#no shut

配置 R3 到公网的路由.

R3(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1

此时,可以将 R3 完全看作一台服务器了.

R3 ping 网关可以通了.

R3#ping 192.168.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 16/28/40 ms

在 R3 上开启远程管理.

R3(config)#line vty 0 4
R3(config-line)#password abc
R3(config-line)#login
R3(config-line)#exit
R3(config)#enable secret abc
R1(config)#ip nat inside source static tcp ?
  A.B.C.D  Inside local IP address

R1(config)#ip nat inside source static tcp 192.168.1.80 ?
  <1-65535>  Local UDP/TCP port

R1(config)#ip nat inside source static tcp 192.168.1.80 23 ?
  A.B.C.D    Inside global IP address
  interface  Specify interface for global address

在 R1 上配置静态端口映射.

R1(config)#ip nat inside source static tcp 192.168.1.80 23 interface fa0/1 23

查看 NAT 转换表.

R1(config)#end
R1#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
tcp 202.106.1.2:23     192.168.1.80:23    ---                ---

在 R2 上从公网 telnet 登录 R3 成功.

R2#telnet 202.106.1.2
Trying 202.106.1.2 ... Open


User Access Verification

Password:
R3>enable
Password:
R3#

查看 NAT 配置.

R1#show running-config | section nat
 ip nat inside
 ip nat outside
ip nat inside source list 10 interface FastEthernet0/1 overload
ip nat inside source static tcp 192.168.1.80 23 interface FastEthernet0/1 23

效果综合测试


3. 思科设备园区网实战篇

3.1 思科设备链路捆绑实战

知识点:

  • 以太网链路捆绑的原理
  • 二层接口捆绑的配置方法
  • 负载及冗余测试

以太网链路捆绑的原理

实验网络拓扑如下. SW1 和 SW2 是交换机,使用 c2691 插上 NM-16ESW 板卡模拟. C1 连接 SW1 的 fa1/1 口,C2 连接 SW2 的 fa1/2 口. SW1 和 SW2 的 fa1/13 和 fa1/14 同时互联.

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第149张图片

SW1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#no ip routing
SW2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW2(config)#no ip routing

SW1 和 SW2 之间有两条二层链路互联,这样就形成了二层环路. 当 C1 发送一个广播包,SW1 收到后会从一条链路(例如 fa1/13 口)发送给 SW2,而 SW2 又会从另一条链路(例如 fa1/14口)发送给 SW1. 这样广播包会在 SW1 和 SW2 之间无线循环,短时间二层网络就会大量充斥这个广播报文,使得网络瘫痪. 因而在现代交换机中都会运行生成树(spanning tree)协议,阻止二层环路的形成. 例如在上述网络拓扑中,生成树协议就会阻塞 fa1/14 接口,仅允许 fa1/13 口的链路连通.

查看接口信息,每个接口都是 100M. BW 100000 Kbit.

SW1#show interfaces

而我们的希望使用链路捆绑(或者称为链路聚合),让两条链路合并为一条链路,实现带宽翻倍,增强网络性能.


二层接口捆绑的配置方法

首先在 GNS3 模拟器上实验

配置 C1 和 C2 的 IP.

VPCS[1]> ip 192.168.1.10 24
Checking for duplicate address...
PC1 : 192.168.1.10 255.255.255.0

VPCS[1]> 2
VPCS[2]> ip 192.168.1.20 24
Checking for duplicate address...
PC2 : 192.168.1.20 255.255.255.0

此时 C1 和 C2 就能 ping 通了.

VPCS[2]> ping 192.168.1.10
192.168.1.10 icmp_seq=1 ttl=64 time=32.168 ms
192.168.1.10 icmp_seq=2 ttl=64 time=40.126 ms
192.168.1.10 icmp_seq=3 ttl=64 time=19.986 ms
192.168.1.10 icmp_seq=4 ttl=64 time=59.692 ms
192.168.1.10 icmp_seq=5 ttl=64 time=59.807 ms

进入系列接口 fa1/13 fa1/14

SW1(config)#int range fa1/13 -14
SW1(config-if-range)#
SW1(config-if-range)#channel-group ?
  <1-6>  Channel group number

SW1(config-if-range)#channel-group 1 mode ?
  on  Enable Etherchannel only

配置链路聚合. 将 fa1/13 和 fa1/14 聚合为 Port-channel1.

SW1(config-if-range)#channel-group 1 mode on
Creating a port-channel interface Port-channel1

SW2 上进行同样的配置.

SW2(config)#int range fa1/13 -1
SW2(config-if-range)#channel-group 1 mode on

查看接口信息. 产生了 Port-channel1.

SW1#show ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  administratively down down
FastEthernet0/1            unassigned      YES unset  administratively down down
FastEthernet1/0            unassigned      YES unset  up                    down
FastEthernet1/1            unassigned      YES unset  up                    up
FastEthernet1/2            unassigned      YES unset  up                    down
FastEthernet1/3            unassigned      YES unset  up                    down
FastEthernet1/4            unassigned      YES unset  up                    down
FastEthernet1/5            unassigned      YES unset  up                    down
FastEthernet1/6            unassigned      YES unset  up                    down
FastEthernet1/7            unassigned      YES unset  up                    down
FastEthernet1/8            unassigned      YES unset  up                    down
FastEthernet1/9            unassigned      YES unset  up                    down
FastEthernet1/10           unassigned      YES unset  up                    down
FastEthernet1/11           unassigned      YES unset  up                    down
FastEthernet1/12           unassigned      YES unset  up                    down
FastEthernet1/13           unassigned      YES unset  up                    up
FastEthernet1/14           unassigned      YES unset  up                    up
FastEthernet1/15           unassigned      YES unset  up                    down
Port-channel1              unassigned      YES unset  up                    up
Vlan1 

查看 Port-channel1 的接口信息. BW 200000 Kbit 表示带宽为 200 M.

SW1#show int port-channel 1
Port-channel1 is up, line protocol is up
  Hardware is EtherChannel, address is c002.3f48.f10d (bia c002.3f48.f10d)
  MTU 1500 bytes, BW 200000 Kbit, DLY 1000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Full-duplex, 100Mb/s
  Members in this channel: Fa1/13 Fa1/14
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input never, output never, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     0 packets input, 0 bytes, 0 no buffer
     Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 input packets with dribble condition detected
     0 packets output, 0 bytes, 0 underruns
     0 output errors, 0 collisions, 1 interface resets
     0 babbles, 0 late collision, 0 deferred
     0 lost carrier, 0 no carrier
     0 output buffer failures, 0 output buffers swapped out

C2 连续 ping C1.

VPCS[2]> ping 192.168.1.10 -t

同时关闭 SW1 和 SW2 的 fa1/13 口.

SW1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#int fa1/13
SW1(config-if)#shut
SW2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW2(config)#int fa1/13
SW2(config-if)#shut

在真实网络中会一直 ping 通. 由于模拟器的 BUG,会有短暂丢包.
 
 
 
接下来在 Cisco Packer Tracker 模拟器上实验.

使用 2 台 c2960 交换机 Switch0 和 Switch1. 它们之间有三条链路,分别连接它们的 fa0/1、fa0/2 和 fa0/3 口. PC0 连接 Switch0 的 fa0/10 口,PC1 连接 Switch1 的 fa0/10 口.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第150张图片
Cisco Packer Tracker 可以模拟思科交换机. 可以看到 Switch0 和 Switch1 之间只有 1 条链路连通,其余 2 条连接但未连通. 这是由于生成树协议阻塞了二层环路的形成.

配置 PC0 和 PC1 的 IP.

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第151张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第152张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第153张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第154张图片

在 PC1 上 ping PC0.

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第155张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第156张图片

进入 Switch0 的命令行控制页面.

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第157张图片
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第158张图片
进入特权模式

Switch0>enable 
Switch0#

配置 fa0/1 - 3 接口.

Switch0#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch0(config)#int ran fa0/1 - 3
Switch(config-if-range)#

这个时候 mode 有 5 个选项.

Switch0(config-if-range)#channel-group 1 mode ?
  active     Enable LACP unconditionally
  auto       Enable PAgP only if a PAgP device is detected
  desirable  Enable PAgP unconditionally
  on         Enable Etherchannel only
  passive    Enable LACP only if a LACP device is detected
  • 手动开启:on
  • LACP 协议:一端 active 另一端 activepassive 可以协商成功;两端都是 passive 则不能成功.
  • PAgP 协议:一端 auto 另一端 desirable 可以协商成功;其它情况不成功.

配置链路聚合.

Switch0(config-if-range)#channel-group 1 mode on

在 Switch1 上配置链路聚合

Switch1>en
Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch1(config)#int ran fa0/1 - 3
Switch1(config-if-range)#channel-group 1 mode on

此时,三条链路都开始工作,捆绑成一个链路.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第159张图片
在 PC1 上连续 ping PC0.

【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第160张图片

关闭 Switch0 的 fa0/1 口,模拟链路失效.

Switch0(config-if-range)#int fa0/1
Switch0(config-if)#shut

查看 Switch0 的连通情况.

Switch0#show etherchannel summary 
Flags:  D - down        P - in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+----------------------------------------------

1      Po1(SU)           -      Fa0/1(D) Fa0/2(P) Fa0/3(P) 

查看 Switch1 的连通情况.

Switch1#show etherchannel summary 
Flags:  D - down        P - in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+----------------------------------------------

1      Po1(SU)           -      Fa0/1(D) Fa0/2(P) Fa0/3(P)

这个时候,聚合链路里只有 2 条实际链路. PC0 和 PC1 之间保持连通不会丢包.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第161张图片
关闭 Switch1 的 fa0/2 口.

Switch1(config)#int fa0/2
Switch1(config-if)#shut

查看 Switch0 的连通情况

Switch1#show etherchannel summary 
Flags:  D - down        P - in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+----------------------------------------------

1      Po1(SU)           -      Fa0/1(D) Fa0/2(D) Fa0/3(P)

聚合链路里仅剩 1 条实际链路.
【网络通信】【思科vs华为】电信运营商实战工程师之思科设备篇_第162张图片
重新开启 fa0/1 和 fa0/2,聚合链路会自动加入这 2 个链路.


负载及冗余测试

查看聚合链路的负载方式.

Switch0#show etherchannel ?
  load-balance  Load-balance/frame-distribution scheme among ports in
                port-channel
  port-channel  Port-channel information
  summary       One-line summary per channel-group
  
Switch0#show etherchannel load-balance 
EtherChannel Load-Balancing Operational State (src-mac):
Non-IP: Source MAC address
  IPv4: Source MAC address
  IPv6: Source MAC address

配置聚合链路的负载方式.

Switch0(config)#port-channel load-balance ?
  dst-ip       Dst IP Addr
  dst-mac      Dst Mac Addr
  src-dst-ip   Src XOR Dst IP Addr
  src-dst-mac  Src XOR Dst Mac Addr
  src-ip       Src IP Addr
  src-mac      Src Mac Addr

一般地,使用默认配置即可.


3.2 思科设备VRRP、HSRP实战

知识点:

  • VRRP/HSRP 的应用场景及工作原理
  • VRRP/HSRP 的配置举例
  • 运营商双组双备设计举例
  • 流量倒换测试

虚拟路由器冗余协议(英语:Virtual Router Redundancy Protocol,缩写为 VRRP)是一种网络协议,可以为参与的路由器自动分配可用的IP地址。这个协议通过在子网中,自动选取默认网关,来增加路由的可用性和可靠性. 这个协议首先创建了一些虚拟路由器(这是对多个路由器的抽象),例如:主路由器、备路由器,这些路由器作为一个 group 协同工作。虚拟路由器被配置为默认网关,而不是物理路由器。当正在工作的物理路由器(代表着虚拟路由器)发生故障时,另一个物理路由器会自动被选举出来替代它。特定时间内正在转发数据包的物理路由器被称为主路由器。 VRRP提供了路由器状态的信息,而不是该路由器的数据包处理、交换的信息。每一个VRRP实例被限制到单一子网内。它不会参与子网外的IP路由,也不会以任何方式影响路由表。VRRP可以通过IPv4或者IPv6(三层IP网),运行在Ethernet(以太网)、MPLS和令牌环网络(二层链路网)。该协议在IETF(Internet Engineering Task Force)的RFC 5798发布,这是一个开放标准.

热备份路由器协议(英语:Hot Standby Router Protocol,缩写为 HSRP),一种由思科公司发展的专有网络协议,拥有美国专利第5,473,599号,定义于 RFC 2281. HSRP 与 VRRP 在工作原理上本质相同,区别是 HSRP 是思科专有协议受到专利保护. 当主要的网关失效时,可以利用这个协议,进行故障移转(failover),让备援的网关运行原有网关的功能,以保持默认网关(default gateway)的功能正常。

3.3 思科设备ACL实战全集

3.4 思科设备RIP协议实战

3.5 思科设备OSPF协议全集-理论

3.6 思科设备OSPF协议全集-实战

你可能感兴趣的:(网络通信,思科,网络,路由器)