Network Namespace は最近新しめの Linux Kernel を採用している Ubuntu などではそのままで利用できますが、RHEL6/CentOS6 ではまだ標準では利用できません。 RedHat が中心となって開発している OpenStack ディストリビューション RDO のパッケージを使うことで、簡単に CentOS6 環境でも Network Namespace が利用できるので、紹介します。
RDO が RHEL6/CentOS6 向けに Network Namespace に対応したパッケージを用意しているのは、OpenStack Neutron では Reference Implementation は Network Namespace の機能が利用されており、RHEL6/CentOS6 環境で OpenStack を動かせるようにするためです。
Network Namespace (netns) を動かすためには、netns に対応した Linux Kernel と netns に対応した iproute パッケージ (ip コマンド) が必要です。
CentOS6.5 とそれ以前では、カーネルの対応状況が異なりますので、分けて説明します。
CentOS 6.5 (以降)
CentOS 6.5 で提供されるカーネル自身は netns に対応していますが、標準で提供されている iproute は netns に対応していません (ip netns というサブコマンドがありません)。RDO の yum レポジトリから iproute パッケージをインストールします。
- RDO の yum レポジトリを追加してからインストールする方法
- RDO で提供される iproute RPM パッケージを直接指定する
RDO の yum レポジトリを追加してからインストールする方法
rdo-release.rpm をインストールすると、RDO 関連の yum repository 定義が /etc/yum.repos.d 以下に登録されます。その後、yum install で iproute を指定してインストールします。# yum install http://rdo.fedorapeople.org/rdo-release.rpm # yum install iprouteインストール後に期待通りのバージョンがインストールされているか確認します。あわせて、netns がきちんと動作するか確認しておきます。
# rpm -qa | grep iproute iproute-2.6.32-130.el6ost.netns.2.x86_64 # ip netns # ip netns add testns1 # ip netns testns1 # ip netns delete testns1
RDO で提供される iproute RPM パッケージを直接指定する
# yum install http://repos.fedorapeople.org/repos/openstack/openstack-havana/epel-6/iproute-2.6.32-130.el6ost.netns.2.x86_64.rpmパッケージは以下の URL にありますので、もしパッケージのバージョン番号が変わっていた場合はチェックしてみてください。古いものがなくなることはあまりありませんが。
http://repos.fedorapeople.org/repos/openstack/openstack-havana/epel-6/
CentOS 6.4 以前
CentOS 6.4 以前では、カーネルも network namespace に対応していません。そのため、カーネルと iproute パッケージの両方を新しくする必要があります。http://repos.fedorapeople.org/repos/openstack/openstack-havana/epel-6/ にパッケージがありますので、kernel と iproute を探してインストールします。
- kernel-2.6.32-358.123.2.openstack.el6.x86_64.rpm, kernel-firmware-2.6.32-358.123.2.openstack.el6.noarch.rpm
- iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm
では、Network Namespace を使って、お手軽にネットワーク実験をお楽しみください。
0 件のコメント:
コメントを投稿