本文屬於「雜談」,最近做自動化的研究以及帶領新人學習網路知識,遇到一個障礙,似乎沒有一個很好的觀點,可以整合各品牌或各OS的設定並且符合我們熟悉的網路知識。
網路運作基於統一規範的協定,如資料封裝、表頭、TCPIP、VLAN TAG等,若是在「基礎」上有學好,面對什麼品牌幾乎都能派上用場。
告誡新人學習時,勿貪快。新人往往有種衝勁,考過證照就覺得自己跨過了門檻,但是有了精美題庫的存在,講究快速通關的人,學到最多的往往只有題目與答案,而不是網路概念。
當過了門檻,開始碰觸到網路設備時,品牌間的搏鬥,有時候從A品牌換成B品牌,設定又要重新來過。
但是概念是不變的,正因為網路建立在同一套規範,才沒有出現因為不同品牌而無法通的狀況。
看設定時的解讀,應該使用統一規範下的術語,而不是獨厚哪一間的術語。
就如VLAN TAG,VLAN TAG會先分成有、無。因此其實TAG、UNTAG是比較接近統一規範的術語,而不是ACCESS、TRUNK NATIVE或PVID。
新人在做學習時,往往不會去深究協定的運作、協定的格式等,因為那是背多分,比較枯燥乏味。而且要看很詳細的話,所需要的技術也遠超新人的能力。
做自動化的時候,如果要增強泛用性,能夠很好的應對不同品牌的場合,是不是就要找到一種共同語言?共同語言正是統一規範的術語與格式。
要如何把自動化或是不同品牌間的設定轉換做好?我認為就是要先換成共同語言,然後再透過函式轉換。
在學習網路交換器設定與網路概念時,也許直接讓人去嘗試去理解,在實作中學會符合概念並瞭解根本性的說法,或許這才是學習網路知識應該要著重的方向。
如果用Mermaid表示,要完成通用性自動化,設定轉換流程圖應該如下:
flowchart TD
A表示 --概念還原--> 概念元件
概念元件 --概念表示--> B表示
若以實際舉例
vlan guest tag port 1
VLAN TAG屬性有
VID、NAME(optional)、TAG Members(optional)、Untag Members(optional)。
因此還需要將VID尋回,已達到VLAN TAG的基本組成。假設VID是10。
此時VLAN TAG屬性為
VID:10
Name:guest
TAG Members:Port 1
Untag:None
如果要換成使用Access、Trunk表示的交換器
VLAN 10
name guest
Port 1
switchport mode trunk
switchport trunk allowed 10
依此類推,當我們這樣做時,完成了「A表示轉概念,概念轉B表示」,下次如果有轉C表示需求,只需要再多一個概念轉C表示的流程,就能順利擴充自動化程式或是轉換順暢度。
而在指令做品牌間轉換過程,一行行指令應該先做「處理與未處理」的布林值,以確保所有指令都有順利被轉換。以及處理狀態:完成、進行中、捨棄、不支援、未完成。
今年構思新形態工程師應該具備的能力,我認為Python或是程式語言的基礎是必須的,以及正確使用工具軟體,學習好的筆記架構,做事以累積筆記為重,因為筆記是資產,若不緊迫,可以做慢一點。