ここで言う「私でもできる!」は筆者でもできるという意味であり、これを読んだ全ての人ができるという意味ではないので注意
あくまでこれは備忘録的な記事なので「この通りやったけど動かないんだけど!?」みたいなクレームを言われても困ります
やりたいこと
RaspberryPiでIPマスカレードをしてイーサネット側からの通信をWiFiに流したい
環境
- RaspberryPi 4B 4GB
- Ubuntu 22.04.2 LTS
やったこと
IPアドレスを振る
/etc/netplan/99-manual.yaml
を以下のように編集
network:
version: 2
ethernets:
eth0:
dhcp4: false
addresses: [192.168.24.254/24]
wifis:
wlan0:
dhcp4: true
access-points:
"SSID":
password: "password"
IPフォワードの有効化
/etc/default/ufw
の19行目を以下のように編集
DEFAULT_FORWARD_POLICY="ACCEPT"
/etc/ufw/sysctl.conf
の10行目のコメントアウトを削除
net/ipv4/ip_forward=1
IPマスカレードの設定
/etc/ufw/before.rules
の末尾に以下を追加
# IP masquerade
*nat
-F
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.24.0/24 -o wlan0 -j MASQUERADE
COMMIT
設定の有効化
以下のコマンドを実行するとufwが有効になり、デフォルトでは全てのポートが閉じられるので、SSH等を用いている場合はsudo ufw allow [port]
で適切に設定する
sudo ufw enable
おまけ
DNSはどうするの
DHCPサーバでDNSを上位のネットワークのDNSにするか、一台一台職人の手で丹精込めて丁寧に上位ネットワークのDNSを設定してね
デフォルトゲートウェイはどうするの
イーサネット側のネットワーク(ここでは192.168.24.0/24
)の機器のデフォルトゲートウェイはRaspberryPiのIPアドレス(ここでは192.168.24.254
)にしてね
おそらくこれもDHCPサーバの設定でなんとかなるよ