NTP Anycast
被一個學生提問關於NTP Anycast 的問題, 而什麼是Anycast? 這對一般人是比較陌生的詞語, 那就藉此探討一下.
在課堂上常提一個字 “Traffic” , 網絡的packet 交流的確就像物流的概念, 而運送方法大多數是Unicast, 但其實還有很多不同的方法, 那先來了解以下幾種不同的方法.
在課堂上常提一個字 “Traffic” , 網絡的packet 交流的確就像物流的概念, 而運送方法大多數是Unicast, 但其實還有很多不同的方法, 那先來了解以下幾種不同的方法.
Unicast (單播)
- 以單對一傳送.
- 如下圖source 172.16.0.1 傳送至destination 10.30.0.1, 正如你寄信時由寄件地址傳送至寄件地址.
- 如對方收到 包裹(packet), 便會根據source 作寄件地址寄回去.
Multicast (多播)
- 以群組及廣播形式傳送.
- 它的形式就好像你加入 Whatsapp group, 有加入的才能收到訊息.
- 如以圖加入了 233.0.9.3 的multicast group 才可以收到訊息.
Broadcast (廣播)
- 以網域式傳送.
- 就如某選區的選民才能收到選舉的訊息, 如下圖 10.0.0.0/8 的網域都會收到息訊.
- 它亦像大氣廣播一樣, 在同一頻道的都可以收到訊息.
Anycast (任播)
- 單對單分流(load-balancing)傳送.
- 多個終端共用同一個IP 地址,任何一端收到都會給予回應.
- 根據IGP(Interior Gateway Protocols)而選擇最近的終端.
- 這就像你打去捐款熱線, 同一個號碼但有多個接線生為你服務.
Anycast 的應用
- Anycast 一般會應用於以下幾個範籌
- Domain Name System (DNS): 利用anycast 提供redundancy 和load balancing.
- IPv6 Transition: 於IPv4 to IPv6 轉換, 令兩者可以兼容(compatibility).
- Multicast Routing: Multicast network 需選出RP(rendezvous point), 其中則利用Anycast RP 的技術令同一個網絡中可以有多個RP並存.
Anycast VS Load
Balancer
Anycast 跟Load Balancer 很類似, 它們都是摸擬一個virtual ip
address, 當收到service request時進分流, 避免single-point-of-failure. 同時保安(Security)上, 避安單一終端機被攻擊而引起service
downtime. 它們最大的分別在於OSI協議層(protocol layer), Anycast是於Layer 3層面上進行分流, 而Load Balancer則於Layer 3 及Layer 7層進行分流. 除此之外, Load Balancer 更有對終端機的監控 (monitor) 和多種分流方法.
關於NTP Anycast 的解決方法
學生的公司希望某伺服器可於NTP上避免single-point-of-failure,
但由於多個限制而在網上找尋解決方法.
- 一般伺服器可以輸入多個NTP server 的 IP address, 但其伺服器為比較舊的Linux, 只能輸入一個IP address.
- 正使用Cisco Router為NTP Server, 其位於remote site, router之間則用MethroEthernet Link 和OSPF 串聯. 不屬於同一subnet, 而不能使用boardcast.
- 沒有multicast routing, 故用不了multicast IP address.
- 沒有Load Balancer
基於上述限制, 從而嘗試尋求anycast 來解決這問題.
在Cisco 中沒有所謂的NTP Anycast,
而市面上則有NTP anycast appliance. 那這解決方法便會落空? 非也. 其實只要我們動動腦筋便可以利用簡單的技巧解決這個問題, 以下再為大家稍作解說.
3. 整個解決方案的重點在於R2和R3都同時建立Loopback0 為1.1.1.1/32
4. R1檢查一下是否收到1.1.1.1/32 的route
5. 由於測試的topology 兩邊的cost是一樣, 所以你可以看到兩條route 同時出現在routing table, 並與round-robin (循環制) 的形式傳送. 真實的情況下則有機會cost不同而只顯示cost最低的一條, 這時我們則最好用 “show
ip ospf route” 去檢查是否收齊所有route.
6. 最後便是配置好ntp server 1.1.1.1, 只要有任何一隻router 尚存還是正常可以回應NTP synchronization.
後記
其實很多網絡的產品只需要了解它背後的原理, 再動動腦筋便可以做到我們想要的效果. 當然那些appliance 是效能高及功能多, 但有時候能做到我們要求便可以, 所以多了解networking的運作原理就可以應付好多不同需要. 如有網絡上的難題, 歡迎留意提問.
留言
張貼留言