したがって、192.168.200.2のIPアドレスを持つ192.168.200.0/24のプライベート内部ネットワークにVMがあります。
外部ネットワークアドレスは192.168.1.0/24です。外部IPからのすべてのトラフィックを192.168.200.2のVMに転送したいと思います。これは私がしたことです...
まず、インターフェイスにセカンダリIPを追加します。
ip addr add 192.168.1.111 dev eno1
次に、この2つのiptablesコマンドを使用してnatを設定します。
iptables -t nat -A PREROUTING -d 192.168.1.111 -j DNAT --to-destination 192.168.200.2
iptables -t nat -A POSTROUTING -s 192.168.200.2 -j SNAT --to-source 192.168.1.111
これは実際に動作します。これで、192.168.1.111でSSH経由で接続できるようになり、IP 192.168.200.2を使用するkvmインスタンスになります。
しかし、私の問題は、時々SSHで完全な接続が停止することです。top
これは、常に次のコマンドを実行したときに発生します。または、コンソール全体をロックする前の出力例systemctl
は次のとおりです。man ip
top
top - 19:45:58 up 2 days, 23:56, 3 users, load average: 0.00, 0.00, 0.05
Tasks: 106 total, 1 running, 105 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3936.3 total, 2479.2 free, 150.1 used, 1307.0 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 3505.6 avail Mem
これ以上の出力が必要です^^^ここでは、ctrl C、ctrl Z、またはqを使用できませんman
。 192.168.1.111を使用せずに192.168.200.2を使用して接続すると、問題は消えます。この問題は、192.168.1.111を使用して接続するときにのみ発生することがわかります。
問題はMTUの断片化かもしれませんか?
どんな助けでも大変感謝します。
ping -s 1472 192.168.1.111
編集:ちょうど1472を超えるものはすべて破棄されることを学びました。
答え1
だから私の問題は完全にMTUにあります。ホスト物理インターフェイスのmtuは1500、仮想デバイスのmtuは1450です(vxlanカプセル化用)。これに加えて、ホストのVMには1500のmtuがあり、全体的な問題が発生します。
Linuxでmtuを修正する
ip link set dev eth0 mtu 1500