CentOS7 配置网卡端口镜像
背景
最近一直在研究旁路监测,需要设置一个源端口镜像给两个目的端口(分别接两个监测设备),无奈ip-com交换机没配置明白,研究下使用软件实现暂时代替。
环境
发行版、内核、iptables版本信息如下
[root@ted ~]# uname -a
Linux ted 3.10.-.el7.x86_64 # SMP Thu Nov :: UTC x86_64 x86_64 x86_64 GNU/Linux
[root@ted ~]# cat /etc/redhat-release
CentOS Linux release 7.2. (Core)
[root@ted ~]# rpm -qi iptables
Name : iptables
Version : 1.4.
Release : .el7
Architecture: x86_64
配置
部署图大致如下

办公网某主机IP: 192.168.118.1(演示时用的VMware的NAT模式,宿主机)
监测服务器A网卡eth0:192.168.118.134(演示时用的VMware的NAT模式,VM)
监测服务器A网卡eth1:192.168.12.13(演示时用的VMware的VMnet9,VM)
监测服务器B网卡eth0:192.168.12.12(演示时用的VMware的VMnet9,VM)
在监测服务器A上执行如下命令
查看路由设置
[root@ted ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.118.2 0.0.0.0 UG eth0
192.168.12.0 0.0.0.0 255.255.255.0 U eth1
192.168.118.0 0.0.0.0 255.255.255.0 U eth0
所有192.168.12.0网段的流量都走eth1网卡(此网卡与服务器B的eth0直连)
配置只需一条命令
[root@ted ~]# iptables -I PREROUTING -t mangle -i eth0 -j TEE --gateway 192.168.12.12
[root@ted ~]# iptables-save
所有eth0的进口流量包都会被复制一份发到192.168.12.12上(从路由表上看出,先走eth1网卡,再到服务器B的eth0)
使用
在服务器A上用tcpdump抓包(开两个终端)
[root@ted ~]# tcpdump -i eth0 tcp port -w A-eth0.pcap
[root@ted ~]# tcpdump -i eth0 tcp port -w A-eth1.pcap
在服务器B上用tcpdump抓包
[root@min-base ~]# tcpdump -i eth0 tcp port -w B-eth0.pcap
在服务器A上开httpd服务器,用办公网主机访问该服务

结果
监测服务器A、B都得到了镜像流量。
这里为了演示,使用“办公机访问服务器A的httpd服务”代替“办公网镜像流量”,实际情况应该是服务器A网卡eth0是不配置IP的。

缺点
iptables-TEE实现端口镜像会改变源MAC、目的MAC
TODO
这里没有实现回包镜像,我再研究研究。。。
在服务器A上再执行一条iptables规则
[root@ted ~]# iptables -I POSTROUTING -t mangle -o eth0 -j TEE --gateway 192.168.12.12
把从eth0出去的流量包都镜像一份发到192.168.12.12上就可以啦~~
哪位大神有更好的方案还请指点~
CentOS7 配置网卡端口镜像的更多相关文章
- CentOS7——配置阿里云镜像源
CentOS7--配置阿里云镜像源 #下载CentOS 7的repo文件 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun ...
- CentOS7配置网卡上网、安装wget、配置163yum源
2019/09/12,CentOS 7 VMware 摘要:CentOS7安装完成(最小化安装)后,不能联网(已选择桥接网络),需要修改配置文件及配置yum源 修改配置文件 进入网卡配置目录 cd / ...
- CentOS7 配置光盘iso镜像为本地yum源
因为系统使用的最小化安装,所以很多软件没有安装上,又无法上网,为了方便,所以直接将上传的iso镜像直接作为yum源. 我已经将光盘的iso镜像上传至服务器. 接下来就是将iso的光盘镜像进行挂载了 m ...
- Centos7安装成功后,网卡配置及更改镜像地址为国内镜像
Centos7安装成功后,网卡配置及更改镜像地址为国内镜像 一.网卡配置 二.修改网络配置 踩坑一:IPADDR 踩坑二:网关,DNS与本地不一致 重启网络服务 三.镜像修改为aliyun 四.相关知 ...
- 华为S5300交换机配置基于VLAN的本地端口镜像
配置思路 1. 将Ethernet0/0/20接口配置为观察端口(监控端口) 2. 将VLAN 1.11.12.13.14配置为镜像VLAN 配置步骤 1. 配置观察端口 <Switch& ...
- 华为S5300交换机配置基于接口的本地端口镜像
配置思路 1. 将Ethernet0/0/20接口配置为观察端口(监控端口) 2. 将Ethernet0/0/1----Ethernet0/0/10接口配置为镜像端口 配置步骤 1. 配置观察端 ...
- S5700交换机配置端口镜像
S5700交换机配置端口镜像 <Quidway>system-view //进入系统视图 Enter system view, return user view with Ctrl+ ...
- H3c交换机配置端口镜像详情
端口镜像 需要将G0/0/1口的全部流量镜像到G0/0/2口,即G0/0/1为源端口,G0/0/2为目的端口. 配置步骤 1.进入配置模式:system-view: 2.创建本地镜像组:mirrori ...
- 华为S5700配置端口镜像和华三S5120配置802.1X认证记录
一.说明 事情的起因是我们部门有个华为的S5700交换机,想配置端口镜像抓包但让助理买的串口线很久都还没到:而昨天测试部的同事说他们那有台华三的S5120想要配802.1X认证,但只有华为交换机的文档 ...
随机推荐
- python学习笔记(2)
1.for循环 用户按照顺序循环可迭代对象中的内容. li = [11,22,33,44] for i in li: print i for循环的else 此功能目前只有for循环里面有发现. 具体条 ...
- 【leetcode】Perfect Squares (#279)
Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 1 ...
- 巴特沃斯(Butterworth)滤波器 (1)
下面深入浅出讲一下Butterworth原理及其代码编写. 1. 首先考虑一个归一化的低通滤波器(截止频率是1),其幅度公式如下: 当n->∞时,得到一个理想的低通滤波反馈: ω<1时,增 ...
- Leetcode Trapping Rain Water
Given n non-negative integers representing an elevation map where the width of each bar is 1, comput ...
- crawler4j 学习(二)
crawler4j 学习(二) 实现控制器类以制定抓取的种子(seed).中间数据存储的文件夹.并发线程的数目: public class Controller { public static voi ...
- this用法(ryf)
this是javascript语言的一个关键字 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,比如: function test(){ this.x = 1; } 随着函数使用场合的不 ...
- JDBC编程
简单地说,JDBC 可做三件事:与数据库建立连接.发送 SQL 语句并处理结果.下列代码段给出了以上三步的基本示例: Connection con = DriverManager.getConnect ...
- 如何在移动设备上调试html5开发的网页
在我们用phoengap+html5做的移动app中,经常遇到的问题就是 本地网页兼容但是到了app出现不兼容的情况,原因是手机端页面,大多运行在webkit内核的浏览器上,但还是会因平台.厂商的不同 ...
- POST在发送数据的时候使用的是HTTP命令
防止SQL注入 SQL(结构化查询语言)是基于美国国家标准学会(ANSI)标准,并作为共同的语言与数据库通信.每个数据库系统增加了一些专有功能到基本的ANSI SQL. SQL注入是一门将制作好的SQ ...
- 使用holder进行内存管理
在C++中,我们使用new 和delete进行自己的内存管理. void test_func() { someType *ptr = new someType; //使用ptr ptr->fun ...