@zundan ssh_config の TCPKeepAlive yes は試していますか?
@mmasuda ありがとうございます。誤解でなければ、ssh_configはssh部分の設定ですよね。ssh部分は今の設定で切れないのですが、トンネル出口の周囲の実家のネットワークでのルーティングにarpコマンドが必要そうな感じです。
家ネットワークの特定のアクセスポイントルータ(家ネットワークからは192.168.1.2に居るように見える)に接続したデバイスの通信をsshトンネルに放り込んで実家のネットワークからの通信に見えるようにしています。図がみにくくてすみませんが、この通信のほとんどはルーティングテーブルとデフォルトゲートウェイを設定すれば期待どおりに通じるのですが、実家NATから実家sshサーバにパケットを帰す(6)だけは、実家のNATに、実家のネットワークには無いプライベートIPアドレス192.168.1.2へのパケットを実家のsshサーバに届けてもらうようにarpテーブルを細工しないといけない感じです。んで、トンネルの接続と一緒に
arp -sD 192.168.1.2 enp1s0 pub
みたいに実家sshサーバが192.168.1.2も広告するようにしているのですが、何日か経つと忘れられちゃう感じになっています。
普段はまいにちsshトンネルを使っているのであまり問題にならない感じです。
@zundan
ちょっと読み解けなかったんだけど「実家ssh server から実家NAT に src ip 192.168.1.2 な無意味なパケットを投げつける」とかじゃダメなんですかね。
@mmasuda それだけだと実家NATが、dst IP 182.168.1.2のパケット(インターネットのサーバからの返信)をどのMACアドレスに送ればいいか知ってくれないんですよね~
@zundan もしかしてssh tunnel で L2 VPN やっている(両方のssh server がL2 ブリッジとして機能している)ということであればarp entry がなくてもarp request で解決すると思うんだけど、もしかしてssh server のtun i/f とLAN i/f はブリッジになっていないとか?
もし実家ssh server がブリッジではなくてルータ(gateway)になっているのであればproxy arp で解決できる気は何となくする。
@mmasuda ふむー…。L2ブリッジがキーワードっぽいですね。勉強してみます。ありがとうございます!
今は、トンネル入口のアクセスポイントルータから見て家サーバの物理NICがゲートウェイになっていますが、他の物理NICやトンネルデバイスはどれもゲートウェイでもブリッジでもない感じなんだろうと思います。
@mmasuda sshトンネル自体はむっちゃ強い (けっこうしつこく再接続してるみたいな) んだけど、トンネルの出口からインターネットに行くルータがサーバから受け取ったパケットを帰す先がわからなくなっちゃうんですよねー。トンネルの出口になってるsshサーバまで届けてもらったらtunデバイスに放り込んでもらってトンネルの入口まで来てくれるんだけど、ipコマンドだとそういう指定ができない感じでした。