はじめに
今回は、Ubuntu で NIC(ネットワークインターフェースカード)を2枚使用する方法を紹介します。
Linux ではネットワークインターフェースを複数同時に使用する場合は割とハマりやすく、スタティックなネットワークの設定などはあったのですが、私の欲しかった単に Ubuntu で NIC を2枚同時に使用するのというのは他にやり方を紹介している良いサイトが少なかったので紹介します。
構成
今回の構成としては、NIC の IP アドレスがそれぞれ 192.168.0.3/24 と 10.11.2.6/24 であるとします。enp1s0 に 192.168.0.3、enp0s31f6 に 10.11.2.6 を割り当て、通常のアクセスでは 192.168.0.3 を使用したいが、10.11.2.6/24 のネットワーク間のアクセスでは 10.11.2.6 の IP アドレスを使用したいという設定です。
現状の設定の確認
ネットワークルートテーブルを確認します。現状は enp1s0 のみに LAN ケーブルを挿している状況だとこんな感じです。
$ route -n
カーネルIP経路テーブル
受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース
0.0.0.0 192.168.0.254 0.0.0.0 UG 100 0 0 enp1s0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp1s0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp1s0
設定方法
Ubuntu では /etc/netplan/ の yaml ファイルを編集します。
-
まずは、はじめに入っている yaml ファイルを適当なディレクトリにコピーしておいてください(不具合のときのバックアップ)。
-
Ubuntu では /etc/netplan の yaml ファイルは辞書順の名前の優先順位ですべて読み込むような仕様ですので、上記の yaml ファイルを削除して、以下のような yaml ファイルを作成します。yaml ファイルですので、インデントは tab は使用しないでスペースキーを使用してください。またデフォルトのものは一度削除していますので、私はデフォルトのものが 01-network-manager-all.yaml だったので、02-network-manager-all.yaml などの名前にしていますが、yaml ファイルの名前は適当で OK です。
/etc/netplan/02-network-manager-all.yaml
network:
ethernets:
enp1s0:
addresses:
- 192.168.0.3/24
gateway4: 192.168.0.254
enp0s31f6:
addresses:
- 10.11.2.6/24
nameservers: # アドレス解決できない場合は、お使いのネットワークにおいて適切な DNS サーバを指定してください。
addresses: [8.8.8.8, 8.8.4.4]
version: 2
最後にコマンド `$ sudo netplan apply` を実行し、何もエラーが発生しなければ設定完了です。
```sh
$ sudo netplan apply
$ route -n
カーネルIP経路テーブル
受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース
0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 enp1s0
10.11.2.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s31f6
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp1s0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp1s0