交换机从端口 0 接到主机 ant 发送的以太网帧,源地址是 40:aa:aa:aa:aa:aa ,便知道以后发给这个地址的帧应该转发给端口 0 。这样一来,交换机机智地学习到主机 ant 的 MAC 地址:
root@switch [ ~ ] ➜ brctl showmacs switch0 | grep -v yes port no mac addr is local? ageing timer 1 40:aa:aa:aa:aa:aa no 1.97接着,我们在主机 bee 向 ant 回复一个信息:
root@bee [ ~ ] ➜ sendether -i eth0 -t 40:aa:aa:aa:aa:aa -d 'how are you?'由于交换机已经学习到 ant 的地址,知道去往 40:aa:aa:aa:aa:aa 的帧应该转发到端口 0 ,位于端口 3 的 cicada 主机便不会收到这个帧了。
同理,在这个过程中,交换机学习到主机 bee 的 MAC 地址 40:bb:bb:bb:bb:bb :
root@switch [ ~ ] ➜ brctl showmacs switch0 | grep -v yes port no mac addr is local? ageing timer 1 40:aa:aa:aa:aa:aa no 60.17 2 40:bb:bb:bb:bb:bb no 50.14这样一来,主机 ant 再给 bee 发数据,cicada 同样也不会收到了:
root@ant [ ~ ] ➜ sendether -i eth0 -t 40:bb:bb:bb:bb:bb -d 'fine, thank you!'【小菜学网络】系列文章首发于公众号【小菜学编程】,敬请关注: