Ubuntu 21.10 netplanでwlanを設定、ついでにOpenDNSを登録・・・【備忘録】

#はじめに
古いMacMiniをUbuntu２０．０４を入れて使っていたのはよいが、wlanが使えないことに気づいていろいろ探し始めると、いじっているうちに使えるようになった。複数のIFをNETPLANに定義することで、default routeの設定などが気になりだし、DNS設定もいい加減だな〜せっかくだから昔から使っているOpenDNSをちゃんと使ってみようと思いました。リモートサイトにあるサーバなどに気になることが出てきたとき、クラウドのダッシュボードから確認できるということが便利だということを改めて認識。

##WIFIは適当に・・・
```
sudo modprobe brcmfmac
sudo apt-get install firmware-b43-installer ;
sudo dpkg -i b43-fwcutter* ;
sudo dpkg -i firmware-b43-installer* ;
```
このあたりのコマンドをたたいているうちにGUIにWifiのマークが出てきた！
Broadcomのチップを認識できていなかった模様。Firmwareが必要だったということ。
ちなみにこの過程で
sudo apt update
sudo apt upgrade
を繰り返していると、いつの間にかUbuntuが21.10にバージョンアップされていた。

##ついでにUbuntu 21.10にアップグレード
アップグレードにはほぼ一晩放置で完了。
※ちなみにdo-release-upgradeやそれに相当するヘビーなアップグレード作業はSSHなどではいらず、キーボードとディスプレイをつないでやった方がよいですよ。途中でコントロールを失って（キーボードが効かなくなるなど）何度もやり直す羽目になりました。
その結果が下↓

```
ubuntu:~$ hostnamectl

Operating System: Ubuntu 21.10                    
          Kernel: Linux 5.13.0-27-generic
    Architecture: x86-64
 Hardware Vendor: Apple Inc.
  Hardware Model: Macmini6,1

ubuntu:~$ sudo lshw -C cpu
  *-cpu:0                   
       詳細: CPU
       製品: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
       ベンダー: Intel Corp.
       物理ID: 0
       バス情報: cpu@0
       バージョン: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
       スロット: U2E1
       サイズ: 2167MHz
       容量: 3100MHz
       幅: 64 bits
       クロック: 25MHz
       性能: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge 
  *-cpu:1
・・・
  *-cpu:3
       詳細: CPU
       ベンダー: Intel(R) Corporation
       物理ID: f
       バス情報: cpu@3
       バージョン: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
       スロット: U2E1
       サイズ: 1464MHz
       容量: 3100MHz
       クロック: 25MHz
       性能: cpufreq
ubuntu:~$ 
```
CPUが４つのIntel Core i5のパソコンであることを確認（笑）

sudo lshw -C network　コマンドの結果

```
  *-network
       詳細: 無線インターフェース
       製品: BCM4331 802.11a/b/g/n
       ベンダー: Broadcom Inc. and subsidiaries
       物理ID: 0
       バス情報: pci@0000:02:00.0
       論理名: wlp2s0
       バージョン: 02
       シリアル: a8:86:dd:a1:9c:45
       幅: 64 bits
       クロック: 33MHz
       性能: pm msi pciexpress bus_master cap_list ____________
```

WLAN用のPCIで使われているのはBroadcomのBCM4331というチップらしい。先ほどのfirmware-b43-installerというのがそういうことだったのだろう。

#NetplanでI/Fと固定IPアドレスを指定


```
ubuntu:/etc/netplan$ sudo netplan apply

** (generate:27438): WARNING **: 23:43:41.116: `gateway4` has been deprecated, use default routes instead.
See the 'Default routes' section of the documentation for more details.

** (generate:27438): WARNING **: 23:43:41.117: Problem encountered while validating default route consistency.Please set up multiple routing tables and use `routing-policy` instead.
Error: Conflicting default route declarations for IPv4 (table: main, metric: default), first declared in enp1s0f0 but also in enp1s0f0
```
いろいろ文句を言われたけれども、原因はgateway4という宣言は古いからもう使わないでね、ということのようで、以下のように修正するとするーっと通過して設定が完了。
ちなみに99-manual.yamlというファイルはインストーラーに入力された情報を元に作成されたもの、らしい。
wifis以下を追加し gateway4 という宣言をroutes宣言に変更した。

```
ubuntu:/etc/netplan$cat 99-manual.yaml
#
network:
  ethernets:
    enp1s0f0:
      addresses: [192.168.0.9/24]
      nameservers:
             search: []
             addresses: [208.67.222.222, 208.67.220.220, 8.8.8.8]
      routes:
        - to: default
          via: 192.168.10.1
      optional: false

  wifis:
    wlp2s0:
      addresses: [192.168.0.8/24]
      nameservers:
             addresses: [208.67.222.222, 208.67.220.220]
      access-points:
             "SSID-NAME":
               password: "passwd"
      optional: true
  version: 2
ubuntu:/etc/netplan$
```
##そしてOpenDNS
ちなみに208.67.222.222, 208.67.220.220という２つのNameServerのアドレスはOpenDNSのものを使っています。OpenDNSは、それほど遠くない昔(2015)にCiscoに買収されましたが、それ以前は広告収入モデルのDNSサービスからスタートした企業だったようです。今でもFreeで使えるDNSサービスに加え、疑わしいサイトをブロックしてくれるオプションが提供されています。個人で使うのは登録だけでOKです。私は１０年以上前からサービスを使ったり（使わなかったり）しています。（ずっと無料のまま今までお金を払ったことはありません。）ちなみにこれはシスコブランドで展開されているUmbrellaという企業向けサービスとは別物です。（NameServerのアドレスは同じですが・・・）
http://opendns.com
登録すると何がよいかというと・・・
![スクリーンショット 2022-01-29 2.41.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92380/653ca962-871c-a550-2310-8edf23aecfab.png)
図のようなダッシュボードで何件のDNSリクエストが送られてきたとか、リクエストに怪しいドメインや不適切（暴力や反社会的など）なドメインが含まれていないか、を見てフィルターしてくれたりするサービスが使えるようになります。Ciscoでは企業向けに（さらにたくさんの機能を拡張した）サービスをUmbrellaという名前で提供しています。
![スクリーンショット 2022-01-29 2.46.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92380/465e4b1b-f8af-30a0-3f5f-44815a509fa9.png)
フィルタリングのポリシーやブロックするなんてこともできます。
でも、なぜそれが私のいえからのリクエストかわかるかというと、送信元のIPアドレスを三手なのですが、我が家も含めダイナミックIPでころころグローバルIPが変わります。でもご安心を。DDCLIENTなどのツールをサポートしていますので、自動的にIPアドレスを通知することで常に有効なサービスを受けることができます。
この辺は以前紹介したMyDNSと似ていますね。
私は自宅のUbuntuにDDCLIENTをインストールして以下のCONFIGを入れて、自宅とリモートの２カ所で運用しています。（OpenDNSの無料アカウントは２カ所まで）

```
##
## OpenDNS.com account-configuration
##
protocol=dyndns2
use=web, web=myip.dnsomatic.com
ssl=yes
server=updates.opendns.com
login=opendns_username
password='opendns_password'
opendns_network_label
```
出典：https://support.opendns.com/hc/en-us/articles/227987727-Linux-IP-Updater-for-Dynamic-Networks

```
ubuntu:~$ sudo systemctl status ddclient

ddclient.service - Update dynamic domain name service entries
     Loaded: loaded (/lib/systemd/system/ddclient.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-01-29 09:01:57 JST; 37min ago
       Docs: man:ddclient(8)
    Process: 42443 ExecStart=/usr/sbin/ddclient -daemon $daemon_interval -syslog -pid /run/ddclient.pid (code=exited>
...
Jan 29 09:01:59 ubuntu ddclient[42446]: SUCCESS:  updating ubuntu: good: IP address s
```
成功すると上のようなレスポンスが返ってきます。さいごのSUCCESSというのが重要。

##Disclosure
私は２０２２年１月現在Ciscoの社員です、が本記事並びに他の投稿も含めてすべて私個人の見解や意見を述べたもので私の属する会社の方針や公式見解となどとは一切無関係です。