這篇文章比較像我個人心得,不會有技術分享的部份。我會跟大家分享一些網路自動化概念。
理論上也許有,但實務上想告訴大家目前應該沒有統一標準或實作法。我們可以想一想我們管理的「網路」跟別人管理的「網路」一樣嗎?即使採用類似的CLOS或3-tier架構,使用的設構廠牌也可能不同。再來每個網管部門對於實施自動化的程度和偏好的技術或工具也不相同;所以現階段網路自動化還是處於每間公司「我說的算」的情況。舉例來說:
我前公司使用Python+Jenkins把建立Checkpoint firewall policy的工作給自動化。寫程式的同事離職後就沒人維護了;因為其他業務也沒有自動化的急迫性,所以自動化的應用也僅限於此。
一般提到自動化,大家第一個反應一般是Ansible,偏偏我老板對Ansible感冒;所以我們用Nornir自已開發幾隻Python程式來處理特定問題。
** 結論:找到一套符合自已組織的自動化(架構|方法|程式|軟體)
往下談之前,我們聊聊IBN前;我們重溫一下往日行雲流水敲指令的熱血
c3550(config)#int fa0/2
c3550(config-if)#switchport trunk encapsulation dot1q
c3550(config-if)#switchport mode trunk
c3550(config-if)#switchport trunk allowed vlan remove 5-10,12
c3550(config-if)#switchport trunk allowed vlan add 7
c3550(config-if)#end
但如果要一次改十台交換機呢?我想再熱血的工程師很快就會覺得累,更不用說貼錯指令出包被拉正的回憶。Inten-Based Networking的概念是你先定義好網路的「狀態」,比如:
接下來由「控制器」負責和網路設備溝通,把你定義的「狀態」實作到你的網路。「控制器」可以是:
最後我們來看上述的例子演進成:
我們對IBN有一些概念之後,我們來看看網路自動化的HLD(High-Level Design)。注意!這張圖只是協助大家了解一般的概念,並不是所有的自動化都是這樣實作的。
謝謝大家耐心讀完,這篇文章只能代表我個人的觀點和解讀。如果你有不同的實作方式,很歡迎加入討論;畢竟有不同的觀點也能提點我更進一步的思考。