1. 程式人生 > >centos7使用iptables-nat功能來轉換數據--實施監控負載鏈路

centos7使用iptables-nat功能來轉換數據--實施監控負載鏈路

sna ice table work 查看ip 執行 http 需要 art

場景說明
監控主機10.1.2.9
中轉主機10.1.2.11
被監控(ping)的主機10.4.2.10

##實現一個監控主機同時監控兩條負載鏈路。平面圖如下

技術分享圖片

實現說明

1、 在監控主機10.1.2.9上寫route
route add -host 10.4.2.10 gw 10.1.2.11 #這裏設置後只是本地生效
永久生效方面如下:
在/etc/sysconfig/network裏添加到末尾
route add -host 10.4.2.10 gw 10.1.2.11
route add -host 10.2.2.10 gw 10.1.2.11
route add -host 192.168.32.10 gw 10.1.2.11
#重啟centos7

2、 中轉主機做iptables
a) 修改/etc/sysctl.conf 添加net.ipv4.ip_forward = 1 #啟用ip_forward,再執行sysctl -p馬上生效
以下是兩條一對,往返兩條規則。
iptables -t nat -A POSTROUTING -s 10.1.2.9/32 -d 10.4.2.10/32 -o ens160 -j MASQUERADE #ens160指的是網上名稱,可以使用ip addr /ifconfig查
iptables -t nat -A POSTROUTING -s 10.4.2.10/32 -d 10.1.2.9/32 -o ens160 -j MASQUERADE

iptables -t nat -A POSTROUTING -s 10.1.2.9/32 -d 10.2.2.10/32 -o ens160 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.2.2.10/32 -d 10.1.2.9/32 -o ens160 -j MASQUERADE

iptables -t nat -A POSTROUTING -s 10.1.2.9/32 -d 192.168.32.10/32 -o ens160 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.32.10/32 -d 10.1.2.9/32 -o ens160 -j MASQUERADE

b) 永久保存:
Centos7使用firewalld管理iptables,所以需要如下操作:
關閉防火墻
systemctl stop firewalld
systemctl mask firewalld

安裝iptables-services
yum install iptables-services

設置開機啟動防火墻 #正常情況是已自動啟動
systemctl enable iptables

可以使用下面命令管理iptables

systemctl [stop|start|restart] iptables

保存防火墻規則

service iptables save

c) 查看iptables表情況:iptables -t nat -vnL POSTROUTING --line-number
3、 中轉主機安裝抓包工具
並啟用抓包(監控主機ping 10.4.2.10)# 啟用 tcpdump -nn -i ens160 icmp
技術分享圖片
監控主機traceroute 10.4.2.10情況
技術分享圖片

以上說明已經配置了監控主機的路由及中轉主機的nat
4、 測試,兩地三層交換機寫路由之後,進行測試
監控主機ping的情況

技術分享圖片

中轉主機traceroute情況

技術分享圖片
出現以上情況,說明在三層交換機中切換路由,便可以引致中轉主機的路由方向
5、 現在可以使用監控主機10.1.2.9通過10.1.2.11去監控10.4.2.10設備了。目的是在於可以同時監控負載鏈路的兩條路線健康情況。
?

交換機配置說明
6、 三層交換寫路由部份不在這裏體現,具體思路就是寫一條24位掩碼的網段從一條鏈路走,再寫一條32位掩碼的主機路由從另外一條鏈路走,這樣主機會被精準匹配到,優先走32掩碼的主機路由。

參考文檔
7、 學習參考的資料如下:
Linux開啟路由轉發功能:https://blog.csdn.net/lemontree1945/article/details/80598242
Iptables功能詳細:http://blog.51yip.com/linux/1404.html
Tcpdump抓包工具用法說明: https://www.cnblogs.com/f-ck-need-u/p/7064286.html
https://blog.csdn.net/u011630575/article/details/48271711
#這個tcpdump在中轉機上安裝,並且開啟抓包,這樣,才能知道10.1.2.9主機ping10.4.2.10的包是否被正確route到10.1.2.11上
Route命令: https://www.cnblogs.com/snake-hand/p/3143041.html
解決service iptables save出錯please try to use systemctl:https://blog.csdn.net/xu_melon/article/details/79043320

centos7使用iptables-nat功能來轉換數據--實施監控負載鏈路