由于大搞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.

comments powered by Disqus