Oracle Linux:nmcliを使用して同じホストのパブリックアドレスを持つ2つのインタフェースからパスを取得するには?

Oracle Linux:nmcliを使用して同じホストのパブリックアドレスを持つ2つのインタフェースからパスを取得するには?

この構成例に似た2つのパブリックアドレスを持つOracle Linux 8システムがあります(例ではプライベートアドレス)。

ens224: connected to ens224
        [...]
        ip4 default
        inet4 10.1.1.94/30
        route4 10.1.1.92/30 metric 104
        route4 default via 10.1.1.93 metric 104

ens256: connected to ens256
        [...]
        inet4 10.1.1.98/30
        route4 10.1.1.96/30 metric 102

問題は、10.1.1.98(ens256)に入るトラフィックがデフォルトゲートウェイであるため、10.1.1.93(ens224)を介して応答をルーティングすることです。私の場合は、他のプロバイダの別のパブリックアドレスであるため動作しません。

10.1.1.94 に対する要求はそのインタフェースを介して応答する必要がありますが、10.1.1.98 に対する要求は 10.1.1.97 で応答する必要があります。トラフィックが正しい発信ゲートウェイを選択できるようにするには、ある種のソースルーティングが必要なようです。

私はOLのインターフェース管理に関する最新のベストプラクティスに準拠するために「nmcli」を使用してこれを達成しようとしています。しかし、これまで私の要件を正確に満たす構成を得ることはできませんでした。

答え1

コメントにABが提供した参考資料を元に、これが私が思いついた解決策です。これはデュアルルーティングの主な問題を解決するようですが、操作を完了するためにnmcliを使用しません。

echo "10 public1" >> /etc/iproute2/rt_tables
echo "20 public2" >> /etc/iproute2/rt_tables

ip route add 10.0.0.92/30 dev ens224 src 10.0.0.94 table public1
ip route add default via 10.0.0.93 table public1
ip route add 10.0.0.96/30 dev ens256 src 10.0.0.98 table public2
ip route add default via 10.0.0.97 table public2
  
ip route add 10.0.0.92/30 dev ens224 src 10.0.0.94
ip route add 10.0.0.96/30 dev ens256 src 10.0.0.98

ip rule add from 10.0.0.94 table public1
ip rule add from 10.0.0.98 table public2

rt_tables部分を除いて、再起動後も持続しません。ネットワークの起動後に「ip」コマンドを実行するカスタムサービスを作成してこの問題を解決しましたが、これはこの質問の範囲外です。

nmcliを使って同じ結果を得る方法を知っている人がいる場合は、まだ感謝します。

関連情報