網管的三個重要服務AAA、NTP和SYSLOG
我就職於一家互聯網企業,主要工作是網絡管理,準確的說是麵向IDC生產網絡的設計與維護,架構勉強有一些吧,距離自己心中的架構還遠得很。專職做網絡差不多快5年了,之前係統、開發都涉及一點,但過於膚淺毫無建樹以至於浪費了大好時光,如果早點進入專項的技術方向就好了,當然這隻是個人看法,因人而異。
公司大大小小幾十個機房分布在全國各地,網絡結構比較簡單,隻是多年積累下來的陳年舊賬、麵對特殊情況產生的特殊問題,給網絡維護、發展帶來一些麻煩,也遇到不少有意思的問題、挑戰,加上網絡團隊的同事都是真正做技術的人,因此幾年下來感覺有了不小的收獲。
在工作中遇到的很多問題,很多企業在其網絡發展過程中,很多網絡工程師在其成長過程中,都會遇到,因此我想聊一聊自己遇到的有意思的事情,希望可以在分享的過程中有所收獲。
OK,切入正題:我是如何實現AAA、NTP和SYSLOG的。
為什麼我會比較重視這三項服務呢?
公司網絡發展,初期是比較緩慢的,中期隨著關鍵業務的快速發展,要求所有相關基礎服務也快速跟進,這時因為不得不保證速度和規模,而沒有考慮太多細節。當前,不但要求網絡規模增長快速,互聯網業務類型也多樣化發展,由先前的南北向流量為主,變成了東西向流量占據了半壁江山,高密度萬兆接入、低延時高可靠數據交換、中大規模分布式應用、跨地域的複雜網絡應用、大數據等等。
但不管有多少問題,首先要解決的是處理故障。
處理故障,最起碼要能夠登錄設備,而我在早期遇到的問題是,某台設備上有哪些帳號、可以從哪兒登錄,擁有什麼權限還是個大麻煩。即使登錄到設備上,會發現無法得知誰在什麼時間做了什麼事、設備在什麼時間發生了什麼事,或者獲得的數據不完整、不準確。這些都極大地影響了故障處理效率,也是必須解決的基本問題。
同時,這三項服務是網絡管理自動化的基礎。
通過兩期工作實現了讓我滿意的上述三項服務。
一期是對已有服務的整理,主要解決的問題是
1)確保所有網管服務器上都運行這三項服務。
2)確保軟件版本、配置、數據一致。
3)確保服務可用性,降低服務中斷時間。
在實施過程中遇到很多問題,如操作係統不一致導致的軟件版本無法統一不得不分化為兩套標準,如軟件過於複雜導致配置和數據同步的複雜化,如配置變更帶來的巨大工作量和操作失誤引起的服務不可用,網管服務器雙機HA可用性及主備切換後帶來的配置有效性、數據差異消除問題等等。
最終一期完成,基本實現了上述目標。但卻推動我下定決心,一定要從根本上解決問題。
*注:
一期使用的tacacs+軟件tac_plus來自 https://www.networkforums.net/ ,更新緩慢、安裝配置複雜、需要額外數據庫和web支持、支持文檔極少。web使用apache,數據庫為mysql4(不支持5.0以上版本)。ntp使用係統自帶ntp程序,受操作係統類型、版本影響較大。syslog使用syslog-ng 2.1.4。
二期是服務重構。
1)軟件重新選型
tacacs+ 使用 https://www.pro-bono-publico.de/projects/tac_plus.html 的 tac_plus。優點是功能強大,配置簡單,方便同步,穩定可靠,更新及時,對新設備支持好。
ntp 對比了 https://www.openntpd.org 和 https://www.ntp.org 選擇了後者。優點是短小精悍,可靠穩定。
syslog 仍然使用 https://www.balabit.com/network-security/syslog-ng/ 的 open-source 3.x 版本。優點是功能強大,可靠穩定。
2)統一環境
操作係統全部更新為CentOS 5,tac_plus、ntp、syslog-ng全部統一版本。
最重要的是,除ntp外,tac_plus和syslog-ng在所有網管服務器上都使用同一配置文件,這極大地簡化了配置同步和服務管理。其實ntp也可以使用一份配置文件,但考慮到ntp配置變化極少、安全風險小,故未實現。
3)服務監護和配置同步
通過shell腳本對tac_plus、ntp和syslog-ng服務檢查,確保服務正確運行。
通過shell腳本實現tac_plus和syslog-ng的配置自動下發和更新,以及配置更新後的服務重啟。以及對網管服務器上的服務檢查腳本、監控腳本等各類保障程序的自動下發和更新。
通過rsync將分散在不同IDC的網管服務器收集的網絡設備的syslog集中到備份服務器歸檔。
4)維護服務搭建文檔,提供統一的安裝文件
在對全網網管服務器更新時,根據文檔搭建環境不超過30分鍾,當然需要對情況有一定了解。
5)實現了syslog-ng配置文件的程序化創建,實現了tac_plus配置文件的動態部分的程序化創建
由於公司的公網、私網網段就有上千個,並且變更頻繁,靠人工去維護syslog-ng配置文件,不但工作量巨大,也非常容易出錯,並且不易排錯,因此達成此事。這件事的重點是,要維護一套靠譜的網絡信息庫,每家公司都麵臨cmdb的各種問題,有機會單獨聊一聊。
6)實現了對所有IDC重要交換機和路由器的配置自動備份,以及對配置自動分析和報警。
配置分析還很基礎,但的確幫了大忙,人總是會出錯的。
在二期實現過程中,我放棄原有的HA雙機結構,因為相比其帶來的好處,給管理帶來了很多麻煩,在係統和網絡的精力投入分配上,必須有所取舍。
但是,網管服務器的容錯是必須解決的問題,我的備選方案是在網絡設備上指向多個不同的網管服務器,從網絡設備配置上實現冗餘的效果。另外一個思路,是在虛擬機上搭建網管環境(aaa+ntp+syslog),發生問題時在冷備服務器上快速啟用虛擬機,並且由於已經實現了全網單一配置文件,那麼隻要維護一個虛擬機版本,基本就可以無限地擴展網管服務器的部署了。
以上就是我實現AAA(tac_plus)、NTP和SYSLOG的過程,並沒有講很具體的實現細節,我想更重要的是想法和思路吧。如果有需要,我會再分享具體的實現方法。
最後更新:2017-04-03 22:15:45