Chuyển tới nội dung chính

Xử Lý Lỗi Replication Active Directory: Nguyên Nhân và Giải Pháp

Giới Thiệu

Active Directory (AD) replication là một quá trình thiết yếu giúp đồng bộ hóa dữ liệu giữa các Domain Controller (DC) trong một miền. Quá trình này đảm bảo rằng tất cả các DC đều có cùng một bản sao của cơ sở dữ liệu AD, bao gồm người dùng, máy tính, nhóm và chính sách bảo mật. Khi replication gặp lỗi, các thay đổi được thực hiện trên một DC có thể không được lan truyền đến các DC khác, dẫn đến sự không nhất quán, các vấn đề về xác thực, cấp quyền và hoạt động của người dùng. Việc hiểu rõ nguyên nhân và cách khắc phục lỗi replication là cực kỳ quan trọng để duy trì một môi trường AD ổn định và an toàn.

Bài hướng dẫn này sẽ đi sâu vào các nguyên nhân phổ biến gây ra lỗi replication AD và cung cấp các bước xử lý chi tiết để bạn có thể chẩn đoán và khắc phục chúng một cách hiệu quả.

📋 Thời gian: 45 phút | Độ khó: Trung bình

Yêu Cầu

Để thực hiện các bước trong hướng dẫn này, bạn cần:

  • Quyền quản trị (Domain Admin hoặc Enterprise Admin) trên các Domain Controller liên quan.
  • Kiến thức cơ bản về Active Directory, DNS và mạng trong môi trường Windows Server.
  • Truy cập vào các Domain Controller đang gặp sự cố hoặc cần kiểm tra.
  • Các công cụ quản lý AD và Command Prompt/PowerShell.

Các Bước Thực Hiện

Bước 1: Xác định Tình trạng Replication AD

Bước đầu tiên là xác định xem có lỗi replication nào đang xảy ra và ở đâu. Các công có repadmindcdiag là bạn thân của bạn trong trường hợp này.

# Sử dụng repadmin để hiển thị trạng thái replication cho tất cả các đối tác
# Lệnh này sẽ hiển thị các lỗi replication gần đây và DC nào đang gặp vấn đề
repadmin /showrepl

# Ví dụ đầu ra:
# DC=contoso,DC=com
# Default-First-Site-Name\DC01
# DSA Options: IS_GC
# Site Options: (none)
# DSA object GUID: 01234567-89ab-cdef-0123-456789abcdef
# DSA invocationID: 01234567-89ab-cdef-0123-456789abcdef
#
# === INBOUND NEIGHBORS ======================================
#
# DC=contoso,DC=com
# Default-First-Site-Name\DC02 via RPC
# DSA object GUID: fedcba98-7654-3210-fedc-ba9876543210
# Last attempt @ 2023-10-26 10:00:00 was successful.

# Sử dụng dcdiag để kiểm tra toàn diện các khía cạnh của DC, bao gồm replication
# Lệnh này sẽ chạy nhiều bài kiểm tra và báo cáo các lỗi
dcdiag /test:replications /v /q

repadmin /showrepl sẽ cung cấp một cái nhìn tổng quan nhanh về trạng thái replication giữa các DC và chỉ ra các lỗi gần đây. dcdiag /test:replications cung cấp một phân tích chi tiết hơn, kiểm tra các sự kiện liên quan đến replication và cấu hình.

Bước 2: Phân tích Lỗi và Sự Kiện

Sau khi xác định có lỗi, bước tiếp theo là đi sâu vào Event Viewer để tìm kiếm các thông báo lỗi cụ thể.

  1. Mở Event Viewer (eventvwr.msc).
  2. Điều hướng đến Applications and Services Logs > Directory Service.
  3. Tìm kiếm các sự kiện có ID liên quan đến replication, ví dụ:
    • 1083, 1084: Lỗi replication do đối tượng bị xung đột hoặc không tìm thấy.
    • 1126: Không thể thiết lập kết nối RPC với DC đối tác.
    • 1311: KCC (Knowledge Consistency Checker) không thể xây dựng cấu trúc liên kết replication.
    • 1925: Lỗi kết nối RPC với DC đối tác.
    • 2042: DC không đồng bộ hóa với đối tác trong một khoảng thời gian dài (tình trạng tombstone lifetime).
    • 8451, 8453: Lỗi truy cập replication bị từ chối.
    • 8461: Lỗi đồng bộ hóa do thời gian giữa các DC bị lệch.

Mỗi ID sự kiện sẽ cung cấp manh mối quan trọng về nguyên nhân gốc rễ của sự cố.

Bước 3: Kiểm tra Kết nối Mạng và DNS

Phần lớn các lỗi replication AD bắt nguồn từ sự cố mạng hoặc cấu hình DNS không chính xác.

  1. Kim tra kết nối mạng cơ bản:

    # Ping giữa các Domain Controller để đảm bảo kết nối vật lý và IP
    ping <IP_của_DC_đối_tác>
    ping <Tên_DC_đối_tác>

    Nếu ping không thành công, kiểm tra cáp mạng, cài đặt IP và trạng thái của máy chủ.

  2. Kiểm tra cấu hình DNS:

    • Đảm bảo mỗi DC trỏ đến chính nó hoặc một DC khác trong cùng miền làm máy chủ DNS chính (và một DC khác làm phụ).
    • Kiểm tra các bản ghi SRV cần thiết:
    # Sử dụng nslookup để kiểm tra các bản ghi SRV của Active Directory
    # Ví dụ: Kiểm tra bản ghi LDAP
    nslookup
    set type=SRV
    _ldap._tcp.dc._msdcs.<tên_miền_của_bạn>
    exit

    ✅ Các bản ghi SRV phải trỏ đến các IP của các DC trong miền của bạn. Nếu không, có thể DNS trên DC đó hoặc các DC khác bị cấu hình sai.

  3. Kiểm tra các cổng cần thiết: Active Directory sử dụng nhiều cổng mạng. Firewall có thể chặn các cổng này.

    # Sử dụng Test-NetConnection trong PowerShell để kiểm tra kết nối cổng
    # Kiểm tra cổng LDAP (389)
    Test-NetConnection -ComputerName <Tên_DC_đối_tác> -Port 389

    # Kiểm tra cổng RPC Endpoint Mapper (135)
    Test-NetConnection -ComputerName <Tên_DC_đối_tác> -Port 135

    # Kiểm tra cổng Kerberos (88)
    Test-NetConnection -ComputerName <Tên_DC_đối_tác> -Port 88

    # Các cổng quan trọng khác: 445 (SMB), 3268 (Global Catalog), 49152-65535 (RPC động)

    Nếu Test-NetConnection thất bại, kiểm tra cài đặt firewall trên cả hai DC.

Bước 4: Khắc phục Lỗi Thường Gặp

Dựa trên các bước chẩn đoán trên, bạn có thể tiến hành khắc phục các lỗi cụ thể.

  1. Lỗi DNS:

    • Chỉnh sửa cài đặt DNS trên card mạng của DC để trỏ đến các DC khác và chính nó một cách chính xác.
    • Đăng ký lại các bản ghi DNS:
      ipconfig /registerdns
      net stop netlogon && net start netlogon
  2. Lỗi Kết nối Mạng/Firewall:

    • Mở các cổng cần thiết trên firewall của Windows hoặc firewall vật lý: TCP 53, 88, 135, 389, 445, 3268, 3269 và các cổng RPC động (thường là 49152-65535).
    • Đảm bảo các dịch vụ mạng như Server, Workstation, Netlogon, DNS Client, RPC Endpoint Mapper đang chạy.
  3. Lỗi USN Rollback (Event ID 2095): ⚠️ Đây là một lỗi rất nghiêm trọng! USN Rollback xảy ra khi một DC được khôi phục từ một bản sao lưu cũ hơn mà không có biện pháp bảo vệ thích hợp (ví dụ: không sử dụng System State Restore). Điều này có thể dẫn đến sự không nhất quán dữ liệu nghiêm trọng trên toàn bộ miền.

    • Giải pháp: Ngắt kết nối DC bị ảnh hưởng khỏi mạng ngay lập tức. Cách tốt nhất là khôi phục một bản sao lưu AD mới nhất hoặc hạ cấp và sau đó nâng cấp lại DC đó.
  4. Lỗi Thời gian (Time Skew - Event ID 8461):

    • Đảm bảo tất cả các DC trong miền đồng bộ thời gian với cùng một nguồn NTP đáng tin cậy (ví dụ: PDC Emulator hoặc NTP server bên ngoài).
    • Sử dụng w32tm /query /source để kiểm tra nguồn thời gian.
    • Sử dụng w32tm /resync để đồng bộ lại thời gian.
  5. Force Replication: Sau khi khắc phục các nguyên nhân gốc rễ, bạn có thể thử buộc replication.

    # Buộc replication từ một DC cụ thể đến tất cả các đối tác
    repadmin /syncall <Tên_DC_của_bạn> /APEd

    # Buộc replication một naming context cụ thể từ một đối tác
    repadmin /replicate <Tên_DC_đích> <Tên_DC_nguồn> "DC=contoso,DC=com"

Bước 5: Kiểm tra và Giám sát lại

Sau khi thực hiện các bước khắc phục, hãy kiểm tra lại trạng thái replication để đảm bảo lỗi đã được giải quyết.

# Chạy lại các lệnh kiểm tra
repadmin /showrepl
dcdiag /test:replications /v /q

✅ Nếu mọi thứ đã được khắc phục, bạn sẽ thấy "Last attempt @ [thời gian] was successful." trong repadmin /showrepldcdiag /test:replications sẽ báo cáo không có lỗi.

Troubleshooting

Dưới đây là một số lỗi thường gặp khác và cách xử lý nhanh:

  • Lỗi 1925 (RPC server is unavailable):

    • Nguyên nhân: Firewall chặn cổng RPC (135 hoặc dải động), dịch vụ RPC không chạy, hoặc có sự cố kết nối mạng.
    • Xử lý: Kiểm tra firewall, đảm bảo dịch vụ "Remote Procedure Call (RPC)" và "RPC Endpoint Mapper" đang chạy. Kiểm tra kết nối mạng giữa các DC.
  • Lỗi 8451 / 8453 (Replication access was denied):

    • Nguyên nhân: Quyền truy cập không đủ, SPN (Service Principal Name) bị thiếu hoặc sai, hoặc thời gian giữa các DC lệch quá nhiều.
    • Xử lý: Đảm bảo tài khoản máy tính của DC có quyền replication. Kiểm tra SPN bằng setspn -L <Tên_DC>. Đồng bộ thời gian.
  • Lỗi 1311 (KCC could not form a replication topology):

    • Nguyên nhân: Site link bị lỗi, một DC bị tắt quá lâu, hoặc có vấn đề về kết nối mạng giữa các site.
    • Xử lý: Kiểm tra trạng thái của tất cả các DC và site link trong Active Directory Sites and Services. Đảm bảo tất cả các DC đều hoạt động và có thể liên lạc với nhau.
  • Lỗi 2042 (DC not synchronizing for a long time - Tombstone Lifetime):

    • Nguyên nhân: Một DC đã không replication trong khoảng thời gian dài hơn Tombstone Lifetime (mặc định 180 ngày).
    • Xử lý: DC này bị coi là "stale" và không thể replication an toàn. Cách duy nhất là hạ cấp DC này, dọn dẹp metadata của nó, sau đó nâng cấp lại hoặc khôi phục từ bản sao lưu System State mới nhất. ⚠️ Đừng cố gắng buộc replication với DC này nếu bạn không hiểu rõ hậu quả.

Kết Luận

Replication Active Directory là xương sống của mọi môi trường miền Windows Server. Việc hiểu và khắc phục các lỗi replication là kỹ năng thiết yếu đối với bất kỳ quản trị viên hệ thống nào. Bằng cách tuân thủ các bước chẩn đoán và khắc phục được mô tả ở trên, bạn có thể nhanh chóng xác định và giải quyết hầu hết các vấn đề liên quan đến replication.

💡 Best practices:

  • Giám sát thường xuyên: Sử dụng các công cụ như repadmin /showrepldcdiag định kỳ, hoặc triển khai các giải pháp giám sát tự động để phát hiện sớm các vấn đề.
  • Cấu hình DNS chính xác: Đảm bảo tất cả các DC trỏ đến các máy chủ DNS đáng tin cậy và có thể giải quyết các bản ghi SRV của AD.
  • Đồng bộ thời gian: Đảm bảo tất cả các DC đồng bộ thời gian với một nguồn tin cậy để tránh lỗi time skew.
  • Quản lý Firewall: Cấu hình firewall đúng cách để cho phép lưu lượng AD replication đi qua các cổng cần thiết.
  • Backup định kỳ: Thực hiện backup System State của các DC thường xuyên để có thể khôi phục an toàn khi cần thiết.
  • Hiểu Tombstone Lifetime: Không để các DC offline quá lâu để tránh tình trạng replication bị chặn vĩnh viễn.

Duy trì một môi trường AD khỏe mạnh đòi hỏi sự chữ ý liên tục, nhưng với những kiến thức và công cụ phù hợp, bạn có thể đảm bảo hoạt động trơn tru cho toàn bộ hệ thống của mình.

Xem thêm: