西电B测-计算机网络综合实验

ensp安装踩坑

我这台电脑的环境比较混乱, virtualbox, vmware, docker什么的都有, 而且还是win11, 导致疯狂踩坑🤣, 整个安装大概花费3小时😇

第一个坑

virtualbox版本不支持, 我电脑上的virtualbox是7.0.x版本的, 与老版ensp不兼容, 需要降级到5.2.x版本, 最终选了5.2.44版本, 5.2.44版本的virtualbox又和win11不兼容, 需要将内核隔离关闭才能正常安装, 路径: 设置—>隐私与安全—>windows安全中心—>设备安全性—>内核隔离

第二个坑

重装之后启动路由器报错,错误代码41, 可以参考这篇博客, 操作之后再次启动路由器报错, 错误代码40, 接下来就是第三个坑

第三个坑

路由器启动报错40之后, 我照着官方文档一通操作, 发现依旧报错40😅, 然后决定全部卸载重装.

步骤:

  1. 控制面板卸载eNSP、VirtualBox、Wireshark、WinCap四个程序,如果存在USBCap、Npcap,也卸载
  2. 依次查看并删除:
    1
    2
    3
    4
    5
    6
    C:\Program Files\huawei,若该目录下存在eNSP文件夹,请一并删除。
    C:\Program Files,若该目录下存在Npcap文件夹,请一并删除。
    C:\Program Files (x86),若该目录下存在WinCap文件夹,请一并删除。
    C:\ProgramData,若该目录下存在VirtualBox文件夹,请一并删除。
    C:\Users\你的用户名,若该目录下存在.virtualbox文件夹,请一并删除。
    C:\Users\你的用户名\AppData\Local,若该目录下存在eNSP文件夹,请一并删除。
  3. 清理无效注册表,cmd输入regedit进入, 删除相关注册表, 主要是virtualbox相关的

然后重装,发现还是报错40🥰

然后我用virtualbox去启动AR_Base, 得到报错Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT), 这时我意识到是Hyper-V的问题, 但我的Hyper-v其实是没有勾选启用的, 其他
相关选项也没有勾选,如图:

avatar

我想到可能曾经安装Docker开启Hyper-V后, 即使现在不勾选了, 它仍然没有真正关闭.

管理员权限打开cmd, 输入

1
bcdedit

看到hypervisorlaunchtype的值是Auto,输入
1
bcdedit /set hypervisorlaunchtype off

就可以关闭

avatar

所以之前如果没有安装过Docker或者动过Hyper-v是不会出现这个问题的,解释如下:

hypervisorlaunchtype是Windows操作系统的引导选项,用于控制处理器和虚拟化技术之间的交互方式。这个选项的值可以是”Auto”、”Off”或”Hypervisor”。它的默认值为”Auto”,表示处理器将根据需要自动启用或禁用虚拟化技术。1如果Windows中安装了Docker,想要正常使用的话就必须开启Hyper-V,否则会出现错误提示。但是如果Windows系统中同时存在VMware虚拟机的话,开启Hyper-V又会导致虚拟机用不了,这个时候就只能关闭Hyper-V。

实验

实验内容和要求

内容:

  1. 利用华为eNSP网络模拟器,搭建与下图相对应的网络拓扑。在实验拓扑中共有3个网段(网1、网2和网3),其网络参数参见表格。每个网段使用1台交换机。
  2. 路由器R1连接网1与网2,路由器R2连接网2与网3。
  3. 按照要求对每台设备进行配置,最终保证所有设备的连通性。

avatar

网络 子网掩码 网络号
网1 255.255.255.0 192.168.1.0
网2 255.255.255.0 192.168.5.0
网3 255.255.255.0 192.168.3.0

要求:

  1. 主机A与主机B的IPv4地址、子网掩码以及默认网关等参数由网络设备中的DHCP服务自动分配;
  2. 主机C和主机D的IPv4地址、子网掩码以及默认网关等参数由手动分配,且地址的最后一个字节必须设置为任一组员学号的后三位,否则测试不通过。
  3. 对主机A所连接的网络设备端口进行限速,其中入方向和出方向均限制为端口最大速率的50%。
  4. 选择合适的网络设备,配置至少两种防ARP泛洪攻击功能以及至少两种防ARP欺骗攻击功能。

保姆级教程

选用设备: PC,交换机S5700,路由器AR1220

总的连接图:

avatar

自动获取IP:
PC1和PC2右键打开设置,ipv4勾选DHCP

avatar

配置AR2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sys # 进入系统视图
int g0/0/0 # 配置GE 0/0/0端口
ip address 192.168.1.195 24 # 设置端口处IP mask
dhcp enable # 启动DHCP服务
ip pool ggls_p1 # 创建IP池
network 192.168.1.0 mask 24 # 建立网段 网络号 mask
gateway-list 192.168.1.195 # 网关 IP
int g0/0/0
dhcp select global # 启动分配
int g0/0/1
ip address 192.168.5.2 24 # 将路由器GE 0/0/1拉入 192.168.5.0 网段,后面要用
quit
# 配置静态路由,后面要用
# 想去192.168.5.0/24的下一跳是192.168.5.195
ip route-static 192.168.5.0 24 192.168.5.195
# 想去192.168.3.0/24的下一跳是192.168.5.195
ip route-static 192.168.3.0 24 192.168.5.195
quit
save

一定要记得保存,不然重做虽然不难,但很麻烦,后面的也是

配置LSW2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sys
vlan 1 # 创建vlan 1
int vlanif 1
ip address 192.168.5.195 24 # 配置网关
int g0/0/1 # 让 GE 0/0/1加入vlan1
port link-type access
port default vlan 1
int g0/0/2 # 让 GE 0/0/2加入vlan1
port link-type access
port default vlan 1
int g0/0/3 # 让 GE 0/0/3加入vlan1
port link-type access
port default vlan 1
quit
# 和AR3、AR4的静态路由配置对应,注意了这波
# 想去192.168.1.0/24的下一跳是192.168.5.2
ip route-static 192.168.1.0 24 192.168.5.2
# 想去192.168.3.0/24的下一跳是192.168.5.3
ip route-static 192.168.3.0 24 192.168.5.3
quit
save

AR3配置:

1
2
3
4
5
6
7
8
sys
int g0/0/0
ip address 192.168.5.3 24
int g0/0/1
ip address 192.168.3.195 24
quit
ip route-static 192.168.1.0 24 192.168.5.195
ip route-static 192.168.5.0 24 192.168.5.195

PC3和PC4配置:

网关与之前设置的一致即可,分别为192.168.5.195和192.168.3.195,ip自己设置

avatar

之后全部启动,看四台PC之间是否能互相ping通,如果不能,就去一个一个的ping接口,找到断的地方,排查问题

PC1和PC2的ip使用ipconfig命令查看,至此要求1,2就结束了

限制速率:
因为是千兆的网口,限制到50%,就设置了500M

要配置LSW4,代码如下:

1
2
3
4
sys
int g0/0/1
qos lr inbound cir 500000 #500*1000=> 500Mbps
qos lr outbound cir 500000

查看结果:

1
2
3
sys
int g0/0/1
dispaly this

avatar

应对ARP泛洪:
如果设备对收到的大量ARP报文全部进行处理,可能导致CPU负荷过重而无法处理其他业务。因此,在处理之前,设备需要对ARP报文进行限速,以保护CPU资源。

如果网络中有用户向设备发送大量目标IP地址不能解析的IP报文(即路由表中存在该IP报文的目的IP对应的路由表项,但设备上没有该路由表项中下一跳对应的ARP表项),将导致设备触发大量的ARP Miss消息。这种触发ARP Miss消息的IP报文会被上送到设备进行处理,设备会根据ARP Miss消息生成和下发大量临时ARP表项并向目的网络发送大量ARP请求报文,这样就增加了设备CPU的负担,同时严重消耗目的网络的带宽资源。

在AR2和AR3中都要配置

1
2
3
4
5
6
7
8
9
10
sys 
# ARP报文限速
int g0/0/0
arp anti-attack rate-limit enable
arp anti-attack rate-limit 80 1
int g0/0/1
arp anti-attack rate-limit enable
arp anti-attack rate-limit 80 1
# ARP Miss消息限速
arp-miss anti-attack rate-limit enable

应对ARP欺骗:

ARP报文合法性检查: 这些检查是用来判断ARP报文的格式跟ARP协议的规定是否一致。其中以太网数据帧首部中的源MAC地址和ARP报文数据区中的源MAC地址不一致的ARP报文是协议允许的报文,但是在实际的应用中,该类报文很可能是攻击报文。ARP报文合法性检查功能后,设备会对收到的ARP报文进行以太网数据帧首部中的源MAC地址和ARP报文数据区中的源MAC地址的一致性检查,如果两者不一致,则直接丢弃该ARP报文,否则允许该ARP报文通过

ARP表项固化:

  • fixed-all方式, 只有当ARP报文对应的MAC地址、接口、VLAN信息和ARP表项中的信息完全匹配时,设备才可以更新ARP表项的其他内容。此方式适用于用户MAC地址固定,并且用户接入位置相对固定的场景。

  • fixed-mac方式, 设备收到的ARP报文中的MAC地址与ARP表中对应条目的MAC地址不匹配,则直接丢弃该ARP报文;如果匹配,但是收到报文的接口或VLAN信息与ARP表中对应条目不匹配,则可以更新对应ARP条目中的接口和VLAN信息。此方式适用于用户MAC地址固定,但用户接入位置频繁变动的场景。当用户从不同接口接入设备时,设备上该用户对应的ARP表项中的接口信息可以及时更新。

  • send-ack方式, 设备收到一个涉及MAC地址、VLAN、接口修改的ARP报文时,不会立即更新ARP表项,而是先向待更新的ARP表项现有MAC地址对应的用户发送一个单播的ARP请求报文进行确认,根据确认结果再决定是否更新ARP表项中的MAC地址、VLAN和接口信息。此方式适用于用户的MAC地址和接入位置均频繁变动的场景。

在AR2和AR3中都要配置

1
2
3
4
5
sys
# ARP报文合法性检查
arp anti-attack packet-check sender-mac
# ARP表项固化
arp anti-attack entry-check fixed-all

最后查看一下ARP安全配置

1
display arp anti-attack configuration all

如图:
avatar

验收问题

推荐看西电B测-计算机专业-计算机网络综合设计实验一站式指南(以2023.4为基准)这篇博客, 老师问问题一般是按顺序问的, 对应的顺序就是你们进去坐的顺序.

我们组第一个人问的是:

  1. 用的是什么路由?(静态路由)
  2. 还可以用什么?(动态路由RIP)
  3. 最常用的动态路由是什么?(OSPF)
  4. 静态路由路由表是在哪些设备上配置的,是如何配置的?

第二个:

  1. dhcp分配地址在哪实现的?(指出配置的路由器)
  2. dhcp的配置过程?(把代码口述一遍, 先设置路由器端口ip,然后允许dhcp,创建线程池,配置线程池网段、网关……)

第三个:

  1. 为什么是500000?(单位是kb,千兆端口…),直接问这个是我电脑上把这个交换机的配置display了, 老师看到就直接问了
  2. arp泛洪攻击是什么?
  3. arp泛洪攻击消耗的是什么资源?(arp表项资源)
  4. arp欺骗是怎么做到的?(修改mac地址…)