Ubuntu20  WiLan設定

Ubuntu20で有線LANとWiFiのボンディング構成（ESSIDパスワード暗号化）
-------

下記のサイトに触発されてUbuntu20で余っていたWiFi子機を使って、WiFiと有線LANを使ったBonding構成を作ってみました。
[Ubuntu 20.04 LTS で有線 LAN と無線 LAN を冗長構成 ](https://rabbit-note.com/2020/05/10/netplan-bonding-ethernet-wifi/)

ついでにLinuCLv２の学習途中でWPA接続のパスワードをPSK化する方法が載っていなのでBondingの設定ファイル内に記載するESSIDの暗号化も実施しました。

説明する環境
---

| 項目           | 設定値           |
| :------------- | :--------------- |
| LAN名          | enp2s0           |
| WiFi名         | wlp2s0           |
| IP             | 192.168.1.110/24 |
| GW             | 192.168.1.1      |
| ネームサーバー | 8.8.8.8          |
| ドメイン       | example.com      |
| アクセスポイント名２G| MyESSID2G      |
|アクセスポイント名５G       | MyESSID5G      |


## WiLan設定

まずは、Bonding設定ファイルを作成します。

```bash
vi /etc/netplan/01-wilan-bond-ndtcfg.yaml
```

```yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      dhcp4: no
      dhcp4: no
  wifis:
    wlp2s0:
      dhcp4: no
      dhcp6: no
      access-points:
        MyESSID2G:
          password: 【パスワード】
        MyESSID5G:
          password: 【パスワード】
  bonds:
    bond-WiLan:
      interfaces: 
        - enp2s0 
        - wlp2s0
      parameters:
        mode: active-backup
        arp-interval: 1000
        arp-ip-targets: [ 192.168.1.1 ]
        primary: enp2s0 
      addresses: [ 192.168.1.110/24 ]
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
        search:
          - example.com
```

## WiFi接続パスワードの暗号化

次にWiFiのアクセスポイントに接続するためにESSIDの設定を行います。この時、接続認証に使うWPAキーをPSK化して使うようにします。
**wpa_passhrese**コマンドを使いESSIDのWPAキーをPSK化した出力結果を、先ほど作成したネットワーク設定ファイルに追記でリダイレクトします。

> 下記では２Gと５Gの２系統あることを想定して実行しています。

```bash
wpa_passphrase "MyESSID2G" "password" >> /etc/netplan/01-wilan-bond-ndtcfg.yaml  
wpa_passphrase "MyESSID5G" "password" >> /etc/netplan/01-wilan-bond-ndtcfg.yaml  
```

コマンドを実行したら再度設定ファイルを開きます。

```bash
vi /etc/netplan/01-wilan-bond-ndtcfg.yaml  
```

```yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      dhcp4: no
      dhcp4: no
  wifis:
    wlp2s0:
      dhcp4: no
      dhcp6: no
      access-points:
        MyESSID2G:
          password: 【パスワード】
        MyESSID5G:
          password: 【パスワード】
  bonds:
    bond-WiLan:
      interfaces: 
        - enp2s0 
        - wlp2s0
      parameters:
        mode: active-backup
        arp-interval: 1000
        arp-ip-targets: [ 192.168.1.1 ]
        primary: enp2s0 
      addresses: [ 192.168.1.110/24 ]
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
        search:
          - example.com
network={
        ssid="MyESSID2G"
        #psk="password"
        psk=833ed4964e882419be80487289c3444581cb4f90d525d968a1dd00f691a38d91
}
network={
        ssid="MyESSID5G"
        #psk="password"
        psk=a2089e6067c22c70e5dd80d3f4eb5fab0b743b8c4ed4d6be07eb5603fda3a65d
}
```

PSK化された値が追加されています。これを以下のように編集します。

```yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      dhcp4: no
      dhcp4: no
  wifis:
    wlp2s0:
      dhcp4: no
      dhcp6: no
      access-points:
        MyESSID2G:
          password: 833ed4964e882419be80487289c3444581cb4f90d525d968a1dd00f691a38d91
        MyESSID5G:
          password: a2089e6067c22c70e5dd80d3f4eb5fab0b743b8c4ed4d6be07eb5603fda3a65d
  bonds:
    bond-WiLan:
      interfaces: 
        - enp2s0 
        - wlp2s0
      parameters:
        mode: active-backup
        arp-interval: 1000
        arp-ip-targets: [ 192.168.1.1 ]
        primary: enp2s0 
      addresses: [ 192.168.1.110/24 ]
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
        search:
          - example.com
```

## インターフェース起動

デバッグオプションで実行

```bash
sudo netplan --debug generate
```

デバッグ実行して警告などなければ実際に設定を反映

```bash
sudo netplan apply
```

WiFiのリンク状態を確認します

```bash
iw dev wlp2s0 link
```

netplanから有効になったWiFiインターフェースのWPAの設定ファイルを確認

```bash
cat /var/run/netplan/wpa-wlp2s0.conf
```

> ファイル名はwpa-<WiFiインターフェース名>.conf

以上で有線無線でのボンディング設定およびWiFiパスワードの暗号化設定になります。

誰かの何かのお役に立てばと思います。

参考サイト

[Qiita:Raspberry Pi 4 (Ubuntu Server 20.04.1 LTS ) で非公開SSIDのアクセスポイントに接続する](https://qiita.com/cocoabreak/items/6967ad16cd7583b3189c)