Ubuntu20.04でルータを作成

ホームラボ用のネットワーク内のルータとしてUbuntuを作成したので、その時のメモ。今回めざす構成図は以下の通りで、192.168.10.0/24ネットワーク向けに各機能を提供するのが目的です。

ルーティングの有効化

下記の行をコメントから外すことで、本Ubuntuに入ってきた通信をルーティングすることができます。

$ grep ipv4.ip_forward /etc/sysctl.conf
net.ipv4.ip_forward=1

設定の有効化。

sudo sysctl -p

NAT(IPマスカレード)の設定

構成図のとおり、192.168.10.0/24ネットワークは外部から切り離されたネットワークとして構成する予定です。そのため、外部にて出ていくためにはUbuntuでNAT(IPマスカレード)してインターネットに出れるようにします。まずは、Iptablesを使ってNATするのですが、設定が再起動後も残るようにiptables-persistentをインストールします。

sudo apt install iptables-persistent

その後、NATに必要なルートを追加します。

sudo su
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens160 -j MASQUERADE
iptables-save > /etc/iptables/rules.v4

これにより192.168.10.0/24ネットワークからNATして外に出ていけるようになります。

DHCPサーバの設定

次に、DHCPサーバを設定していきます。

sudo apt install isc-dhcp-server

今回のDHCP設定ファイルは以下のとおりです。DNSサーバは同じUbuntu上に建てるので、ゲートウェイと同じIPになっています。

$ cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
option routers 192.168.10.1;
option domain-name-servers 192.168.10.1;
option domain-name "home.lab";

subnet 192.168.10.0 netmask 255.255.255.0 {
      range 192.168.10.101 192.168.10.199;
}

設定が完了後サービスを起動します。

sudo systemctl enable isc-dhcp-server.service
sudo systemctl start isc-dhcp-server.service

DNSサーバの設定

今回はDNSサーバ用にBINDを使用します。

sudo apt-get install bind9

今回は192.168.10.0/24ネットワークのみからの通信に対応すれば良いので、そのような設定をファイルに書き込みます。

  • ネットワークは192.168.10.0/24
  • 再起問い合わせ先は8.8.8.8
  • ドメインはhome.lab
  • Ubuntu VMとESXiのみレコードを追加
localadmin@ubuntu-jump:~$ cat /etc/bind/named.conf.options
options {
  directory "/var/cache/bind";
  listen-on port 53 { localhost; 192.168.10.0/24; };
  allow-query { localhost; 192.168.10.0/24; };
  forwarders { 8.8.8.8; };
  recursion yes;
};
localadmin@ubuntu-jump:~$ cat /etc/bind/named.conf.local
zone "home.lab" IN {
  type master;
  file "home.lab.zone";
};
localadmin@ubuntu-jump:~$ cat /var/cache/bind/home.lab.zone
$TTL 86400

@ IN SOA home.lab root.home.lab (
  2020113001
  3600
  900
  604800
  86400
)

@           IN NS ubuntu-jump
ubuntu-jump IN A  192.168.10.1
esxi        IN A  192.168.0.11

これらの設定が正しいか確認後にサービスを有効化していきます。

named-checkconf
named-checkzone home.lab /var/cache/bind/home.lab.zone

これらのコマンドでエラーがでなければサービスを有効化します。

sudo systemctl restart named
sudo systemctl status named

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください