라우팅 테이블의 수정후 즉시 적용 문제
아래와 같이 라우팅 테이블을 만들어 놓았습니다
목적지가 192.168.30.10인 패킷은 192.168.10.10인 머신을 통해서 라우팅 되도록 했습니다.
[root@deux ragent]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.30.10 192.168.10.10 255.255.255.255 UGH 0 0 0 eth1
그리고
system("/sbin/route del 192.168.30.10");
system("/sbin/route add 192.168.30.10 gw 192.168.10.11 dev eth1");
위명령을 통해
라우팅 테이블을 아래와 같이 고칩니다.
[root@deux ragent]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.30.10 192.168.10.11 255.255.255.255 UGH 0 0 0 eth1
근데 문제는 변경된 라우팅 테이블이 즉시 적용되지 않는다는 것입니다.
목적지 주소가 192.168.30.10인 패킷을 무한정 전송하고 있는 동안 라우팅 테이블을 위와 같이 변경
합니다. 그러나 변경된 192.168.10.11로 패킷이 흘러가지 않고 기존의 192.168.10.10으로 패킷이
흘러갑니다. 그리고 어느정도 시간이 지나면 패킷이 변경된 라우팅 경로인 192.168.10.11로 흘러갑니
다.
생각하건데, 즉시 변경되지 않는 문제는 라우팅 캐쉬가 갱신되지 않은것일꺼라는 생각에
system("/sbin/ip route flush cache");
이러한 명령어도 사용해 보았습니다.
그러나 위 명령어를 쓰나 안쓰나 차이가 없는 것 같습니다.
고수님들 혹시 위 문제를 해결할 방법을 알고 계시면 조언 부탁드립니다.
댓글 달기