Linux bridge 强制泛洪实验
文章目录
在上一章 Linux bridge 泛洪 中介绍了 Linux bridge 强制泛洪的原理,接下来抓一下 bridge 泛洪出来的网络包。
环境准备
学习了 docker网络之namespace 、 docker网络之veth设备 、docker网络之网桥 等知识之后,在一台 Linux 虚拟机中部署如下网络环境:
|
|
注意: 如果该环境中已经运行 docker,则需要执行命令
iptables -t filter -I FORWARD -i br0 -o br0 -j ACCEPT
,使得 br0 的流量不受 docker 的影响。
未开启强制泛洪
开启几个终端窗口:namespace client, namespace server, namespace pcap, bridge br0 各一个窗口。
进入 namespace 的命令:
ip netns exec ${ns name} bash
比如进入 namespace client:
ip netns exec nsclient bash
ping
在 namespace client 中 ping
namespace server 的 IP。
namespace pcap 抓包结果:
http server
在 namespace server 中拉起一个 http server,然后在 namespace client 中访问该 http server。
namespace pcap 抓包结果:
开启强制泛洪
在 bridge br0 窗口中执行命令 brctl setageing br0 0,再次试验 ping 和 http server。
ping 的抓包结果:
http server 的抓包结果:
总结
在网络设备上做流量镜像时,bridge 的强制泛洪实现了网卡级别的流量镜像效果。
文章作者 Leon Hwang
上次更新 2021-01-16
知识星球
星球里的专栏:
《XDP 进阶手册》
