Bài giảng chương 2: Domain name system

Địa chỉ tên miền (domain name) tổng quát: host.subdomain.domain + host: tên máy. + subdomain: tên miền phụ. + domain (top-level-domain): tên miền chính. Một số top-level-domain thông dụng: .com : Các tổ chức, công ty thương mại. .org : Các tổ chức phi lợi nhuận. .net : Các trung tâm hỗ trợ về mạng. .edu : Các tổ chức giáo dụng. .gov : Các tổ chức thuộc chính phủ. . . . Ngoài ra mỗi nước có một top-level-domain riêng gồm 2 ký tự. VD: .vn :Việt Nam, .us :Mỹ, .ca :Canada, .kr : Hàn Quốc, . . .

ppt42 trang | Chia sẻ: vietpd | Lượt xem: 2385 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng chương 2: Domain name system, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
DOMAIN NAME SYSTEM Nội dung DNS LÀ GÌ? CƠ CHẾ PHÂN GIẢI. CHỨNG NHẬN TÊN MIỀN. PHÂN LOẠI DOMAIN NAME SERVER. DELEGATION VÀ HOSTING DOMAIN. RESOURCE RECORD. HOẠT ĐỘNG CỦA NAME SERVER TRONG LINUX. CÀI ĐẶT. CÁC TẬP TIN CSDL CHO ZONE. CẤU HÌNH. BẢO MẬT DNS SERVER. KIỂM TRA CẤU HÌNH. 1. DNS LÀ GÌ? Ban đầu do quy mô mạng ARPAnet còn nhỏ chỉ vài trăm máy, nên chỉ có một tập tin đơn HOSTS.TXT lưu thông tin về ánh xạ tên máy thành địa chỉ IP. Tuy nhiên khi quy mô mạng lớn hơn, việc sử dụng file HOSTS.TXT có các nhược điểm như sau: Lưu lượng mạng và máy chủ duy trì file HOSTS.TXT bị quá tải do hiệu ứng “cổ chai”. Xung đột tên: Không thể có 2 máy tính có cùng tên trong file HOSTS.TXT Không đảm bảo sự toàn vẹn: việc duy trì 1 file trên mạng lớn rất khó khăn. Lưu ý: Trên máy Linux tập tin có tên là hosts nằm trong /etc Do đó, đã ra đời dịch vụ DNS (Domain Name Service) nhằm khắc phục các nhược điểm trên. - DNS là 1 CSDL phân tán. - DNS hoạt động theo mô hình Client-Server: + Server (Name Server): gọi là máy chủ phục vụ tên. + Client (Resolver): gọi là trình phân giải tên. - DNS được thi hành như một giao thức tầng Application trong mô hình TCP/IP. DNS phân bổ theo cơ chế phân cấp tương tự như sự phân cấp của hệ thống tập tin Unix/Linux. Hình vẽ mơ tả tên domain trong CSDL DNS so sánh với đường dẫn tuyệt đối của thư mục trong hệ thống file UNIX (trang 9). DNS LÀ GÌ? (tt) CSDL của DNS là một cây đảo ngược. Mỗi nút trên cây cũng lại là gốc của 1 cây con. Chiều sâu của cây tối đa là 127 cấp. Tên trên mỗi nút tối đa 63 ký tự. Mỗi cây con là một phân vùng con trong tồn bộ CSDL DNS gọi là Domain. Mỗi Domain cĩ thể phân chia thành các phân vùng con nhỏ hơn gọi là các miền con Subdomian. (Hình trang 10) DNS LÀ GÌ? (tt) Địa chỉ tên miền (domain name) tổng quát: host.subdomain.domain + host: tên máy. + subdomain: tên miền phụ. + domain (top-level-domain): tên miền chính. Một số top-level-domain thông dụng: .com : Các tổ chức, công ty thương mại. .org : Các tổ chức phi lợi nhuận. .net : Các trung tâm hỗ trợ về mạng. .edu : Các tổ chức giáo dụng. .gov : Các tổ chức thuộc chính phủ. . . . Ngoài ra mỗi nước có một top-level-domain riêng gồm 2 ký tự. VD: .vn :Việt Nam, .us :Mỹ, .ca :Canada, .kr : Hàn Quốc, . . . DNS LÀ GÌ? (tt) Cách phân bổ dữ liệu quản lý domain name: Những root name server (.) quản lý những top-level domain trên Internet. Tên máy và địa chỉ IP của những name server này được công bố cho mọi người biết. DNS LÀ GÌ? (tt) Sự khác nhau giữa Zone và Domain: (hình trang 17) + Zone: bao gồm một domain hay nhiều subdomain. + Domain: gồm nhiều subdomain và zone. DNS LÀ GÌ? (tt) Phân giải tên thành IP. Vai trò của Root name server: là máy chủ quản lý các name server ở mức top-level domain. Khi có truy vấn về một tên miền nào đó thì root name server phải cung cấp tên và địa chỉ IP của name server quản lý top-level domain mà tên miền này thuộc vào. Hình vẽ dưới mô tả quá trình phân giải girigiri.gbrmpa.gov.au trên mạng Internet hình trang 13 2. CƠ CHẾ PHÂN GIẢI. Có hai loại truy vấn: + Truy vấn đệ quy (recursive query) + Truy vấn tương tác CƠ CHẾ PHÂN GIẢI (tt). Phân giải IP thành tên. Ánh xạ địa chỉ vào tên được dùng để diễn dịch các file log cho dễ đọc hơn. Nó còn dùng trong 1 số trường hợp chứng thực trên hệ thống UNIX. Để có thể phân giải tên máy của mộtù địa chỉ IP, trong không gian tên miền người ta bổ sung thêm một nhánh tên miền mà được lập chỉ mục theo địa chỉ IP. Phần không gian này có tên là miền in-addr.arpa. Mỗi nút trong miền in-addr.arpa có nhãn là chỉ số thập phân của địa chỉ IP. (Hình trang 15) CƠ CHẾ PHÂN GIẢI (tt). 3. CHỨNG NHẬN TÊN MIỀN. Fully Qualified Domain Name (FQDN): Một tên miền đầy đủ của 1 nút chính là chuỗi tuần tự các tên gọi của nút hiện tại đi ngược lên nút gốc, mỗi tên gọi cách ra bởi dấu chấm. Tên tuyệt đối cũng được xem là tên miền đầy đủ đã được chứng nhận (fully qualified domain name) FQDN 4. PHÂN LOẠI DOMAIN NAME SERVER 1. Primary Name Server: Mỗi miền phải có một Primary Name Server. Người quản trị DNS sẽ tổ chức những tập tin CSDL trên Primary Name Server. Server nà có nhiệm vụ phân giải tất cá các máy trong miền hay zone. 2. Secondary Name Server: Secondary (hay slave) Name Server được sử dụng để backup cho Primary Name Server. Có thể có một hay nhiều Secondary Name Server. Theo một chu kỳ, Secondary sẽ copy những file CSDL từ Primary Name Server. 3. Caching Name Server: Caching Name Server không có bất kỳ file CSDL nào. Nó được sử dụng để phân giải tên máy trên những mạng ở xa thông qua những Name Server khác. Làm tăng tốc độ phân giải bằng cách sử dụng cache. Giảm bớt gánh nặng phân giải tên máy cho name server. Giảm việc lưu thông trên những mạng lớn. 5. DELEGATION VÀ HOSTING DOMAIN. + Sự uỷ quyền (Delegation domain): Thông thường miền cha cung cấp các domain cho miền con dưới hình thức uỷ quyền cho miền con tự quản lý và tổ chức CSDL cho miền con. + Hosting domain: Miền cha tạo hosting domain cho miền con. Miền cha tự tổ chức và quản lý CSDL cho miền con. 6. RESOURCE RECORD. 1. SOA (Start of Authority) Trong mỗi zone file phải có một và chỉ một record SOA (start of authority). Record SOA chỉ ra rằng máy chủ name server là nơi cung cấp thông tin tin cậy từ dữ liệu có trong zone. Cú pháp: [tên-miền] IN SOA [tên-server-dns] [địa chỉ email] ( serial number; refresh number; retry number; experi number; time-to-live number; ) a) serial number: Khi một slave name server kết nối với master server để lấy dữ liệu, trước tiên nĩ sẽ kiểm tra số serial, nếu số serial của master lớn hơn tức là dữ liệu đã hết hạn sử dụng và nĩ sẽ load lại dữ liệu mới. vì vậy khi ta cập nhật dữ liệu trên name server ta nên tăng số serial. Thơng thường ta định dạng theo thời gian như sau: YYYYMMDDNN Ví dụ: 2004122901 b) refresh number: Khoảng Thời gian (giây) mà slave biết phải kiểm tra lại dữ liệu cĩ cịn sử dụng được khơng. Ví dụ: 10800 ; Refresh sau 3 giờ. c) retry number: Nếu slave khơng thể kết nối với master name server sau một khoảng thời gian refresh thì nĩ sẽ cố gắng kết nối lại sau retry giây. Giá trị này nhỏ hơn giá trị refresh. Ví dụ: 3600 ; Retry sau 1 giờ RESOURCE RECORD (tt). RESOURCE RECORD (tt). d) experi number: Nếu slave khơng thể kết nối với master server sau khoảng thời gian expire (giây) này, thì slave sẽ khơng trả lời cho vùng dữ liệu đĩ khi được truy vấn, vì nĩ cho rằng dữ liệu này đã quá củ. Giá trị này phải lớn hơn giá trị refresh và retry. Ví dụ: 604800 ; Expire sau 1 tuần. e) time-to-live number: Time To Live, giá trị này được dùng cho tất cả các resource record trong file cơ sở dữ liệu. Giá trị này cho phép những server khác cache lại dữ liệu trong 1 khoảng thời gian xác định TTL. Ví dụ : 86400 ; TTL là 1 ngày RESOURCE RECORD (tt). 2. NS (Name Server) Record tiếp theo cần có trong zone là NS (name server) record. Mỗi name server cho zone sẽ có một NS record. Cú pháp: [tên-domain] IN NS [máy-DNS-Server] Ví dụ : movie.edu. IN NS terminator.movie.edu. movie.edu. IN NS wormhole.movie.edu. Chỉ ra 2 name servers cho zone movie.edu. RESOURCE RECORD (tt). 3. A (Address) Record A (Address) ánh xạ tên vào địa chỉ. Cú pháp: [tên máy] IN A [địa chỉ IP] Ví dụ : terminator.movie.edu. IN A 192.168.11.100 4. CNAME (Canonical Name ) Record CNAME (canonical name) tạo tên bí danh alias trỏ vào một tên canonical. Tên canonical là tên host trong record A hoặc lại trỏ vào 1 tên canonical khác. Cú pháp: [tên máy alias] IN CNAME [tên máy gốc] Ví dụ : server.movie.edu. IN CNAME terminator.movie.edu. RESOURCE RECORD (tt). 5. MX (Mail Exchanger) DNS dùng record MX để thực việc chuyển mail trên mạng Internet. Cú pháp: [tên-domain] IN MX [độ ưu tiên] [tên mail server] Ví dụ : t3h.com IN MX 0 mail.t3h.com. 6. PTR (Pointer) Record PTR (pointer) dùng để ánh xạ địa chỉ vào tên. Cú pháp: [địa chỉ IP] IN PTR [tên máy] Ví dụ : 1.11.29.172.in-addr.arpa IN PTR server.t3h.com. hoặc 1 IN PTR server.t3h.com. 7. HOẠT ĐỘNG CỦA NAME SERVER TRONG LINUX. Chương trình server của DNS name server là một chương trình Daemon (named). Trong quá trình khởi động named đọc các tập tin dữ liệu rồi chờ các yêu cầu phân giải qua cổng xác định trong tập tin /etc/services. Named dùng giao thức TCP. Một truy vấn client-to-server: port nguồn >1023, port đích 53. Một trả lời server-to-client: port nguồn 53, port đích > 1023. Một truy vấn và trả lời server-to-server: với giao thức UDP port nguồn và đích đều là 53, với TCP truy vấn của server sẽ sử dụng port > 1023. 8. CÀI ĐẶT. Chúng ta cần cài đặt các package sau: bind-utils-x-x.rpm (Disk1) bind-libs-x-x.rpm (Disk1) bind-9.2.3-13.*.rpm (Disk1) caching-nameserver-x-x.rpm (Disk 3) 9. CÁC TẬP TIN CSDL CHO ZONE. Tập tin CSDL phân giải thuận : $TTL 86400 @ IN SOA server.csc.com. root.csc.com. ( 2005022800 10800 1800 36000 86400 ) IN NS server.csc.com. IN MX 0 mail.csc.com. server IN A 172.29.11.1 backup IN A 172.29.11.2 ftp IN A 172.29.11.3 www IN CNAME server.csc.com. mail IN CNAME server.csc.com. comp1 IN A 172.29.11.101 comp2 IN A 172.29.11.102 CÁC TẬP TIN CSDL (tt). Tập tin CSDL phân giải nghịch : $TTL 86400 @ IN SOA server.csc.com. root.csc.com. ( 2005022800 10800 1800 36000 86400 ) IN NS server.csc.com. 1 IN PTR server.csc.com. 2 IN PTR backup.csc.com. 3 IN PTR ftp.csc.com. 101 IN PTR comp1.csc.com. 102 IN PTR comp2.csc.com. 10. CẤU HÌNH. Các bước cấu hình Name Server: 1. Đăng ký một domain name (/etc/resolv.conf). 2. Tạo một danh sách những tên và địa chỉ IP tương ứng. 3. Tạo tập tin /etc/named.conf, tuỳ theo loại Name server cần cấu hình. 4. Tạo những tập tin cơ sở dữ liệu cho zone (/var/named). + Tập tin CSDL phân giải thuận. + Tập tin CSDL phân giải ngược. 5. Khởi động lại named #/etc/init.d/named restart 6. Cấu hình DNS Client để kiểm tra những Name Server đã cấu hình bằng công cụ nslookup. Đặt cấu hình trong tập tin: /etc/resolv.conf CẤU HÌNH (tt). Tập tin cấu hình /etc/named.conf Options: Định nghĩa những cấu hình tồn cục cho Bind options { directory “thư_mục_chứa_csdl"; mặc định là thư mục /var/named forwarders {Địa_chỉ IP_name_server;}; }; Zone: Định nghĩa một zone để quản lý CSDL cho miền hay miền con. zone “tên_miền" { type master/slave/hint/stub; masters {Đ/c IP của Primary Name server;}; file “tên_file_CSDL"; }; Type: + master: server cĩ bản copy chính csdl. + slave: lưu bản sao csdl từ master. + stub: tương tự như slave chỉ cho phép record NS từ Master + hint: zone chỉ ra những root name server. CẤU HÌNH (tt). CẤU HÌNH PRIMARY NAME SERVER: Tạo tập tin /etc/named.conf Thêm vào 2 zone: Ví dụ : zone “domain_name" { type master; file "named.hosts"; }; zone “domain ngược" { type master; file "named.rev"; }; zone “net.com" { type master; file “zone.thuan"; }; zone “11.168.192.in-addr.arpa" { type master; file “zone.nghich"; }; CẤU HÌNH (tt). Ví dụ : Tập tin /etc/named.conf options { directory "/var/named"; forwarders {172.29.2.2;}; }; zone “net.com" { type master; file “zone.thuan"; }; zone “11.168.192.in-addr.arpa" { type master; file "zone.nghich"; }; CẤU HÌNH (tt). CẤU HÌNH SECONDARY NAME SERVER: Chức năng của Secondary Name Server là backup dữ liệu từ Primary Name Server. Khơng cần tạo các tập tin CSDL. Chỉ khai báo 2 zone trong tập tin cấu hình như sau: zone “tên_miền" { type slave; masters {Đ/c IP của Primary Name server;}; file “tên_file_CSDL thuận"; }; Khởi động lại named Lưu ý: một máy tính cĩ thể vừa làm chức năng Primary và Secondary Name Server, nếu cùng đường mạng thì chỉ khai báo zone thuận. CẤU HÌNH (tt). Tạo tập tin /etc/named.conf Thêm vào 2 zone: VD: zone “domain name" { type slave; masters {IP Primary NS;}; file "named2.hosts"; }; zone “domain ngược" { type slave; masters {IP Primary NS;}; file "named2.rev"; }; zone “net.com" { type slave; masters {192.168.11.1;}; file "named2.hosts"; }; zone “11.168.192.in-addr.arpa" { type slave; masters {192.168.11.1;}; file "named2.rev"; }; CẤU HÌNH (tt). CẤU HÌNH DNS CLIENT: Cấu hình DNS Client nhằm sử dụng cơng cụ nslookup để kiểm tra những Name Server vừa được cấu hình. Trong Linux, những thơng số cấu hình DNS Client được lưu trong tập tin /etc/resolv.conf. Nội dung tập tin này : nameserver domain Ví dụ : nameserver 172.29.50.1 domain net01.com CẤU HÌNH (tt). CẤU HÌNH HOSTING DOMAIN: Miền cha tạo hosting domain cho miền con. Miền cha tự tổ chức và quản lý CSDL cho miền con hoặc một miền khác. Các bước cấu hình tương tự như cấu hình Primary Name Server. 1. Tạo tập tin /etc/named.conf + Khai báo các zone của miền cần hosting. 2. Tạo 2 tập tin CSDL cho zone đó. + Tập tin phân giải thuận. + Tập tin phân giải ngược. 3. Khởi động lại named CẤU HÌNH (tt). Ví dụ : Hosting 172.29.10.0/24 192.168.11.0/24 203.162.98.0/24 CẤU HÌNH (tt). CẤU HÌNH DELEGATION DOMAIN: Thông thường miền cha cung cấp các domain cho miền con dưới hình thức uỷ quyền cho miền con tự quản lý và tổ chức CSDL cho miền con. Thực hiện các bước sau đây : + Mở file phân giải thuận của miền cha và mô tả như sau: [miền_con] IN NS [tên_máy] [tên_máy] IN A [địa_chỉ_IP] + Mở file phân giải ngược của miền cha mô tả như sau: [Đ/c Host_ID] IN PTR [tên_máy] + Mở file /etc/named.conf thêm tuỳ chọn: forwarders {Đ/c_IP_Name_ Server_cuả_miền_cha}; CẤU HÌNH (tt). Ví dụ : Trên Name Server quản lý miền netXX.com uỷ quyền cho miền con b1.netXX.com cho máy có tên là: comb1 và có IP là: 172.29.10.102 + Mở file phân giải thuận của miền netXX.com và mô tả : b1 IN NS comb1.net.com. comb1 IN A 172.29.10.102 + Mở file phân giải ngược của miền netXX.com và mô tả : 102 IN PTR comb1.net.com. + Sau đĩ cấu hình DNS server trong subnet2 để quản lý domain b2.netXX.com CẤU HÌNH (tt). Ví dụ : Delegation 172.29.10.0/24 192.168.11.0/24 203.162.98.0/24 11. BẢO MẬT DNS SERVER. 1. Notify : Giữa DNS Slave và Master cĩ cơ chế tự động cập nhật khi cĩ sự thay đổi dữ liệu trong zone file, dựa trên thơng số refresh (thời gian làm tươi) Tuy nhiên cĩ thể mơ tả tham số “notify” để khi máy Master thay đổi dữ liệu zone,cĩ thể thơng báo ngay cho các slave biết để cập nhật theo. Cĩ hai khai báo notify cho một zone: notify yes/no; //thơng báo cho các name server liệt kê bởi các record NS của zone này. also-notify {danh sách các Slave name server cần thơng báo đến để cập nhật}; allow-update {danh sách IP update tự động lên name server;}; BẢO MẬT DNS SERVER(tt). Ví dụ : zone “net.com” { type master; file "named2.hosts"; notify yes; also-notify {192.168.11.1; 192.168.11.4; 192.168.10.1;} allow-update{none;}; }; zone “12.168.192.in-addr.arpa" { type master; file "named2.rev"; notify yes; allow-update{none;}; }; BẢO MẬT DNS SERVER(tt). 2. Allow-transfer : Thơng thường DNS cho phép copy các zone file giữa Master và Slave Name server. Do DNS cĩ thể chứa các thơng tin nhạy cảm, nên chỉ cho phép một số máy cĩ thể copy được zone file từ máy master. Cú pháp của allow-transfer như sau: allow-transfer {danh sách địa chỉ IP cho phép copy dữ liệu;}; Ví dụ : zone “net.com" { type master; file "named2.hosts"; notify yes; also-notify {192.168.11.1; 192.168.11.4; 192.168.10.1;}; allow-transfer {192.168.11.1; 192.168.11.4; 192.168.10.1;}; }; BẢO MẬT DNS SERVER(tt). 3. Allow-query : Mặc định các dữ liệu DNS phổ biến cơng cộng cho mọi người cĩ thể truy cập. Tuy nhiên trong một số trường hợp cĩ thể cần giới hạn việc truy cập dữ liệu DNS cho một số địa chỉ IP nào đĩ. Cú pháp của allow-query như sau: allow-query {danh sách địa chỉ IP cho phép truy cập dữ liệu;}; Ví dụ : zone “net.com" { type master; file "named2.hosts"; notify yes; also-notify {192.168.11.1; 192.168.11.4; 192.168.10.1;}; allow-transfer {192.168.11.1; 192.168.11.4; 192.168.10.1;}; allow-query {192.168.11/24}; }; BẢO MẬT DNS SERVER(tt). 4. Chạy DNS Server với quyền của user thường : BIND phiên bản 8.1.2 cĩ chức năng cho phép thay đổi username và group khi chạy name server. Điều này cho phép chạy Name server với cơ chế gọi là “least privilege”: quyền tối thiểu đủ để làm việc, khơng dư thừa. Khi đĩ hacker cĩ tấn cơng chiếm được quyền điều khiển tiến trình named thì chúng cũng khơng cĩ quyền root, tác hại khi đĩ sẽ nhỏ hơn. Tính năng này được bật thơng qua các tuỳ chọn dịng lệnh chạy named: -u: chỉ ra username hoặc user ID mà name server chuyển sang khi khởi động. VD: #named -u named -g: chỉ ra group hoặc group ID mà name server chuyển sang khi khởi động. VD: #named -u named -g named BẢO MẬT DNS SERVER(tt). Chú ý : nếu dùng tính năng này thì quyền trên các zone file, pid file được thiết lập lại. cụ thể là user named phải cĩ quyền đọc, ghi trên zone file. 12. KIỂM TRA CẤU HÌNH. #nslookup –sil > linuxsvr >Server : 172.29.14.1 >Address : 172.29.14.1#53 >Name : linuxsvr.csc.hcmuns.edu.vn >Address : 172.29.14.1 #host server1.net01.com server1.net01.com has address 172.29.50.2