私はIP192.168.10.144のubuntuサーバーを持っていますが、このサーバーにはIP範囲10.0.0.0/24を使用するDockerネットワークがあります。 Dockerで実行されているいくつかのサービスにコンピューターを接続する必要があるため、Mikrotikにルートを追加しました。
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 ADS 0.0.0.0/0 192.168.0.1 1
1 A S 10.0.0.0/24 192.168.10.144 1
2 ADC 192.168.0.0/24 192.168.0.3 ether1-internet 0
3 ADC 192.168.10.0/24 192.168.10.1 ether2-proliant 0
ただし、コンピューターとDockerサービス間の接続は非常に遅いです。私はwiresharkを使用して何が起こっているかを確認し、いくつかのtcp-restransmissionメッセージを見つけました。
Natルールで問題を解決できるとは思いますが、次のルールを使用すると、コンピューターとDockerの間で通信が行われませんでした。
0 ;;; default configuration
chain=srcnat action=masquerade out-interface=ether1-internet log=no
log-prefix=""
1 chain=dstnat action=dst-nat to-addresses=192.168.10.144 to-ports=80
protocol=tcp dst-port=8000 log=no log-prefix=""
2 X chain=dstnat action=dst-nat to-addresses=192.168.10.144 protocol=tcp
dst-address=10.0.0.0/24 log=no log-prefix=""
3 X chain=srcnat action=src-nat to-addresses=10.0.0.0/24 protocol=tcp
src-address=192.168.10.144 log=no log-prefix=""
私は何が間違っているのですか?
Natルールを削除し、マスカレードルールを追加しただけです。
[admin@MikroTik] /ip firewall nat> print
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; default configuration chain=srcnat action=masquerade out-interface=ether1-internet log=no log-prefix=""
1 chain=dstnat action=dst-nat to-addresses=192.168.10.144 to-ports=80 protocol=tcp dst-port=8000 log=no log-prefix=""
2 chain=srcnat action=masquerade dst-address=10.0.0.0/24 log=no log-prefix=""
これで、すべてが期待どおりに機能しています。
お使いのPCのIPアドレスは192.168.10.53ですか?デフォルトゲートウェイ(192.168.10.1)を介してホスト10.0.0.77にトラフィックを送信します。ルーターからICMPリダイレクトパケットが返送されます。詳細については、こちらをご覧ください: https://www.Cisco.com/c/en/us/support/docs/ip/routing-information-protocol-rip/13714-43.html
ここで説明されている問題に似たものが発生する可能性があります: https://forum.mikrotik.com/viewtopic.php?t=139465
考えられる解決策:PCに静的ルートを設定します:10.0.0.0/24 via 192.168.10.144