單位的短信平臺建設得比較早,租用運營商的專線,使用的短信機是雙網卡,一張網卡連接運營商的網絡,另一張網卡連接單位內部網絡。應用服務器調用短信機的接口信息,通過專線把短信發送給運營商的短信網關,最終實現把短信轉發給用戶的手機,網絡結構如圖1所示。

圖1 網絡拓撲結構
短信機其實就是一臺廠家定制的服務器,使用的是Linux操作系統,廠家在系統上面裝了一個自己開發的軟件。因為短信機是比較早期的產品,最近使用起來經常出現問題,導致短信發不出去。聯系了廠家的工程師,通過更換一臺新的設備來解決這個問題。
把新的短信機裝上機柜配置好IP地址之后,Ping不到運營商的短信網關,短信發不出去。排查一下網絡,發現能夠Ping通運營商對端的地址172.16.1.6/30,就是通不了短信網關的地址10.16.13.143。IP地址配置如圖2所示。

圖2 IP地址配置
再次檢查短信機的網絡配置,因為筆者對Linux操作系統不是很了解,只好用處理路由器網絡故障的方法去排查,網絡已經連通但有網段地址不可達,必須先查看路由表。Linux系統里面查看路由表就是用簡單的route命令,通過查看可以發現服務器里面有三條路由條目,分別是172.16.1.4/30、192.168.100.0/24這 兩個網段,缺省網關是指向192.168.100.254,也就是指到eth0這一塊網卡出去了(如圖3)。
綜合分析可知,運營商的短信網關10.16.13.143這個IP匹配了缺省路由,訪問請求經過eth0這一塊網卡把數據包送出去了當然是沒有辦法去到目的地址。解決的辦法也很簡單,就是在Linux下手動添加一條靜態路由指向eth1網卡。兩種配置方法如下所示:
# route add –host 10.16.13.143 dev eth0 (把主機地址指定出口的網卡)
# route add –host 10.16.13.143 gw 172.16.1.6(把主機地址指定下一條地址)
配置完成以后,經過測試,發現短信網關10.16.13.143已經可以Ping通了,但是Linux的系統重啟之后路由就會自動清空,查看配置文檔添加永久路由的方法,是在/etc/rc.local文件里添加:

或者是



圖3 查看路由表

圖4 文本編輯框

圖5 查看路由表
在這里,需要插上一段關于vi文本編輯器的使用介紹,剛接觸這個東西確實覺得比較麻煩,其實復雜的東西不需要死記硬背,記住幾個簡單的命令就可以了。vi一共有三種工作方式:命令方式、插入方式和行方式。以上面添加永久路由的為例,我們要對/etc/rc.local這一個文件進行修改,往它里面寫入一些路由條目。只要我們輸入vi /etc/rc.local就能夠進入如圖4所示的文本編輯框。按一下Insert鍵,就可以對文本的內容進行增加刪除。
修改完畢之后按一下Esc鍵切換到命令方式,最后再按一下冒號鍵切換到行方式,輸入wq表示退出并保存,輸入q!強制退出不保存。
前面介紹的是Linux系統下面的添加靜態路由的辦法,Windows系統也是類似。查看路由表使用的命令是route print,添加永久靜態路由的命令是route -p,以上面短信網關的添加路由為例子,添加永久靜態路由命令為:

添加完成之后,再次再看路由表,可以發現在Persistent Routes下面增加了一條新的路由條路(如圖5)。
類似于這種在服務器里面有多張網卡的設備,我們在遇到故障的時候應把它當做是一臺路由器來處理。故障的原因一類是因為路由丟失,像上面所說的更換了服務器后沒有添加靜態路由;另一類是添加路由寫錯,把出接口寫錯了別的網卡或者是匹配了缺省路由。這些通過查看服務器的路由表很快就能定位出故障點來。
最后從網絡安全方面談一下多業務網卡應用服務器,從嚴格意義上來說,這是屬于把網絡貫通的方式。服務器本身是一個計算節點或者是網絡終點,添加多張網卡配合靜態路由的方式把多個網段貫通,對于網絡安全方面存在著一定的隱患,本來劃分不同的網段就是為了實現隔離,因此在使用這種方式的時候應當謹慎。