Linuxでパスキャッシュをフラッシュする方法は?

Linuxでパスキャッシュをフラッシュする方法は?

5.4.17-2136.304.4.1.el7uek.x86_64Unbreakableカーネル(通常は3.10ベースのカーネルを使用するRHEL7などのシステムの最新バージョン)を含むOracle Linux 7システムがあります。

ネットワークインターフェイスにはエイリアスで構成された複数のアドレスがあります(このエイリアスは古いものでなければならないことを知っていますが、ifconfigそれにもかかわらず、一部のIPは履歴IPですが、すべてではなく、システムにはまだ複数のアドレスが必要です)。

root@bccdb:network-scripts# ip addr show dev bond0.610
15: bond0.610@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.221.195/24 brd 192.168.221.255 scope global bond0.610
       valid_lft forever preferred_lft forever
    inet 192.168.221.2/24 brd 192.168.221.255 scope global secondary bond0.610:1
       valid_lft forever preferred_lft forever
    inet 192.168.221.134/24 brd 192.168.221.255 scope global secondary bond0.610:2
       valid_lft forever preferred_lft forever

ルートキャッシュとヒント(外部接続を確立するときにシステムが使用するアドレス)に問題があります。

この.195アドレスが最初に出てくるので、それをローカルネットワークパス(192.168.221.0/24 dev bond0.610 proto kernel scope link src 192.168.221.195)にします。ただし、システムは.134デフォルト値を使用する必要があります。

)でパスを更新しました。ip route change 192.168.221.0/24 dev bond0.610 proto kernel scope link src 192.168.221.134正しいip routeパスが表示されます。ただし、特定のIPを要求すると、まだ古いsrcプロンプトが使用されます。

root@bccdb:network-scripts# ip route get 8.8.8.8
8.8.8.8 via 192.168.221.1 dev bond0.610 src 192.168.221.195 uid 0 
    cache 

実際、このソースアドレスを宛先アドレスとして使用します。とは別に手動でインストールしたパスip route add <target-host> dev bond0.610 src 192.168.221.134(アドレスが別のネットワークにある場合は追加via 192.167.221.1)、<target-host>ターゲットホストのアドレス(/ 32)はどこですか?

ip route show cache何も表示しません。

汎用キャッシュはLinux 3.6から削除されました私たちはその更新されたバージョンを実行しています。そこにいくつかの説明があります最新のLinuxカーネルのパスキャッシュただし、このキャッシュ管理に関する推奨事項はありません。

私が見つけたこの提案、しかしip route flush cache役に立ちませんでした。

このキャッシュをクリアする方法は?

答え1

ifdown bond0.610これは重要なシステムであり、管理期間の前にソリューションが提供されていなかったため、我々は単に再起動インターフェイスを使用し、ifup bond0.610それによってルーティングテーブルが更新されました(そのインターフェイスについて)。これにより、約5秒のダウンタイムが発生し、これはこのサーバーではほとんど許可されていません。

関連情報