[RE] ip route longest match에 대한 질문 입니다.
Reg. Date: November 17, 2003 By 오현택
longest prefix matching이란
라우터에서 packet을 forwarding해 줄 때, 다음 라우터(또는 호스트)로의 경로를 결정하기 위해, 패킷의 목적지 주소와 라우팅 테이블의 각 엔트리에 있는 prefix와 비교를 수행게 됩니다. 즉, 라우팅엔트리의 prefix mask(255.255.255.0 또는 길이로 24)를 목적지 주소에 masking 한 후, prefix와 비교를 하게 됩니다. 이때, 가장 많이 매칭되는 엔트리를 선택한다~는 룰이죠.
다음의 예를 생각해보세요.
만일 패킷의 목적지 주소가 10.10.10.10 이고,
다음과 같은 4개의 라우팅 엔티리가 있다고 가정하죠.
(ㄱ) default(0.0.0.0/0) -> 1.1.1.1
(ㄴ) 10.10.0.0/16 -> 2.2.2.2
(ㄷ) 10.10.10.0/24 -> 3.3.3.3
(ㄹ) 20.10.10.1/32 -> 4.4.4.4
예가 별로 좋지는 않지만, 어쨌든 10.10.10.10의 목적지 주소는 세개의 엔트리와 matching됩니다만, longest matcing에 따라 (ㄷ) -> (ㄴ) -> (ㄱ)의 참조 우선순위로 경로가 선택됩니다. 결국 요 packet은 (ㄷ)엔트리에 따라 3.3.3.3 라우터로 포워딩 되겠죠. (ㄹ)은 아예 매칭이 실패~
그리고, default route entry는 matching되는 엔트리가 없을 때, 기본적으로 포워딩할 라우터를 지정해주는 엔트리랍니다. 따라서 우선순위로 치면 맨 꼴찌~
이상은 longest prefix matching에 대한 설명이고, 질문에서는 아마도 longest prefix matching을 위한 라우팅 엔트리 검색(비교) 순서를 묻는 듯합니다. 이 경우에는 당연히 prefix length가 가장 길은 엔트리먼저 비교해봐야 하겠지요. 위의 예문에서는 (ㄹ)->(ㄷ)->(ㄴ)->(ㄱ) 순이고, 질문에서는 2번 엔트리와 매칭이 안되면 3번 엔트리 비교해보고 매칭 안되면 마지막으로 1번 엔트리 매칭.. 요런 식으로 말이죠.
중요한 것은 많은 라우팅 엔트리 중에 어떻게 위와 같은 순서로 비교해보느냐에 대한 문제입니다. 요게 라우팅 성능에 중요한 영향을 미치거든요.
답변이 되었길 바랍니다.
>안녕 하십니까?
>아주 초보적인 질문을~~
>
>다름이 아니옵고,
>
>라우팅을 설정하는데..
>1. IP ROUTE DEFAULT 1.1.1.1
>2. IP ROUTE 10.1.1.1 255.255.255.255 1.1.1.1
>3. IP ROUTE 20.1.1.0 255.255.255.0 1.1.1.1
>
>이 있다면, longest match에 의해서 우선순위가 2 -> 3 -> 1 이라고 하는데..
>
>제가 얼핏 들은 말로는 Default route 를 설정하는 이것은 무엇보다 우위 라고 한다 라는 것 같습니다 ???
>
>제가 잘못 들었는지는 ^^;
>
>그래서 제 생각은 우선순위가 1 -> 2->3 순 이 아닐런지요???
>
>고수님들.. 답변을 부탁드립니다.
>
>감사 합니다.