Linuxで複数のダミーインターフェイスを作成するにはどうすればよいですか?


11

Linuxで偽のイーサネットダミーインターフェースを作成するにはまず、次のコマンドを使用してダミーインターフェースドライバーを初期化します: / sbin / modprobe dummy
次に、上記で初期化したばかりのダミードライバーにイーサネットインターフェイスエイリアスを割り当てます。

ただし、次の致命的なエラーが表示されます。致命的 :モジュールのダミーが見つかりません。

また、パス cd / sys / devices / virtual / net#で、次の名前で仮想インターフェイスが存在していることがわかります:
dummy0 / lo / sit0 / tunl0 /

ifconfig -a

dummy0:   Link encap:Ethernet  HWaddr aa:3a:a6:cd:91:2b    
          BROADCAST NOARP  MTU:1500  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo:     Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:16436  Metric:1  
          RX packets:111 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:8303 (8.1 KiB)  TX bytes:8303 (8.1 KiB)

sit0:      Link encap:UNSPEC  HWaddr 00-00-00-00-FF-00-00-00-00-00-00-00-00-00-00-00    
          NOARP  MTU:1480  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tunl0:  Link encap:IPIP Tunnel  HWaddr   
          NOARP  MTU:1480  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  

そのため、modprobeコマンドはカーネルモジュールをロードできません。modprobeまたはinsmodを
使用してカーネルモジュールをロードし、ダミーインターフェイスドライバーを初期化するにはどうすればよいですか?
ロードされた単一のモジュールに複数のダミーインターフェイスを作成できますか?


イーサネット仮想インターフェイスについて説明したとき。ダミーモジュールをロードする必要はありませんでした。eth0:1、eth0:2などのifconfigコマンドを使用して作成できます
supriady

ifconfigコマンドを使用して、イーサネット仮想インターフェースに異なるIPアドレス、サブネット、ゲートウェイを設定できます。rc.localに追加して、ブート時にロードするだけです。イーサネット仮想インターフェイス構成ファイルを作成する必要はありません。
サプライアディ

1
@supriady仮想インターフェイスについては質問していません。eth0:1などのifconfigを使用して仮想IPをインターフェイスに割り当てることができることはわかっていますが、ここでは、作成された各仮想インターフェイスのMacハードウェアアドレスは同じになります。私の質問は、実際のインターフェイスとは異なるH / w Macアドレスを持つ、上記のdummy0のような複数のダミーインターフェイスを作成する方法です。
Kushal 2017年

念のために言うと、これらのインターフェイスはマシンの外部からは見えないことを理解していますよね?
Julie Pelletier 2017年

modprobeエラーのフル出力とuname -r
Rui F Ribeiro

回答:


13

複数のダミーインターフェイスを追加する通常の方法は、iproute2を使用することです。

# ip link add dummy0 type dummy
# ip link add dummy1 type dummy
# ip link list
...
5: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 22:4e:84:26:c5:98 brd ff:ff:ff:ff:ff:ff
6: dummy1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 9e:3e:48:b5:d5:1d brd ff:ff:ff:ff:ff:ff

ただし、エラーメッセージ「致命的:モジュールダミーが見つかりません」は、ダミーインターフェイスモジュールが有効になっていないカーネルがある可能性があることを示しているため、カーネル構成を確認し、必要に応じてカーネルを再コンパイルしてください。


「エラーメッセージ「致命的:モジュールダミーが見つかりません」は、ダミーインターフェースモジュールが有効になっていないカーネルがある可能性があることを示しています。 。どうやらdummy0OPのマシンにインターフェースが存在するようです。それ以外は、大丈夫です。
xhienne

1
@xhienneはmodprobeのバージョンに依存しますがkmod、少なくともの最近のバージョンはビルトインについて知っています。それを試してみてください。例えばmodprobe unixmodprobe -r unix
sourcejedi

7

起動時にダミーのインターフェースを作成するには、以下を追加することをお勧めします /etc/modules

dummy

dummyカーネル4.4.x(検証する正しいバージョン)の前に、モジュールはデフォルトで2つのダミーインターフェイスのみを許可することに注意してください。

さらに必要な場合は、を作成するか、/etc/modprobe.d/local必要/etc/modprobe.d/dummy.confnumdummiesダミーインターフェイスの数でパラメータを定義する必要があります。

options dummy numdummies=4 

@Feuermurmelのコメントのとおり、新しいカーネルでは、次のコマンドを使用して、デフォルトで作成される2つのインターフェイスに加えて、さらにダミーインターフェイスを追加します。

sudo ip link add dummyX type dummy

少なくともカーネル4.4.0では、ダミーのインターフェイスをで追加できますip link add dumdum type dummy
Feuermurmel 2017年

@Feuermurmelそれが2つ以上追加するように機能する場合、あなたはアイデアを持っていますか?
Rui F Ribeiro

それは間違いなくあります。自分でテスト:for i in {0..100}; do ip link add blubb-$i type dummy; done
Feuermurmel 2017年

@Feuermurmel良い知らせ、ヒントをありがとう。追加の回答としてそれを追加することができます。IMOは両方とも適切です。下位のカーネルバージョンでスタックしているiOTデバイスがまだたくさんあるからです。
Rui F Ribeiro

好奇心から:これらのデバイスは、一度作成されると、再起動後も持続しますか、それとも各システムの起動後に再作成する必要がありますか?
Robidu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.