SSHトンネリング

お仕事でデータセンターからデータセンターへサーバのお引越しをするという作業がありました。言い換えると、あるシステム系を別のネットワークへ移行するということですが、大抵の場合はその系に収まっていない外部システムへの依存をどう処理するかが悩ましいところになります。
そこでお題の通り、SSHトンネリングを使って処理しましたというお話です。

MySQLレプリケーションの問題


データセンターを移行する前はdb101をdb201にレプリケーションしていたので移行後も同様にしたい。

SSHトンネルを掘ってみる-1


トンネルを掘ってみたけどレプリケーションするにはdb201からdb101へ接続できなければなりません。

SSHトンネルを掘ってみる-2


デキた!と思ったら監視の都合でgw101からトンネルを掘ってねと。。

SSHトンネルのRで張ればいいのか。。


ただし、sshd_configの設定が必要となってくる。セキュリティ的には本当は望ましくないんでしょうけれど。。

SSHトンネルのコマンドの整理

下記の通り。

$ ssh -f -N -g -o serveraliveinterval=10 -A -L 13306:db201:3306 user_hoge@gw201.yourdomain.net

オプション
-A : Agent Forwading
-N : ログインシェルを起動しない(リモートでコマンド実行しない)
-f : バックグラウンドで実行
-g : GatewayPortsの指定。(リモートのホストにローカルのポートへのフォワードを許可)
-L(-R) : トンネル設定