2016-01-01 23 views
10

ip netns tạo tham chiếu đến không gian tên mạng (tên) trong /var/run/ns, có thể dễ dàng theo dõi. Ngoài ra, cùng có thể được xác định thông qua /proc/[pid]/ns/net. Tuy nhiên, có thể cho một số chương trình tùy chỉnh để tạo một ns net và lưu các inode tương ứng tại một số vị trí độc đáo khác. Điều này có thể gây khó khăn để xác định xem có hay không có ns net mà chúng tôi có thể liệt kê ra.Không gian tên Linux: Có thể tồn tại một không gian tên mạng mà không được liên kết với một quá trình không?

Thứ hai, unshare <cmd> hủy các ns ròng khi quá trình thoát, điều đó là tốt. Tuy nhiên, ip netns exec <netns> <cmd> sẽ giữ ns ngay cả sau khi lệnh/quá trình thoát. Vì vậy, tôi tin rằng, nó có thể có thể cho bất kỳ chương trình tùy chỉnh để làm như vậy.

Do đó, câu hỏi là: Có thể chương trình tùy chỉnh tạo ra một ns net chưa đặt tên và nó được để lại unassociated với bất kỳ quá trình nào?

Hơn nữa, có thể liệt kê ra các ns mạng ẩn (ẩn) từ không gian người dùng, với điều kiện chúng ta không biết đường dẫn đến các inode không? (Các hạt nhân của khóa học có một danh sách liên kết của ns net) Một đoạn mã sẽ rất hữu ích.

+0

Sẽ đánh giá cao nhiều câu trả lời hơn. Bất kỳ ai? Cảm ơn! – user31986

Trả lời

1

Có thể chương trình tùy chỉnh tạo ra một ns net chưa đặt tên và không được liên kết với bất kỳ quá trình nào?

Có thể. Theo Linux không gian tên trang người đàn ông (http://man7.org/linux/man-pages/man7/namespaces.7.html):

Mỗi quá trình có một/proc/[pid]/ns/thư mục con có chứa một entry cho mỗi không gian tên có hỗ trợ được thao túng bởi setns (2):

Gắn kết gắn kết (xem gắn kết (2)) một trong các tệp trong thư mục này tới ở một nơi khác trong hệ thống tệp giữ không gian tên tương ứng của quy trình được chỉ định bởi pid còn sống ngay cả khi tất cả các quy trình hiện đang ở không gian tên chấm dứt.

Giới thiệu về câu hỏi khác:

là nó có thể liệt kê ra như vậy (ẩn) ns ròng từ sử dụng không gian, cho rằng chúng ta không biết các đường dẫn đến các inodes?

Nếu bạn xem xét báo giá trên từ câu hỏi đầu tiên, bằng cách kiểm tra đường dẫn bị ràng buộc, bạn sẽ có thể tìm thấy những không gian tên ẩn đó.

+0

Các đường dẫn bị ràng buộc trong/proc/là cụ thể đối với tiện ích netns mà cố ý tạo ra nó. Nếu bạn tạo ra một ns net, nói rằng, trong chương trình C, làm thế nào để bạn theo dõi nó? – user31986

Các vấn đề liên quan