Active Directory và FSMO roles
Trong phần trước, chúng ta đã được biết đến Active Directory, với một rừng (forest) các cây miền (domain tree), trong đó tên của mỗi miền cũng đồng thời là vị trí của chúng trong forest. Với cấu trúc cây phân tầng tự nhiên của Active Directory, bạn có thể dễ dàng đoán biết được các miền ở gần phía ...
Trong phần trước, chúng ta đã được biết đến Active Directory, với một rừng (forest) các cây miền (domain tree), trong đó tên của mỗi miền cũng đồng thời là vị trí của chúng trong forest. Với cấu trúc cây phân tầng tự nhiên của Active Directory, bạn có thể dễ dàng đoán biết được các miền ở gần phía trên là những miền quan trọng nhất (đôi khi có các Domain Controller bên trong các miền đó). Trong bài này chúng ta sẽ thảo luận quy tắc các Domain Controller riêng lẻ phải tuân thủ bên trong Active Directory forest.
Cũng giống như Active Directory, Windows NT domain hỗ trợ sử dụng đa Domain Controller. Domain Controller chịu trách nhiệm thẩm định thông tin đăng nhập của người dùng. Do đó, nếu Domain Controller không hoạt động, sẽ không có bất kỳ ai được phép đăng nhập vào mạng. Microsoft nhận thức sớm được điều này nên thiết kế Windows cho phép sử dụng đa Domain Controller cùng một lúc. Nếu một Domain Controller bị hỏng, Domain Controller khác có thể thay thế nó, giúp hoạt động thẩm định đăng nhập mạng không bị gián đoạn. Có nhiều Domain Controller cũng cho phép miền liên quan đến hoạt động tải được chia sẻ bởi đa máy tính, tránh đẩy gánh nặng lên toàn bộ một server đơn.
Mặc dù Windows NT hỗ trợ đa Domain Controller trong một miền, nhưng luôn có một Domain Controller được xem là quan trọng nhất. Người ta gọi đó là Primary Domain Controller (máy điều khiển miền chính) hay PDC. Bạn có thể nhớ lại là, một Domain Controller bao gồm một cơ sở dữ liệu chứa tất cả thông tin tài khoản người dùng bên trong miền (tất nhiên còn nhiều thứ khác). Cơ sở dữ liệu này được gọi là Security Accounts Manager, hay SAM.
Trong Windows NT, PDC lưu trữ bản copy chính của cơ sở dữ liệu. Các Domain Controller khác trong miền Windows NT được gọi là Backup Domain Controller (Domain Controller dự trữ), hay BDC. Mỗi lần thực hiện thay đổi trên cơ sở dữ liệu của Domain Controller, thay đổi này sẽ được ghi vào PDC. Sau đó PDC sao chép thay đổi ra tất cả các BDC khác trong miền. Theo nghĩa thông thường, PDC chỉ là Domain Controller trong miền Windows NT, là miền mà các bản update có thể được sử dụng. Nếu PDC bị lỗi, sẽ có cách thức điều khiển từ xa một BDC tới PDC, cho phép Domain Controller hoạt động theo đúng chức năng của nó trong miền, nhưng chỉ với vai trò PDC.
Các miền Active Directory hơi khác một chút. Active Directory sử dụng mô hình sao chép đa chủ, tức là mọi Domain Controller trong miền đều có thể ghi. Ở đây không còn khái niệm PDC hay BDC. Nếu một người quản trị cần thực hiện thay đổi trên cơ sở dữ liệu Active Directory, thay đổi này được áp dụng cho bất kỳ Domain Controller nào trong miền, và sau đó được sao chép tới các Domain Controller còn lại.
Mô hình sao chép đa chủ được đánh giá là ý tưởng không tồi. Nó mở ra cánh cửa mới cho các thay đổi mâu thuẫn trái chiều. Chẳng hạn, chuyện gì sẽ xảy ra nếu hai quản trị viên khác nhau áp dụng các thay đổi mâu thuẫn cho hai Domain Controller rải rác ở hai vị trí trong cùng một thời điểm?
Thông thường, Active Directory dành quyền ưu tiên cho các thay đổi mới nhất. Nhưng trong một số trường hợp, phương pháp này không thể giải quyết được xung đột nghiêm trọng. Do đó, Microsoft đưa ra gợi ý là tốt hơn hết bạn nên ngăn ngừa xung đột từ khi chúng chớm xuất hiện hoặc chưa xuất hiện, còn hơn là giải quyết chúng sau khi đã xảy ra.
Trong các trường hợp này, Windows cung cấp cho chúng ta giải pháp chỉ định một số Domain Controller thực hiện vai trò Flexible Single Master Operation (FSMO). Về cơ bản, sử dụng FSMO có nghĩa là các miền Active Directory hỗ trợ đầy đủ mô hình sao chép đa chủ, ngoại trừ trong một số trường hợp riêng nhất định, miền được khôi phục sử dụng mô hình đơn chủ. Có ba vai trò FSMO khác nhau được gán ở mức domain, và hai vai trò bổ sung gán ở mức forest.
Có 5 FSMO role khác nhau, mỗi role làm một chức năng, nhiệm vụ khác nhau để Active Directory có thể hoạt động được.
a) PDC Emulator:
- Đây là role mà được sử dụng nhiều nhất và tính năng rộng nhất trong tất cả FSMO. Domain Controller nào giữ role này thì cực kỳ quan trọng trong môi trường mix mode (Có nghĩa là tồn tại BDC WinNT). Mà cho dù hệ thống mạng của bạn có thuần Windows 2000 hoặc Windows 2003 đi nữa thì role này vẫn có rất nhiều việc để làm.
VD: PDC Emulator thực hiện làm nhiệm vụ máy chủ thời gian gốc (Root time server) để đồng bộ đồng hồ của tất cả máy trạm trong một forest (rừng). Rất rất quan trọng, khi máy trạm của bạn bị lệch thời gian khá nhiều, thì việc xác thực kerberos sẽ bị thất bại và user sẽ không logon vào được domain.
- Tính năng thứ 2 của nó là thực thi các thay đổi của GPO (Group policy object).
VD: Khi bạn tạo một new GPO đầu tiên thì GPO này sẽ nằm trong folder SYSVOL, và việc replicate đến các domain khác là do PDC Emulator thực hiện.
- Tính năng thứ 3 nữa là role này sẽ đảm nhận nhiệm vụ nhận biết sự thay đổi password, account lockout của user và replicate nó đến các domain khác.
Mỗi domain trong một forest sẽ có tối thiểu 1 PDC emulator. Như vậy nếu bạn có 4 domain trong một forest, thì bạn sẽ có 4 PDC emulator.
b) RID Master:
-
Mỗi domain trong một forest chắc chắn sẽ có 1 Domain Controller giữ role này. Role này làm nhiệm vụ cung cấp một dãy RIDs (relative IDs) dịch đại loại là mã số định danh.
-
RIDs được sử dụng khi bạn tạo một đối tượng (User hoặc Computer) bởi vì khi đó nó sẽ tạo một security ID (SID) được kết hợp giữa SID và RID trong dãy này. Vì thế khi bạn bị chết cái role RID này, đến một lúc nào đó dãy số RID đã hết thì bạn sẽ không bao giờ tạo thêm được user mới hoặc computer mới trong AD.
Đây là lý do tồn tại RID master role, nó giám sát và cung cấp dãy RID mới khi dãy RID cũ được cấp gần hết.
c) Infrastructure Master:
- Mục đích của role này là đảm bảo được việc cross-domain (Các domain quan hệ với nhau như child-child, child-parent hoặc tree-tree) được quản lý và tham chiếu đúng.
VD: Khi bạn add một user từ một domain vào một security group trong một domain khác thì Infrastructure này làm nhiệm vụ này. Đảm bảo là chỉ đúng user đó và đúng group đó.
- Role này thì vô tác dụng khi bạn chỉ có một domain duy nhất. Chỉ có tác dụng khi nhiều domain và cũng ít khi nào sử dụng do admin phân quyền như thế nào thôi.
d) Schema master:
-
Khác với 3 role kể trên, role này chỉ duy nhất trong một rừng, tức là trong lần promo AD đầu tiên tạo forest. Có nghĩa là, đây là role duy nhất trong forest, làm nhiệm vụ replicate cấu trúc của schema AD đến các domain khác trong một rừng.
-
Role này ít khi thay đổi, thay đổi khi setup các ứng dụng cần mở rộng thuộc tính của AD như Mail exchange, OCS v.v…
e) Domain master:
- Đây cũng là role duy nhất có trong một forest. Làm nhiệm vụ như add child domain hoặc tree vào root domain...
VD: Bạn có domain là abc.com, bạn muốn add một child domain là hanoi.abc.com thì vô phương cứu chữa nếu role này bị failed.
Việc nắm được Domain Controller nào đang nắm giữ FSMO roles là rất quan trọng, ví dụ trong trường hợp người quản trị muốn tạo thêm 1 Additional Domain Controller cùng với 1 Primary Domain Controller sẵn có; hay khi muốn nâng cấp Primary Domain Controller từ Windows Server 2008 lên 2012... Ở bài viết này, chúng ta sẽ thực hiện việc tạo thêm 1 Additional Domain Controller, sau đó thực hiện transfer FSMO roles từ Primary Domain Controller sang Additional Domain Controller. Hiện tại, mình đã có sẵn một server chạy Windows Server 2012 đã promote lên làm Primary Domain Controller (PDC). IP: 192.168.2.2 Domain: infra.com DC name: AD.infra.com Trên PDC, chạy câu lệnh netdom query fsmo, ta có thể thấy PDC này đang nắm giữ đủ 5 FSMO roles. Trên Windows Server 2012 IP: 192.168.2.3, DC name: ADBACKUP.infra.com tiến hành promote lên làm Additional DC. Nhận replicate database từ PDC chính AD.infra.com Sau khi Install thành công, restart lại server. Server đã promote lên ADC thành công. Tiếp theo, chúng ta tiến hành transfer FSMO role từ server AD sang server ADBACKUP. Tại server ADBACKUP: Trên cửa sổ cmd, gõ ntdsutil: Nhập roles để chuyển sang fsmo maintenace: Nhập connections để chuyển sang server connections: Nhập connect to server ADBACKUP (server cần được transfer roles sang) Ấn q để quay lại fsmo maintenance: Nhập transfer naming master để tiến hành transfer Domain Naming Master role sang server ADBACKUP: Role thứ nhất đã được transfer, tiếp theo transfer Infrastructure Master role: Transfer PDC Emulator role: Transfer RID Master role: Transfer Schema Master role: Sau khi transfer đủ 5 roles, kiểm tra lại thông qua lệnh netdom query fsmo: Ta có thể thấy, 5 role đã được transfer sang server ADBACKUP, đồng nghĩa với việc server ADBACKUP đã lên làm Primary DC, và server AD sẽ chuyển xuống làm Backup DC. Thông qua việc này, ta có thể shutdown server AD để nâng cấp, sửa chữa... mà không ảnh hưởng đến việc xác thực của user. Trên đây là tổng quan về FSMO roles, và cách transfer FSMO roles giữa 2 DC. Ở các bài tiếp theo, chúng ta sẽ tìm hiểu một số dịch vụ khác của Windows Server.