日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux两台服务器 同一个地址_【网工玩Linux】搭建开源多运营商(ISP)链路负载均衡器...

發(fā)布時間:2025/3/12 linux 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux两台服务器 同一个地址_【网工玩Linux】搭建开源多运营商(ISP)链路负载均衡器... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天,主要想講一下如何利用Linux內(nèi)核功能,搭建與市面上十幾萬的商用產(chǎn)品(F5、RADWARE等)功能相同的多互聯(lián)網(wǎng)線路負(fù)載均衡設(shè)備。

負(fù)載均衡,相信各位是了解的。主要包括兩大類,一類是應(yīng)用負(fù)載均衡,另一類是鏈路負(fù)載均衡。應(yīng)用負(fù)載均衡,包括了軟負(fù)載均衡如nginx、LVS,硬負(fù)載均衡如F5、RADWARE等大廠的產(chǎn)品。應(yīng)用負(fù)載均衡利用了反向代理和DNS解析,在于同一套業(yè)務(wù)系統(tǒng)中多臺應(yīng)用服務(wù)器間分?jǐn)傌?fù)載,一來便于擴(kuò)展應(yīng)用性能,二來通過反向代理等功能保護(hù)后面實際的應(yīng)用服務(wù)器。

而鏈路負(fù)載均衡,廣泛應(yīng)用于自建機(jī)房且有面向互聯(lián)網(wǎng)業(yè)務(wù)的公司,主要目的是在多條互聯(lián)網(wǎng)出口間分?jǐn)偩W(wǎng)絡(luò)流量,利用NAT映射功能為內(nèi)網(wǎng)服務(wù)器提供多家運(yùn)營商的互聯(lián)網(wǎng)出口以保證訪問體驗。使用鏈路負(fù)載均衡:

一是可以提高互聯(lián)網(wǎng)出口利用效率。

二是如果在防火墻實現(xiàn)訪問控制表、路由表、NAT映射表都需要CPU計算,對于內(nèi)網(wǎng)規(guī)模較大、業(yè)務(wù)系統(tǒng)多的公司來說使用負(fù)載均衡可以減輕防火墻CPU負(fù)載。

三是負(fù)載均衡、防火墻、網(wǎng)關(guān)路由器承擔(dān)各自角色,使各項功能模塊化,發(fā)生單點故障時,僅需尋求該功能模塊的替換方案即可,而不影響其他功能。

四是防火墻與鏈路負(fù)載均衡分開可以提高網(wǎng)絡(luò)安全性,如果防火墻放開端口但負(fù)載均衡沒有做映射便無法訪問,反之亦然。

目前市面上的鏈路負(fù)載均衡設(shè)備,以商用產(chǎn)品為主,國際大廠包括F5、RADWARE,國內(nèi)包括深信服、H3C等,其價格動輒十幾萬,而部分廠商售后政策也十分壟斷,價格令人嗔目。

近期我司原本雙機(jī)互備的兩臺鏈路負(fù)載均衡設(shè)備,使用年限長了,掛了一臺。而新采購設(shè)備耗時較長,為了保證在此期間剩下那臺發(fā)生故障能夠有所準(zhǔn)備。我研究起了能否用Linux做免費(fèi)的鏈路負(fù)載均衡。

通過查找,最終在百度文庫找了一篇論文有所提及,用iproute2、 ip rule和iptables如何實現(xiàn)。而順著這條思路查找,網(wǎng)上各種資料、書籍僅僅是簡單講解了基本使用方法。而我寫這篇文章,就是為了搞大事——演示如何實現(xiàn)更復(fù)雜的鏈路負(fù)載均衡。

首先說下基本條件:

1.當(dāng)前共有移動、電信、聯(lián)通三家運(yùn)營商的互聯(lián)網(wǎng)出口。

2.移動互聯(lián)網(wǎng),公網(wǎng)地址60.1.1.0/28,網(wǎng)關(guān)60.1.1.1,有14個公網(wǎng)地址可用。

3.聯(lián)通互聯(lián)網(wǎng),公網(wǎng)地址232.5.5.64/28,網(wǎng)232.5.5.65,有14個公網(wǎng)地址可用。

4.電信互聯(lián)網(wǎng),公網(wǎng)地址58.7.7.128/28,網(wǎng)關(guān)58.7.7.129,有14個公網(wǎng)地址可用。

6.公司內(nèi)網(wǎng)用于負(fù)載均衡的路由口為10.100.1.1/30,下一跳為防火墻10.100.1.2/30,內(nèi)網(wǎng)網(wǎng)段包括172.16.11.0/24,172.16.56.0/24,172.16.210.0/24,10.201.1.0/24,192.168.200.0/24,共計5個網(wǎng)段。

7.內(nèi)部辦公區(qū)及服務(wù)器訪問互聯(lián)網(wǎng)的動態(tài)映射地址為移動60.1.1.14、聯(lián)通232.5.5.78、電信58.7.7.142。各出口其余13各公網(wǎng)地址備案后給機(jī)房有互聯(lián)網(wǎng)業(yè)務(wù)的服務(wù)器使用。

拓?fù)涫疽鈭D如下:

介紹完基本情況,我開始正式講解鏈路負(fù)載均衡的做法。雖然看似復(fù)雜,但是搞清楚邏輯概念,外加自己動手做個三四遍后,相信大家做的會比我更好的。

物理設(shè)備方面,找臺PC主機(jī),有條件的直接上服務(wù)器,由于路由表和NAT表都需要網(wǎng)卡與CPU通信、以及CPU的算力,想要延遲小,當(dāng)然主板和CPU的性能越高越好。然后需要4個千兆網(wǎng)口(網(wǎng)卡也是,性能越高越好),服務(wù)器一般自帶,而PC需要額外購置一塊4口網(wǎng)卡。

軟件方面,由于所需功能都是linux系統(tǒng)自帶,僅需要裝一個系統(tǒng)即可。我選用的是CentOS7,如果有redhat盡管用。

裝好了系統(tǒng),先接網(wǎng)線:

eth0:內(nèi)網(wǎng)端口

eth1:移動口

eth2:聯(lián)通口

eth3:電信口

網(wǎng)線接好后,開始進(jìn)行配置:

一、配置IP地址

配置IP地址可以使用ifconfig或者ip addr。我使用是ip addr,主要是因為各互聯(lián)網(wǎng)出口如果想把所有的公網(wǎng)ip都使用上,需要在同一個網(wǎng)口上配置多個IP地址。相較ifconfig而言,我個人認(rèn)為還是ip addr好理解一些:

#首先配置內(nèi)網(wǎng)口: ip addr add 10.200.1.1/30 brd 10.200.1.3 dev eth0

配置完成后,先不要急著進(jìn)行下一步。應(yīng)該檢查一下配置上的所有ip地址是否能夠ping通。我在內(nèi)網(wǎng)做實驗過程中發(fā)現(xiàn),有時候由于網(wǎng)關(guān)獲取arp表中MAC地址較慢,同一網(wǎng)卡中的部分ip地址跨三層ping不通。如果路由不可達(dá)那么后續(xù)配置端口映射就會發(fā)生故障。

對于公網(wǎng)地址,推薦使用“ping & DNS”這款手機(jī)app,手機(jī)可以在流量模式下自由檢測公網(wǎng)中IP地址和各種端口的通斷情況,在各大應(yīng)用商店都可以搜索下載的。

二、添加內(nèi)網(wǎng)路由

在所有IP地址都確保可以ping通的情況下,先配置內(nèi)網(wǎng)靜態(tài)路由,使用ip route命令:

#通過如下命令檢查配置情況 ip route show

三、配置table及檢查路由轉(zhuǎn)發(fā)功能

1.配置table

首先,在路由表中添加三個分表,用于對移動、電信、聯(lián)通三家運(yùn)營商實現(xiàn)負(fù)載均衡策略。路由表文件路徑在/etc/iproute2/rt_tables。

打開rt_tables文件,添加如下三行:

#移動線路

2.開啟路由轉(zhuǎn)發(fā)功能:

命令如下:

echo "1" >/proc/sys/net/ipv4/ip_forward

四、配置ip rule

由于主要講負(fù)載均衡配置,ip rule在這里不做過多的闡述。只簡單提一句,我們可以通過ip rule來實現(xiàn)在多條線路負(fù)載均衡的情況下,控制流量從哪條線路出入。舉個例子,訪問淘寶的流量直走電信線路、訪問天貓的直走聯(lián)通線路等等,還可以結(jié)合iptables的mark功能——要求某一特定的內(nèi)網(wǎng)用戶只走聯(lián)通線路(例如,現(xiàn)在銀行系統(tǒng)一般會檢查IP地址變動情況,而負(fù)載均衡會造成地址檢測異常影響對銀行網(wǎng)絡(luò)的訪問)。

我這里實驗需求比較簡單,僅確保聯(lián)通進(jìn)來的流量再從聯(lián)通返回,類似這樣的要求即可。代碼如下:

#移動規(guī)則 ip rule add from 60.1.1.2 table CMCC

五、配置分表路由策略

分表路由策略比較簡單,主要CMCC、CNC、CTC三個表中配置一條默認(rèn)路由和一條相對應(yīng)網(wǎng)段的路由即可:

#移動: ip route add 60.1.1.0/28 dev eth1 table CMCC ip route add default via 60.1.1.1 dev eth1 table CMCC

六、設(shè)置默認(rèn)路由負(fù)載均衡

在路由主表中配置三個出口的負(fù)載均衡策略:

七、配置動態(tài)映射做內(nèi)網(wǎng)互聯(lián)網(wǎng)出口

下面主要用到iptables的SNAT功能,為移動60.1.1.14、聯(lián)通232.5.5.78、電信58.7.7.142做動態(tài)映射,原則上每個內(nèi)網(wǎng)網(wǎng)段都需要配置一條SNAT,當(dāng)然也可以收斂為192.168.0.0/16,172.16.0.0/12,10.0.0.0/8三個網(wǎng)段做:

#移動: iptables -t nat -A POSTROUTING -o eth1 -s 172.16.11.0/24 -j SNAT --to 60.1.1.14 iptables -t nat -A POSTROUTING -o eth1 -s 172.16.56.0/24 -j SNAT --to 60.1.1.14 iptables -t nat -A POSTROUTING -o eth1 -s 172.16.210.0/24 -j SNAT --to 60.1.1.14 iptables -t nat -A POSTROUTING -o eth1 -s 10.201.1.0/24 -j SNAT --to 60.1.1.14 iptables -t nat -A POSTROUTING -o eth1 -s 192.168.100.0/24 -j SNAT --to 60.1.1.14

經(jīng)過上面諸多配置,到這一步,我們內(nèi)網(wǎng)的用戶們便可以輕松的訪問互聯(lián)網(wǎng),愉快的玩耍了。

結(jié)合iptables的mark與ip rule,可以實現(xiàn)更加智能的負(fù)載均衡策略。在這里不多贅述。下面,將介紹服務(wù)器映射。

八、服務(wù)器映射

完成上述工作,內(nèi)部用戶能夠成功訪問互聯(lián)網(wǎng)后,剩下的工作就是簡單的在iptables上做DNAT映射,唯一的區(qū)別就是同一臺內(nèi)網(wǎng)服務(wù)器,我們要做多條線路的DNAT映射,例如在本文中每個運(yùn)營商,我們有14個公網(wǎng)地址,拿來做一對一、多對一的NAT都可以。簡單舉一個例子如下:

#為10.201.1.155的80端口web服務(wù)提供移動、聯(lián)通、電信三條線路的公網(wǎng)映射: iptables -t nat -A PREROUTING -i eth1 -d 60.1.1.4 -p tcp --dport

這樣一來,我們就可以通過60.1.1.4/232.5.5.72/58.7.7.134這三個地址的80端口訪問同一臺服務(wù)器的web了。為了得到更好的訪問體驗,現(xiàn)在如阿里云等各大域名解析平臺都可以根據(jù)運(yùn)營商線路來解析對應(yīng)的IP地址。

九、總結(jié)

本文,僅僅是講述了linux搭建負(fù)載均衡的最基本的一些套路。動輒幾十萬的商業(yè)級鏈路負(fù)載均衡那些高級功能,同樣可以利用iptables和iproute2的高級配置進(jìn)行組合得以實現(xiàn)。

至于性能方面,實際上商業(yè)產(chǎn)品也是用的服務(wù)器,甚至有些產(chǎn)品用的是低端的服務(wù)器。只是內(nèi)部操作系統(tǒng)是自研、經(jīng)過優(yōu)化的。Linux雖然優(yōu)化可能沒有商業(yè)產(chǎn)品好,但是可以通過高性能硬件多少彌補(bǔ)。

至于交互界面復(fù)雜這種事情,對于我來說,可以通過perl或python寫一個web端彌補(bǔ)。

所以,各位同仁們,鏈路負(fù)載均衡壞了不要怕,可以快速搭一個linux先頂著。

總結(jié)

以上是生活随笔為你收集整理的linux两台服务器 同一个地址_【网工玩Linux】搭建开源多运营商(ISP)链路负载均衡器...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。