サーバーをルーターとして使用するためには、NATを設定する必要があります。このガイドでは、サーバーには2つの物理ポートがあります。
- enp3s0 - インターネット (192.168.1.12)
- enp1s0 - ローカルネットワーク (100.100.100.1)
1. enp1s0 の設定
more /etc/network/interfaces
auto enp1s0
iface enp1s0 inet static
address 100.100.100.1
netmask 255.255.255.0
2. NATの設定
apt install iptables
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
iptables -A FORWARD -i enp1s0 -j ACCEPT
2.1 ローカルゲートウェイをDNSサーバーとして設定
この場合、DNSサーバー8.8.8.8へのフォワーディングを使用します。
iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to 8.8.8.8:53
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 8.8.8.8:53
iptables -t nat -A POSTROUTING -j MASQUERADE
2.2 モジュール設定の保存
nano /etc/modules
iptable_nat
2.3 トラフィック設定の保存
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
2.4 iptables設定の保存
apt install iptables-persistent
iptables-save > /etc/iptables/rules.v4
3. 動作確認
インターネットは一方のポートに、ローカルネットワークはもう一方のポートに接続されていますので、ローカルネットワークポートに接続されたすべてのデバイスがインターネットにアクセスできるはずです。時々、ゲートウェイ自体がDNSサーバーとして正しく設定されていない場合があり、その場合、外部IPアドレスへのpingによって正確な確認が行えます。
例えば:
ping 8.8.8.8
Exchange of packets from 8.8.8.8 to 32 bytes of data:
Response from 8.8.8.8: number of bytes=32 time=23ms TTL=59
Response from 8.8.8.8: number of bytes=32 time=23ms TTL=59
または
ping 1.1.1.1
Exchange of packets from 1.1.1.1 to 32 bytes of data:
Answer from 1.1.1.1: number of bytes=32 time=4ms TTL=57
Answer from 1.1.1.1: number of bytes=32 time=4ms TTL=57
ご覧のとおり、すべて正常に動作しています。これで、サーバーがルーターとして機能しています。
No Comments Yet