軟體定義網路與 NFV

網路自動化(network automation)

手動設定網路,意味著登入每一台交換器與路由器,一台一台敲指令——既慢又重複,而且很容易出現細微的錯誤,尤其當設備有數百台時。網路自動化就是讓軟體代勞這項工作的做法:你把想要的設定一次描述在檔案與腳本裡,工具就一致地、每次都用同樣方式套用到每台設備上。它相當於把你的網路設定當成程式碼,而不是一堆手動修改。

具體來說,網路自動化建立在幾個常見的構件上。NETCONF 是一個用程式讀取與更改設備設定的協定,YANG 則是一種建模語言,以結構化、機器可讀的方式描述設備接受哪些設定——兩者合起來讓軟體能可靠地更改設定,而不必去刮抓命令列的畫面文字。像 Ansible 這樣的工具,從一份集中的描述把設定套用到許多設備,這份描述常被放進版本控制當成基礎設施即程式碼,使得變更可被審查、可重複、可回滾。模式是:把想要的狀態定義在檔案裡,跑一個工具,讓它把每台設備帶到那個狀態,再檢查結果。

為什麼重要:多數網路故障源自手動設定錯誤,而人類根本無法又快又一致地手改大型網路。自動化讓變更快速、一致、可稽核、可逆,也是 SDN 與意圖式網路底下的實務基礎。一個誠實的提醒:自動化會放大你告訴它的任何事——一個正確的變更會乾淨地推到全部,但一個錯誤的也會,瞬間且無所不在。所以它把工作從敲指令轉移到撰寫、審查、測試那些定義,並要求隨「把基礎設施當程式碼」而來的紀律(版本控制、預演環境、驗證)。

某團隊需要在 200 台交換器上新增一個 VLAN。手動的話就是 200 次小心翼翼的登入。改用自動化後,他們編輯一份描述所需 VLAN 的 YAML 檔,提交到版本控制供審查,再跑 Ansible,它連上全部 200 台設備(可用之處走 NETCONF)套用完全相同的變更,再回報哪些設備成功了——幾分鐘而非幾天,且留下究竟改了什麼的記錄。

把變更描述一次;讓工具一致且可稽核地把它套用到每一處。

自動化本身不會讓變更更安全——它讓變更更快、更一致,而這是兩面刃:壞的變更會像好的變更一樣乾淨地擴散到每一處。安全來自周邊的紀律(審查、測試、分階段推出),而不是來自自動化本身。

又稱
network-as-codeinfrastructure-as-code for networks網路自動化網路即程式碼