1. 程式人生 > >雲端計算之路-試用Azure:搭建自己的內網DNS伺服器

雲端計算之路-試用Azure:搭建自己的內網DNS伺服器

之前我們寫過一篇博文談到Azure內建的內網DNS伺服器不能跨Cloud Service,而我們的虛擬機器部署場景恰恰需要跨多個Cloud Service,所以目前只能選擇用Azure虛擬機器搭建自己的內網DNS伺服器。這篇博文分享的是我們在Azure上搭建自己的內網DNS伺服器的經過。

1、建立1臺用於跑DNS服務的虛擬機器,假設名叫dnsserver。

2、登入這臺虛擬機器,安裝DNS服務。

3、安裝時Windows警告虛擬機器用的是動態IP,推薦使用靜態IP。聽從該警告,接下來我給虛擬機器配置靜態IP。

4、進入Azure管理控制檯->Networks,在虛擬網中新增一名為DNS的子網,子網的目的僅是為了給DNS伺服器保留內網IP,這裡我們保留了3個IP(見下圖)

在新增子網儲存時,我們發現了這樣的提示:

Changing the configuration of a network that is in use will briefly disrupt the connection between the virtual network and the local network. Are you sure you want to continue?

修改虛擬網設定竟然會引起網路短時間的中斷!難道在生產環境中,如果要修改虛擬網設定,還要找個夜深人靜、訪問量最少的時間。即使這樣,也是造成了正常服務的中斷。這地方的設計還是有所欠缺。

5、回到需要安裝DNS服務的虛擬機器,給它指定靜態IP(10.0.1.4),但是子網掩碼與閘道器不知怎麼填。算了,還是把這臺虛擬機器移到DNS這個子網(之前在FrontEnd子網),然後根據DHCP的資訊進行填寫。

6、但無法在子網間移動虛擬機器,只能先“刪除”這臺虛擬機器(在Azure中,刪除虛擬機器是指刪除虛擬機器的執行例項,從程式設計角度講刪除的是物件,而不是類檔案)。

7、New Virtual Machine From Gallery -> My Disks,重新建立dnsserver虛擬機器,建立時選擇DNS這個虛擬網子網。

8、dnsserver虛擬機器建立好之後,根據DHCP分配的IP資訊,設定靜態IP(見下圖)。

(注:在儲存靜態IP設定時,遠端桌面連線會閃斷一下)

9、重新開啟Server Manager,繼續安裝DNS服務。安裝成功之後在其他虛擬機器上用“telnet 10.0.14 53”命令測試一下,如果成功連線說明DNS服務工作正常。

10、在dnsserver虛擬機器上開啟DNS管理工具,新建一個名為cnblogs.local的區域,在建立時一定要選擇允許動態更新(見下圖)。

11、建立好區域之後,DNS伺服器本身的配置工作就完成了。

12、開啟Azure的Networks管理控制檯,選擇相應的虛擬網,進入Configure頁面,新增之前配置的DNS伺服器。

13、儲存時出現如下的提示:

Changing the configuration of a network that is in use will briefly disrupt the connection between the virtual network and the local network. Are you sure you want to continue?
If you change the DNS server while the virtual network is in use, you have to restart the virtual machines to reset the DNS settings.

不僅會造成網路中斷,而且為了使DNS生效,需要重啟所有虛擬機器。

14、儲存成功後,發現原來為虛擬機器提供DNS解析服務的Azure內建DNS伺服器拒絕服務了,這個地方的設計不夠人性化。

15、分別重啟不在同一個Cloud Service中的blogserver2與passport這兩臺虛擬機器,重啟發現DNS的確切換為了我們設定的DNS伺服器。

然後,測試dns解析,ping blogserver2,結果依然是:

Ping request could not find host blogserver2. Please check the name and try again.

再看一下blogserver2的IP資訊,DNS字尾與DNS伺服器的區域資訊不匹配。

而且DNS伺服器中也沒有對應的blogserver2主機記錄。

16、解決方法:開啟blogserver2的TCP/IP高階設定,在“DNS”設定中,給“DNS suffix for this connection”新增字尾值cnblogs.local(與DNS區域名稱保持一致),並且選中“Use this connection's DNS buffix in DNS registration”(讓DHCP將主機名解析註冊至DNS伺服器中)。

passport這臺虛擬機器也進行同樣的設定,然後重啟這兩臺虛擬機器。

17、blogserver2與passport這兩臺虛擬機器重啟成功後,就會在DNS伺服器的區域中看到這兩臺伺服器的解析記錄。

18、在passport這臺虛擬機器中測試一下dns解析,執行命令:ping blogserver2,執行結果如下:

搞定!

配置要點小結

1、DNS伺服器要用靜態IP,劃分專門的子網以保留IP給DNS伺服器。

2、DNS伺服器要允許動態更新。

3、每臺需要DNS服務的虛擬機器都需要修改TCP/IP設定,給“DNS suffix for this connection”新增字尾值cnblogs.local(與DNS區域名稱保持一致),並且選中“Use this connection's DNS buffix in DNS registration”(讓DHCP將主機名解析註冊至DNS伺服器中)。

4、每臺需要DNS服務的虛擬機器都需要重啟。

如何解決DNS伺服器的單點故障

再用虛擬機器搭建一臺DNS伺服器,讓這兩臺DNS伺服器自動複製,然後在Azure虛擬網中設定兩臺DNS伺服器。