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上就可以啦~~

 

哪位大神有更好的方案還請指點~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM