web-dev-qa-db-ja.com

ネットワーク管理者のシステム接続ファイルの構造は何ですか?

誰かが構成ファイルの完全な構造をリストできますか?ネットワークマネージャーが既知のネットワークの既知のネットワークの/ etc/NetworkManager/system-connectionsに保存しますか?

サンプル(ファイル名askUbuntu):

[connection]
id=askUbuntu
uuid=81255b2e-bdf1-4bdb-b6f5-b94ef16550cd
type=802-11-wireless

[802-11-wireless]
ssid=askUbuntu
mode=infrastructure
mac-address=00:08:CA:E6:76:D8

[ipv6]
method=auto

[ipv4]
method=auto

スクリプトを使用して自分でそれらのいくつかを作成したいと思います。しかし、そうする前に、 every 可能なオプションを知りたいです。

さらに、この構造は、何らかの方法でアクティブな接続にdbusを使用して取得できる情報に似ているようです。

dbus-send --system --print-reply \
    --dest=org.freedesktop.NetworkManager \
    "$active_setting_path" \ # /org/freedesktop/NetworkManager/Settings/2
    org.freedesktop.NetworkManager.Settings.Connection.GetSettings 

教えてくれます:

array [
  dict entry(
     string "802-11-wireless"
     array [
        dict entry(
           string "ssid"
           variant                   array of bytes "askUbuntu"
        )
        dict entry(
           string "mode"
           variant                   string "infrastructure"
        )
        dict entry(
           string "mac-address"
           variant                   array of bytes [
                 00 08 ca e6 76 d8
              ]
        )
        dict entry(
           string "seen-bssids"
           variant                   array [
                 string "02:1A:11:F8:C5:64"
                 string "02:1A:11:FD:1F:EA"
              ]
        )
     ]
  )
  dict entry(
     string "connection"
     array [
        dict entry(
           string "id"
           variant                   string "askUbuntu"
        )
        dict entry(
           string "uuid"
           variant                   string "81255b2e-bdf1-4bdb-b6f5-b94ef16550cd"
        )
        dict entry(
           string "timestamp"
           variant                   uint64 1383146668
        )
        dict entry(
           string "type"
           variant                   string "802-11-wireless"
        )
     ]
  )
  dict entry(
     string "ipv4"
     array [
        dict entry(
           string "addresses"
           variant                   array [
              ]
        )
        dict entry(
           string "dns"
           variant                   array [
              ]
        )
        dict entry(
           string "method"
           variant                   string "auto"
        )
        dict entry(
           string "routes"
           variant                   array [
              ]
        )
     ]
  )
  dict entry(
     string "ipv6"
     array [
        dict entry(
           string "addresses"
           variant                   array [
              ]
        )
        dict entry(
           string "dns"
           variant                   array [
              ]
        )
        dict entry(
           string "method"
           variant                   string "auto"
        )
        dict entry(
           string "routes"
           variant                   array [
              ]
        )
     ]
  )
]

このタイプの入力を渡すdbus(/ org/freedesktop/NetworkManager/SettingsのAddSettings())を使用して新しい設定ファイルを作成できます。この構造を説明し、すべての可能なオプションを教えてくださいも役立ちます。わかりました、これは辞書{文字列、辞書{文字列、バリアント}}です。

構成ファイルを直接作成する場合とdbusを使用する場合に違いはありますか?

6
Oyks Livede

このファイルは、ユーザーが編集するためのものではなく、Network Managerツールによって編集するためのものです。以下を使用してマニュアルを読むことができます。

man nm-settings

ファイル

  /etc/NetworkManager/system-connections

  or distro plugin-specific location

リストは長すぎる/広すぎるため、いつでも変更される可能性があります。したがって、マニュアルページはNMバージョンと同期されるため、使用することをお勧めします。

6
Braiam

Braiam's answer (コメントには長すぎます)に追加し、上記の/etc/NetworkManager/system-connections/askUbuntuという名前のキーファイルでアドレス/識別子の衝突を回避するための潜在的に有用な詳細:

1)システム内の既存のUUIDと衝突しないようにするために、端末でuuidgenを実行し、セクションuuid=のキー[connection]に出力を貼り付けるランダムUUIDを作成できます。ファイル/etc/NetworkManager/system-connections/askUbuntu

2)国内のホームネットワーク(ゲートウェイ内で安全で健全な)で既に使用されている別のIPv4と衝突しないように(たとえば、ゲートウェイ内で安全で)、192.168.0.0から192.168.255.255の範囲のアドレスを選択できます。セクション[ipv4]、キーmethod=manualに変更し、選択したアドレスでキーaddress1=を作成します。

2.1)アドレスのアイデアがわからない場合は、ターミナルでshuf -i 1:255 -n 2を実行して、最後の位置を取得できます-65kの衝突で1回のチャンス

0
Marcelo Ventura