데이데이

보통은 IP가 라우팅 정보 관리에 신경 쓰지 않지만 ICMP 방향 전환이라는 소규모 피해제어 특성은 정의한다. 라우터가 패킷을 전달받았던 네트워크로 다시 패킷을 전송할 때 상황이 명백하게 꼬인다. 이 경우 송신자와 라우터, 다음 홉 라우터가 모두 같은 네트워크상에 있으므로 패킷은 두 홉이 아니라 홉 하나로 충분히 전달됐 을 것이다.

 

라우터는 송신 측 라우팅 테이블이 잘못됐거나 불완전하다고 결론 내릴 수도 있다. 이런 경우 라우터는 송신 측에 ICMP 방향 전환 패킷을 보내서 문제 상황을 알린다. 이를테면 방향 전환 문구는 어떤 호스트한테 보내는 패킷을 나한테 보내면 안된다. 대신 어떤 호스트에게 보내라 라는 식이다. ICMP 프로토콜은 개별 호스트 주소나 전체 네트워크 모두에 방향 전환 메시지를 보내게 허용한다. 하지만 많은 프로그램이 호스트 방향 전환만 지원하는데, 네트워크 방향 전환은 A,B,C 네트워크 클래스에만 적용되므로 요즘과 같은 때에는 거의 무용지물이기 때문이다.

 

방향 전환 메시지를 받은 후 순진한 송신 측은 향후 해당 목적지로 향하는 패킷이 좀 더 빠른 경로를 택할 수 있게 하려고 라우팅 테이블을 수정한다. 멀티캐스팅 초창기에 일부 시스템은 멀티캐스트 패킷에 대한 응답으로 ICMP 라우팅 방향 전환 메시지를 생성했다. 최신 시스템에는 이런 문제가 없다.

 

표준 ICMP 시나리오에 인증 단계는 없다. 라우터는 다른 믿을 만한 라우터가 보냈다고 생각되는 방향 전환 메시지를 받고서 다른 곳으로 트래픽을 보내라고 할 것이다. 이말을 들어야만 하는가? 방향 전환 메시지를 일일이 다르다간 보안문제가 생길 수 있다. 방향 전환은 리눅스나 시스코 라우터에서는 보통 무시된다. 검증되지 않은 호스트가 라우팅 테이블을 수정하게 허용하는 정책은 바람직하지 않다.

 

리눅스상에서 변수는 ICMP 방향 전환 메시지를 수용할지 여부를 결정한다. 

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band