❶ linux雙網伺服器架設教程(高分求)
LINUX下雙網雙線伺服器的架設全過程
目的: 現在很多中小型網路有兩條或者多條相同的不同的ISP的網路出口線路
而如何將這兩條線路合理的利用起來 是很多人非常關心的
西安秀網吧資訊會為大家提供更多更好的學習資料和知
此文用通俗易懂的方法的講解了如何初步達到此目的 本方案不需要大量的投資
也不需要改變現有網路結構 並且可擴展性好! 環境:用基於LINUX路由功能 由2.2內核開始,
Linux便開始支持高級路由技術,提供策略路由,流量控制等多項高級路由功能,
配合Netfilter包過濾軟體,可實現許多專業路由器和防火牆才能實現的高級功能
本方案採用RedHat 9.0 系統基礎 系統自帶 IPTABLES 和 IPROUTER2 軟體,
申明:本方案為了表達一個通俗易懂的稱述 很多地方採用大白話方式進行說明,
這對技術來說是不嚴謹的態度,並且在文中可能出現很多錯誤,歡迎指正
希望有更多人能使用此方案而達到自己的目的 可以用在論壇上聯系,
寫的很亂還請大家見諒!
約定:對於具體#作,都是基於Shell下的,就是所謂終端,控制台
我將用橫線閣開,可以看成實際的#作,後面的針對解釋 均採用漢字通俗解
但不能作為實際#作!
一、 硬體選擇和實施:
1。本人在實際#作中選擇了 C3 1G CPU INTEL 815ET晶元組主板(集成顯卡) 128M SDRAM 三張網卡 均是RTL 8139 10/100M 自適應網卡 3G大小心的一塊老硬碟 RedHat 9.0系統盤 光碟機 鍵盤 滑鼠 顯示器|
為安裝使用 過後拆掉,在各個實際環境里 選擇方案不一定要相同 ,但是本人建議 CPU 不低於233M 內存不低於64M 網卡盡量不用8029等10M 設備,如果有條件可以選擇不同的主流網卡 其他 主是要求穩定
2。安裝系統 根據硬碟大小以及個人情況 可任意方式安裝 提示以及建議:
A : 如果分區不是很清楚 可以用 光碟上的PQ 將硬碟分區 第一次接觸的,採用 將6G以下的空間分成EXT3格式的分區 然後接著一256M左右的SWP交換分區
B。 網卡先別一次性裝上, 可先將要用於內網的網卡,先插上,以後系統安裝成功以後再依次插上其他網卡 以免混淆!在安裝的時候 可以完全默認的方式 並且 盡量採用 英文安裝 ,不裝XWINDOWS 也就是可以一路 NEXT下去!!!
3。建立用戶 除了系統自帶的 root 超級管理員帳戶以外 請建立1-2個普通用戶! 更具體的安裝#作 請搜尋網路上其他的文章!或者聯系我,有非常詳細的稱述!
二、 單機的配置 這一步很重要 包括設置好網卡 如果是ADSL的PPOE的撥號方式 還必須設置ADSL上網 並且弄清楚 在硬體上的每一塊網卡和系統裡面的網卡的對應關系!
參考模型 eth0———接內網 RD9.0 LINUX eth1———接外網線路 1 eth2———接外網線路
2 注意 : 在LINUX中表示的以態網卡的方式是ethX X代表的是第幾個設備,對於排序 請根據系統的自設定 然後人為找到對應的網卡,可以採用每張網卡接一條線進行 Ping 的方式確定!
在下面這種情況下 將 eth0 (內網)設置為 IP: 192.168.0.1 Netmask:255.255.255.0 Gateway網關:無 eth1 (線路一) 假如 IP : 218.6.2.211 Netmask:255.255.255.0 Gateway網關:218.6.2.1 eth2(線路二)假如 IP :10.0.0.2 Netmask:255.255.255.0 Gateway: 10.0.0.1 實際#作方式: ———————————————————– ifconfig eth0 192.168.0.1 netmask 255.255.255.0 ifconfig eth1 218.6.2.1 netmask 255.255.255.0 ifconfig eth2 10.0.0.1 netmask 255.255.255.0 ———————————————————– 格式為: ifconfig 設備名 IP地址 netmask 子網掩碼 直接輸入 ifconfig 不帶任何參數的話 系統將顯示當前網路介面信息
至於更詳細的#作方法請參考其他資料! 這樣 就初步設置好了
各個網路介面的 IP地址等! 但是 這樣的設置 可能在重起系統以後就會失效
那麼最直接的方法是 修改 文件!
(在LINUX下 很多地方可以直接修改文件的方式實現,特別是沒有X的時候,顯得特別重要,也最有效!
—— vi /etc/sysconfig/network-scripts/ifcfg-eth0
進入VIM編輯界面 按 「i」 進入編輯模式 大致修改為以下內容
請注意 當一塊網卡被系統正常檢測 只需要改變「=」後面的內容: DEVICE = eth0 ———》設備名,
一般系統自動賦予 ONBOOT = yes ———》是否開機激活 默認 「yes」
BROADCAST =192.168.0.255 ———》
廣播地址 NETWORK = 192.168.0.0 ———》
網路地址 NETMASK = 255.255.255.0 ———》
子網掩碼 IPADDR = 192.168.0.1 ———》
IP地址 提示 BROADCAST =192.168.0.255
和NETWORK = 192.168.0.0 可以根據IP地址來
當掩碼是 24位 (255.255.255.0) 時 BROADCAST是IP地址最後一位變255 NETWORK是 IP地址最後一位變0
修改成功以後 按 「ESC」鍵 然後 Shift+; 號鍵,出現「:」提示符 在 「:」提示符下面 輸入 「w」 並回車 就將設置保存了,然後輸入 「q」退出編輯界面
注意:如果你的eth0也是 用於內網
那麼請將 GATEWAAY= 項刪除 其他兩張網卡,則必須要!!!
如果你裝了X 那麼可以在圖形界面下,才用更合適的工具軟體進行修改! ————————————————– vim /etc/sysconfig/network-scripts/ifcfg-eth1 ————————————————- 上面命令進入設置 eth1 ———————————————— vim /etc/sysconfig/network-scripts/ifcfg-eth2 —————————–
上面命令進入設置 eth2 設置 DNS 一般情況下
如果當系統檢測到網卡並且要求你設置的時候 你就可以將DNS 加入 但是如果你想修改的話,最直接的方法為編輯DNS文件 ——————————
vim /etc/resolv.conf ——————————— 加入DNS IP地址 格式為 nameserver 202.98.96.68 nameserver 61.139.2.69 等
具體DNS IP即可 當以上設置都正常進行以後
重起系統, 檢測設置 ——————————————– ping 192.168.0.1 ping 10.0.0.2 ping 218.6.2.211 ——————————————
檢測正確性 (用Ctrl+C結束) 然後 ,將外網卡正確接入網路 至少你確定能上網!
不管他是用的哪條線路!!!!!!!! 如果一切正常 那麼就表示系統的配置基本正確。
三、多路復用 接下來, 我們 就可以用系統本身的功能以及軟體進行路由規則設置
前面已經提到 2.2以上內核已經帶有很多的高級功能
而RedHat 9.0採用採用的是2.4.20的內核版本 是公認的比較穩定的,
當然 你可以選擇重新編譯升級內核的方式 升級到2.6.X 版本的內核,體驗更新的功能,
但是這不是本文所要考慮的內容。
在我們將多路復用之前 最好是先打上兩個補丁 A 因為路由緩存的機制,
所以在某一時間斷 連接到某一點上的線路是不變的,而必須等到失效才能重新選擇,(
對於RedHat9.0的系統內核 需要打這之PATH
下載地址為: http://www.ssi.bg/~ja/patch-2.4.20-ja1.diff 這之PATCH 解決了在系統內核中equailze參數不生效的問題 http://www.teatime.com.tw/~tommy/linux/equalize.patch 將這兩個PATCH 下載到本地 比如 直接放在 /root目錄下那麼這樣做,
將PATCH補進內核: ——————————————————– /usr/src/linux-2.4.20-8/patch -p1 ——————————————————— ————————————————- /usr/src/linux-2.4.20-8/patch -p1 ————————————————– 執行完以後 我們就基本上需要的軟體都准備齊全了
路由規則: 首先 我們使用 ip route show 命令來顯示當前默然的路由規則: ———————————————— ip route show ————————————————- 可以看見 如: 0 lookup local 32766 main 32767 default 這是原有系統的路由規則!
那麼 現在 我們使用自己的規則替代或者說將自己的規則的優先順序提高於原有規則,
接著 我們創建路由表, 注意 創建的路由表的根據是上面的網路介面 ,
所以請根據我上列舉的具體設置來理解 新建命名為 10 和 20的規則
分別針對兩個外網線路 規則「10」 ———————————————————- ip rule add pref 10 from 218.6.2.211 table 10 ———————————————————- 規則「20」 ———————————————————- ip rule add pref 20 from 10.0.0.2 table 20 ———————————————————- 設置main表 ——————————————————— ip route add 218.6.2.0 dev eth1 src 218.6.2.211 ip route add 10.0.0.0 dev eth2 src 10.0.0.2 ———————————————————設置完成
上面的只需要根據不同的IP地址以及對應的硬體設備 修改其部分內容即可 題外: 在LINUX路由表中可以使用0-255來代表不同的規則 而且每個規則都可以用別名來表示,
如果大家對此感興趣 可以查看修改一個文件裡面的內容來達到目的: 原文件給出了幾個例子包括 lookup、 main、 default
需要自己添加的 按照這樣的格式修改: 在空行處插入 : 規則號 規則名稱 10 OUT1 保存即可 路由選擇的優先順序,是數值越小 代表權越大,所以一個路由選擇將先查看 0 規則,既 環路 然後查看下一個規則
在本例子中,當一個數據在路由選擇的時候,過了0規則 然後就是 10 規則 接著 20 規則 一直往下!直到匹配為止 通過以上設置, 我們就可以控制住通過某一條線路(ISP)的數據包的返回信息也從原線路返回。這將對運行在路由上的所有的進程起作用!!!並且實現了最基本的流量分割,很簡單吧! 然後 就是做負載均衡了!可以將不同的請求根據自定設置發往不同的線路!
我們已經安裝好了補丁 並且設置好的各種規則, 對於負載均衡,
可以使用這條語句來實現: ————————————————————————————————- ip route replace default \nexthop via 218.6.2.1 dev eth1 weight via 10.0.0.1 dev eth2 weight 1 ————————————————————————————————- 50
這樣 我們就改變了預設的路由為多路路由!!!!並且我們可以通過改變 weight 參數的值來指定 一條線路的優先權大於 另有條線路 這在兩條線路質量不相同的時候是種不錯的選擇 -.M 5sUvsc
如: —————ip route replace default \nexthop via 218.6.2.1 dev eth1 weight \ via 10.0.0.1 dev eth2 weight —————————————————————-
注意:特別 應該指出的是,因為上面的均衡是根據路由進行的,而路由是根據CACHE選擇的,所以這樣的均衡不是100%的准確,在實際使用中 最多能達的70%的效率,對於經常訪問的某一遠程站點,會一直使用同一條線路
求通過不同的線路發送,已經快於原先單條線路了。同時,就現階段而言,沒有ISP的配合 是不可能達到100%的精確的!!!! 現在 負載均衡已經基本設置完成了, 你就可以將外網兩條線路接上對應的網卡,特別注意 必須是對應的網卡!
仍然用 ping 命令來檢測 兩條線路是否能在同時 ping 通! ping 線路1ISP出口網關 ping 線路2ISP出口網關 這是一種很好的方法, 各線路的從內網出去以後最先經過的是ISP的網關,並且在正常情況下都是允許 ping 探測的!!
如果都能同, 那麼 你已經正確的完成設置了!!!! 你的這台單機已經可以使用兩條線路同時上網了,系統在你進行網路連接的時候,根據每條線路的輕重區別 來為你將連接請求合理的分發到兩條線路上!! 四、帶動內網機器上網 IP偽裝(NAT)、埠轉發 配置好單機的多重路由功能以後,如何讓他沖當內網的網路出口伺服器,帶動其他機器上網呢,
這將是此節的重點,並且,這部分內容單獨來將,已經是將一個LINUX#作系統配置成路由器的具體步驟了! 首先,我們應該確定系統已經安裝了IPTABLES 在大多數基於2.2內核的LINUX#作系統中,已經默認安裝了次軟體!
通過下面的命令就可以實現 IP偽裝
註: 裡面幾個具體數據將安裝本實例問准,我會在後面提到!
A、定義IPTABLES位置(不是必須): ———————————– IPTABLES=」/usr/##in/iptables」 —————————–
B、清除原有防火牆規則設置: ———————————– IPTABLES -P INPUT ACCEPT IPTABLES -P FORWARD ACCEPT IPTABLES -P OUTPUT ACCEPT ——————————-
C、清除NAT規則設置 ————————————— IPTABLES -t nat -P PREROUTING ACCEPT IPTABLES -t nat -P POSTROUTING ACCEPT IPTABLES -t nat -P OUTPUT ACCEPT IPTABLES -t mangle -P PREROUTING ACCEPT IPTABLES -t mangle -P OUTPUT ACCEPT——————————-
D、清除在防火牆和NAT中不是默認的連接 ————————————- IPTABLES -F IPTABLES -t nat -F IPTABLES -t mangle -F IPTABLES -X IPTABLES -t nat -X IPTABLES -t mangle -X ————————————
E、載入模塊 (必須): ———————————— /##in/depmod -a /##in/modprobe ip_tables /##in/modprobe ip_conntrack /##in/modprobe iptable_filter /##in/modprobe iptable_nat /##in/modprobe ipt_limit /##in/modprobe ipt_state /##in/modprobe ip_conntrack_ftp ————————————-+
F、打開轉發功能(必須) ——————————————– echo」1〃 /proc/sys/net/ipv4/ip_forward ——————————————–
G、設置轉發規則: ———————————————————————– iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth2 -s 192.168.0.0/24 -j MASQUERADE ———————————————————————– A B C D為可選
但是請注意 如果你的IPTABLES不在 /usr/##in/ 這個目錄 那麼 你最好是選擇這幾項
並且 該成自己所在的目錄 如果你選擇了使用B C D 那麼 你必須 選擇A 就是必須給「IPTABLES」 這個常量賦值,
因為在 LINUX 默認中 全部大寫的 IPTABLES 不是一個合法的iptables 命令 當然,如果你的系統已經定義了 iptables 的路徑
那麼, 將上面的 IPTABLES 換成小寫的 iptables 也行! E F G則是必須要的, 當上面的規則成功設置以後, 將你的內網網卡連上交換機 等,修改其他機器的IP地址為 192.168.0.X 掩碼為 255.255.255.0 (X為2-254之間) 生效後,就能通過你剛才打造的LINUX路由器上網了!!!
但是這些設備在重起後就會失效,如何解決了
將這些命令寫入腳本 讓他開機啟動 即可達到保存的效果!具體
將各命令寫入一文本文件, 並形象的取名 比如,將IPTABLES設置 保存到當前工作目錄裡面的一個文件 並取名為 nat —————- vi nat —————- #復制內容 IPTABLES=」/usr/##in/iptables」 IPTABLES -P INPUT ACCEPT IPTABLES -P FORWARD ACCEPT IPTABLES -P OUTPUT ACCEPT IPTABLES -t nat -P PREROUTING ACCEPT IPTABLES -t nat -P POSTROUTING ACCEPT IPTABLES -t nat -P OUTPUT ACCEPT IPTABLES -t mangle -P PREROUTING ACCEPT IPTABLES -t mangle -P OUTPUT ACCEPTIPTABLES -F IPTABLES -t nat -F IPTABLES -t mangle -F IPTABLES -X IPTABLES -t nat -X IPTABLES -t mangle -X /##in/depmod -a /##in/modprobe ip_tables /##in/modprobe ip_conntrack /##in/modprobe iptable_filter /##in/modprobe iptable_nat /##in/modprobe ipt_limit /##in/modprobe ipt_state /##in/modprobe ip_conntrack_ftp echo 「1〃 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth2 -s 192.168.0.0/24 -j MASQUERADE
存檔退出 存檔退出 重起即可生效 (根本不需要用戶登陸執行!)
其他腳本也是一樣道理 各位 所有基本的#作到此為止 我想 如果你能看完,
那麼你自己就完全能用LINUX 打造一個高級路由 不要猶豫 他的性能 絕對敢和市面上價值幾大千的路由器成品媲美~!!!
感謝網路上這方面的網站、論壇介紹的很多知識 使我能夠獨立實施整個方案 並且詳盡的寫出來! 感謝LINUX 以及無數的開發人員 是他們 給我們構造了一個強大 自由 的#作系統及軟體!
接下來,我將對其他更細微的有關#作方法、心得 寫下來,希望對現在採用LINUX 類LINUX系統 、軟體做路由的朋友有所幫助,
如:斷線救援,如何在一條線路斷開以後立刻啟用另一條線路負擔整個網路任務,並且在線路連同以後,又重新自動啟用,如何為此提供最詳盡的,有效的,簡易的方案 一盤秀的技巧設置 如果面對一盤秀的諸多問題了?
讓我們一起來 在一張小小的軟盤上反轉乾坤 高級路由策略 ,想某一個游戲 只走某一條線? 想限制某些人 或者某些機器的上網需求,我們照樣能辦到,並且能做得更好!!!!!!!!!
動態路由,電信級路由 如何在一台投資根本不多的LINUX 類LINUX機器上 實現更強大的功能,如 各種高級動態路由 並使其有更好的擴充性 和靈活性!!!為我們在網路接入方面多一個選擇!!!多一點放心!!! 。。。。。。。。。。。。。。。。。
我將把這個方案中所用到的腳本 和補丁 打包放在網上, 敬請 指正!!!
我於昨日晚,測試完所有的腳本, 包括在兩種不同的雙線路下測試, ?
我採用的機器的配置和前一次差不多 P2 433 CPU 128M SDRAM 3.1G 硬碟 三張8139 10/100M 自適應網卡,上100 M FULL 其他外設,在配置的時候用,
採用RedHat 9.0 系統,最小化安裝. 網路具體情況, A環境 100台機器, 一條3M ADSL 固定IP 一條 4M 光纖 線路等值使用 將系統配置好,並讓內網機器上網, 使用網路螞蟻,
在機器1上下載天虎網下 載中心(down.tyfo.com)的2000 SP4補丁 5線程, 最高速度 450K/S 最低速度 350K/S 平均值 410K/S 在機器2上同時也開5線程下載 綿陽169 下載中心的 2000 SP4 最高速度為 310K/S 最低速度為280K/S 平均為302/S
由此,可以看出, 基本上完全使用了線路的帶寬, 並且,是分到兩條線路在 進行數據交換, 而我在LINUX路由上,用tcpmp 查看當前系統網路情況, 可以看 出 每條線上都分發的有連接, 並且一個很有趣的現象出現了,
當我在內網機器上 打開網頁的時候,他通過 線路1連接到DNS 解析了域名,而又將連接從 線路2發出! B 環境,40台機器 兩條等值的帶寬相同的 但是不同ISP 的ADSL線路 均為2M 下行 640K 上行速度! 一為電信 一為網通, 而上次有位朋友提到,
當伺服器 是電信的時候內網連接可能卡,慢的情況,, 我針對此做了個測試, 在路由中寫入 規則,當遠程站點為電信IP段的時候,選擇電信線路出口,當遠程站點IP為網通IP段 的時候,選擇網通線路出口, 這樣緩沖了交差連接導致網速慢的情況, 但是,另一 個現象發生了,電信線路上感覺比較擁擠 , 在內網同時進行任意游戲,上網,聊天, 下載文件的時候, ADSL線路的請求等待隊列都已經比較長, 畢竟ADSL的上行只有 640K 因為機器不是很多 所以感覺不明顯,
最後我做了個更詳細的規則 1.只對北方的或者其他物理位置較遠的電信IP 段進行必須通過電信線路這 個規則, 2. 對於任意位置的網通IP段必須通過網通線路連接, 過後測試,基本 上兩條線路的使用比較均衡, 相對來說,連接到在物理位置上很遠的遠程站點進行 下載和游戲的不是很多, 因為還有很大一個因素是,遠程站點的伺服器配置,以及 經過的中間節點的數目及網路性能等,如果你對此還不滿意 你可以進行更加細微 的設置 斷線救援方面, 很遺憾 在這個環節上,因為ISP的限制,導致此功能在實施 過程中遇見了一點點問題, 因為 我們這里的ISP ,不允許用ICMP探測, 當然,可 以探測到某一條線路的網關, 也就是說,比如一條光纖和一條ADSL 光纖為網關為 218.6.2.1 ADSL網關為61.139.54.1 那麼同時ping 這兩個IP地址來探測線路情 況,是可行的,, 但是 當某一條線路被停用以後,, 就有可能不能在線路恢復的 時候重新啟用 因為,,ISP不運行從光纖線路上去pingADSL網關,當ADSL斷掉的時候 ,系統將從路由中刪除ADSL連路,只有光纖在使用, 這個時候,不管ADSL是否正常, 都沒辦法ping 通 ,返回的值永遠是」0〃 如果你的地方ISP沒有這個限制的話, 就沒有這個問題, 並且會執行得很好. 針對這個問題,我會考慮在短時間了去尋 找其他的方法!!! 而對於」網路游戲經常斷」這個情況, 在線路及伺服器正常的情況下是不可能 出現的, 就算有這種情況出現,問題都不在於內部網路的路由上! 如果你是以下情況 那麼 你可以採用我的文件,並簡單修改,就能實現起強大 的功能, 有3張物理網卡(兩條外線),, 或者2張網卡(一條外線)+一固定ADSL 好了,, 廢話就到此為止吧! 每個目錄下面都有相應的說明文件 詳細說明,該目錄下面需要改的文件,不需要改的文件,所需修改的文件的具體 位置 約定 : 任何設置文件裡面的參數都有統一性, 請注意 最好是保持變數名 的一致 便於項目的設置和問題的查找 如: OUTIF1 代表外網卡設備1 OUTIF2 代表外網卡設備2 GW1 代表外網線路1(OUTIF1)的網關 GW2 代表外網線路2(OUTIF2)的網關 IP1 代表外網網卡1的IP地址 IP2 代表外網網卡2的IP地址 5288 NETMASK1 代表外網網卡1的掩碼 NETMASK2 代表外網網卡2的掩碼 你僅僅需要修改 引號 「」 裡面的對應內容即可 注意 請保證文件的格式 可用 windows的記事本打開, 但是可能將文件 內容表示成連續的段 中間會用 隔開,請不要刪除這個空字元 所有文件更改成功以後, 在當前目錄下 執行 命令 sh go 等待一分鍾左右 系統將重啟,在重啟後, 所有的設置將生效
❷ 雙線伺服器是什麼意思
雙線伺服器是指伺服器同時鏈接兩條線路,由於南電信北聯通的情況,電信訪問聯通和聯通訪問電信會有較大延遲,雙線路伺服器解決了延遲問題,能保證伺服器內部軟體或者網站不受地域影響」
❸ 如何搭建雙線伺服器
實現方式是這樣,三塊網卡,eth0 為LAN口,eth1 為第一個WAN口,接電信線路,eth2為第二個WAN口,接網通線路。這里都是按照固定IP方式配置的,如果是要PPPOE則自己配置PPPOE部分。
將從兩個WAN口出去的數據包MASQUERADE
然後,給系統增加一個標示為100的路由表,增加一個默認網關,這個默認網關是網通提供的網關。 具體ip具體配製
然後給系統主路由表配置網關,這個網關是電信的網關
然後添加路由規則,讓所有通向網通的數據查詢標示為100的路由表
規則比較多,大概有100多條,應該是完整的包括了網通的所有IP子網,我會給出完整規則。
這樣,通向網通的數據會查詢路由表100,而通向其他的地方的數據,這里指定電信,則會通向電信。當然,如果有更復雜的應用,譬如還有教育網的線路,再增加路由表,再增加策略就可以了。