CentOS7 配置网卡端口镜像
CentOS7 配置网卡端口镜像
背景
最近一直在研究旁路监测,需要设置一个源端口镜像给两个目的端口(分别接两个监测设备),无奈ip-com交换机没配置明白,研究下使用软件实现暂时代替。
环境
发行版、内核、iptables版本信息如下
[root@ted ~]# uname -a Linux ted 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@ted ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
[root@ted ~]# rpm -qi iptables Name : iptables Version : 1.4.21 Release : 17.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 100 0 0 eth0 192.168.12.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.118.0 0.0.0.0 255.255.255.0 U 100 0 0 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 80 -w A-eth0.pcap [root@ted ~]# tcpdump -i eth0 tcp port 80 -w A-eth1.pcap
在服务器B上用tcpdump抓包
[root@min-base ~]# tcpdump -i eth0 tcp port 80 -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上就可以啦~~
哪位大神有更好的方案还请指点~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
2018-01-09 c10k C10M
2018-01-09 Linux惊群效应详解