Problem_site2site

#背景 VPNを使って拠点間通信(Site-to-Site Routing)を構成していると、 思ったようにパケットが届かないケースがあります。今回は以下の構成で発生した通信不通トラブルと、その解決方法を共有します。 🔧 ネットワーク構成 [A] 100.64.1.61 (100.64.1.0/22) ↓ [B] 100.64.1.27 (OpenVPNクライアント) → VPN → [C] OpenVPNサーバー → [D] 192.168.1.4 (192.168.1.0/24) 目標:AからD(192.168.1.4)への通信を通すこと。 ❗ 問題の症状 BからDには通信可能(VPN経由で192.168.1.4が見える) AからDへの通信は届かない しかしDからAへの通信(返信)は可能 🧠 原因 Aは 192.168.1.0/24 サブネットに属していないため、この宛先へのパケットをデフォルトゲートウェイに送ってしまっていた。 つまり、「行きのルート」が不在だったわけです。 ✅ 解決策:Aに静的ルートを追加 一時的にルートを追加する場合は以下のコマンドを実行: sudo ip route add 192.168.1.0/24 via 100.64.1.27 これで、Aは目的地 192.168.1.4 へのパケットをVPN中継ノードBに送るようになります。 UbuntuでNetplanを使用している場合、/etc/netplan/xxx.yaml を以下のように修正します: network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: false dhcp6: false addresses: [100.64.1.61/22] routes: - to: default via: 100.64.1.1 - to: 192.168.1.0/24 via: 100.64.1.27 nameservers: addresses: [100.64.1.1, 8.8.8.8, 8.8.4.4] ちなみに、netplan applyをやって疎通できなくなると困ることってありますよね。 そんな時のためにこれがあります ...

May 2, 2025 · 3 min · 619 words · Me

cronで定期的にmysqldumpし、定期的にバックアップサーバに送る方法(バックアップ鯖が取りに来る)

背景 Mysqlをデータベースにしてサービスを運営している。 しかし現在、Mysqlのバックアップは取っておらず、元データが消えたら全データが消える状況である。 そこで、元サーバで毎日指定された時刻にmysql_dumpをし、バックアップサーバが元サーバからデータを持ってく量なcronジョブ を作りたいと思っている。 注意点としては、本番サーバはグローバルに、バックアップ鯖はローカルネットワークにいるので、グローバルからローカルには送れないってこと。(vpnとか貼ったらいけるけどめんどい)ので、バックアップサーバもcronでscpを動かして定期的に鶏肉という感じ。 AC 毎日元サーバから吐かれたmysqldumpファイルがバックアップサーバに置かれた状態になっている 関連技術 cron 参考 設定ファイル /var/spool/cron/crontabs/<user name> が設定ファイルです。 rootユーザ用のcronを設定する方法は、 sudo vim /var/spool/cron/crontabs/root って感じで開けます。 このファイルに実行したいジョブと実行日時(実行間隔も指定可能)を指定します。 0 * * * * /home/backup.sh 五つの*が何を表すかですが、 「分 時 日 月 曜日」 結構忘れがちなのが、シェルスクリプトのパーミッションでexecuteが入ってなくてエラーになることが多いので気をつけて。(上の/home/backup.sh) ログについて(ubuntu) デフォルトではログが出力されないようになっている。 こちらを参考にログを出力するように設定を変える vi /etc/rsyslog.d/50-default.conf # コメントアウト cron.* /var/log/cron.log # リスタート service rsyslog restart mysqldump 参考文献 こちら 上のによると、特定のユーザが持っているデータベースをダンプする方法は以下のようになるかな。 mysqldump -u hoge -p -B some_database > database.sql ちなみに、パスワードの入力まで自動でやるとするとこんな感じです。 0 21 * * * mysqldump -u -hogehoge --password="hogehoge" --no-tablespaces DB_NAME > /hoge/database.sql 毎日21:01にSCPでとってくるcron jobをしくむ。さらにdbへの流し込みもやってくれると最高だよね〜。 まず、scpでpasswordを打たなくていいように鍵をリモートサーバに登録 sudo vim /etc/ssh/sshd_config # 以下をコメントアウト PubkeyAuthentication yes ssh-keygenで秘密鍵と公開鍵を生成 パスフレーズを入れないのがポイント ...

September 28, 2024 · 1 min · 176 words · Me