一.MAC地址学习
1.登录我们创建mininet的虚拟机,创建一个线型拓扑,控制器设置为无。
2.查看全部节点,查看链路信息,然后查看节点信息
3.再打开一个终端(Terminal窗口2),然后打开交换机s1和交换机s2的二层(因为交换机s1和交换机s2是两个SDN交换机,在启动Mininet时没有指定任何控制器,交换机中没有流表的存在,无法进行转发操作。主机h1和主机h2无法进行通信。执行上述命令后,s1和s2就是两台普通的二层交换机了)
4.在Terminal窗口1中,ping俩台主机
5.在Terminal窗口2中查看流表项
由上图可以看到有两条数据帧转发表,但并不是SDN交换机中的流表。这表明交换机已进行过MAC地址学习
二.MAC地址学习分析(Openlab平台,开放实验室)
1. 如下图所示,假设交换机A和B的MAC地址表是空的,主机11向主机33发送数据帧。
2. 交换机A接收到数据帧后,执行以下操作。
(1) 交换机A学习主机11的MAC地址和端口号,此时交换机A的MAC地址表如下图所示。
(2) 交换机A查看自己的MAC地址表。
(3) 如果MAC地址表中有目的主机MAC地址则直接进行数据转发,如果没有则继续执行步骤4。
(4) 交换机A向除源数据发送端口外的其他所有端口发送广播(这里交换机A从端口2和端口3向外发送广播)。
3. 交换机B在接收到数据帧后,执行以下操作。
(1) 交换机B学习源MAC地址和端口号,此时交换机B的MAC地址表如下图所示。
(2) 交换机B查看自己的MAC地址表。
(3) 交换机B向除源数据发送端口外的其他所有端口发送广播(这里交换机B从端口1和端口2向外发送广播)。
4. 主机22查看接收到的数据帧,发现目标MAC地址不是自己,丢弃数据帧。
5. 主机33接收数据帧,主机44丢弃数据帧。
6. 假设这时候主机44要给主机11发送数据帧。
7. 交换机B接收到数据帧后,执行以下操作。
(1) 交换机B学习主机44的MAC地址和端口号,此时交换机B的MAC地址表如下图所示。
(2) 交换机B查看自己的MAC地址表,根据MAC地址表中的条目,单播转发数据到端口3。
8. 交换机A在接收到数据帧后,执行以下操作。
(1) 交换机A学习源MAC地址和端口号,此时交换机A的MAC地址表,如下图所示。
(2) 交换机A查看自己的MAC地址表,根据MAC地址表中的条目,单播转发数据到端口1。
(3) 主机11接收到数据帧。至此,MAC地址学习过程结束。
标签:Mininet,主机,端口,地址,MAC,交换机,数据 From: https://blog.csdn.net/DestinySUT/article/details/142004843