概要
VirtualBoxを使って、Linuxマシンをルーター化し、内部ネットワークからインターネットへ接続する構成を構築してみました。
備忘録としてハンズオンの内容を残します。
ゴール構成
[ クライアントVM ]
IP: 192.168.10.10
GW: 192.168.10.1
|
[ ルーターVM ]
enp0s9: 192.168.10.1 (Internal)
enp0s8: DHCPで取得 (NAT)
|
[ Internet ]
1. VirtualBox ネットワーク設定
VM構成
VM名 | アダプタ設定 |
---|---|
クライアントVM(VM1) | アダプタ3:内部ネットワーク |
ルーターVM(VM2) | アダプタ1:NAT アダプタ3:内部ネットワーク |
※ アダプタ番号とモードの組み合わせは任意です。
2. インターフェース確認
VM名 | インターフェース名 | 用途 | 接続方式 |
---|---|---|---|
VM1 | enp0s8 |
内部ネットワーク(LAN側) | アダプタ3 |
VM2 | enp0s8 |
NAT(WAN側) | アダプタ1 |
VM2 | enp0s9 |
内部ネットワーク(LAN側) | アダプタ3 |
※ 実際のインターフェース名は環境によって異なる場合があります。ip a
などで確認してください。
3. ルーターVM(VM2)のLAN側インターフェースに固定IPを設定
sudo nmcli connection show
sudo nmcli connection modify enp0s9 ipv4.addresses 192.168.10.1/24
sudo nmcli connection modify enp0s9 ipv4.method manual
sudo nmcli connection up enp0s9
確認
ip a | grep enp0s9 -A 3
# → inet 192.168.10.1/24 が表示されればOK
4. クライアントVM(VM1)のIPアドレス設定
sudo nmcli connection modify enp0s8 ipv4.addresses 192.168.10.10/24
sudo nmcli connection modify enp0s8 ipv4.gateway 192.168.10.1
sudo nmcli connection modify enp0s8 ipv4.method manual
sudo nmcli connection up enp0s8
確認
ip a | grep enp0s8 -A 3
ip route
# ip a に 192.168.10.10 があること
# ip route に default via 192.168.10.1 があること
5. VM1からVM2への疎通確認
ping 192.168.10.1
6. VM2にNATルーター機能を設定
① IPフォワーディングの有効化
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
② iptables で NAT マスカレード設定
※ NAT側(enp0s8)を指定します。
sudo iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
③ iptables 設定確認
sudo iptables -t nat -L -n -v
④ クライアントVMからインターネットへの疎通確認
ping 8.8.8.8
# 永続化(必要に応じて)
sudo apt install iptables-persistent
sudo netfilter-persistent save
おわりに
VirtualBox上にLinuxルーターを構築し、クライアントVMから外部ネットワークへのアクセスしてみました。