web-dev-qa-db-ja.com

NetworkManagerで固定MACアドレスをeth0に割り当てるにはどうすればよいですか?

更新-2020年2月21日:

私のディスクが起動したどのシステムでも、NetworkManagerが特定のMACアドレスを最初の/唯一のイーサネットアダプターに割り当てるエレガントな方法を見つけられませんでした。また、MACアドレスではなくシステム名に基づいてIPアドレスを割り当てるようにDHCPサーバーを再構成することで、特定の問題を解決できる可能性があることにも気付きました。また、NetworkManagerやnetplanではなくsystemd-networkdを使用して、ほとんどのシステムでネットワークの構成を開始しました。 (systemd-networkdの方が良いかもしれませんが、それでもIMOに欠陥があります。)最後に、2019年10月14日のアップデートが正しいことを確信できなくなりました。つまり、Ubuntuのデフォルトのインストール(おそらく19.10?)にifupdownパッケージが含まれなくなる可能性があります。

更新-2019年10月14日:

(注:2020年2月の時点で、この段落が正しくないか、古くなっている可能性があります。)今週、デスクトップバージョンのUbuntu 19.04をインストールしました。パッケージifupdownはUbuntu 19.04にデフォルトでインストールされているようです。 (そうです!)したがって、この質問はおそらく、デフォルトのインストールからifupdownパッケージを除外することを選択したUbuntu派生物にのみ当てはまります。そして、質問はおそらくUbuntu自体には当てはまりません。これと他の理由で、私は将来のすべてのインストールで、その派生物のどれよりもバニラUbuntuを好むと思います。

元の質問-2019年2月26日

(遠い?)以前は、次のスタンザを/etc/network/interfacesに追加することで、MACアドレスをネットワークインターフェイスに割り当てることができました。

auto         eth0
iface        eth0
  hwaddress  00:12:34:56:78:9a

Lubuntu 18.04以降、これは機能しなくなりました(ifupdownパッケージがデフォルトでインストールされていないため)。

私の質問は、NetworkManagerが選択した固定MACアドレスをeth0に割り当てるために、どの構成ファイルを編集し、どのように編集するかです。

(脇に:はい、私はデフォルトでUbuntu 18.04がeth0enp1s0のような「予測可能な」名前に変更することを知っています。私はその名前変更をすでに無効にしているので、実際にeth0インターフェースを持っています私のシステムで。)

私は次のドキュメントをちらっと見ました:

上記のドキュメントに基づいて、以下のようなものを/etc/NetworkManager/NetworkManager.confに追加してみました。

[device]
match-device=interface-name:eth0
ethernet.assigned-mac-address=00:22:68:1c:59:b1

残念ながら、上記は機能しないようです。

私の使用例は、LubuntuをUSBスティックにインストールした場合です。任意のシステムでUSBスティックを起動したら、NetworkManagerがeth0に事前定義された固定MACアドレスを割り当てられるようにします。

1
mpb

TLDR:

nmcli con show

最後の列でデバイス(eth0)を探し、次のコマンドに接続の名前を使用します。例、接続名が「デフォルト」の場合:

Sudo nmcli con modify Default 802-3-ethernet.cloned-mac-address 00:12:34:56:78:9a

長い回答:

nmcli --version

NetworkManagerは継続的に開発されており、構成パラメーターまたはその名前が変更される場合があります。いくつかの変更は紛らわしいです。

対照と比較:

そして:

Xubuntu 18.04でも同じ問題に直面しました。互換性を損なう構成変更に対するラントは省略されました。

1
Yuv

前述のように、キーファイル形式のプロパティ、nmcli、およびNetworkManager.confethernet.cloned-mac-addressと呼ばれます。 D-Bus APIでのみethernet.assigned-mac-addressと呼ばれます-これには歴史的な理由があります。

通常、たとえばnmcli connection modify "$PROFILE" ethernet.cloned-mac-address 00:22:68:1c:59:b1を使用して、プロファイルごとにこれを設定します。 NetworkManager.confを編集して、使用するデフォルト値を指定しますifプロファイルごとの値は指定されていません。これはman NetworkManager.confで説明されています。

プロファイルを変更した後、変更を有効にするには、プロファイルを再度アクティブにする必要があります。同様に、NetworkManager.confのデフォルト値を編集する場合は、SIGHUPを使用してデフォルト値を再ロードし、プロファイルを再度アクティブにする必要があります。

予測可能なインターフェース名について:NetworkManagerはデバイスに(再)名前を付けません。これは通常udevによって行われます。デバイスに付けられた名前にconnection.interface-nameを設定することで、プロファイルをインターフェイスに制限できます。その名前はip linkまたはnmcli deviceで確認できます。同様に、match-device=interface-name:NetworkManager.conf設定。

0
thaller