ホームラボ用のネットワーク内のルータとして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