W2K8 - 2 - Tong quan ve AD DS (tt)



(tiếp theo của W2K8 - 1 - Tong quan ve AD DS)

Domain và Domain Tree


Trong một forest, AD dựa vào hai khái niệm là domain tree và domain để tạo ra các vùng quản trị nhỏ hơn. Cơ sở dữ liệu của AD ở mức forest sẽ được quản lý bởi các domain tree và domain.

Domain (đầy đủ là active directory domain) là một tập hợp các đối tượng trong một hệ thống mạng dựa trên AD. Các đối tượng gồm người dùng, nhóm, máy tính, máy tin. Thông tin về các đối tượng được lưu trong một cơ sở dữ liệu tập trung trên máy DC. Tên của domain được đặt theo chuẩn DNS.

Domain tree là tập hợp gồm một hoặc nhiều domain có quan hệ với nhau theo cấu trúc cha-con. Một forest có thể có một hoặc nhiều domain tree.

Hình 1 minh họa một domain tree đơn giản gồm một domain cha (congty.com) và hai domain con (dalat.congty.com và saigon.congty.com).


Mỗi một domain sẽ có một domain partition (tên gọi khác là domain naming context). Domain partition chứa thông tin về các đối tượng trong domain, gồm: người dùng, nhóm người dùng, máy tính, máy tin, OU,...v.v. 

Các thông tin của domain partition sẽ được đồng bộ tới tất cả các DC trong cùng một domain. Tất nhiên, các DC cũng nhận được thông tin đồng bộ ở mức forest là schema partition và configuration partition.

Việc đồng bộ các thông tin của domain partition giúp thực hiện: dự phòng kiểu dư thừa (redundancy), thiết lập hệ thống chịu lỗi (fault tolerance), cân bằng tải (load balancing) trong một domain.

Mặc dù không được xem là một partition chính thức, nhưng global catalog cũng được đồng bộ ở mức forest. Không giống như domain partition, global catalog không được đồng bộ tới tất cả DC, mà nó chỉ được đồng bộ tới các DC đã được cấu hình là một global catalog server. Global catalog server là DC mà có chứa global catalog.

Từ Windows Server 2003, AD sẽ có thêm partition thứ tư là application partition. Dựa trên application partition, người quản trị mạng có thể lựa chọn thông tin để thực hiện đồng bộ. Ví dụ, có thể thiết lập chế độ đồng bộ DomainDNSZones tới tất cả các DNS server trong một domain, hoặc đồng bộ ForestDNSZones tới tất cả các DNS server trong một forest.

Ví dụ, hệ thống mạng ở Hình 1 sẽ có các thông tin sau đây được đồng bộ:
-          Mỗi DC trong domain congty.com sẽ có bản sao của schema partition, configuration partition và domain partition của congty.com.
-          Mỗi DC trong domain dalat.congty.com sẽ có bản sao của schema partition, configuration partition và domain partition của dalat.congty.com.
-           Mỗi DC trong domain saigon.congty.com sẽ có bản sao của schema partition, configuration partition và domain partition của saigon.congty.com.
-          Mỗi DC trong toàn bộ forest mà được cấu hình là global catalog server sẽ có bản sao của global catalog.

 

OU (Organization Unit)


OU (đơn vị tổ chức) là một đối tượng trong AD, được sử dụng để chứa các tài nguyên mạng như người dùng, nhóm người dùng, máy tính …v.v. Các tài nguyên này có yêu cầu về bảo mật và quản lý tương tự nhau.

Sử dụng OU để chia nhỏ các tài nguyên trong hệ thống mạng giúp dễ quản trị. Một domain có thể có một hoặc nhiều OU.

Trong OU có thể tạo một hoặc nhiều OU con, các OU được tổ chức theo cấu trúc phân cấp và có quan hệ theo kiểu cha – con. Tuy nhiên, việc tổ chức OU thành quá nhiều cấp có thể gây ra khó khăn cho công việc quản trị.

Có thể dựa trên mô hình tổ chức của công ty để tạo các OU. Ví dụ, mỗi phòng ban là một OU. Cũng có thể dựa vào nhu cầu sử dụng các tài nguyên mạng của người dùng để tạo các OU, ví dụ, tất cả người dùng sử dụng tài nguyên giống nhau sẽ được nằm trong cùng một OU.

Sử dụng OU giúp việc quản trị dễ dàng hơn. Cụ thể bạn chỉ cần thiết lập chính sách liên quan đến bảo mật một lần cho một OU, sau đó, các chính sách này sẽ tác động lên các OU con, các tài khoản người dùng và tài khoản máy tính trong OU đó (lưu ý: không tác động trên nhóm người dùng).

Để giảm bớt một số công việc cho nhà quản trị hệ thống mạng, nhà quản trị mạng có thể ủy quyền cho một ai đó trong OU, thay mặt nhà quản trị mạng thực hiện một số công việc đơn giản như: thiết lập lại mật khẩu người dùng, thay đổi thời gian đăng nhập hệ thống …v.v. Trong OU cho phép làm việc này bằng chức năng ủy quyền quản trị (delegation of control).

Các đối tượng OU có thể chứa gồm:
-          User (tài khoản người dùng).
-          Group (nhóm người dùng).
-          Contact ().
-          Printer (máy in).
-          Shared folder (các thư mục chia sẻ).
-          Computer (tài khoản máy tính).
-          OU (các OU con).
-          InetOrgPerson().

 

Schema (giản đồ)


Schema trong AD được sử dụng để định nghĩa các loại đối tượng, giúp phân biệt được các loại đối tượng khác nhau trong AD. Ví dụ: một tài khoản người dùng, nhóm người dùng cần những thông tin gì để mô tả các đối tượng? Mặc định, AD có một schema cơ sở, tùy theo nhu cầu sử dụng có thể mở rộng hoặc thay đổi các thuộc tính (thông tin mô tả) của schema này.

Mỗi tài nguyên trong AD được xem là một đối tượng (object), mỗi đối tượng có một tập các thuộc tính (attribute) đi kèm, schema sẽ định nghĩa các đối tượng này. Như vậy, schema là một cơ sở dữ liệu quan trọng, nó định nghĩa tất cả các đối tượng trong AD, và có thể xem schema chính là hình hài của AD.

Schema gồm hai thành phần: lớp đối tượng (object class) và  các thuộc tính (attribute). Ví dụ, người dùng KeToan1 là thể hiện của lớp đối tượng user, máy in MayLaser là thể hiện của lớp đối tượng printer.

Mỗi lớp đối tượng sẽ được định nghĩa bằng danh sách các thuộc tính, nhằm phân biệt các lớp đối tượng khác trong schema. Các thuộc tính sẽ được schema định nghĩa một lần duy nhất, tuy nhiên, thuộc tính này sẽ được sử dụng nhiều lần ở các lớp đối tượng khác nhau.

Có hai loại thuộc tính: thuộc tính bắt buộc (required), ví dụ tên đăng nhập của người dùng và thuộc tính tùy chọn (optional), ví dụ: địa chỉ, số điện thoại của người dùng.

Một số lớp đối tượng được tạo sẵn khi cài đặt AD:
-          Users
-          Groups
-          Computers
-          Domain controllers
-          Printers

Một số thuộc tính quan trọng giúp phân biệt các đối tượng với nhau là:
-          Unique name (định danh duy nhất), được sử dụng để xác định tính duy nhất của đối tượng trong cơ sở dữ liệu. Định danh này được cấp khi đối tượng được tạo ra.
-          GUID (Globally Unique Identifier), là một số hệ 16 có độ dài 128 bít, được AD cấp cho mỗi đối tượng, khi đối tượng được tạo ra. Đây là số duy nhất trong phạm vi một forest. Số này không bị thay đổi giá trị, kể cả trong trường hợp đối tượng bị thay đổi tên. Số này cũng không được sử dụng lại, ngay cả trong trường hợp đối tượng đã bị xóa và được tạo lại với tên giống với tên ban đầu.
-          Các thuộc tính bắt buộc phải có của đối tượng, là các thuộc tính cần thiết cho việc sử dụng, ví dụ tài khoản người dùng phải có tên duy nhất và phải có mật khẩu khi được tạo ra.
-          Các thuộc tính tùy chọn của đối tượng, đây là các thông tin bổ sung cho đối tượng nó không liên quan đến chức năng chính của đối tượng. Đây là thông tin thuộc loại “có thì tốt” mà “không có thì cũng không sao”. Ví dụ số điện thoại, địa chỉ của một tài khoản người dùng.

Schema cho phép bổ sung hoặc thay đổi các đối tượng cũng như các thuộc tính. Tuy nhiên, các đối tượng trong schema được bảo vệ bằng ACL, do vậy chỉ có người có quyền hợp lệ mới được phép truy cập và thay đổi. Administrator có toàn quyền quản lý ACL này.

 

Active Directory Site và Subnet


Site (theo định nghĩa) là một hoặc nhiều subnet IP được kết nối bằng đường truyền có tốc độ cao. Trong nhiều trường hợp, người ta coi tất cả các máy tính nằm trong một mạng LAN là một site. Trong môi trường AD, site được sử dụng để tối ưu việc đồng bộ thông tin của AD trong một phạm vi địa lý cụ thể.

Tất cả các DC trong cùng một site sẽ được đồng bộ hóa bằng chức năng đồng bộ hóa nội site (intrasite), việc đồng bộ hóa giúp các DC cập nhật những thay đổi đối với AD. Administrator sẽ thiết lập thời gian đồng bộ hóa nội site theo chu kì tùy ý. Mô hình (topo) đồng bộ hóa được tạo ra và duy trì bởi tiến trình KCC (Knowledge Consistency Checker). KCC hoạt động dựa trên các thông tin được khai báo trong Active Directory Sites and Services.

 
 ---------------------------
Tài liệu đã tham khảo:
Windows Server 2008 Active Directory Configuration, Exam 70-640, Microsoft.
--------------------------------
Cập nhập: 2014/4/30


Chuyen doi dia chi mang - NAT (Network Address Translation) 1



Chuyển đổi địa chỉ mạng

(NAT-Network Address Translation)

Mục đích:

-          Hiểu về quá trình NAT.
-          Thực hành quan sát quá trình NAT bằng Packet Tracer.

NAT

NAT là một giải pháp nhằm đối phó với tình trạng cạn kiệt địa chỉ IPv4. Tình trạng cạn kiệt của IPv4 đã được cảnh báo vào cuối những năm 1980, và tới năm 2011 tình trạng này đã xảy ra ở một số nơi[1].

Để đơn giản, phần này sẽ mô tả hoạt động của NAT trên thiết bị modem ADSL tại hộ gia đình hoặc một công ty nhỏ. Tất nhiên NAT có thể được tích hợp trên nhiều thiết bị mạng khác.

Modem ADSL ngoài chức năng chuyển đối tín hiệu từ dạng số sang dạng tương tự và ngược lại, nó còn được tích hợp thêm nhiều chức năng khác như DHCP, NAT…v.v.



Quan sát Hình 1, modem ADSL có hai loại cổng: cổng phía trong, và cổng phía ngoài.

-          Cổng phía trong là cổng được sử dụng để trao đổi dữ liệu với các thiết bị bên trong nhà hay trong công ty. Cổng này được gán một địa chỉ IP nội bộ (private IP). Ví dụ, 192.168.1.1/24.

-          Cổng phía ngoài là cổng được sử dụng để trao đổi dữ liệu với hệ thống mạng Internet thông qua nhà cung cấp dịch vụ Internet (ISP). Cổng này thường được gán một địa chỉ IP công cộng (public IP) do nhà cung cấp dịch vụ cấp phát. Ví dụ, 123.28.124.11/16.

Tình huống giả định: người sử dụng đang ngồi tại máy tính có địa chỉ IP là 192.168.1.3 gửi yêu cầu truy cập trang web www.google.com, và yêu cầu này tới được máy www.google.com. Khi nhận được yêu cầu, máy server của Google sẽ gửi nội dung trang web cho máy tính có địa chỉ IP là 192.168.1.3, tuy nhiên, trên thế giới hiện nay có hàng ngàn máy tính đang được gán địa chỉ IP là 192.168.1.3, vậy Google biết gửi nội dung trang web cho máy tính nào? Đây chính là lý do hệ thống mạng sẽ không cho phép các gói tin có địa chỉ IP nguồn và IP đích là địa chỉ IP nội bộ được phép truyền đi trực tiếp trên hệ thống mạng Internet.

NAT là một trong những giải pháp giúp các máy tính đang được gán địa chỉ IP nội bộ có thể trao đổi dữ liệu với các máy tính khác trên mạng Internet, và vẫn đảm bảo tính duy nhất của các địa chỉ IP. Như trong Hình 1, tất cả các gói tin đi ra ngoài Internet qua modem ADSL sẽ có địa chỉ IP nguồn là 123.28.124.11 và tất cả các gói tin đi từ Internet tới các máy phía trong modem ADSL sẽ có địa chỉ IP đích là 123.28.124.11.

Có thể hiểu một cách đơn giản là, các máy tính phía trong modem ADLS đã mượn địa chỉ IP công cộng (địa chỉ IP đầu ngoài) của modem ADSL để giao tiếp với các máy tính khác trong mạng Internet. Vấn đề ở đây là, khi nhận được gói tin chuyển về từ Internet, làm sao modem ADSL biết được chính xác gói tin đó là của máy tính nào ở bên trong? Để làm được việc này modem ADSL sử dụng một Bảng NAT (NAT translation table) để lưu vết, nhằm chuyển tiếp gói tin cho các máy tính ở bên trong.

Để hiểu về hoạt động của NAT và Bảng NAT, xem xét lại ví dụ: máy tính có địa chỉ IP 192.168.1.3  (gọi tắt là máy client) gửi yêu cầu truy cập trang web www.google.com, cổng 80, địa chỉ IP của máy Google (gọi tắt là máy server) là 74.125.128.99. Chi tiết các bước (xem thêm ở Hình 1):

-          Bước 1, máy client sẽ tạo một gói tin với địa chỉ IP nguồn là 192.168.1.3, port nguồn là 3345 (giá trị của port nguồn là một số tùy ý trong miền giá trị cho trước); địa chỉ IP đích là 74.125.128.99, port đích là 80. Client sẽ gửi gói tin này tới modem ADSL.

-          Bước 2, modem ADSL nhận gói tin từ client, thay đổi giá trị port nguồn thành 5001 (modem ADSL có thể sử dụng một giá trị port nguồn bất kì, miễn là chưa tồn tại trong Bảng NAT), và thay đổi địa chỉ IP nguồn thành 123.28.124.11. Modem ADSL cũng tạo thêm một hàng trong Bảng NAT để lưu trữ thông tin về địa chỉ IP nguồn và port nguồn trước (LAN side) và sau (WAN side) khi thay đổi. Đây chính là thông tin lưu vết, giúp cho việc chuyển tiếp gói tin tới máy client khi server gửi gói tin trả lời. Modem ADSL chuyển tiếp gói tin tới máy server.

-          Bước 3, máy server nhận được gói tin yêu cầu nội dung trang web từ modem ADSL, thực tế là yêu cầu của máy client, tuy nhiên, máy server không quan tâm tới điều này. Server sẽ gửi nội dung trang web về cho modem ADSL với thông tin địa chỉ: IP nguồn là 77.125.128.99, port 80; IP đích là 123.28.124.11, port 5001.

-          Bước 4, khi modem ADSL nhận được gói tin trả lời từ server, nó sẽ tham chiếu đến thông tin đã được lưu trong Bảng NAT để thay đổi lại thông tin địa chỉ trên gói tin và gửi về đúng máy client. Cụ thể IP nguồn là 77.125.128.99, port 89; IP đích là 192.168.1.3, port 3345.

 

Một số vấn đề liên quan đến NAT


NAT đã được sử dụng rộng rãi trong những năm gần đây (2014), tuy nhiên, vẫn có những ý kiến phản đối trong cộng đồng IEFT, một số lý do phản đối liên quan đến:

-          Khái niệm port (port number) đã được sử dụng như một loại địa chỉ ở mức tiến trình, nhưng trong NAT lại được sử dụng để xác định địa chỉ cho một host.

-          Router hay các thiết bị có chức năng giống như router chỉ làm việc với các gói tin cao nhất là ở tầng 3, trong khi NAT có thao tác với giá trị port nằm ở tầng 4.

-          NAT đã vi phạm nguyên tắc làm việc end-to-end. Nguyên tắc này cho rằng, hai host sẽ trao đổi dữ liệu trực tiếp với nhau mà không bị can thiệp vào phần nội dung gói tin dẫn đến việc bị thay đổi địa chỉ IP và giá trị port như trong quá trình NAT.

-          Việc cạn kiệt địa chỉ IP có thể giải quyết bằng giải pháp lâu dài là sử dụng địa chỉ IPv6, chứ không phải là một giải pháp tình thế như NAT.

Ngoài ra, NAT còn gây trở ngại cho các ứng dụng chạy trên nền tảng P2P, ví dụ: chia sẻ tập tin, Voice-over-IP. Trong một ứng dụng chạy trên nền tảng P2P, một peer bất kì (ví dụ peer A) phải có khả năng thiết lập kết nối TCP với các peer khác (ví dụ peer B). Tuy nhiên, nếu peer B nằm sau NAT, nó sẽ không thể hoạt động giống như một server thực thụ và peer A sẽ không thể khởi tạo được kết nối TCP với peer B. Nếu peer A không nằm sau NAT thì vẫn có một số giải pháp để vượt qua trở ngại này. Tìm hiểu thêm về NAT traversal.

 

Thực hành quan sát quá trình NAT trên Packet Tracer


Sử dụng Packet Tracer ở chế độ Simulation (mô phỏng) để quan sát header của gói IP khi gói tin này đi qua router biên đã được thiết lập chế độ NAT.

Mô hình mạng.


Tải bài thực hành D2_PTAct_4_2_3_3.pka trên mạng Internet hoặc tại đường dẫn http://www.mediafire.com/download/bd6uui6r2mt58pw/D2_PTAct_4_2_3_3.pka

Bước 1: kiểm tra mô hình để đảm bảo tất cả các thiết bị đều có thể gửi và nhận gói tin ở chế độ Simulation. Nếu tất cả các đèn báo trạng thái liên kết đều có màu xanh là được, nếu còn có đèn báo màu hổ phách, thực hiện chuyển đổi qua lại giữa hai chế độ Simulation và Realtime một vài lần để đèn báo chuyển sang màu xanh.

Bước 2: ở chế độ Simulation, thực hiện gửi một yêu cầu duyệt web (HTTP request) từ một máy trong mạng tới máy web server.
  1. Chọn máy tính Customer PC, chọn Desktop, chọn Web Browser. Tại đường dẫn URL, nhập địa chỉ của trang web www.ispserver.com. Bấm nút Go.
  2. Quan sát trong cửa sổ Event List, thấy hàng đợi của máy Customer PC đang có hai gói tin là DNS request, và ARP request. Xem nội dung của gói tin ARP request bằng cách bấm vào biểu tượng gói tin trên mô hình mạng hoặc bấm vào biểu tượng gói tin ở dưới cột Info trong cửa sổ Event List.
  3. Quan sát trong cửa sổ PDU Information at Device: Customer PC, cho biết máy Customer PC gửi broadcast một ARP request để tìm địa chỉ MAC tương ứng cho địa chỉ IP nào? Tại sao phải tìm địa chỉ MAC của máy đó? (trả lời: 192.168.1.20; đây là địa chỉ IP của máy DNS server trong mạng nội bộ, máy Customer PC cần có địa chỉ IP của www.ispserver.com nên phải nhờ DNS server tìm giúp, muốn gửi được yêu cầu tới máy DNS server thì phải có địa chỉ MAC của DNS server).
  4. Trong cửa sổ Event List, bấm nút Capture/Forward hai lần. Cho biết thiết bị nào đã trả lời cho gói ARP request xuất phát từ máy Customer PC? Giá trị của địa chỉ MAC? (trả lời: máy www.customerserver.com; Giá trị của MAC là 00E0.B0EA.BDAB)
  5. Trong cửa sổ Event List, bấm nút Capture/Forward hai lần. Máy Customer PC nhận gói trả lời ARP (ARP reply) và tạo gói tin mới. Giao thức của gói tin mới tạo là gì? Có thể bấm vào thẻ Outbound PDU Details của gói tin mới tạo để xem thêm các thông tin chi tiết. (trả lời: DNS, cụ thể là một gói DNS query: tìm địa chỉ IP cho một tên miền).
  6. Trong cửa sổ Event List, bấm nút Capture/Forward hai lần. Bấm vào gói tin tại máy www.customerserver.com. Sau đó bấm vào thẻ Outbound PDU Details. Cuộn xuống dưới để quan sát dữ liệu của tầng Application (Application Layer). Cho biết địa chỉ IP của ISP server (hay www.ispserver.com)? (trả lời: 209.165.202.131; xem trong DNS ANSWER)
  7. Trong cửa sổ Event List, bấm nút Capture/Forward hai lần. Sẽ thấy máy tính Customer PC tạo một ARP request mới. Mục đích của ARP request mới này là gì? (trả lời: máy Customer PC đã biết địa chỉ IP của máy www.ispserver.com, tuy nhiên đây là một địa chỉ IP ở mạng khác, do vậy, nó phải nhờ đến máy server/router/…v.v đóng vai trò là Default Gateway chuyển tiếp gói tin của nó ra ngoài. Trong cạc mạng của máy Customer PC có khai báo Gateway là 192.168.1.1, vì vậy, để gửi gói tin đến Gateway thì cần phải có địa chỉ MAC của nó. Muốn có địa chỉ MAC khi đã biết địa chỉ IP thì phải sử dụng gói ARP request của giao thức ARP).
  8. Trong cửa sổ Event List, bấm nút Capture/Forward 10 lần cho tới khi máy Customer PC đã có đủ thông tin để thiết lập một gói tin yêu cầu nội dung trang web từ máy www.ispserver.com. Gói tin có tên HTTP request.
  9. Trong cửa sổ Event List, bấm nút Capture/Forward ba lần. Bấm vào gói tin tại Customer Router, đây là một router biên đã được thiết lập chế độ NAT. Quan sát nội dung của gói tin tại Customer Router và cho biết địa chỉ inside local và địa chỉ inside global là gì? (trả lời: địa chỉ inside local là 192.168.1.10 và địa chỉ inside global là 209.165.201.2).
-         Địa chỉ inside local là địa chỉ IP nội bộ (private IP) được gán cho các host phía trong của thiết bị NAT.
-         Địa chỉ inside global là địa chỉ IP công cộng (public IP) được cấp bởi nhà quản lý địa chỉ IP (ví dụ ISP), là địa chỉ đại diện cho một hay nhiều địa chỉ IP nội bộ khi trao đổi dữ liệu với các thiết bị trên Internet (ví dụ: địa chỉ IP đầu ngoài của modem ADSL đã trình bày ở phần lý thuyết về NAT). Đơn giản hơn, inside global là địa chỉ IP của cổng phía ngoài thiết bị NAT.
  1. Trong cửa sổ Event List, bấm nút Capture/Forward bảy lần cho tới khi gói HTTP trả lời (HTTP reply) tới được thiết bị Customer Router. Xem xét nội dung của gói HTTP reply để kiểm tra địa chỉ inside local và địa chỉ inside global đã được đổi lại nhằm chuyển tiếp gói tin HTTP reply tới máy Customer PC.
Bước 3: gửi một gói tin HTTP (HTTP request) từ một host bên ngoài tới máy web server ở bên trong thiết bị NAT.

Máy Customer Server cung cấp dịch vụ web cho các máy tính bên ngoài với tên miền là www.customerserver.com. Thực hiện duyệt web từ máy tính ISP Workstation (máy này có địa chỉ IP public) để quan sát hoạt động của NAT. Chuyển Packet Tracer sang chế độ Simulation.
  1. Chọn máy tính ISP Workstation, chọn Desktop, chọn Web Browser, tại đường dẫn URL nhập địa chỉ trang web là www.customerserver.com. Bấm nút Go.
  2. Có thể bấm vào Auto Capture/Play hoặc Capture/Forward để chạy qua các bước liên quan tới ARP và DNS. Dừng lại khi gói HTTP request được tạo ra tại máy ISP Workstation.
  3. Khi gói tin HTTP request đến Customer Router, kiểm tra nội dung của gói tin và cho biết địa chỉ inside local và inside global? (trả lời: địa chỉ inside local là 192.168.1.20; địa chỉ inside global là 209.165.201.5).

Tài liệu đã tham khảo

- Kurose, Ross, “Computer Networking, A top-Down Approach”, Sixth edition, 2013, p349
- Cisco, Lab 4.2.3.3: Examining Network Address Translation (NAT)


[1] http://en.wikipedia.org/wiki/IPv4_address_exhaustion
-------------------------
Cập nhật 2014/4/25

He thong quan ly tap tin NTFS - 6 - MFT - MFT entry



(tiếp theo của He thong quan ly tap tin NTFS - 5 - VBR - BPB vi du)


MFT


MFT (Master File Table) là thành phần quan trọng nhất trong hệ thống NTFS. MFT chứa thông tin về tất cả các tập tin và thư mục trong ổ đĩa logic.

Khi đĩa được định dạng theo NTFS, Microsoft sẽ khởi tạo MFT với kích thước nhỏ nhất có thể, sau này sẽ mở rộng thêm khi có nhu cầu. Cách làm này giúp tăng tính linh hoạt của hệ thống NTFS, MFT có thể mở rộng một cách dễ dàng khi người dùng tăng dung lượng của ổ đĩa logic.

MFT được xem là điểm bắt đầu để đi đến các tập tin trên một ổ đĩa logic, có thể xem nó như là “mục lục” của ổ đĩa logic, xem Hình 20.

Vị trí bắt đầu của MFT được  tính bằng cluster, được lưu trong BPB tại offset 30h, là một số kích thước 8 byte.



Đọc MFT

Từ bảng thông tin của BPB trong VBR, xét 8 byte tại offset 30h, giá trị của 8 byte này cho biết MFT bắt đầu tại cluster: 0x0000 0000 000C 0000 = 786 432.

Đổi sang sector: (lưu ý, số sector của một cluster được lưu trong BPB)

Sector = Cluster * số sector của một cluster

= 786 432 * 8

= 6 291 456

Lưu ý: đây là sector bắt đầu logic, tức là tính từ đầu ổ đĩa logic. Như vậy, sector vật lý sẽ là: 6 291 456 + 63 = 6 291 519 (63 là số sector đứng trước ổ đĩa logic C:\).

Hình 21 dưới đây là một phần nội dung của MFT bắt đầu tại sector 6 291 519.



MFT entry


MFT được chia nhỏ thành các phần bằng nhau gọi là MFT entry. Kích thước của một MFT entry được quy định trong BPB, thường là 1024 byte.

Khi một tập tin hoặc thư mục được tạo ra, sẽ có ít nhất một MFT entry được tạo ra trong MFT, để mô tả thông tin cho tập tin hoặc thư mục đó.

Trong các hệ thống của Microsoft, MFT entry sẽ không bị xóa, khi đã được tạo ra. Ví dụ, khi người dùng tạo tập tin A, một MFT entry cho tập tin A sẽ được tạo ra trong MFT. Khi tập tin A bị xóa, hệ thống sẽ không xóa MFT entry thuộc về tập tin A, mà nó chỉ đánh dấu MFT entry đó là chưa có tập tin nào sử dụng và có thể cấp cho các tập tin khác.

MFT bản chất là một tập tin, do vậy cũng có một MFT entry mô tả cho chính nó, đó chính là MFT entry đầu tiên trong MFT, có tên là $MFT. $MFT mô tả về kích thước và tổ chức của MFT.

Có hai loại MFT entry:

-         MFT entry cho tập tin siêu dữ liệu (metadata file): chứa các thông tin mô tả về cấu trúc tổ chức của hệ thống NTFS.

-         MFT entry cho tập tin dữ liệu (data file): chứa thông tin mô tả cho các tập tin dữ liệu, có thể chứa cả phần dữ liệu của tập tin.

Windows dành một số MFT entry đầu tiên trong MFT cho các tập tin siêu dữ liệu. Các MFT entry còn lại cho các tập tin dữ liệu.

Cấu trúc của MFT entry

MFT entry gồm hai thành phần: header và các attribute.

Header gồm 42 byte đầu tiên được sử dụng để chứa một số thông tin mô tả cho MFT entry.

Phần còn lại của MFT entry được sử dụng để chứa các attribute. Nếu các attribute không sử dụng hết 1024 byte, hệ thống sẽ sử dụng giá trị 0xffffffff để đánh dấu kết thúc.

Hình 22 dưới đây minh họa tổ chức của một MFT entry, gồm header và ba attribute.



Các trường cụ thể của header được thể hiện trong bảng sau.

Offset
Số byte
Mô tả
0x0 – 0x03
4
Dấu hiệu nhận biết MFT entry.
0x04 – 0x05
2
Địa chỉ (offset) của Update sequence.
0x06 – 0x07
2
Số phần tử của mảng Fixup, mảng này chứa các giá trị bị thay thế trong quá trình thao tác với Update sequence.
0x08 – 0x0F
8
$LogFile Sequence Number (LSN): mã định danh MFT entry của file log (log record).
0x10 – 0x11
2
Sequence Number: cho biết số lần MFT entry này đã được sử dụng lại. Giá trị này được tăng lên một đơn vị sau mỗi lần tập tin tương ứng với MFT entry này bị xóa. Mang giá trị 0 nếu MFT entry này chưa được sử dụng.
0x12 – 0x13
2
Reference Count: cho biết số thư mục mà tập tin này được hiển thị trong đó, hay nói cách khác là số thư mục tham chiếu đến tập tin này. Trường này còn có tên gọi khác là hard link count.
0x14 – 0x15
2
Địa chỉ (offset) bắt đầu của các attribute.
0x16 – 0x17
2
Flags:
- giá trị 0x01: MFT entry đã được sử dụng
- giá trị 0x02: MFT entry của một thư mục
- giá trị 0x04, 0x08: không xác định
0x18 – 0x1B
4
Số byte đã được sử dụng trong MFT entry.
0x1C – 0x1F
4
Kích thước vùng đĩa đã được cấp cho MFT entry.
0x20 – 0x27
8
Tham chiếu đến MFT entry cơ sở của nó (Base  MFT Record). Mang giá trị 0 nếu là MFT entry cơ sở. MFT entry cơ sở dùng để chứa các thông tin về các MFT entry mở rộng (Extension Record).
0x28 – 0x29
2
Next attribute ID: mã định danh của attribute kế tiếp sẽ được thêm vào MFT entry.

Ví dụ

Tập tin được tạo trong tình huống ví dụ là Test.txt, như vậy sẽ có một MFT entry cho tập tin Test.txt được tạo ra trong MFT. Để xác định MFT entry này, cách đơn giản nhất là duyệt qua các khối 1024 byte (đây là kích thước của một MFT entry) bằng mắt thường, tại mỗi MFT entry quan sát giá trị tại offset 0x00F2, nếu thấy chuỗi Test.txt thì đó chính là MFT entry cho tập tin Test.txt. Ngoài ra, có thể sử dụng chức năng tìm kiếm của công cụ Disk Editor.

Hình 23 dưới đây là một phần nội dung MFT entry của tập tin Test.txt, nằm tại sector vật lý 6 321 933.



Header của MFT entry này gồm 42 byte đầu tiên, phần tô vàng ở Hình 23. Giá trị của các trường được minh họa ở bảng sau.

Offset
Số byte
Giá trị
Ý nghĩa
0x0 – 0x03
4
“FILE”
Dấu hiệu nhận biết MFT entry là “FILE”, nếu MFT entry bị lỗi giá trị của trường này sẽ là “BAAD”.
0x04 – 0x05
2
0x0030
Địa chỉ (offset) của Update sequence.
0x06 – 0x07
2
0x0003
Số phần tử của mảng Fixup, mảng này chứa các giá trị bị thay thế trong quá trình thao tác với Update sequence
0x08 – 0x0F
8
0x0000 0000 0934 357B
$LogFile Sequence Number (LSN): mã định danh MFT entry của file log (log record).
0x10 – 0x11
2
0x000B
Sequence Number: cho biết số lần MFT entry này đã được sử dụng lại. Giá trị này được tăng lên một đơn vị sau mỗi lần tập tin tương ứng với MFT entry này bị xóa. Mang giá trị 0 nếu MFT entry này chưa được sử dụng. MFT entry này đã được sử dụng 11 lần.
0x12 – 0x13
2
0x0001
Reference Count: cho biết số thư mục mà tập tin này được hiển thị trong đó, hay nói cách khác là số thư mục tham chiếu đến tập tin này. Trường này còn có tên gọi khác là hard link count.
0x14 – 0x15
2
0x0038
Địa chỉ (offset) bắt đầu của attribute đầu tiên, trong MFT entry này là byte thứ 56.
0x16 – 0x17
2
0x0001
Flags:
- giá trị 0x01: MFT entry đã được sử dụng
0x18 – 0x1B
4
0x0000 0168
Số byte trong MFT entry đã được sử dụng. Ví dụ, trong trường hợp này đã sử dụng 0x0168 = 360 byte.
0x1C – 0x1F
4
0x0000 0400
Kích thước vùng đĩa đã được cấp cho MFT entry, Ví dụ: 0x0400 = 1024 byte.
0x20 – 0x27
8
0x0000 0000 0000 0000
Tham chiếu đến MFT entry cơ sở của nó (Base  MFT Record). Mang giá trị 0 nếu là MFT entry cơ sở. MFT entry cơ sở dùng để chứa các thông tin về các MFT entry mở rộng (Extension Record).
0x28 – 0x29
2
0x0004
Next attribute ID: mã định danh của attribute kế tiếp sẽ được thêm vào MFT entry.
 
-------------------
Tài liệu đã tham khảo:
Brian Carrie, File System Forensic Analysis, Addison Wesley Professional, 2005
-------------------
Cập nhật 2014/5/29
----------------------
Đọc thêm
He thong quan ly tap tin NTFS - 7 - Attribute
-----
Bạn muốn tự học HTML bài bản? Xem thêm

He thong quan ly tap tin NTFS - 5 - VBR - BPB vi du



(tiếp theo của  He thong quan ly tap tin NTFS - 4 - VBR - BPB)





Sau đây là phần minh họa các bước để đọc được nội dung BPB trên đĩa cứng thật.

-         Sử dụng phần mềm Disk Editor, đọc MBR của đĩa cứng (sector 0). Định vị vùng partition table, bắt đầu tại địa chỉ (offset) 0x01BE, xem Hình 17.





-         Từ entry mô tả thông tin cho ổ đĩa C:\, xác định được địa chỉ bắt đầu của ổ đĩa C:\ là “3F 00 00 00” = 63.

-         Đọc sector 63, đây là vị trí bắt đầu vùng VBR của ổ đĩa C:\. Kết quả được minh họa trong Hình 18.



-         Từ VBR xác định vùng BPB, bắt đầu tại địa chỉ (offset) B đến 53, gồm 73 byte, xem Hình 19.



-         Giá trị cụ thể của các trường trong BPB được minh họa trong bảng sau.

Địa chỉ
(offset)
Kích thước
(byte)
Giá trị
Giá trị
hệ 10
Mô tả
0Bh
2
0x0200
512
Kích thước một sector là 512 byte.
0Dh
1
0x08
8
Số sector trong một cluster là 8, vậy kích thước một cluster là:
8 x 512 = 4096 B = 4 KB.
0Eh
2
“0000”
0
Chưa sử dụng.
10h
1
“00”
0
Với hệ thống NTFS, luôn mang giá trị 0.
11h
2
“0000”
0
Với hệ thống NTFS luôn mang giá trị 0.
13h
2
“0000”
0
Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
15h
1
0xF8
248
Mã xác định loại đĩa. F8 = Fixed Disk.
16h
2
“0000”
0
Với hệ thống NTFS, luôn mang giá trị 0.
18h
2
0x003F
63
Số sector/track là 63.
1Ah
2
0x00FF
255
Số mặt đĩa (head hay side) là 255.
1Ch
4
0x00003F
63
Sector bắt đầu của ổ đĩa logic C:\ là 63.
20h
4
“00000000”
0
Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
24h
4
“80008000”

Hệ thống NTFS luôn thiết lập giá trị này là “80008000”.
28h
8
0x0000 0000 0283 3A00
42 154 496
Số sector của ổ đĩa
30h
8
0x0000 0000 000C 0000
786 432
Cluster bắt đầu của MFT.
38h
8
0x0000 0000 0000 0002
2
Cluster bắt đầu của MFTMirror (MFT dự phòng)
40h
1 (số có dấu)
0xF6
-10
Kích thước của một bản ghi MFT (MFT entry). Đơn vị tính là byte.
0xF6 là một số có dấu, 0xF6 = 1111 0110 (dạng bù 2), tính ra được giá trị hệ thập phân = -10.
Kích thước của một bản ghi MFT tính bằng 2 ^ |-10| = 1024 byte.
41h
3
“000000”

Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
44h
1 (byte có dấu)
0x01
1
Số cluster của Index Buffer.
45h
3
“000000”

Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
48h
8
0xB428 B05B 28B0 1DF4

Số seri của ổ đĩa (volume serial number).
Khi sử dụng lệnh dir trong cửa sổ dòng lệnh, hệ thống chỉ hiển thị giá trị của 4 byte cuối.
Ví dụ:
C:\> dir
Volume in drive C has no lable. Volume Serial Number is 28B0-1DF4
50h
4
“0000 0000”
0
Không được sử dụng bởi NTFS.
 

---------------------------
Tài liệu đã tham khảo:
Brian Carrie, File System Forensic Analysis, Addison Wesley Professional, 2005
-------------------
Cập nhật 2014/5/29
----------------------
Đọc thêm
He thong quan ly tap tin NTFS - 6 - MFT - MFT entry