Truy cập UNC trong container Windows: tên trước, danh tính sau
Explorer trên máy chủ không chứng minh được đường DNS của container lẫn danh tính SMB của nó. Hãy kiểm tra phân giải tên và cổng 445 bên trong container trước khi xét quyền.
Một container Windows cần một thư mục chia sẻ ở phía bên kia đường hầm của bạn thất bại theo hai cách độc lập, và Explorer trên máy chủ không chứng minh được cách nào. Container có điểm cuối mạng riêng và danh tính tiến trình riêng. Một tên phân giải được trên máy tính để bàn và một phiên mà máy chủ tệp chấp nhận ở đó mô tả máy tính để bàn, không phải khối lượng công việc.
Explorer trên máy chủ không phải bằng chứng
Mở thư mục chia sẻ trên máy chủ dùng ứng dụng khách DNS của máy chủ, bảng định tuyến của máy chủ và tài khoản đã đăng nhập trên máy chủ. Tiến trình container không kế thừa bất cứ thứ gì trong số đó một cách ngầm định, ngay cả khi container chạy trên cùng máy và ứng dụng khách VPN cũng chạy ở đó. Ranh giới thứ nhất là đường mạng: container có phân giải được tên không, và có mở được phiên TCP tới cổng SMB không. Ranh giới thứ hai là danh tính: máy chủ tệp có chấp nhận những gì container trình ra, với các quyền mà khối lượng công việc cần không.
Coi cả hai là một vấn đề sẽ tạo ra vòng lặp quen thuộc là mở rộng quy tắc tường lửa để sửa cái thực chất là câu trả lời từ chối truy cập từ thư mục chia sẻ.
Bám theo yêu cầu của chính container
Mạng của container Windows do Host Networking Service quản lý, dịch vụ này tạo ra các điểm cuối có không gian tên mạng riêng. Chế độ bạn chọn quyết định điểm cuối được dịch, được bắc cầu hay được gắn vào một mạng chia sẻ với máy chủ. Quyết định đó thay đổi hai thứ cùng lúc: những gì container phân giải được, và địa chỉ nguồn mà máy chủ tệp nhìn thấy.
Xác nhận những gì chính container quan sát trước khi thay đổi bất cứ điều gì. Một tên phân giải được ở ngoài có thể thất bại ở trong, vì cấu hình DNS của container không phải của máy chủ, và một điểm cuối đã dịch có thể trình ra nguồn mà các quy tắc của máy chủ tệp không lường trước.
docker exec -it app powershell -Command "Resolve-DnsName files.corp.example" docker exec -it app powershell -Command "Test-NetConnection files.corp.example -Port 445" docker exec -it app powershell -Command "Get-NetIPConfiguration"
Nếu phân giải thất bại, hãy sửa DNS trong cấu hình mạng thay vì thay thế một địa chỉ. Thay tên bằng IP có thể thay đổi hành vi xác thực và danh tính máy chủ, biến một vấn đề thành hai. Chính sách của ứng dụng khách VPN là thứ tiếp theo cần kiểm tra, vì nó có thể đối xử khác với tiến trình của máy chủ và lưu lượng bắt nguồn từ container.
Danh tính là một quyết định riêng
Một ký tự ổ đĩa do người dùng tương tác ánh xạ không phải giao diện ứng dụng. Nó tồn tại trong một phiên đăng nhập, và tiến trình container không thuộc về phiên đó. Hãy dùng đường dẫn UNC và cấp cho khối lượng công việc một danh tính mà mô hình triển khai hỗ trợ. Ở nơi miền hỗ trợ, tài khoản dịch vụ được quản lý theo nhóm (gMSA) cung cấp danh tính được quản lý thông qua đặc tả thông tin xác thực.
Hướng dẫn gMSA cho container của Microsoft mô tả cách bố trí đặc tả thông tin xác thực đó và các điều kiện tiên quyết của nó, bao gồm tư cách thành viên miền và một máy chủ có thể lấy được thông tin xác thực. Tài khoản, việc lấy, danh tính tiến trình bên trong container và quyền trên thư mục chia sẻ đều phải khớp nhau. Đăng nhập VPN không phải danh tính đó, và việc nướng mật khẩu vào một image để tái tạo phiên của người dùng máy chủ tạo ra sự phơi nhiễm thường trực.
Giữ giai đoạn thất bại hiển thị
Phân giải thất bại, kết nối bị từ chối và truy cập bị từ chối cần bằng chứng khác nhau. Đó lần lượt là câu hỏi DNS, câu hỏi định tuyến hoặc lọc, và câu hỏi xác thực hoặc quyền. Hãy đọc phản hồi mà container nhận được thay vì lỗi chung của ứng dụng.
Kiểm thử bằng danh tính của chính khối lượng công việc và cũng kiểm thử trường hợp bị từ chối.
Lập kế hoạch cho việc kết nối lại
Các đường VPN bị rớt. Khi đường hầm trở lại, một điểm cuối có thể trở lại với địa chỉ đã dịch khác, và một phiên SMB hiện có có thể đã chết mà ứng dụng không nhận ra. Hãy xử lý điều đó trong ứng dụng: thiết lập lại đường và danh tính, thử lại thao tác, và đối soát một thao tác tệp có kết quả không rõ thay vì cho rằng không có gì xảy ra.
Ghi lại chế độ mạng, nguồn DNS và cách bố trí danh tính trong ghi chú triển khai. Lỗi tiếp theo sẽ nói về đúng ba sự thật này.