web-dev-qa-db-ja.com

/ etc / network / interfacesまたはそれに類似したものでdummy0を構成する現代的な方法?

dummyカーネルモジュールから)_dummy0_ネットワークインターフェイスを構成、開始、および停止するためのクリーンで「モダンな」方法を探しています。

私の_/etc/network/interfaces_は以前のシステムで機能していましたが、_ifup dummy0_で静かに失敗します:

_iface dummy0 inet static
   address 10.10.0.1
   netmask 255.255.255.0
   # post-up ip link set dummy0 multicast on  
_

_post-up_行のコメントを外すと、次のエラーが発生します(実行されるが、インターフェイスは作成されないことを示します):dummy0: post-up cmd 'ip link set dummy0 multicast on'failed: returned 1 (Cannot find device "dummy0")

このシェルスクリプトは完全に機能しますですが、すてきなクリーン構成ファイルではありません。

_#!/bin/sh
Sudo ip link add dummy0 type dummy
Sudo ip link set dummy0 multicast on
Sudo ip addr add 10.10.0.1/24 dev dummy0
Sudo ip link set dummy0 up
_

私の意図手動systemdサービスの両方で使用することです:

_[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ifup dummy0
ExecStop=/sbin/ifdown dummy0
StandardOutput=syslog+console
_

環境:

  • Kubuntu 18.04.2 LTS
  • NetworkManager 1.10.6
  • iproute2 4.15.0
  • ifupdown2 1.0
  • systemd 237 + PAM + AUDIT + SELINUX + IMA + APPARMOR + SMACK + SYSVINIT + UTMP + LIBCRYPTSETUP + GCRYPT + GNUTLS + ACL + XZ + LZ4 + SECCOMP + BLKID + ELFUTILS + KMOD -IDN2 + IDN -PCRE2 default-hierarchy = hybrid

質問:

  1. シェルスクリプトを動作する_/etc/network/interfaces_構成に変換するにはどうすればよいですか?
  2. これを行う別のクリーナーまたは推奨される方法はありますか?
2
Oleg

インターフェースは以前に「作成」されていませんでした。 ifupdownは、「ダミー」のカーネルモジュールがロードされるとすぐに魔法のように表示されることに依存していました。これは古い互換性動作であり、(AFAIIRC)同じインターフェイス名の明示的な作成にも干渉したため、モジュールパラメータによって無効にされました。ここで、dummy0は、dummy1またはdummyfoobarが作成されるのと同じ方法で作成される必要があります。

「pre-up」コマンドでインターフェースを作成できるはずです:

iface dummy0 inet static
    address 10.10.0.1/24
    pre-up ip link add dummy0 type dummy

このシステムでNetworkManagerも使用している場合、最近のNMバージョンはダミーインターフェイスをサポートしています。

nmcli con add type dummy ifname dummy0 ipv4.addresses 10.10.0.1/24 [...]

起動時にインターフェースを作成して永久に残す必要がある場合は、systemd-networkd(デバイスを作成するための1つの.netdev構成、IPアドレスをセットアップするための1つの.network構成)を使用して実行できます。ただし、「networkctl」には手動の「up」または「down」サブコマンドはまだありません。

3
user1686