实验参考:
Mininet MAC地址学习实验
实验步骤:
1. 在虚拟机上启动mininet,创建一个线型拓扑(如下图所示),控制器设置为无(# sudo 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就是两台普通的二层交换机了。
6. 执行两台主机ping操作:
7. 查看当前交换机下的流表:
另附:MAC地址学习分析
参考实验原文
实验结论:
交换机的缓存中有一个MAC地址表,需要转发数据时,交换机会在地址表查询是否有与目的MAC地址对应的表项,如果有,交换机立即将数据报文往该表项中的转发端口发送;如果没有,交换机则会将数据报文以广播的形式发送到除了接收端口外的所有端口,尽最大能力保证目的主机接收到数据报文。因此,交换机地址表的构建和维护决定了数据转发的方向和效率。