ネットワークインタフェース名を変更する方法

ネットワークインタフェース名を変更する方法

複数のネットワークインターフェイスを設定するためにbashスクリプトを作成しようとしていますが、一部のNICがデバイス名ではなく有線接続名を取得できない場合があります。例えば

$ nmcli dev status
DEVICE  TYPE      STATE      CONNECTION         
ens22   ethernet  connected  ens22              
ens18   ethernet  connected  Wired connection 2 
ens19   ethernet  connected  ens19              
ens20   ethernet  connected  Wired connection 1 
ens21   ethernet  connected  ens21              
lo      loopback  unmanaged  --     

その影響は、デバイス名ではなく接続名が期待されるため、これらのコマンドが失敗することです。

printf "\n${YELLOW}### Configure ens20: ###${NC}\n"
sudo nmcli con mod ens20 ipv4.addresses 10.70.20.254/24
sudo nmcli con mod ens20 ipv4.dns 8.8.8.8
sudo nmcli con mod ens20 ipv4.method manual

質問:

  1. 一部のインターフェイスにのみ「有線接続」という名前が付けられるのはなぜですか?
  2. 代わりに、インターフェイス名を使用するオプションはnmcliにありますか?
  3. 接続名を変更できますか?接続プロパティの名前を変更しようとしましたが、デバイスではなく接続を変更しないと、この操作を実行できません。

これは働きます:

sudo nmcli connection modify "Wired connection 2" connection.id "ens18"

これはうまくいきません:

sudo nmcli device modify ens18 connection.id "ens18" 

ありがとう

ベストアンサー1

NetworkManagerの用語で言うと、装備NIC(またはNICの仮想抽象化)。つながる適切なネットワーク構成パラメーターのセットです。装備、特定のデバイスにのみ一致するように特に制限されない限り。この制限にもかかわらず、接続とデバイスは別々の構成オブジェクトです。

1.)Wired connection <number>は、一部のGUIツール(RHEL OSインストーラを含む)で使用されるデフォルトの接続名の形式であり、名前を指定せずに新しい接続を作成するときに使用されるデフォルトの名前です<interface name>。このインターフェイスへの既存の接続定義です。nmclinmcli device connect <interface name>

2.) 特定の固有の方法を参照つながる名前、UUID、または D-Bus 接続パス番号 ( path <N>for/org/freedesktop/NetworkManager/Settings/<N>またはapath <N>for /org/freedesktop/NetworkManager/ActiveConnection/<N>) で構成されます。

「このデバイスのアクティブな接続は何ですか?」をすばやく参照するには、次のシェル機能を作成できます。

nm_connection_of() {
    # $1 = name of network interface to query
    con_name=$(nmcli -g GENERAL.CONNECTION device show "$1")
    if [ "$con_name" = "" ]; then
        echo "ERROR: no connection associated with $1" >&2
        return 1
    fi
    echo "$con_name"
}

その後、次のように使用できます。

sudo nmcli connection modify "$(nm_connection_of ens18)" connection.id ens18

ネットワークインターフェイスは現在どの接続にも接続されていない可能性があり、その場合は$(nm_connection_of <interface name>)エラーが返されます。

3.) この質問に直接回答しました。

接続名を変更するには、明示的に識別する必要があります。名前を変更する接続、一つでもない装備可能な接続数に関係なく、接続することも、まったく接続しないこともあります。

おすすめ記事