Ubuntu18.04で複数ネットワーク+Static Routeの設定


Ubuntu16.04で複数ネットワークの設定
の18.04版。
Ubuntuは17からネットワーク設定が/etc/network/interfacesではなく/etc/netplanに変わった。

環境

Ubuntu18.04(Windows Server2012 r2内のHyper-V上)
Hyper-Vの仮想スイッチマネージャーで複数のNICを設定
(NICが複数ある実サーバでも可)

ネットワーク構成

IPアドレスとネットワークアドレス
eth0(NIC#1)に192.168.1.1/24(WAN側)
eth1(NIC#2)に10.10.0.1/16(内部側)
を割り当てる。

スタティックルートとしては以下のような構成とする。
10.0.0.0/8(つまり第一オクテットが10の場合)はNIC#2のルータに
その他の場合(WAN:インターネット)はNIC#1を通る。
スタティックルートはroute addでもいけると思うが、
netplanで設定する方法としての一例。

INTERNET
|
192.168.1.254(デフォゲ・ルータ)
|
192.168.1.1/24(eth0,NIC#1)
Ubuntu18.04
10.10.0.1/16(eth1,NIC#2)
|
10.10.0.254(NIC#2側のルータ)

ネットワークの確認

sh
$sudo lshw -short -class network

このような表示が出てくる

H/W path        Device      Class      Description
==================================================
/1              eth0        network    Ethernet interface
/2              eth1        network    Ethernet interface

/etc/netplan/

50-cloud-init.yamlというファイルがあるが、
「cloud-initはAWS EC2 などの cloud instance に対して、設定や拡張性を提供するためのパッケージです」
らしい。
参考:https://hiroki.jp/config-cloud-init

名前がそぐわない気がするので、これはこれでバックアップとし、
network.yamlファイルを作ってやる。
※netplanは/etc/netplanにある.yamlファイルを読み込むので.yaml_bakはスルーする。

/etc/netplan
sudo cp 50-cloud-init.yaml network.yaml #コピー
sudo mv 50-cloud-init.yaml 50-cloud-init.yaml_bak #バックアップ

以下は/etc/netplan/network.yamlで話を進める

sudo pico /etc/netplan/network.yaml

ipアドレスはipv4のみとします。

/etc/netplan/network.yaml
network:
    version: 2
    renderer: networkd
    ethernets:
        eth0:
            addresses: [192.168.1.1/24]
            gateway4: 192.168.1.254
            nameservers:
                addresses: [192.168.1.254]
            dhcp4: no
            dhcp6: no
        eth1:
            addresses: [10.10.0.1/16]
            dhcp4: no
            dhcp6: no
            routes:
            - to: 10.0.0.0/8
              via: 10.10.0.254

注意点

1.デフォゲを明確にするため、eth0のgatewayのみ記載する。
2.yamlファイルなのでスタティック・ルーティングの記載は、インデントに気を付けること。インデントにtabは使わない。半角スペースで。
3.加えて、インデントを間違うとSyntaxエラーになる。
例えば routes:の次行の「- to:」はインデントするとNG。routes:と同じ階層にする。

#以下はダメな例
routes:
  - to: 10.0.0.0/8
  via: 10.10.0.254

設定の反映

書式チェックもしてくれる。

sudo netplan apply