由于大搞BGP线路,所以在Cisco路由器上Mirror了入口的流量到另外一个端口,供suricata分析用。
在Mirror直通kvm虚机过程中遇到以下问题:
Mirror的口是Te口,10G的流量,在宿主机上tcpdump可以看到所有流量,但是在kvm上则断断续续,流量丢失一部分,原因很简单,流量的聚合和转发未配置好,两条命令解决
brctl setageing br2 0
brctl setfd br2 0
但是,如何在宿主机启动的时候自动执行这两句呢?简单,如果系统是CentOS
cat <<EOF>>/sbin/ifup-local
#!/bin/bash
brctl setageing br2 0
brctl setfd br2 0
EOF
chmod 755 /sbin/ifup-local
如果系统是Ubuntu
cd /etc/network/if-up.d
cat <<EOF>>br3-mirror
#!/bin/bash
if [ "$IFACE" = br2 ]; then
brctl setageing br2 0
brctl setfd br2 0
fi
EOF
chmod +x br2-mirror
在宿主机上问题解决了,在kvm虚机上又遇到问题,Ubuntu,如果让一个网口启动但没有地址呢?
vi /etc/network/interfaces
auto ens7
iface ens7 inet manual
mtu 1464
up ifconfig ens7 up
注意上面的,ens7就是mirror过来的网口,mtu是因为在cisco做mirror的时候指定了固定的mtu 1464.
brctl命令的用法可以参见以下链接:
https://www.thegeekstuff.com/2017/06/brctl-bridge/
over.