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就是两台普通的二层交换机了。 然后我们回到主窗口命令行输入:

1 #ovs-vsctl del-fail-mode s1
2 #ovs-vsctl del-fail-mode s2

 打开两个交换机的二层。接着我们可以ping一下两台主机得到下图:

6.接着我们查看数据帧转发表

1 # ovs-ofctl dump-flows s1
2 # ovs-ofctl dump-flows s2

可以看出来交换机已经进行过了mac地址学习。

原lab上还有关于学习过程的分析,就先不黏贴以后自己再写吧。

原文地址:https://www.cnblogs.com/pullself/p/10314857.html

时间: 2024-10-28 11:09:14

Mininet实验 MAC地址学习的相关文章

Linux邻居子系统的细节之confirm-OpenVPN server模式的MAC地址学习

在<Linux实现的ARP缓存老化时间原理解析>一文中,我剖析了Linux协议栈IPv4的邻居子系统的转化,再次贴出那个状态机转化图,可是这个图更详细了些,因为它有一个外部输入,那就是confirm: 请注意,如果socket或者路由子系统在上层confirm了一个neighbour,那么该arp将持续留在reachable状态而可以不用转换到stale状态.这个特性是有意义的.请观察一个现象:1.本机IP地址为192.168.1.10/24,直连的机器IP地址为192.168.1.20/24

mac地址学习笔记

MAC(Media Access Control或者Medium Access Control)地址, 意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置. 在OSI模型中,第三层网络层负责  IP地址 第二层数据链路 层则负责 MAC地址.因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址. MAC地址是网卡决定的,是固定的,实际上就是适配器地址或适配器标识符EUI-48. 网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通

分分钟学会系列:mac地址泛洪攻击实验

一.实验目的: 通过实战深入理解mac地址泛洪攻击的原理. 二.实验原理: 交换机中有一张非常重要的表,叫做mac表,这个表是一个硬件组成的表,主要是完成快速转发.mac表有大小限制,不同的交换机的mac表的大小都有不同,越是高端的交换机的表空间越大,但是作为接入交换机,表空间基本都在8K左右.交换机的一个原理是会自动学习并记录mac地址.而攻击者就利用交换机的mac地址学习机制,不断的进行mac地址刷新,迅速填满交换机的mac地址表,以至崩溃,使交换机不得不使用广播发包,从而获取其他人的报文信

vSphere虚拟交换机安全策略解读-混杂模式、MAC地址更改、伪传输

数据安全战略非常重要,必须做好计划; 特别是在数据中心,所有虚拟资产都必须得到很好的保护. 一个图谋不轨的hacker可能会劫持VM并重新配置以满足他的邪恶目的.本文详细讲述了vSphere虚拟交换机基于2层的安全策略. 有3个安全策略可供选择:混杂模式.MAC地址更改.伪传输. 既然是2层安全策略,而MAC地址又是处于2层,所以这3个策略都与MAC地址有关,可称之为“MAC防火墙”. 背景知识: 对于物理机,有2个MAC地址: ■固化在物理网卡ROM中的MAC地址,不可更改,该地址称为”初始M

Mac地址泛洪攻击的防御措施和具体配置

Mac地址泛洪攻击指的是:利用交换机的mac地址学习机制,攻击者不断地刷新mac地址,填满交换机的mac地址表,以致崩溃,使交换机不得不使用广播发包,从而获取其他人的报文信息. mac地址泛洪攻击的防御措施和具体配置 限定接入交换机的接入的端口的数量. 例如:设置该交换机的该端口可以学习10个mac地址,超过了10个mac地址就停止学习,丢弃后来的mac.如图: 具体代码如下: [Huawei-Ethernet0/0/1] port-security enable [Huawei-Etherne

Linux 网卡驱动学习之(八)(基于 MAC 地址转发数据)

1.构建MAC地址表 交换机技术在转发数据前必须知道它的每一个端口所连接的主机的MAC地址,构建出一个MAC地址表.当交换机从某个端口收到数据帧后,读取数据帧中封装的目的地MAC地址信息,然后查阅事先构建的MAC地址表,找出和目的地地址相对应的端口,从该端口把数据转发出去,其他端口则不受影响,这样避免了与其它端口上的数据发生碰撞.因此构建MAC地址表是交换机的首要工作.下面举例说明交换机建立地址表的过程. [分析]假设主机A向主机C发送一个数据帧(每一个数据帧中都包含有源MAC地址和目的MAC地

【安全牛学习笔记】Mac地址绑定攻击

MAC地址绑定攻击 MAC绑定                           管理员误以为MAC绑定是一种安全机制 限制可以关联的客户端MAC地址                                                                   准备AP                                AP基本配置                        Open认证                          开启无线过滤   

路由交换学习第二天:初识MAC地址表

AS1内的设备全启动: PC配置:打开PC1的配置,设置静态IP:10.10.10.1 255.255.255.0=>应用(备注:PC1的mac:54-89-98-B1-7B-52) 路由器设置: <Huawei>system-view //进入系统视图[Huawei]sys HW-R1 //设置路由器名称[HW-R1]interface GigabitEthernet 0/0/1 //配置GE0/0/1口[HW-R1-GigabitEthernet0/0/1]ip address 10

网络编程学习笔记-MAC地址和IP地址的关系

简单地说:ip地址是服务商给你的,mac地址是你的网卡物理地址. 一.IP地址 对于IP地址,相信大家都很熟悉,即指使用TCP/IP协议指定给主机的32位地址.IP地址由用点分隔开的4个8八位组构成,如192.168.0.1就是一个IP地址,这种写法叫点分十进制格式.IP地址由网络地址和主机地址两部分组成,分配给这两部分的位数随地址类(A类.B类.C类等)的不同而不同.网络地址用于路由选择,而主机地址用于在网络或子网内部寻找一个单独的主机.一个IP地址使得将来自源地址的数据通过路由而传送到目的地