|
News,
Internal,
Projects,
Home Software, Support, Documentation |
On Tue, Jun 01, 2004 at 12:07:50AM +0900, hwangij wrote: > > ---------- > | host 1 | > ---------- > | > | > a ---------- b > ---| route 1 |--------------------------- > | ---------- | > | | > | ----------- > ----------- | router 2 | > | host 2 | ----------- > ---------- | > | > | > ----------- > | host 3 | > ----------- > > host1에서 전송하는 패킷은 host2로 전송하지만, > 저는 router1에서 host2로 전달되는 패킷을 host3로 직접 전달하기 위하여 > 아래와 같이 encapsulation을 하여 전송하도록 하였습니다. > |----------------------------------------------------------------------| > | src | dst | ---------------------------------- > | > | host 2 | host 3 | | src | dst | Data > | | > | | | | host 1 | host 2 | > | | > | | | ---------------------------------- > | > |----------------------------------------------------------------------| > > > 허나 router1에서 b 인터페이스로 전달하지 않고 > " a 인터페이스로 전달하여 host2를 거쳐 host3로 전달하고 있습니다." > 어떤목적때문에 그런지는 모르겠지만 이런일은 routing daemon이나 pf/ipf/ipfw의 policy routing을 이용할 수 있습니다. 또는 아주 간단히는 router1에 host route를 생성하면 가능합니다. 말씀하신 encapsulation은 host나 router의 수가 증가하면 제대로 동작할 수 없고 중복된 forwrading으로 latency를 증가시킵니다. > 패킷을 전달할때, 인터페이스를 결정은 어디에서 하는지 알고 싶습니다. > IP address의 routing은 RADIX tree(Patricia tree)에서 수행합니다. (sys/net/radix.[ch]) Interface 결정은 ip_output()에서 RADIX tree lookup으로 결정된 route를 이용해서 결정됩니다. 만일 route가 가 결정되지 않았다면(ip_output()의 ro argument 가 NULL일경우) ip_output()에서 새로운 route를 생성합니다. (ifatoia()와 ro->ro_rt->rt_ifp 부분을 보세요.) IPv6라면 ip6_output()을 보세요.(sys/netinet6/ip6_output.c) > 더불어, b 인터페이스로 전달하도록 하려면 어떻게 해야 하는지도 알고 > 싶습니다. > 감사 합니다. > RADIX tree에서 해당 interface를 선택하도록 설정하거나(route(8)이용) pf라면 'route-to'를 ipf라면 'to' 같은것을 사용할 수 있습니다. routing을위한 일반적인 encapsulation문제라면 gre(4)를 보세요. (WCCPv1은 지원되지만 WCCPv2의 경우는 아직 제대로 구현되지 않았습니다.) -- Pyun YongHyeon <http://www.kr.freebsd.org/~yongari> _______________________________________________ 한국 FreeBSD 사용자 그룹(KFUG) questions 메일링 리스트 questions at kr.FreeBSD.org http://www.kr.FreeBSD.org/mailman/listinfo/questions
|
Copyright © 1998-2005 Korea FreeBSD Users Group. All rights reserved. webmaster at kr.FreeBSD.org $Date: 2004/06/01 14:12:07 $ |
|