都說不要在週五 deploy,雖然內心其實不太認同這句話,如果有完整的上版退版跟監測機制,任何時候 deploy 系統都應該能發現重大瑕疵然後自動退版,不影響使用者體驗。話是這樣說,但還是盡量不要玩火。
然後我玩了,所以這篇文就出現了QQ
事發在家裡的 Mikrotik CRS309-1G-8S+IN,原本正在修理家中的 SIP Phone,用 Mikrotik 抓包分析,抓著抓著就想說:不然!我們就更新一下吧,更新一下不會怎樣吧~~~對吧,對吧?對吧!!!
按下更新鍵後,SFP 燈號全滅,只剩下電源燈還亮著,機器變成磚頭了!

目錄:
怎麼判斷機器狀態?
NetInstall 版本選擇
執行步驟
怎麼判斷機器狀態?
根據官方文件說明,CRS309 應該會有 RouterBOOT(類似 BIOS)引導啟動 RouterOS,如果 RouterOS 掛了,RouterBOOT 還有 ETH port 可以用來進行 PXE 。
拆下機器後接上可見 ETH port 的 activity 燈號持續閃爍,因為手上的電腦主要是 M1 pro,接法就會是筆電 → hub → ETH port → Mikrotik,這時候如果打開 Wireshark 可以看到機器一直在送出 BOOTP 的 Boot request,連 RouterOS 都進不去,真的炸了。QQ

Netinstall 版本選擇
按照官方的救援教學,接下來就是用 Netinstall 重新刷上需要的韌體版本,Netinstall 有 Windows 版跟 Linux 版,剛好 M1 pro 筆電有 Parallels desktop 可以用,因此直接下載 Windows 的 Netinstall 。Linux 版本因為只能用在 x86,如果在 M 系列晶片電腦上執行,會出現 ./netinstall-cli: cannot execute binary file ,可能可以嘗試跑在 Docker 上來解決架構不同的問題。
執行步驟
環境準備
Netinstall 處理好後,別忘了先下載好對應的韌體,以這台為例,韌體要選擇 ARM,不要選到 ARM64 喔。
接下來需要將 hub 主控權轉到 parallels 上,找到所屬 hub 的 USB 然後允許 parallels 接管。
不建議使用網路橋接介面卡,PXE 環境對封包樣態非常敏感,有時可能只是補個 padding 都會導致環境失效,使用橋接會讓封包經過 mac kernel 再經過 Parallels,封包經手太多,容易有驚喜(待補圖片)

子網路遮罩:255.255.255.0
因為沒有 DHCP,因此需要幫電腦指定一個 IP,官方雖然說是用 192.168.88.0/24,但並沒有成功,後來是使用 192.168.0.0/24 才成功設定
完成設定後,記得用管理員模式打開 Netinstall,點進 Net Booting 開啟 Boot Server,Client 設定同一個網段內的非本機 IP,通常系統會需要等待 30 秒到五分鐘的時間等待機器上線

開刷!
選好韌體後,勾選起來,按下 Install 開刷!

系統會先重劃分區表,然後安裝韌體,完成後別忘了按下 Request Reboot,重新開機後,就會聽到美妙的嗶聲,Do Re Mi Sol!
之後再來分享家裡的網路規劃,Mikrotik 搭 Unifi AP 真的是絕配,第一次成功整合家用網路、IoT 設備、VPN、閉路監視器以及 IP 電話,實際使用了ㄧ年,穩定度都很好!