DNS anycast
Hi các bạn, vẫn là mình, mình vẫn là MinhKMA. Trong tiết trời độc lập 30⁄04 các bạn đi xuống biển, lên rừng thì mình vẫn đang ngồi trong phòng ngắm những cơn mưa tầm tã. Quay lại vấn đề chính, Phần DNS vẫn là một trong nhưng phần mình rất thích vọc vạch về nó. Mục đích của bài LAB là tạo ra một mô hình DNS anycast sử dụng Docker.
Bài LAB sử dụng 6 networks và 8 containers. Các containers được base trên ubuntu server 16.04 bao gồm (4 routers, 2 DNS servers và 2 máy client )
Cả 2 máy chủ DNS servers đều sử dụng IP anycast. Trên mỗi DNS server quản lý một bản ghi A và bản ghi A đó trỏ đến 2 IP khác nhau
Mô hình

Quy hoạch IP

Cài đặt
git clone https://github.com/MinhKMA/anycast.git
./build-images
./setup
Trên client 1
- Truy cập vào container - docker exec -it client1 /bin/bash- Thực hiện lệnh - dig @192.168.0.10 minhkma.local
- Kết quả trả về: - Bản ghi A của - minhkma.localcó giá trị là- 1.2.0.5do DNS1 server quản lý- [root@client1 anycast]# docker exec -it client1 /bin/bash root@f5ae9a8b7769:/# dig @192.168.0.10 minhkma.local ; <<>> DiG 9.10.3-P4-Ubuntu <<>> @192.168.0.10 minhkma.local ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31620 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;minhkma.local. IN A ;; ANSWER SECTION: minhkma.local. 86400 IN A 1.2.0.5 ;; AUTHORITY SECTION: minhkma.local. 86400 IN NS ns1.minhkma.local. ;; ADDITIONAL SECTION: ns1.minhkma.local. 86400 IN A 10.1.1.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Wed May 01 08:16:30 UTC 2019 ;; MSG SIZE rcvd: 92
 
 
Trên client2
- Truy cập vào container - docker exec -it client2 /bin/bash- Thực hiện lệnh - dig @192.168.0.10 minhkma.local
- Kết quả trả về: - Bản ghi A của - minhkma.localcó giá trị là- 1.9.9.7do DNS2 server quản lý- [root@client1 anycast]# docker exec -it client2 /bin/bash root@e682d9515c47:/# dig @192.168.0.10 minhkma.local ; <<>> DiG 9.10.3-P4-Ubuntu <<>> @192.168.0.10 minhkma.local ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8249 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;minhkma.local. IN A ;; ANSWER SECTION: minhkma.local. 86400 IN A 1.9.9.7 ;; AUTHORITY SECTION: minhkma.local. 86400 IN NS ns1.minhkma.local. ;; ADDITIONAL SECTION: ns1.minhkma.local. 86400 IN A 10.1.3.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Wed May 01 08:16:52 UTC 2019 ;; MSG SIZE rcvd: 92
 
 
Như vậy qua đó ta có thể thấy cùng truy vấn bản ghi ở DNS server có IP là 192.168.0.10 lại cho ra hai kết quả khác nhau
Trên DNS1 server
Để kiểm chứng lại sự hoạt động của mô hình LAB. Tôi tắt dịch vụ quagga trên một trong hai máy chủ DNS. Sau đó kiểm chứng kết quả lúc này và ban đầu của máy client1
- DNS1 - docker exec -it dns1 /bin/bash root@202f34a72f08:/# service quagga stop
- Client1 - root@f5ae9a8b7769:/# dig @192.168.0.10 minhkma.local ; <<>> DiG 9.10.3-P4-Ubuntu <<>> @192.168.0.10 minhkma.local ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2250 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;minhkma.local. IN A ;; ANSWER SECTION: minhkma.local. 86400 IN A 1.9.9.7 ;; AUTHORITY SECTION: minhkma.local. 86400 IN NS ns1.minhkma.local. ;; ADDITIONAL SECTION: ns1.minhkma.local. 86400 IN A 10.1.3.10 ;; Query time: 5 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Wed May 01 09:07:41 UTC 2019 ;; MSG SIZE rcvd: 92- WOOO! Ban đầu giá trị bản ghi là 1.2.0.5 cơ mà….