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초의 가동 중지 시간이 발생했으며 이는 이 서버에서는 거의 허용되지 않는 수준입니다.

관련 정보