第 48 章 使用 nmcli 镜像网络接口
网络管理员可以使用端口镜像复制从一个网络设备传输到另一个网络设备的入站和出站网络流量。在以下情况下,镜像接口的流量很有帮助:
- 要调试网络问题并调优网络流
- 要检查和分析网络流量
- 要检测入侵
先决条件
- 一个镜像网络流量的网络接口。
流程
添加您要镜像网络流量的网络连接配置集:
nmcli connection add type ethernet ifname enp1s0 con-name enp1s0 autoconnect no
# nmcli connection add type ethernet ifname enp1s0 con-name enp1s0 autoconnect noCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将类型为
prio的qdisc附加到带有10:handle 的出口(传出)流量的enp1s0:nmcli connection modify enp1s0 +tc.qdisc "root prio handle 10:"
# nmcli connection modify enp1s0 +tc.qdisc "root prio handle 10:"Copy to Clipboard Copied! Toggle word wrap Toggle overflow qdisc设置为prioattached without children 允许附加过滤器。为入口流量添加
qdisc,使用ffff:handle:nmcli connection modify enp1s0 +tc.qdisc "ingress handle ffff:"
# nmcli connection modify enp1s0 +tc.qdisc "ingress handle ffff:"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加以下过滤器,以匹配入口和出口
qdiscs上的数据包,并将其镜像到enp7s0:nmcli connection modify enp1s0 +tc.tfilter "parent ffff: matchall action mirred egress mirror dev enp7s0" nmcli connection modify enp1s0 +tc.tfilter "parent 10: matchall action mirred egress mirror dev enp7s0"
# nmcli connection modify enp1s0 +tc.tfilter "parent ffff: matchall action mirred egress mirror dev enp7s0" # nmcli connection modify enp1s0 +tc.tfilter "parent 10: matchall action mirred egress mirror dev enp7s0"Copy to Clipboard Copied! Toggle word wrap Toggle overflow matchall过滤器与所有数据包匹配,mirred操作会将数据包重定向到目的地。激活连接:
nmcli connection up enp1s0
# nmcli connection up enp1s0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
安装
tcpdump工具:yum install tcpdump
# yum install tcpdumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 显示目标设备上镜像的流量 (
enp7s0):tcpdump -i enp7s0
# tcpdump -i enp7s0Copy to Clipboard Copied! Toggle word wrap Toggle overflow