1. Trang chủ
  2. » Mẫu Slide

Đồ án cơ sở ngành mạng

38 828 12

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 1,22 MB

Nội dung

Đồ án mạng lập trinhg fdsgjfsjjf;dfghjkdfghjklcvbnm,.rhjkl;dm,.rhjklbnm,.ghjklJava được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun Microsystems năm 1991. Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi; do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này), họ dự định ngôn ngữ đó thay cho C++, nhưng các tính năng giống Objective C. Không nên lẫn lộn Java với JavaScript, hai ngôn ngữ đó chỉ giống tên và loại cú pháp như C. Công ty Sun Microsystems đang giữ bản quyền và phát triển Java thường xuyên. Tháng 042011, công ty Sun Microsystems tiếp tục cho ra bản JDK 1.6.24

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN - - BÁO CÁO ĐỒ ÁN CƠ SỞ NGÀNH MẠNG Phần Nguyên lý hệ điều hành: Mơ chương trình quản lý nhớ Phần Lập trình mạng Xây dựng chương trình my_nslookup GVHD : Th.S Nguyễn Thế Xuân Ly SVTH : Hoàng Văn Phụng_102140215 MSSV : Nguyễn Thị Lâm Oanh_ 102140213 LỚP : 14TCLC2 Đà Nẵng, 12/2017 MỤC LỤC LỜI MỞ ĐẦU PHẦN I: NGUYÊN LÝ HỆ ĐIỀU HÀNH ĐỀ TÀI: CHƯƠNG I: CƠ SỞ LÝ THUYẾT Giới thiệu 1.1.Quản lý nhớ .4 1.2 Quản lý tiến trình Đề tài mục tiêu .5 2.1.Đề tài : 2.2.Mục tiêu Các vấn đề pát sinh Quản lý nhớ .5 3.1 Chuyển đổi địa tương đối sang tuyệt đối 3.2 Không gian địa ảo không gian địa vật lý .6 Quản lý nhớ cấp phát chưa cấp phát .7 Các mơ hình cấp phát nhớ 5.1 Mơ hình cấp phát liên tục 5.2 Mơ hình cấp phát không liên tục 10 Mơ hình phân trang .11 CHƯƠNG II: THUẬT TOÁN .14 Thuật toán LRU(Least_Recently_used) 14 Thuật toán xấp xỉ LRU( Not Recently Used Replacement Algorithm: NRU ) .16 CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ BỘ NHỚ 17 Môi trường làm việc 17 Thiết kế chương trình 17 2.1 Các struct .17 2.2 Thực thi chương trình kết 17 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 19 Kết luận 19 Hướng phát triển 19 PHẦN II: LẬP TRÌNH MẠNG 20 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 20 Hệ thống tên miền DNS 20 1.1 Tổng qua hệ thống DNS 20 1.2 Chức DNS .21 1.3 Cách đọc quy tắc đặt tên miền 21 Cơ sở liệu DNS .22 2.1 Cách phân bố liệu quản lý domain 22 2.2 Cơ chế phân giải tên 23 2.3 Phân loại Domain Name Server 25 2.4 Bản ghi DNS(Resource Record) 27 2.5 Cấu trúc gói tin DNS 29 Vấn đề bảo mật DNS .31 3.1 Các điểm yếu DNS .31 3.2 Bảo mật DNS Server 34 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 34 Môi trường làm việc .34 Triển khai 35 Đánh giá .35 CHƯƠNG 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 35 Kết luận 35 Hướng phát triển 36 LỜI MỞ ĐẦU PHẦN I: NGUYÊN LÝ HỆ ĐIỀU HÀNH ĐỀ TÀI: CHƯƠNG I: CƠ SỞ LÝ THUYẾT Giới thiệu 1.1.Quản lý nhớ Quản lý nhớ nhiệm vụ quan trọng phức tạp hệ điều hành Bộ phận quản lý nhớ xem nhớ tài nguyên hệ thống dùng để cấp phát chia sẻ cho nhiều tiến trình trạng thái active Các hệ điều hành mong muốn có nhiều tiến trình nhớ Cơng cụ quản lý nhớ phân trang (paging) phân đoạn (segmentation) Với phân trang tiến trình chia thành nhiều phần nhỏ có quan hệ với nhau, với kích thước trang cố định Sự phân đoạn cung cấp cho chươngtrình người sử dụng khối nhớ có kích thước khác Hệ điều hành kết hợp phân trang phân đoạn để có chiến lược quản lý nhớ linh hoạt 1.2 Quản lý tiến trình Tất hệ điều hành đa chương, từ hệ điều hành đơn người sử dụng đến hệ điều hành hỗ trợ đến hàng ngàn người sử dụng, phải xây dụng dựa khái niệm tiến trình Vì thế, yêu cầu quan trọng thiết kế hệ điều hành thành phần quản lý tiến trình hệ điều hành phải đáp ứng tất liên quan đến tiến trình:  Hệ điều hành phải cho phép thực nhiều tiến trình đồng thời để khai thác tối đa thời gian xử lý processor cung cấp thời gian hồi đáp hợp lý  Hệ điều hành phải cấp phát tài nguyên để tiến trình hoạt động cách hiệu với sách hợp lý khơng xảy tình trạng tắc nghẽn hệ thống  Hệ điều hành yêu cầu để hỗ trợ truyền thơng liên tiến trình người sử dụng tạo tiến trình Hệ điều hành phải có nhiệm vụ tạo tiến trình, điều khiển hoạt động tiến trình kết thúc tiến trình Một số hệ điều hành phân biệt hai khái niệm tiến trình tiểu trình Tiến trình liên quan đến quyền sở hữu tài nguyên, tiểu trình liên quan đến thực chương trình Trong hệ điều hành đa chương, có nhiều tiến trình tồn nhớ chính, tiến trình luân phiên hai trạng thái: sử dụng processor đợi thực vào/ra hay vài kiện xảy Đề tài mục tiêu 2.1.Đề tài : ‘Xây Dựng Chương Trình Mơ Phỏng Bộ Nhớ’ 2.2.Mục tiêu Trong phạm vi báo cáo chúng em đến vấn đề sau đây:  Nguyên cứu hệ thống Quản lý nhớ (Memory Manager System) Quản lý tiến trình nói chung  So sánh Hệ thống quản lý nhớ, quản lý tiến trình hệ điều hành Windows với hệ điều hành Linux  Xây dựng chương trình quản lý nhớ Các vấn đề pát sinh Quản lý nhớ Các địa chương trình thực thi (dạng exe) địa tương đối, cần chuyển đổi địa thành địa tuyệt đối nhớ Việc chuyển đổi xảy vào thời điểm sau: 3.1 Chuyển đổi địa tương đối sang tuyệt đối a) Thời điểm biên dịch (compile time): Nếu thời điểm biên dịch, biết vị trí mà tiến trình nạp vào nhớ, trình biên dịch phát sinh mã với địa tuyệt đối Tuy nhiên, sau có thay đổi vị trí chương trình, cần phải biên dịch lại chương trình Ví dụ chương trình com chạy hệ điều hành MS-DOS có mã tuyệt đối biên dịch b) Thời điểm nạp (load time): Nếu thời điểm biên dịch, chưa thể biết vị trí mà tiến trình nạp vào nhớ, trình biên dịch phát sinh mã tương đối Khi nạp chương trình vào nhớ, hệ điều hành chuyển địa tương đối thành địa tuyệt đối biết vị trí bắt đầu lưu trữ tiến trình Khi có thay đổi vị trí lưu trữ, cần nạp lại chương trình để thực lại việc chuyển đổi địa chỉ, khơng cần biên dịch lại chương trình c) Thời điểm xử lý (execution time): Nếu có nhu cầu di chuyển tiến trình từ vùng nhớ sang vùng nhớ khác trình tiến trình xử lý, việc chuyển đổi địa thực vào lúc tiến trình thực thi Chức chuyển đổi địa phần cứng cung cấp gọi MMU (memory management unit) Các hệ điều hành thường dùng việc chuyển đổi theo cách 3.2 Không gian địa ảo không gian địa vật lý + Địa ảo (địa logic): địa xử lý (CPU) tạo + Địa vật lý (địa physic): địa thực nhớ chính, địa vật lý gọi địa tuyệt đối/địa thực + Không gian địa ảo tiến trình: tập hợp tất địa ảo tiến trình + Khơng gian điạ vật lý tiến trình: tập hợp tất địa vật lý tương ứng với địa ảo Khi chương trình nạp vào nhớ địa tương đối chương trình CPU chuyển thành địa ảo, thực thi, địa ảo hệ điều hành kết hợp với phần cứng MMU chuyển thành địa vật lý Tóm lại có khái niệm địa ảo việc chuyển đổi địa xảy vào thời điểm xử lý, tiến trình thao tác địa ảo, địa vật lý xác định thực truy xuất nhớ vật lý CPU gởi địa ảo tới MMU, MMU chuyển địa ảo thành địa vật lý Quản lý nhớ cấp phát chưa cấp phát Hệ điều hành cần lưu trữ thông tin phần nhớ cấp phát phần nhớ chưa cấp phát Nếu cấp phát cấp cho tiến trình Khi cần cấp phát nhớ cho tiến trình tìm phần nhớ trống thích hợp nhanh chóng nhớ bị phân mảnh cần dồn nhớ lại để tận dụng nhớ để tiến trình thực thi nhanh 4.1 Các phương pháp quản lý việc cấp phát nhớ: a/ Sử dụng dãy bit : bít thứ i khối thứ i cấp phát, chưa cấp phát b/ Sử dụng danh sách liên kết: nút danh sách liên kết lưu thông tin vùng nhớ chứa tiến trình (P) hay vùng nhớ trống hai tiến trình (H) quản lý việc cấp phát nhớ dãy bit danh sách liên kết Trước tiến trình X kết thúc, có trường hợp xảy tiến trình X kết thúc, hệ điều hành cần gom nút trống gần 4.2 Các thuật toán chọn đoạn trống: a) First-fit: chọn đoạn trống đủ lớn b) Best-fit: chọn đoạn trống nhỏ đủ lớn để thỏa mãn nhu cầu c) Worst-fit : chọn đoạn trống lớn Các mơ hình cấp phát nhớ 5.1 Mơ hình cấp phát liên tục a) Mơ hình Linker_Loader: Chương trình nạp vào vùng nhớ liên tục đủ lớn để chứa tồn chương trình Hệ điều hành chuyển địa tương đối địa tuyệt đối (địa vật lý ) nạp chương trình, theo cơng thức: địa tuyệt đối = địa bắt đầu nạp tiến trình + địa tương đối Ví dụ: xét chương trình P.EXE có lệnh Jump 0X200, Giả sử chương trình nạp địa 0X300, địa tương đối 0X200 chuyển thành địa vật lý 0X300+0X200=0X500 Một ví dụ chuyển đổi địa tương đối thành địa vật lý mơ hình linker- loader Chương trình nạp vào nhớ cho thực thi gọi tiến trình, trường hợp địa tiến trình địa tuyệt đối, địa chương trình địa tương đối Nhận xét: + Vì việc chuyển đổi địa chỉ thực vào lúc nạp nên sau nạp khơng thể di chuyển tiến trình nhớ + Do khơng có chế kiểm sốt địa mà tiến trình truy cập, nên khơng thể bảo vệ tiến trình bị tiến trình khác truy xuất nhớ tiến trình cách trái phép b) Mơ hình Base & Limit Giống mơ hình Linker-Loader phần cứng cần cung cấp hai ghi, ghi (base register) ghi giới hạn (limit register) Khi tiến trình cấp phát vùng nhớ, hệ điều hành cất vào ghi địa bắt đầu vùng nhớ cấp phát cho tiến trình, cất vào ghi giới hạn kích thước tiến trình ví dụ mơ hình base&limit Khi tiến trình thực thi, địa ảo (địa ảo địa tương đối) MMU so sánh với ghi giới hạn để bảo đảm tiến trình khơng truy xuất ngồi phạm vi vùng nhớ cấp cho Sau địa ảo cộng với giá trị ghi địa tuyệt đối nhớ chế MMU mơ hình base&limit  Nhận xét: + Có thể di chuyển chương trình nhớ tiến trình nạp dạng địa ảo, tiến trình di chuyển đến vị trí mới, hệ điều hành cần nạp lại giá trị cho ghi nền, việc chuyển đổi địa MMU thực vào thời điểm xử lý + Có thể có tượng phân mảnh ngoại vi (external fragmentation ): tổng vùng nhớ trống đủ để thoả mãn yêu cầu, vùng nhớ lại không liên tục nên không đủ để cấp cho tiến trình khác Có thể áp dụng kỹ thuật “dồn nhớ “ (memory compaction ) để kết hợp mảnh nhớ nhỏ rời rạc thành vùng nhớ lớn liên tục, nhiên kỹ thuật đòi hỏi nhiều thời gian xử lý Ví dụ phân mảnh ngoại vi nhớ, tiến trình liên tục vào nhớ, sau thời gian để lại vùng nhớ nhỏ mà khơng thể chứa tiến trình 5.2 Mơ hình cấp phát khơng liên tục a) Mơ hình phân đoạn (Segmentation) Một chương trình người lập trình chia thành nhiều phân đoạn, phân đoạn có ngữ nghĩa khác hệ điều hành nạp phân đọan vào nhớ vị trí khơng liên tục Ví dụ: chương trình chia làm phân đoạn (segment), phân đoạn nạp vào vùng nhớ trống khơng liên tục Trong Top-level Domain chứa loại tên miền là: tên miền cấp cao dùng chunggTLDs (generic Top Level Domains) com, net, org … tên miền cấp cao quốc gia – ccTLD (country code Top Level Domains) vn, jp, kr, … Ngồi có tên miền iTLD ( int, arp …) usTLD ( gov, edu …) thực chất thuộc nhóm gTLD (việc phân tách có ý nghĩa lịch sử) 2.2 Cơ chế phân giải tên DNS service có chức phân giải tên > IP IP > tên 2.2.1 Phân giải tên thành địa IP Root Name Server máy chủ quản lý name server mức top-level domain Khi có query tên domain Root Name Server cung cấp tên địa IP name server quản lý top-level domain (thực tế hầu hết root server máy chủ quản lý top-level domain) đến lược name server top-level domain cung cấp danh sách name server có quyền secon-level domain mà domain thuộc vào Cứ đến tìm máy chủ quản lý tên domain cần truy vấn Qua q trình cho thấy vai trò quan trọng Root Name Server trình phân giải tên domain Nếu Root Name Server mạng Internet khơng liên lạc với u cầu phân giải tên không thực Ví dụ : client cần truy cập trang web www.yahoo.com client yêu cầu phân giải địa IP web server có chứa website www.yahoo.com Đầu tiên client tìm cache nó, cache khơng có gửi request querry đến DNS local (nếu mạng nội có DNS server) Sau DNS local tìm cache nó, có gửi địa IP cần truy vấn đến cho client, cache khơng có lúc DNS local gửi request query đến Root Name Server gần mà biết Sau Root Name Server trã lời địa IP Name Server quản lý miền com cho DNS local DNS local lại hỏi tiếp name server quản lý domain com miền yahoo.com địa IP Cuối DNS local truy vấn máy chủ quản lý domain www.yahoo.com nhận câu trả lời Có dạng truy vấn (query) : - Truy vấn đệ quy: Name Server nhận truy vấn dạng này, bắt buộc phải trả kết tìm thơng báo lỗi truy vấn không phân giải Name Server tham chiếu đến Name Server khác Name Server gửi truy vấn dạng truy vấn đệ quy truy vấn lặp lại đến Name Server khác phải thực có kết DNS server kiểm tra cache forward lookup zone để gửi lại query Truy vấn đệ quy - Truy vấn lặp lại: Khi Name Server nhận truy vấn dạng này, trả lời cho thiết bị truy vấn với thơng tin tốt mà có vào thời điểm lúc Bản thân Name Server khơng thực truy vấn thêm Thông tin trả lúc lấy từ liệu cục (kể cache) Trong trường hợp Name Server khơng tìm thấy thơng tin liệu cục trả tên miền địa IP Name Server gần mà biết Truy vấn lặp lại Tóm lại việc truy vấn thường sau: - Truy vấn Thiết bị truy vấn (host) -> DNS Server Truy vấn đệ quy - Truy vấn DNS Server -> DNS Server truy vấn lặp lại 2.2.2 Phân giải địa IP thành tên host Để phân giải tên máy tính địa IP, khơng gian tên miền người ta bổ sung thêm nhánh tên miền mà lập mục theo địa IP Phần khơng gian có tên miền in-addr.arpa Mỗi node miền in-addr.arpa có tên nhãn số thập phân địa IP Ví dụ miền in-addr.arpa có 256 subdomain tương ứng với 256 giá trị từ > 255 byte địa IP Trong subdomain lại có 256 subdomain ứng với byte thứ Cứ đến byte thứ có ghi cho biết tên miền đầy đủ máy tính mạng có địa IP tương ứng 2.3 Phân loại Domain Name Server 2.3.1 Primary Name Server Mỗi Domain phải có Primary Name Server Server register Internet để quản lý Domain Mọi người Internet biết tên máy tính IP Server Người quản trị DNS tổ chức sở liệu DNS Primary Name Server Server đảm nhận vai trò việc phân giải tất máy tính Domain hay Zone 2.3.2 Secondary Name Server Mỗi Domain có Primary Name Server để quản lý sở liệu DNS Nếu Server tạm ngưng hoạt động lý việc phân giải DNS bị gián đoạn Để tránh trường hợp người ta thiết kế máy chủ dự phòng gọi Secondary Name Server (hay gọi Slave) Khi Secondary Name Server khởi động tìm Primary Name Server mà phép lấy liệu máy Nó copy lại toàn CSDL DNS Primary Name Server mà phép transfer (q trình gọi trình Zone Transfer) Theo chu kỳ người quản trị quy định Secondary Name Server chép cập nhật CSDL từ Primary Name Server Zone Transfer 2.3.3 Caching Name Server Caching Name Server khơng có tập tin CSDL Nó có chức phân giải tên máy mạng xa thơng qua Name Server khác Nó lưu lại thông tin phân giải trước sử dụng lại thơng tin nhằm mục đích : - Làm tăng tốc độ phân giải 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 mạng lớn Quy trình truy vấn cache lại máy tính 2.4 Bản ghi DNS(Resource Record) RR mẫu thông tin dùng để mô tả thông tin sở liệu DNS, mẫu thông tin lưu file sở liệu DNS (%systemroot %\system32\dns) Các trường tin RR là: (Name, Value, Type, TTL) 2.4.1 Bản ghi kiểu A (Address) Bản ghi kiểu A dùng để khai báo ánh xạ tên máy tính mạng địa IP tương ứng Nói cách khác, ghi kiểu A tên điạ IP máy tính mạng Bản ghi kiểu A có cú pháp sau: IN A Ví dụ: Nếu khai báo home.vnn.vn IN A 203.162.0.12 Theo ví dụ trên, tên miền home.vnn.vn khai với ghi kiểu A trỏ đến địa 203.162.0.12 tên máy tính Một tên miền khai nhiều ghi kiểu A khác để trỏ đến địa IP khác Như có nhiều máy tính có tên mạng Ngược lại máy tính có địa IP có nhiều tên miền trỏ đến, nhiên có tên miền xác định tên máy, tên miền khai với ghi kiểu A trỏ đến địa máy 2.4.2 Bản ghi CNAME (Canonical Name) Bản ghi CNAME cho phép máy tính có nhiều tên Nói cách khác ghi CNAME cho phép nhiều tên miền trỏ đến địa IP cho trước Để khai báo ghi CNAME, bắt buộc phải có ghi kiểu A để khai báo tên máy Tên miền khai báo ghi kiểu A trỏ đến địa IP máy gọi tên miền (canonical domain) Các tên miền khác muốn trỏ đến máy tính phải khai báo bí danh tên máy (alias domain) Cú pháp ghi CNAME: IN CNAME Ví dụ: Nếu khai báo www.vnn.vn IN CNAME home.vnn.vn Tên miền www.vnn.vn tên bí danh tên miền home.vnn.vn , hai tên miền www.vnn.vn home.vnn.vn trỏ đến địa IP 203.162.0.12 2.4.3 Bản ghi NS (Name Server) Bản ghi NS dùng để khai báo máy chủ tên miền cho tên miền Nó cho biết thơng tin tên miền khai báo máy chủ Với tên miền phải có tổi thiểu hai máy chủ tên miền quản lý, yêu cầu có tối thiểu hai ghi NS cho tên miền Cú pháp ghi NS: IN NS Ví dụ: Nếu khai báo vnnic.net.vn IN NS dns.vnnic.net.vn Với khai báo trên, tên miền vnnic.net.vn máy chủ tên miền có tên dns.vnnic.net.vn quản lý Điều có nghĩa, ghi A, CNAME, MX tên miền vnnic.net.vn tên miền cấp khai báo máy chủ dns.vnnic.net.vn 2.4.4 Bản ghi MX (Mail Exchange) Bản ghi MX dùng để khai báo trạm chuyển tiếp thư điện tử tên miền Ví dụ: Để thư điện tử có cấu trúc user@vnn.vn gửi đến trạm chuyển tiếp thư điện tử có tên mail.vnn.vn , sở liệu DNS cần khai báo ghi MX sau: vnn.vn IN MX 10 mail.vnn.vn Các thông số khai báo ghi MX nêu gồm có: + vnn.vn : tên miền khai báo để sử dụng địa thư điện tử + mail.vnn.vn: tên trạm chuyển tiếp thư điện tử, thực tế tên máy tính dùng làm trạm chuyển tiếp thư điện tử + 10 : Là giá trị ưu tiên, giá trị ưu tiên số nguyên từ đến 255, giá trị ưu tiên nhỏ trạm chuyển tiếp thư điện tử khai báo sau trạm chuyển tiếp thư điện tử chuyển đến Ví dụ: Nếu khai báo vnn.vn IN MX 10 mail.vnn.vn vnn.vn IN MX 20 backupmail.vnn.vn Thì tất thư điện tử có cấu trúc địa user@vnn.vn trước hết gửi đến trạm chuyển tiếp thư điện tử mail.vnn.vn Chỉ trường hợp máy chủ mail.vnn.vn nhận thư thư chuyển đến trạm chuyển tiếp thư điện tử backupmail.vnn.vn 2.5 Cấu trúc gói tin DNS Trong phần này, ta đề cập đến thành phần tin DNS: Truy vấn DNS tin phản hồi Cả truy vấn phản hồi có dạng tương tự nhau, hình Ý nghĩa trường tin sau:  Phần mở đầu (The message header): 12 bytes, bao gồm cờ giá trị điều khiển trình trao đổi Gồm thành phần chính:  10 11 12 13 14 15 Message ID Q R OPCODE AA TC RD RA Res Res2 Res RCODE QDCOUNT (số items truy vấn-Question) ANCOUNT (số items phản hồi- Answers) NSCOUNT (số items Authority section) ARCOUNT (số items Additional section) - ID (Identification): Là trường 16 bits, chứa mã định danh, Định danh truy vấn sinh client chép sang phản hồi máy chủ ID sử dụng để kết hợp truy vấn với trả lời Nó xác định truy vấn kèm với phản hồi Chính mà truy vấn phản hồi phù hợp với ID cho phép client gửi nhiều query lúc mà không cần phải chờ trả lời - QDCOUNT: 16 bit, quy định số lượt truy cập vào trường Truy vấn (Question) - ANCOUNT: 16 bit, quy định số ghi trường Phản hồi (Answer) Có thể trường hợp khơng có ghi phản hồi tin - NSCOUNT: 16 bit, quy định số lượng tên ghi nguồn trường Authority section Có thể trường hợp khơng có ghi có thẩm quyền thời điểm - ARCOUNT: 16 bit, quy định số lượng ghi nguồn trường Additional Có thể trường hợp khơng có ghi thêm vào tin  Phần truy vấn (The DNS question) Thơng thường, có truy vấn tin, nhiên số lượng truy vấn cho phép cách bất kỳ, xác định QDCOUNT Cấu trúc chung cho sau: - QNAME: tên trường, tên truy vấn Trong DNS, ký hiệu “.” không sử dụng với tên miền Mỗi phần tên miền (thường thể dấu chấm) thể byte chứa chiều dài chuỗi Tên miền kết thúc đánh dấu zero (chuỗi cuối có độ dài 0) - QTYPE: 16 bit, đặc tả kiểu truy vấn kiểu RR yêu cầu trả lời - QCLASS: 16 bit, đặc tả lớp ghi nguồn yêu cầu -  Phần phản hồi (The DNS Answer) Chứa thành phần: thành phần trả lời, thành phần máy chủ xác thực thông tin thêm Bản thân phần trả lời chứa thành phần trả lời Thành phần máy chủ xác thực tên lưu trữ tên máy chủ NS.Thông tin thêm thường lưu địa IP máy chủ xác thực Các thành phần tài nguyên thông dụng lưu giữ máy chủ tên sử dụng định dạng sau: - NAME: tên miền, định dạng với trường QNAME truy vấn - TYPE: 16 bit giá trị Kiểu bộ, định dạng với QTYPE - CLASS: 16 bit giá trị Lớp, định dạng với QCLASS - TTL: 32 bit giá trị Giới hạn kết thúc RR, thời gian mà trả lời lưu máy chủ lưu trữ có giá trị - RDLENGHT: 16 bit giá trị chiều dài RDATA - RDATA: phần lại RR (địa IP hay tên miền)  Phần quyền truy nhập (Authority section) Authority record có cấu cấu trúc giống hệt với phần phản hồi (Answer) Ngoài chúng bao gồm ghi server bắt buộc khác  Phần ghi bổ sung (Additional Information) Tương tự với phần trên, phần ghi bổ sung có cấu trúc giống với phần phản hồi Ngồi chứa ghi hữu ích khác Ví dụ: phần Câu trả lời Phản hồi cho truy vấn MX bao gồm ghi nguồn cung cấp tên máy chủ theo quy tắc mail server Phần thêm vào bao gồm ghi Kiểu A cung cấp địa IP cho tên máy chủ theo quy tắc mail server Vấn đề bảo mật DNS 3.1 Các điểm yếu DNS Do client bình thường tin tưởng thơng tin phân giải DNS Server cung cấp Do đó, DNS Server bị cơng mục đích nhằm thay đổi thông tin phân giải trả cho client Điền thật nguy hiểm cho client nhận thông tin phân giải bị “nhiễm bẩn” 3.1.1 Tấn công đầu độc cache (cache poisoning attack) Như đề cập phần lý thuyết bên trên, DNS Server sau trả thông tin phân giải vào cache (cache DNS Server), mục đích để tối ưu cho việc phân giải lần sau Lợi dụng chế này, attacker tiến hành đầu độc cache DNS Server Có vài cách để thực việc : Cách thứ : thiết lập DNS Server giả mạo với record độc hại Mục đích kẻ công muốn dẫn client phân giải tên địa IP giả mạo, ví dụ client cần phân giải địa www.cnn.com trả địa IP giả 66.66.66.66 Khi record giả tồn cache DNS Server nạn nhân, truy vấn www.cnn.com chuyển hướng đến 66.66.66.66, máy tính đặc kiểm sốt attacker, thơng tin đến www.cnn.com attacker forward đến đối tượng thật www.cnn.com ngược lại Do client cuối khơng biết có tồn máy “man in the middle” - Cách thứ : gửi spoofed reply đến client nạn nhân thông qua giúp đỡ sniffer Thay thiết lập DNS Server giả mạo, attacker đặt vào vị trí client DNS Server, attacker ngăn chặn request client gửi đến DNS Server sau gửi gói tin reply với thông tin sai đến client Xin nhắc lại client chấp nhận gói tin reply với thông số gửi ban đầu Transaction ID, địa IP số port Để biết thơng số này, attacker nghe để capture lại gói tin mạng Sau có thơng số đầy đủ, attacker tạo gói tin reply DNS giả để gửi đến cho client Nội dung gói tin chứa thơng tin sai trái phục vụ cho mục đích đen tối attacker Tuy nhiên hạn chế phương pháp gói tin reply phải attacker phải đến trước gói tin hợp lệ DNS Server Nếu gói tin hợp lệ DNS Server đến trước cách cơng khơng thực Đó client chấp nhận gói tin reply hợp lệ đến trước, làm ngơ (ignore) gói tin đến sau Có nhiều cách để thực ý đồ attacker, để tăng khả thành công phương pháp này, attacker tiến hành cơng từ chối dịch vụ (DOS) để làm chậm hoạt động DNS Server Do phải capture gói tin để lấy thơng số gói tin request DNS, việc capture gói tin khó thực mơi trường mạng switch (switched netword) Do đó, kỹ thuật công ARP snoofing phải thực trước - Cách thứ : gửi lượng lớn snoofing reply đến client nạn nhân Kỹ thuật công dựa vào số ID DNS snoofing đòi hỏi kẻ cơng phải biết xác số ID giao dịch client server Điều thực cách gửi lượng lớn gói tin reply chứa số Transaction ID khác đến client, hy vọng số gói tin gửi đến client hợp lệ Trên thật tế, số ID chiếm byte nhớ, có tất 65525 trường hợp Vì vậy, cách gửi 65525 gói tin reply (mỗi gói tin có số ID khác nhau), số chúng chắn phù hợp với số Transaction ID giao dịch client server, đồng thời làm ngập lụt (fool) máy nạn nhân Với cách công này, attacker không cần phải nghe số Transaction ID giao dịch client server Nhưng vấn đề nên tiến hành thực cơng? Đó là, làm để biết client thực truy vấn DNS? Đây việc gây khó khăn cho phương thức công - Cách thứ : attacker gửi lượng lớn snoofed reply đến DNS Server Trong cách thứ 3, attacker biết client thực truy vấn Tuy nhiên, thật tế, attacker tự thực truy vấn sau gửi gói tin reply giả mạo đến DNS Server Sau đó, DNS Server chứa thông tin bị đầu độc Trở ngại phương pháp gói tin reply phải chứa số Transaction ID số port mà DNS Server victim sử dụng Để giải vấn đề này, số Transaction ID attacker sử dụng phương pháp birthday attack Trên DNS Server source port sử dụng không đổi client Lợi dụng điều này, attacker yêu cầu DNS Server victim phân giải địa tên domain attacker Trên máy này, sau nhận truy vấn attacker biết source port sử dụng DNS Server victim Dựa tính tốn này, với số source port biết, attacker thực gửi 650 request 650 reply giả mạo đến DNS Server victim Xác suất thành công phương pháp công đạt khoản 96% tỉ lệ thành công 3.1.2 Tấn công tràn đệm (buffer overflow attack) Là dạng công vào vùng nhớ đệm máy chủ DNS Server để thực thi dòng lệnh máy chủ Đây khơng phải gói tin response chứa thông tin độc hại (như chứa tên dài, chiều dài gói tin lớn) làm cho việc ghi đè lên vùng nhớ đệm victim trở nên tải, cho phép thực thi việc leo thang chiếm quyền máy tính Với quyền truy cập chiếm được, attacker sửa đổi thông tin file zone 3.1.3 Tấn công q trình zone transfer (Zone transfer attack) Mục đích việc công để đưa thông tin khơng lên server dự phòng (slave server) thơng qua tiến trình zone transfer bình thường server server dự phòng Để ngăn chặn việc này, DNS Server sử dụng access control list Danh sách chứa địa IP máy server phép zone transfer 3.1.4 Tấn công từ chối dịch vụ (Denial of Service Attack) Là kiểu công phổ biến với request dồn dập để làm ngập lục server, làm cho server chậm chạm để chấp nhận request hợp lệ Tuy nhiên, DNS, việc thực DoS đạt cách sử dụng vài loại resource record file zone Cụ thể, Name Server (NS) record dùng để xác định chứng nhận name server cho domain, ví dụ : “ibm.com IN NS ns.ibm.com” Nếu attacker đầu độc cache DNS Server với NS record ví dụ “ibm.com IN NS ns.attacker.com”, server tham chiếu đến ns.attacker.com để phục vụ yêu cầu truy vấn client địa máy ibm.com Lúc từ chối tất client có tên dịch vụ cung cấp ibm.com Mặc khác, Canonical Name (CNAME) record, dùng để ánh xạ tên bí danh với tên thật, sử dụng Cụ thể, attacker đầu độc cache DNS Server với CNAME record “www.vnnetpro.com IN CNAME www.vnnetpro.com”, với việc tham chiếu đến nó, client yêu cầu truy vấn địa www.vnnetpro.com, truy vấn bị lặp vơ tận 3.1.5 Tấn công phương thức cập nhật động (Dynamic update attack) Trong vài trường hợp, sau chỉnh sửa zone file DNS Server, server khởi động lại để thay đổi có hiệu lực Nhưng khối lượng cần thay đổi lớn, hoạt động server khơng hoạt động bình thường trước Để thay đổi vùng liệu cách hiệu quả, tính dynamic update sử dụng (xem RFC 2136 [3]), cho phép tự động thay đổi (chẳng hạn việc thêm xóa) record DNS Server dịch vụ hoạt động bình thường khơng bị gián đoạn Với tính này, name server chấp nhận nguồn thơng tin cập nhật từ bên ngồi ứng dụng cho thông tin cá nhân cập nhật cách tự động Chức dynamic update chủ yếu sử dụng cho máy chạy dịch vụ DHCP, sau gán IP cho client, DHCP Server sử dụng giao thức cập nhật động (dynamic update protocol) để cập nhật tên máy với địa IP phù hợp Thật khơng may, tiến trình cập nhật động khơng bảo mật Attacker dễ dàng thay đổi vùng zone data DNS Server cách gửi gói tin cập nhật động cách liên tục (bằng giao thức UDP) 3.2 Bảo mật DNS Server - Dùng chuẩn DNSSEC để cung cấp chế độ bảo vệ, chống công vào cache - Đặt mật mạnh cho DNS server - Tắt tính đệ quy server ủy quyền (Delegated Name Servers) cách check vào ô Disable recursion (đồng nghĩa với việc disable tính forwarder) thẻ Advanced Theo mặc định name server hỗ trợ tính recursive, tắt tính thân name server liên lạc với theo kiểu nonrecursive - Ngăn không cho thực chuyển vùng trái phép cách sử dụng Access control list, máy tính có địa IP nằm danh sách thực trình chuyển vùng với DNS Server CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG Môi trường làm việc - Hệ điều hành Window - Ngơn ngữ lập trình C - Cơng cụ Dev C++ Triển khai - Người dùng nhập vào địa hostname - Kết quả: Kết Quả Chương Trình Đánh giá Chương trình trả số ghi câu hỏi, số câu trả lời, số máy chủ có thẩm quyền số ghi bổ sung Chương trình hiển thị địa IPv4 tương ứng với tên miền mà người dùng nhập CHƯƠNG 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận - Những vấn đề đạt được: + Trong trình làm đồ án, với kiến thức học tự tìm hiểu em hiểu DNS giao thức UDP + Mặc khác em cải thiện kĩ lập trình với ngơn ngữ C cách sử dụng DevC++ - Những vấn đề chưa đạt được: + Do thời gian có hạn kiến thức em hạn chế nên tồn số vấn đề giao diện chưa đẹp mắt, chưa hỗ trợ truy vấn nghịch đảo (IP dịch ngược thành tên miền) Hướng phát triển - Tiếp tục nghiên cứu lý thuyết thực hành - Khắc phục vấn đề tồn chưa giải - Xây dựng chương trình hoàn thiện ... phát triển -Xây dựng thêm giao diện -Sử dụng thêm nhiều thuật tốn khác để so sánh PHẦN II: LẬP TRÌNH MẠNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Hệ thống tên miền DNS 1.1 Tổng qua hệ thống DNS DNS từ viết tắt... Kết luận 19 Hướng phát triển 19 PHẦN II: LẬP TRÌNH MẠNG 20 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 20 Hệ thống tên miền DNS 20 1.1 Tổng qua hệ... .21 1.3 Cách đọc quy tắc đặt tên miền 21 Cơ sở liệu DNS .22 2.1 Cách phân bố liệu quản lý domain 22 2.2 Cơ chế phân giải tên 23 2.3 Phân loại

Ngày đăng: 29/05/2018, 17:15

TỪ KHÓA LIÊN QUAN

w