Aruba 虛擬控制器(VMC) 使用 RemoteAP模式

參考文件

虛擬控制器因為缺少TPM(Trusted Platform Module)模組,且TPM憑證是放在MM(Mobilty Master)上,因此直接使用AP內建憑證會無法使用,需要使用自簽(self-signed)憑證。

首先先讓AP以CAP模式跟控制器報到,之後如圖設定:

Deployment: Remote
Authentication: Certificate
Truset anchor: self-signed

RAP除了需要切換模式之外,還需要設一組內部IP,供RAP跟控制器以Tunnel溝通使用。

如果從VMC看LOG出現以下,代表ip pool沒有設定,因此get ip address失敗。

Apr  6 11:06:55 2023  isakmpd[6313]: <103103> <6313> <WARN> |ike|  172.16.3.128:56221-> IKE SA Deletion: IKE2_delSa peer:172.16.3.128:56221 id:2674563824 errcode:ERR_IKESA_CLEARED saflags:0x51 arflags:0x801
Apr  6 11:06:55 2023  isakmpd[6313]: <103061> <6313> <ERRS> |ike|   Unable to get IPv4 Address from pool
Apr  6 11:06:55 2023  l2tp[6587]: <306419> <6587> <ERRS> |l2tp|  shared_cli_get_addr(): Caller:ike. Failed to get ip address from L2TP pool:default-l2tp-pool.
Apr  6 11:06:55 2023  isakmpd[6313]: <103061> <6313> <ERRS> |ike|   Unable to get IPv4 Address from pool

2023/03/30 Aruba7205升到8.10.0.6版本後,某些型號AP無法順利被控管

這是一個救火的案子,前陣子釋出個資安漏洞消息,如果要解決漏洞,需要將控制器版本升至8.10.0.5以上,而我那漏洞消息公佈的前一陣子,也做了不少升級到8.10.0.5版本,所以漏洞發佈後,我其實沒做升級的。

那陣子,也不少把控制器升級到8.10.0.6版本,不過都沒有發生啥異常。如果說升級就會導致某型號完全不能用,那肯定是個大事件,OS發表前早就該被測出了,發表後公測也早該被測出了,畢竟8.10.0.6發佈到這次客戶升級控制器也過了快一個月,因此我推測是個案,但也無法驗證是不是通例。

基於救火,就教客戶重置AP,再從IAP網頁管理介面去轉換。原負責同事是這麼想得,但是失敗了。

跳出錯誤訊息「圖像驗證失敗…」,我就知道是使用機器中翻英,原本英文詞是「image」,也就是我們常說的韌體。

從log可以看出來,從客戶的Aruba7205 8.10.0.6版本下載的OS,是無法通過驗證的。要怎麽知道檔案有沒有被篡改?有些下載網站會提供檔案的HASH值,像是以SHA去HASH整個檔案得出來的值,只要檔案被改一個bit,產出的HASH值就完全不同,只要將下載來的檔案比對網站上提供的HASH值,若一樣就代表可信任,如果不一樣就要當心了!

因此,我覺得問題是出在控制器的apimages中。

身為Aruba 4個P的我,因此又更深掘那些電子書跟討論都不會寫的基礎運作。

如果AP要被納管的話,AP使用的image是從控制器身上下載的。而且「檢查版本,下載iamge」這個步驟是AP被納管過程中第一次重開機部分,也就是最優先檢查的部分。如果AP的OS跟控制器的OS版本不一致,AP就會從控制器上下載OS,如此一來達到AP會主動跟控制器版本對齊。

AP在同版本不同型號的控制器上切換,是不需要重新下載OS的。實測也證實,AP沒有再重新下載OS。

藉此,我去比較客戶的Aruba7205跟其他的VMC或是70xx系列的AP image,發現客戶出問題的apimage跟VMC與70xx系列同AP型號的apimage是不同大小的,而VMC與70xx系列的apimage是相同大小的,所以是客戶控制器中的apimage有問題,這也跟AP的Log對得上。如果是實體控制器,可使用「dir flash」去檢查apimages內的檔案大小。

解決狀況遠比找出造成狀況的原因還重要。

接下來就要知道,到底AP去檢查跟控制器版本時,條件是以檢查apimage檔案大小一致?還是檢查版本訊息一致?

「我只是想知道解決方法可不可行。」我拿到一顆504測試,因為都是用同樣的image所以可以替代。

答案是,檢查版本訊息一致即可。

所以幫AP刷正常的韌體,就能讓AP正常被客戶的控制器納管。然而幫AP刷IAP韌體是新手境界,而刷成Thin AP韌體就是高手境界,想刷,要先有個Thin AP的韌體,這沒有放在ASP可供下載呢。

想想之後,我覺得大概只有我出馬才能解決了。

在公司使用AP-504測試可以過,方法就是讓AP先刷到正常的AOS 8.10.0.6,接著再去跟客戶的控制器報到,避免AP更新錯誤的image,避免image檢驗失敗而失聯。

到客戶端,很快,我就讓五顆505,能被控制器控管,提供正常穩定的無線服務。然後發現565也是同樣的image,只是這一段就快不起了😂。

TextFSM正則表達式無法使用()

如果在template使用包含「()」的pattern,會跳出類似的錯誤提示「Value ‘([\(\)]+)’ must be contained within a ‘()’ pair.」。

目前問題已經被修正。來源

TextFSM使用1.1.2版本的話,會受到影響。

升級至1.1.3版本,就能解決狀況。

題外

最近在弄網路設備的template,剛好就碰到資訊帶有「( )」,括號內的訊息重要度蠻高的,所以得找到解決辦法。

日後應該會在github發表一些TextFSM模板跟Netmiko搭配應用,也會在這裡發表詳細說明跟介紹。

如何下載Aruba、HPE認證電子證書

參考文件

入口網站,因為HPE實在有很多相關網站跟資訊,不定時來個大改版,基本上會讓人眼花,所以以這次時間(2023/03/28)為流程截圖。

通過考試的人,代表Pearson VUE已經註冊完成,因此前面的流程就略過。今天如果已經考試通過,想要下載電子證書,遵循以下步驟。

點擊「Sign in」,登入後會跳轉到下方頁面。※臺灣地區預設語言是英文

展開「Reward and Benefits」選單,點擊「e-Certificates and ID cards」。

下方可以看到目前認證的數位獎章以及電子證書。※上圖認證僅供參考,實際顯示會依個人通過認證。

HPE 5130 清除設定

參考文件1 參考文件2

方法說明

  • 開機時進入「BASIC BOOT MANU」
  • 開機完成後,下指令「reset saved-configuration」

開機時進入「BASIC BOOT MANU」

用Console(speed 9600)連線至Switch,通電,按住「Ctrl+D」進入「BASIC BOOT MANU」,輸入4,再改按住「Ctrl+B」進入「EXTENDED BOOT MENU」,輸入5。

在「EXTENDED BOOT MENU」如果輸入5後,出現以上提示。改輸入7,透過省略載入目前儲存的Configuration,然後開機完成,下指令「reset saved-configuration」完成清除設定。

開機完成後,下指令「reset saved-configuration」

記得下指令重新開機時,不要保存目前的設定

2023/03/27 新調整方向

最近感覺到筆記跟文件累積到有一定的量,卻沒有辦法好好地呈現並統整起來。

從業已經有一段時間,面對非常專業的領域,學習成本是非常大的。想當初建立這裡的宗旨也是為了致敬網路前輩部落格能提供很多幫助,後續會希望這裡會變成一個工具網站,一旦想到什麼,就能來這裡獲取自己想要知道的資訊。

「降低學習成本」「文字比經驗口述更有條理,還能回顧」

使用Onenote已經有一段時間了,裡面的分類方式很成熟,編排方式也固定下來了。製作文件盡量以章節化的方式去做,最後再挑選所需要的章節合併,一旦有人問特定問題,才不會浪費時間去找。

因此接下來是以Onenote與文件章節化的撰寫原則,去重整這個部落格。

希望是能把記錄重心轉移到這個部落格上,希望可以🤔。

分類調整

Network
=> <品牌> ※Aruba、Cisco、Common、Design、Fortigate、Tool

Network<品牌>
=> <產品定位> ※Wired、Wireless、Firewall、Service

Network<品牌><產品定位>
=> <Chapter>、Config Template、TroubleShooting

事件分享

分享最近遭遇的事件,以及所使用的知識與工具。

Thunderbird使用內嵌圖片的簽名檔

因為Thunderbird簽名檔部分沒有內建HTML編輯器,因此需要先編寫好HTML再選擇成為簽名檔。以下是操作流程。 參考文章

這種方式能讓圖片被保存在簽名檔的HTML中,不用從外部路徑引用圖片。

使用Thunderbird寫信,在內容打好想要的簽名檔

檔案>另存新檔>檔案

將檔案存放至特定位置,盡量避免「桌面」或「下載」以免被刪除掉

從設定中,將帳戶的簽名檔指定為剛保存的HTML

設定>帳號設定>(想要套用簽名檔的帳號)>勾選「從檔案附加簽名」>選擇>選取剛剛儲存的HTML

測試簽名檔有沒有生效

回到主畫面,使用該帳號去寫信,簽名檔會自動顯示在下方。

以Python串Todoist的範例

官方文件

從官方文件點擊進去,可以看到右方有「Python SDK」,配合捲軸往下,可以直接對照文件與Python的對應語法。

關於自己的token取得,Todoist右上方帳戶頭像後進入設定,或應用程式直接「按O再按S」進入設定,關聯應用,開發者,API口令,複製到剪貼板。

以下是我參考官網文件延伸的函式,可以簡單地取得項目ID,取得項目中的任務,以及新增任務。

# -*- coding: utf-8 -*-

"""
官方文件
https://developer.todoist.com/rest/v2/?python#javascript-sdk
"""

from todoist_api_python.api import TodoistAPI

api = TodoistAPI(YouToken)

def getProjectByName(name):
    # 取得所有 projects 屬性
    try:
        projects = api.get_projects()
        for project in projects:
            if name == project.name:
                return project.id
            #print(project.name)
    except Exception as error:
        print(error)
        return ""

def getTaskByProjectID(api, projectID):
    try:
        tasks = api.get_tasks(project_id = projectID)
        return tasks            
    except Exception as error:
        print(error)
        return []

def addTask(api, project_id, content, description, priority, due_string, labels):
    # (project_id='1234567890', content="task name", description="task description", priority=1, due_string = "Today", labels=['label1', 'label2'])
    try:        
        task = api.add_task(project_id=project_id, content=content, description=description, priority=priority, due_string = due_string, labels=labels) # 添加任務需要有個project_id
        return task
    except Exception as error:
        print(error)
        return None

小狼毫輸入法

我的GITHUB

2023/02/11撰寫

RIME是開源的輸入法,其中「小狼毫」是在windows平臺上使用的,其可以智能提示和自動完成您要輸入的字,並學習用詞習慣與記憶,讓下次該詞就能自動出現,大大提高打字效率。

最大特色就是開源且自由,可以做到許多自定義,缺點就是,自定義的東西往往門檻很高。

相較於微軟注音,小狼毫的學習能力是讓使用時間的累積而能自動記住許多詞彙,讓使用者不必再慢慢打完所有的注音,可以讓手機一樣只打聲母就可以組合成詞彙。只要習慣了,輸入速度快速成長,可以省去打幾個字的時間,理論上可以比倉頡更快速。

因為臺灣人使用「注音」,而現有其餘輸入方案是「拼音」,因此現行並沒有適合臺灣人使用的小狼毫注音版本,於是開始自製給臺灣注音版輸入方案。

更新

2023/05/04: 新增縮寫詞,如餐點,meal,取前2後1為mel,避免跟其他詞重覆。輸入mel,可以產生候選詞「便當、炸物、…等」,需使用者自行定義。如果想要的縮寫詞在第二項如便當,輸入mel1則可以快速候選,如在第三項炒飯,輸入mel2可以快速候選

此外修改快速候選替換字母為「QWEASDZXC」為左手按Shift輕鬆到達的範圍,比起ABCDE這種更容易使用。

優化加減乘除功能。

輸入mel可以得到符合meal的候選詞,需自行定義。
輸入mel加數字,可以只候選位於mel數字-1位的候選詞

2023/04/26: 中文半形「”」,預選為英文半形「”」、不再使用pair。中文半形「|」,首選為「|」(半角)。中文半形「-」,直出「_」,(※「-」可以直接不按shift打)。添加「6347」即聲調符號「ˊˇˋ˙」為intitals。增加+-計算功能,如打「111+22+3」會候選「136」,如打「111-22+3」會候選「92」。

打「111-22+3」會候選「92」

2023/02/13: 純英可以混雜「 」、「.」、「,」、「-」,純數可以混雜「 」、「.」、「:」,純數字更方便直接輸入ip網址。八位數字會候選日期格式。

2023/02/11: 新增了相對時間快速輸入,純英或純數、個人化快捷詞。

輸入「DD」或是「DATE」,大小寫不拘,當前日期會以「yyyy/mm/dd」與「yyyymmdd」等時間格式列入候選。

做為臺灣人定製的注音輸入方案

這裡我做了版臺灣版輸入方案,藉由魔改「注音·臺灣正體」而來,以下是所有的修改:

  • 注音輸入時,如果是全英文(可混 .,-),會成為第一個候選詞。
  • 注音輸入時,如果是全數字(可混 .:),會成為第一組候選詞。
  • 輸入「DD」或是「DATE」,大小寫不拘,當前日期會以「yyyy/mm/dd」與「yyyymmdd」等時間格式列入候選。
  • 輸入「TT」或是「TIME」,大小寫不拘,當前時間會以「hh:mm」與「hh:mm:ss」等時間格式列入候選。
  • 輸入「d」加數字或是數字加d,能快速生成日期(x日)。同理「m」月,「y」年。數字為0時等於今。
  • 輸入「w」加數字能候選對應的「週幾」。如w1=週一。
  • 輸入「lw」加數字能候選對應的「上週幾」。如lw1=上週一。同理「nw」加數字會候選下週幾。
  • 輸入「ld」能候選「昨天」,同理「lm」、「ly」。輸入「nd」能候選明天,同理「nm」、「ny」。
  • 輸入「MAIL」或是「EMAIL」,大小寫不拘,會列出常用email,使用者需先自定清單
  • 輸入「name」,大小寫不拘,會列出常用名稱,使用者需先自定清單
  • 輸入「ADDR」或是「ADDRESS」,大小寫不拘,會列出常用地址,使用者需先自定清單
  • 輸入「PN」或是「PHONE」,大小寫不拘,會列出常用電話號碼,使用者需先自定清單
  • 輸入「EM」或是「EMOJI」,大小寫不拘,會列出常用emoji,用戶可自行修改清單。
  • 輸入EMOJI表情相關文字,會出現對應的EMOJI。EMOJI對應的中文絕大部分參照微軟註釋。😟=擔心。🤣=笑死。
  • 候選字字數一共九碼
  • 輸入到一半按下shift時,不會將前面已經輸入的注音轉換成英文。
  • 如果沒有啟用caps,注音輸入會直接以常用半形符號輸出。啟用caps,能看見其餘選擇。
  • 更多功能隨著時間體驗會累積上去,希望能多點臺灣人使用,加速打字效率。

上手訣竅

  1. 多練習就會了,親身感受一下。
  2. 如果要打「,」(逗號)請按「shift + <」,或是直接打「ㄝ」然後再做選擇。
  3. 如果要打「、」(分號)請按「 |」。
  4. 如果要打「。」(句號)請按「shift + >」,或是直接打「ㄡ」然後再做選擇。
  5. 如果要打「:」(冒號)請按「shift + :」,然後再做選擇。
  6. 如果要打「;」(分號)請按「shift + :」,然後再做選擇。
  7. 如果要打「「」(上引號)請按「 {」,然後再做選擇。
  8. 如果要打「」」(下引號)請按「 }」,然後再做選擇。
  9. 如果看到喜歡的候選詞在「B」,按下「shift + B」,可以直接選取。
  10. 如果想刪除候選詞※自動學習來的,可用「shift + delete」去刪除。
  11. 按「delete」可以刪除一個拼音,按「shift+delete」可以刪除一個字。
  12. 自動選詞過長的話,可用「space」去暫時截斷,避免自動選詞過長。
  13. 關於「dd」等關鍵詞,可以按著shift鍵直接輸入,或是不按著直接輸入。
  14. 如果發現輸入怪怪的,可以檢查caps是否有誤觸,平時保持關閉。
  15. 如果想要將「目前輸入」給上屏,像是注音「ㄅ ㄆ ㄇ」,按「shift+enter」。
  16. 如果想瞭解標點符號與鍵盤跟大小寫的關係,可以打開「bopomofo_tw.schema.yaml」。

學習資源

  1. 小狼毫 Rime 输入法任务导向式常用参数修改指南
  2. 小狼毫 3 分钟入门及进阶指南

同網段內有兩台以上設備進行DHCP Relay

DHCP Relay一般來說都是放在Core Switch(Gateway)身上,這麼一來,就只會有一台專門發放。

那如果兩台或以上的設備在同一VLAN下做DHCP Realy,是不是能達到備援機制?這是一個簡單的念頭,但是會不會導致一個客戶端會問到多個IP,導致DHCP Pool上多個IP被一個客戶端占用?

架構圖是以兩台L3 Switch作DHCP Relay並且都能順利路由到DHCP Server,DHCP Server也能與兩台L3 Switch通。

當PC0取得DHCP IP時,DHCP Discover會廣播到同VLAN的兩台L3 Switch,並不會因為經過的Switch有設定DHCP Relay就停止。因此DHCP Server因為收到多個DHCP Discover而連續派發多個IP, 但此時IP還不是正式的發出去。

Client收到DHCP IP後,會向Server發DHCP Request去確認,若間隔久就會先用第一個完成DHCP流程的,但間隔短到前面處理不完,反而會拿到最後一個走完DHCP流程的IP。

因此,不建議使用雙或多重Relay,DHCP Pool有限,加速浩劫而沒有IP可發會使新來的拿不到IP而沒辦法正常使用網路。

Gateway打錯而失聯,使用ARP Proxy救回。

在設定網路設備的時候,一個看走眼打錯IP、Subnet、Gateway是很正常的,導致的結果就是失聯。一般會先用同網段的IP去ping,再用不同網路的IP去ping,如果同網段ping得到,不同網段ping得到,那就是典型的「gateway問題」。

Gateway對初學者並不是馬上就能掌握的,Gateway就是同網段路由器的IP,典型設定在.254或者是.1,個人建議.254,因為DHCP可能是從前面發,所以.1可能會被衝突。萬一不是這兩種,那按照慣例的設定可能就會設錯囉。

為什麼會失聯?潛談ARP運作與封包轉送機制。

今天設備A要傳給設備B,設備A會檢查設備B的IP是否與自己是相同網段。

如果是,ARP詢問設備B的IP,設備B回應設備B的MAC,設備A以「設備B的IP加設備B的MAC為目的發送封包」。

如果不是,ARP詢問Gateway的IP,Gateway設備回應自身的MAC,設備A以「設備B的IP加Gateway的MAC為目的發送封包」,接著Gateway設備收到不是自己IP但MAC是自己的封包就會進行路由。

設備網路不一定要跟Gateway IP同網段,一旦有跨網段的需求,就會透過ARP詢問Gateway MAC,所以通常Gateway打錯,ARP就會詢問不到或是詢問到錯誤的設備,導致封包無法被轉送出去。

啟用ARP Proxy之後,如果有其他設備詢問ARP,啟用ARP Proxy設定就會查看自身的ARP是不是有紀錄,如果有就回覆自己的MAC。一般來說,不同網段會搭配不同VLAN,ARP廣播是傳送不到其他的VLAN,啟用ARP Proxy才能穿越VLAN這一限制。

在Windows系統,如果沒有打上Gateway,在跨網段的傳輸會直接找不到。

在網路設定過程中,第一個就是要確保自己的網路能通而且能被管理,這樣才能遠端解決,到近端往往很不方便。能遠端就不要近,

Openwrt 新增SMB使用者

Openwrt可以輕鬆掛載外接儲存設備,再透過Samba分享檔案給其他人,當然也希望檔案不被其他人看到,設定許可使用者,存取時就需要透過帳號密碼才能進入著。

最近發現很多時候不是從一篇搜尋到的文章就能完成,就像要限制使用者存取也找了四篇文章才完整解決掉。

從以下文章是在嘗試過程中得到幫助的,希望可以幫助減少一些試錯時間。

  1. 在圖形化介面新增Samba,《Day_25 Samba
  2. 如何新增Samba使用者,《OpenWrt 如何設置Samba 服務 – Spimet
  3. 發現新增Samba使用者之前,要先在OS新增使用者,《解決 smbpasswd 設定出現 Failed to add entry for user test 問題
  4. 發現SSH進去OS沒有adduser指令,需要安裝「shadow-useradd」,《Create new users and groups for applications or system services