Linuxの仮想インタフェース

Linuxの仮想インタフェース

Linuxで別の2番目の仮想インターフェイスを作成する必要があります。

私は選ぶdummy。次の手順を実行します。

$ cat /etc/modules-load.d/dummy.conf
# Load dummy.ko at boot

$ cat /etc/sysconfig/network-scripts/ifcfg-ethdummy1
NAME=ethdummy1
DEVICE=ethdummy1
MACADDR=00:22:22:ff:ff:ff
IPADDR=10.10.10.1
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=no

すべてがうまくいくようです。しかし、オンラインでも人々がそうすることを見ることができます。

$ cat /etc/modprobe.d/dummy.conf 
install dummy /sbin/modprobe --ignore-install dummy; /sbin/ip link set name ethdummy1 dev dummy0

この行の意味は何ですか?ありがとうございます。

答え1

この記事を書いた人は、次dummy.confの制限を解決するためにそうしました。Webスクリプトたとえば、CentOS 7の設定では、仮想インターフェイスを作成するのに役立つ任意のコマンドを実行できません(Debianで最も一般的に使用されているのと同じ)。相互作用エントリを含むファイルpre-up)。誰もがそのようなスクリプトを実行する簡単な方法に関する手がかりがある場合(たとえば、まったく新しいスクリプトを作成する必要はありません)ifup 仮想スクリプト)答えを修正します。

これモジュールにはデフォルトのオプションがありますnumdummies=1(オプションはを介して見つけることができますmodinfo -p dummy)。これは次のことを意味します。モジュールが初めてロードされると、仮想インターフェイスも自動的に作成されます(初期ネットワークネームスペースに)。デフォルト名はdummy+使用可能な最初の整数なので仮想0

何ですかモジュールプローブ設定の目的は、以下を保証することです。モジュールがロードされます(OPで述べたように起動時にロードされます)。これは暗黙的です。仮想0インターフェイス名が直ちに変更されます。ethdummy1--ignore-install負荷を交換し続けるので、無限ループを防ぐことです。モジュールは次のようにロードされます。基準寸法。

これを通してifcfg-ethdummy1設定が正しく機能します。予想されるインターフェイスが通常のイーサネットインターフェイスであるかのように検索されます。

dummy.conf次のようにファイルを編集して(非常に厄介ですが)この方法を続行できます(ところで、リンクパラメータを自然な順序で配置しました)。

install dummy /sbin/modprobe --ignore-install dummy numdummies=2; /sbin/ip link set dev dummy0 name ethdummy1; /sbin/ip link set dev dummy1 name ethdummy2

モジュールオプションを追加すると、numdummies=22つが生成されます。相互作用仮想0そして仮想1、彼らは「すぐに」名前を最終名に変更しました。ethdummy1そしてethdummy2これで、対応する設定ファイルを追加できます。ifcfg-ethdummy2

新しい設定を追加して再起動したりインターフェイスを失いたくない場合は、インターフェイスを手動で追加するだけです。IFUPコマンドは次の後も引き続き成功します。

ip link add ethdummy2 type dummy

解決策を見つけた理由仮想プロファイルぎこちない?これはコンテナで実行されているのと同じシステム(CentOS 7など)では機能しないため、インターフェイスは常に初期ネットワーク名前空間に追加されるため、コンテナはインターフェイスを表示できません。コンテナが依然として間接的にロードをトリガできる場合(例ip link add type dummy:)

個人的には私は以下を使いたいと思いますdummy.conf。 :options numdummies=0デフォルトではインターフェイスを作成せず、必要に応じて処理します。少なくとも、結果はコンテナを使用するかどうかにかかわらず一貫しています。

また、デフォルトの仮想インターフェイスをサポートするNetworkManagerを見つけることができませんでしたが、少なくともスクリプトは可能です。次のリンクで提供されているソリューションを確認してください。RHELの仮想インターフェイス。 NetworkManagerにスクリプトを追加するか、systemdのサービスインスタンス化を使用して選択した名前から始めて、インターフェイスを作成します。

後で Debian に似たディストリビューションを使用する場合は、次pre-up ip link add ethdummy2 type dummy 2>/dev/null || :のようにします。相互作用'祭典。

関連情報