Mininet实验 MAC地址学习
实验目的
- 了解交换机的MAC地址学习过程。
- 了解交换机对已知单播、未知单播和广播帧的转发方式。
实验原理
MAC(media access control,介质访问控制)地址是识别LAN节点的标识。MAC对设备(通常是网卡)接口是全球唯一的,MAC地址为48位,用12个16进制数表示。前6个16进制数字由IEEE管理,用来识别生产商或者厂商,构成OUI(Organization Unique Identifier,组织唯一识别符)。后6个包括网卡序列号,或者特定硬件厂商的设定值。对于一个网卡来说,MAC地址是它的一个物理地址,是不可变的,而IP地址是它对应的一个逻辑地址,是可以更改的。
我们设想一个模型,有A、B、C、D这四台PC接在一台交换机上, 首先交换机最初加电时它里面的MAC地址表为空,也就是还没学习,在学习的最初状态。首先,比如A发给D一个数据, 这个时候交换机首先在连接A那台PC的端口上学习到A的MAC地址,并且把这个MAC地址记录到交换机里的MAC地址表里, 但是这个时候交换机并不知道D是在哪,因为MAC表里还没有D的MAC. 这个时候怎么办呢?交换机会复制多份这个数据(多帧复制),向交换机的所有端口都转发这个数据(除A接的那个端口外),这个称为泛洪,flooding 。当B和C接到这个数据时,首先检查目的地址,发现不是发给我的,那么就丢弃这个帧。 当D接到这个帧时,发现这是发给自己的,然后D便会发给A数据,这个时候交换机在D的接口又学习到了D的MAC地址 , 这个时候交换机学习到了两条MAC地址。
实验内容
本次实验采用一个模拟二层交换机和两个主机拓扑图如下:
1.启动mininet创建一个线性拓扑,这里我们是使用screen来创建,可以在两个窗口之间切换。如果系统没有screen,可以直接sudo apt install screen。 screen mn --topo linear --mac --switch ovsk --controller=none
这里控制器设置为无,ovsk表示虚拟交换机为ovs Kernel mode。 ps:这里建议直接使用管理员root来执行screen,我用自己的账户执行screen会直接退出。或者在之前加上一个sudo。 sudo screen mn -topo linear --mac --switch ovsk --controller=none
然后得到下图,拓扑创建完毕。
2.输入nodes查看全部结点,理论上会返回两台交换机和两个主机。
3.输入net查看链路信息,按照拓扑,两台交换机之间相连,下分别挂载一个主机。
4.输入dump查看节点信息。
5.因为此时交换机s1和交换机s2是两个SDN交换机,而在启动Mininet时我们没有指定任何控制器,交换机中没有流表的存在,无法进行转发操作。此时主机h1和主机h2是无法进行通信的。我们需要按ctl+a+d跳出当前Mininet窗口,在主窗口命令行中输入如下命令来打开交换机s1和交换机s2的二层。操作完成后,s1和s2就是两台普通的二层交换机了。 然后我们回到主窗口命令行输入:
#ovs-vsctl del-fail-mode s1
#ovs-vsctl del-fail-mode s2
打开两个交换机的二层。接着我们可以ping一下两台主机得到下图:
6.接着我们查看数据帧转发表
# ovs-ofctl dump-flows s1
# ovs-ofctl dump-flows s2
可以看出来交换机已经进行过了mac地址学习。
原lab上还有关于学习过程的分析,就先不黏贴以后自己再写吧。
Mininet实验 MAC地址学习的更多相关文章
- Mininet实验 MAC地址学习分析
拓扑图 学习过程分析 首先交换机A和交换机B一开始的MAC地址表都是空的. 此时主机11向主机33发送一个数据帧. 数据帧会先到达交换机A,交换机A会获得主机11的MAC地址和端口号.(此时交换机A的 ...
- 【小菜学网络】交换机与MAC地址学习
上一小节介绍了 集线器 ,一种工作于物理层的简单网络设备.由于集线器采用广播的方式中继.转发物理信号,传输效率受到极大制约. 精准转发 为了解决集线器工作效率低下的尴尬,我们需要设计一种更高级的网络设 ...
- mac地址学习笔记
MAC(Media Access Control或者Medium Access Control)地址, 意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置. 在OSI模型中,第三层网 ...
- pox目录中的交换机mac地址学习模块 l2_multi源码
# Copyright 2012-2013 James McCauley # # Licensed under the Apache License, Version 2.0 (the "L ...
- 分分钟学会系列:mac地址泛洪攻击实验
一.实验目的: 通过实战深入理解mac地址泛洪攻击的原理. 二.实验原理: 交换机中有一张非常重要的表,叫做mac表,这个表是一个硬件组成的表,主要是完成快速转发.mac表有大小限制,不同的交换机的m ...
- 交换机是干嘛的!!交换机如何学习MAC地址过程?
1.它收到一个帧的时候,先检查源MAC地址,看看自己维护的一个地址表中有没有这个地址.如果有,则2:如果没有,则将这个MAC地址.进入的端口.进入的时间放入这个表中: 2.检查目的MAC地址,然后到该 ...
- 交换机安全学习笔记 第二章 MAC地址泛洪攻击
本文为书中相关知识的摘要,由于书中以思科设备为配置依据,所以笔记中补充了华为.H3C设备的相关配置.华为设备配置参考华为S2352EI 产品版本:V100R005C01文档版本:02. H3C配置参 ...
- Mininet实验 使用l2_multi模块寻找最短路径实验
参考:使用l2_multi模块寻找最短路径实验 1. 实验目的 1.认识VND并且掌握其基本使用方法. 2.学会使用pox控制器的l2_multi模块寻找主机间的最短传输路径. 2. 实验原理 VND ...
- HCNP Routing&Switching之MAC地址防漂移
前文我们了解了二层端口安全技术相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16631222.html:今天我们来聊一聊MAC地址防漂移技术: 首先我 ...
随机推荐
- axios和ajax,fetch的区别
1,传统 Ajax 指的是 XMLHttpRequest(XHR), 最早出现的发送后端请求技术,隶属于原始js中,核心使用XMLHttpRequest对象,多个请求之间如果有先后关系的话,就会出现回 ...
- DNS服务器的简介——2
生成HTTP报文后,因为我们输入的是服务器的域名,但在包体的发送中需要的是服务器的IP地址,所以接下来的工作就是查找服务器的IP地址,而查询IP地址,就需要DNS服务器来帮忙了. IP地址简介: IP ...
- 生成Ipa安装包的plist文件后生成下载链接
假设生成的plist文件的下载链接是: https://www.xx.com/download/xx.plist 那么如果想让苹果手机的浏览器点击后开始下载苹果软件包,则网页中的下载链接需要拼接成 i ...
- DOM中的事件傳播機制
要講到事件傳播機制之前,首先要瞭解的是 什麼是事件? 事件,發生在靜態頁面與動態行為之間的交互行為.是JavaScript 和 HTML的交互是通过事件实现的.比如,按鈕的點擊,鼠標的滑過,鍵盤的輸入 ...
- 小程序开发-9-Behavior行为与加入缓存系统优化流行页面
Behavior行为与加入缓存系统优化流行页面 navi组件与移动端触碰区域探讨 触碰区域优化 设计师切图切大点,多余部分变成透明色 前端将可触碰区域变大 解决向左箭头变灰,向右变灰 禁用事件的技巧 ...
- 优龙FS2410开发板学习过程遇到问题总结
以下的问题及其解决办法是基于优龙FS2410开发板,不定期更新 ============================================================= 开发学习环境 ...
- 鸡啄米:C++编程之十三学习之类与对象,类的声明,成员的访问控制
1. 本次学习鸡啄米课程第13篇,把比较重要的学习记录下来,以敦促自己更好的学习.推荐他们的网址学习:http://www.jizhuomi.com/school/c/97.html 2. 在面向过程 ...
- JavaSE基础笔记
JVM 不是跨平台的,他是用 C++编写的. Path 环境变量的地址是 ...jdk/bin java_home 地址是 ...jdk
- Linux怎样创建FTP服务器--修改用户默认目录-完美解决 - 费元星
在创建FTP服务器之有先命令: ps -ef |grep vsftpd 查一下系统有没有安装vsftpd这个服务器,如果出现如下图所示的界面说明没有安装. 然后再执行:yum install vs ...
- Ruby 基础教程 1-2
1.数组 创建 arrayname=[] arrayname=["1",12,"23"] 访问 arrayname[index] 更新 arrayname[in ...