ネットワーク名前空間(ねっとわーくめいめいかんきょう)
最終更新:2026/4/27
ネットワーク名前空間は、ネットワークインターフェース、ルーティングテーブル、ファイアウォールなどのネットワーク設定を分離するためのLinuxカーネルの機能である。
別名・同義語 ネット名前空間ネットワーク隔離
ポイント
ネットワーク名前空間を使用することで、同一ホスト上で複数の独立したネットワーク環境を構築し、セキュリティの向上やテスト環境の分離が可能となる。
概要
ネットワーク名前空間は、Linuxカーネルの名前空間機能の一つであり、ネットワーク関連のシステムリソースを仮想化する。これにより、複数のネットワーク名前空間が同一ホスト上で共存し、それぞれが独立したネットワーク環境を持つことができる。各名前空間は、独自のネットワークインターフェース、IPアドレス、ルーティングテーブル、ファイアウォールルールを持つ。
目的
ネットワーク名前空間の主な目的は以下の通りである。
- ネットワークの分離: 異なるアプリケーションやサービスを互いに隔離し、セキュリティを向上させる。
- テスト環境の構築: 本番環境に影響を与えることなく、新しいネットワーク設定やアプリケーションをテストできる。
- コンテナ技術との連携: Dockerなどのコンテナ技術において、コンテナごとに独立したネットワーク環境を提供する。
- 仮想ネットワークの構築: 仮想マシンやクラウド環境において、柔軟なネットワーク構成を実現する。
仕組み
ネットワーク名前空間は、以下の要素を分離することで実現される。
- ネットワークインターフェース: 各名前空間は、独自のネットワークインターフェースを持つ。
- ルーティングテーブル: 各名前空間は、独自のルーティングテーブルを持つ。
- IPアドレス: 各名前空間は、独自のIPアドレス範囲を持つ。
- ファイアウォールルール: 各名前空間は、独自のファイアウォールルールを持つ。
使用方法
ネットワーク名前空間は、ip netnsコマンドを使用して作成・管理できる。例えば、新しい名前空間を作成するには、ip netns add <名前>コマンドを使用する。名前空間内でコマンドを実行するには、ip netns exec <名前> <コマンド>コマンドを使用する。