System-Calls
如何鎖定共享網路命名空間中的某些資源
我想實現類似於 pid 文件但用於網路命名空間的功能。在公共文件命名空間中,程序可以鎖定 pid 文件並確保沒有其他程序在同一文件名空間中執行,只需檢查它是否可以接收對它的寫權限。我想擁有相同的但對於網路名稱空間。
考慮應用程序在不同的文件名空間但在相同的網路空間中執行的情況(例如直接橋接到主機網路命名空間的兩個容器)。
而不是 pid 我想為每個程序分配一些抽象實例。沒有兩個具有相同實例 ID 並共享相同網路命名空間的程序應該能夠同時執行。
在某些埠上綁定是不行的,因為許多應用程序應該能夠在同一個埠上綁定。
我遇到了 mroute 套接字,但是 pimd 守護程序使用它。
有任何想法嗎?
像在抽象命名空間中使用從抽象資源標識符派生的名稱的 Unix 域套接字上綁定這樣的接縫是可行的方法。