路由与交换机(软件二层交换机的实现)
实验五lab5
一.实验目的
1、熟悉基于NetMagic08的Fast架构编程;
2、了解在linux环境下的c程序的编写、编译与调试;
3、了解软件实现交换功能的代码设计;
4、理解自学习二层交换机的工作原理;
二.实验内容
1、基础要求:虚拟机环境下编写一个基于fast架构工作的软件自学习二层交换机。
2、扩展要求:通过fast函数,实现交换表的硬件卸载以及通过读取硬件计数器,实现带宽统计以及链路状态的判断,并且制作界面展示。
三.实验环境
- 1台管理节点主机;3台主机A、B以及C;(分别连接到2口和3口)
- 4根网线;
- NetMagic08开发平台;
- 软件Quartus 16。
- NetEXP虚拟机运行环境
主机及网络详细配置参照附带的实验环境拓扑及软件配置文档。
四.实验步骤
1.先将老师发的sof文件烧录到路由器交换机中
2.打开virtual box管理器
3.点击管理,选择导入现有系统,将我们的netesp.ova文件导入
4.导入并等待
5.配置网络,在设置中将网络连接方式修改为内部网络
5.启动虚拟环境(这里要把网络连接方式改为桥接模式,否则无法正常进行实验)
Step.1打开终端,输入命令:sudo su。
Step.2输入密码:123123,即可进入root账户模式。
Step.3随后输入命令:ifconfig。
查看当前的以太网接口名称,如图为“enp0s25”。
Step.4配置以太网接口的IP地址以及子网掩码。
Ifconfig enp0s25 136.136.136.137/24 up
Step.5将enp0s25的IP地址设置为136.136.136.137之后,输入如下命令、切换至驱动程序目录:cd fast/driver/netmagic08。
Step.6按下回车执行命令,切换至netmagic08目录下,然后输入并执行命令开始编译驱动程序:make clean && make。
Step.7编译完成之后,输入并执行命令(其中ctlif_name=后接的参数为以太网接口的名称):insmod nm08.ko ctlif_name=enp0s25。
Step.8加载驱动之后,确保已经连接了netmagic08,输入执行如下命令:cd …/…/l2switch。
Step.9输入如下命令执行基本io输出功能:./fastio。或者输入如下命令执行2层交换功能:./l2switch。
两台机子互相ping(ping后面跟的是虚拟机上的ipv4地址)
五.实验验收
验收要求:
1、正确启动软件路由。
2、连接的三台主机之间可以两两ping通,并且在管理节点主机的l2switch程序运行界面上能够看到交换表;之后尝试交换主机连接端口、断开连接、重新接入netmagic08等方式观测交换表的变化。
3、在实验报告中记录学习交换表的代码、老化的代码。
六.实验思考
在实验报告中回答本实验环境的ubuntu系统内核修改了什么部分,为什么要做修改?
ubuntu系统内核配置了以太网接口的IP地址和子网掩码。因为只有把主机和虚拟机的IP地址设置为同一个子网掩码和同一个IP地址,才能使得主机和虚拟机属于同一个局域网,这样才能最终ping通。
七.实验心得
通体来说,这次实验比较困难,是第一次在Ubuntu的Linux系统上配置相应的IP地址进行实验。实验本身难度并不高,难点是环境的配置以及相应步骤的实现,特别是对实验的连接,即代码充当了交换机的功能。需要注意的是:一定要把主机和从机的IP地址设置为同一子网掩码以及同一IP地址,即IP地址的前三位需要一致,否则实验运行步骤会有错误。通过这次实验我了解了路由交换表,和计算机网络课程中所学的关于路由器的知识结合起来,对路由转发和路由表路由器等相关概念更加清晰,自己也可以明显区分网络层在数据平面和控制平面的区别和统一。