起動時のアカウントに基づいてアプリケーションをネットワーク インターフェースに自動的にバインドする

起動時のアカウントに基づいてアプリケーションをネットワーク インターフェースに自動的にバインドする

異なるアカウントから起動されたアプリケーションを特定のネットワーク インターフェイスに自動的にバインドする方法を探しています。たとえば、アカウント A で起動されたアプリケーションは eth0 にバインドされ、アカウント B で起動されたアプリケーションは eth1 にバインドされます。これを実現する方法はありますか? もっと簡単に理解できればと思います。誰かと専用サーバーを共有したいので、これを実行したいと思います。アカウント固有の IP があれば、すべてのアプリケーションをバインドする手間をかけずに、同じポートを必要とするサービスを両方で実行できるので便利です。

答え1

まず、すべてのインターフェースを独自のルーティング テーブルで設定する必要があります (/etc/iproute2/rt_tables を参照)。次に、UID に基づいてトラフィックをマークする必要があります。そのためには、ipt_owner モジュールを使用します。次に、これらのマーク (fwmark) にルーティング ルールを追加します。これは、このような演習の良いスタートです。Linux の高度なルーティングとトラフィック制御 HOWTO

関連情報