状況
家の光回線が固定IPでないためポート開放して自宅サーバー、ってのができない
そこで固定IPを持つVPSサーバーを契約 WireGuardのVPNサーバーを設定
自宅にLANIPをもたせたRaspiを構築 WireGuardのクライアントインストールしてVPNの接続までは成功
だが
のpingは通るが
にpingが通らない
ローカルIPまでは到達してるが、その先の自宅ローカルネットワーク越しで通信ができない
解決策
以下のコマンドをRaspi上で実行する
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s WireGuard専用プライベートネットワーク -o RaspiのNIC -j MASQUERADE
-t nat
natテーブルはNetwork Address Translationの通りネットワークアドレス変換を行う。-A POSTROUTING
POSTROUTINGチェインに新しいルールを追加 POSTROUTINGチェインとはルーティングの後に実行される送信時に送信元アドレス/ポートを変換するチェイン-s
パケットの送信元-o
パケットを送信するインタフェース-j
jampの略 MASQUERADEはパケットの送信元アドレスを修正する
WireGuardの起動時に自動でコマンド実行してほしいのでRaspiの設定は以下になった
[Interface] PrivateKey = xxx Address = 10.0.0.100/24 PostUp = iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o wlan0 -j MASQUERADE PostDown = iptables -t nat -D POSTROUTING -s 10.0.0.0/24 -o wlan0 -j MASQUERADE DNS = 94.140.14.14 MTU = 1420 [Peer] PublicKey = xxxx Endpoint = xxxxxx:51820 AllowedIPs = 10.0.0.0/24 PersistentKeepalive = 25