ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux镜像克隆网卡流量

2021-03-17 09:29:07  阅读:597  来源: 互联网

标签:iptables 克隆 192.168 br0 网卡 网桥 流量 Linux


Linux镜像克隆网卡流量


参考:
https://blog.51cto.com/hostman/2106155
https://www.cnblogs.com/nidey/p/6227963.html
https://goyalankit.com/blog/linux-bridge
https://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/

系统版本:Centos7.4 3.10.0-693.el7.x86_64

原理

1.Bridge(桥)是 Linux 上用来做 TCP/IP 二层协议交换的设备,与现实世界中的交换机功能相似。Bridge 设备实例可以和Linux 上其他网络设备实例连接,既 attach 一个从设备,类似于在现实世界中的交换机和一个用户终端之间连接一根网线。当有数据到达时,Bridge 会根据报文中的 MAC 信息进行广播、转发、丢弃处理。

2.当网卡收到数据帧的目的mac为本机mac时,正常情况下会上送协议栈,非本机mac会直接丢弃

3.bridge不区分接入进来的是物理设备还是虚拟设备,对它来说都一样的,都是网络设备,所以当em2加入br0之后,落得和虚拟网卡veth0一样的下场,从外面网络收到的数据包将无条件的转发给br0,自己变成了一根网线。再由br0交给上层协议栈

5.当程序需要通过br0发送报文时,协议栈将报文交给br0,此时br0发挥交换机功能,通过mac-端口映射表查找数据帧转发端口,此处我们将网桥的setageing项设置为0s,使交换机的mac-端口映射表一直处于空白状态,当br0需要转发数据帧时,找不到对应表项,只能将帧广播出去,这样网桥内的网卡都能收到数据帧,达到流量克隆效果

备注:此种方式只能克隆br0发出的流量,无法克隆收到的流量

利用linux网桥镜像克隆流量

em2和em3都能收到,从77.60发出的流量
em3和Server2的em2都能收到,从77.60发出的报文

yum install brctl
#创建网桥
brctl addbr br0
#添加虚拟网卡或物理网卡到网桥(此时原网卡em2,em3,IP失效)
brctl addif bro em2
brctl addif br0 em3
#设置MAC地址的老化时间,以秒为单位。
#在<time>秒内未看到来自某个地址的帧之后,网桥将从转发数据库(fdb)中超时(删除)该地址。
#设置为0让网桥将要发送的数据帧广播出去,实现镜像功能
brctl setageing br0 0
#配置网桥IP
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.77.60
PREFIX=24
TYPE=Bridge
IPV6INIT=no
IPV6_AUTOCONF=no
#启用br0
ifup br0
至此,所有从em2发出的包都能同时发给em3
弊端:只能克隆由br0发出的包

利用iptables tee模块实现流量镜像

在这里插入图片描述

iptables -I PREROUTING -t mangle -i em1 -j TEE --gateway 192.168.77.61
#表示将所有流入em1的流量通过TEE模块转发到指定地址,
#也可指定一个网段,使用-s或-d表示源IP段,目的IP段,替换-i em1
iptables -I PREROUTING -t mangle -s 192.168.3.0/24 -j TEE --gateway 192.168.77.61

iptables -I POSTROUTING -t mangle -o eth0 -j TEE --gateway 192.168.77.61
#把从em1出去的流量包都镜像一份发到192.168.77.61上

iptables-save  #保存配置
iptables -D PREROUTING -t mangle -i em1 -j TEE --gateway 192.168.77.61  #删除规则

结合两种功能可实现全局一对多

标签:iptables,克隆,192.168,br0,网卡,网桥,流量,Linux
来源: https://blog.csdn.net/niaooer/article/details/114662355

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有