* hop-by-hop 라우팅 프로토콜이 아닌 source routing 기반
* route discovery, route maintenance 메커니즘을 정의
* route discovery
- Source node가 Destination까지의 경로를 찾는 과정 (캐쉬에 경로가 없을 때)
- ROUTE REQUEST 패킷을 broadcast, 이는 망에서 flood 됨
- RREQ메시지에 route record 포함 -중간 노드에서 순서대로 추가
- 중복방지를 위한 sequence number
- Destination node에서 ROUTE REPLY 패킷을 전송
- Route discovery의 cost를 줄이기 위해 각 node는 source route의 캐쉬를 유지
--- learned, overheard
--- RREQ의 propagation 범위를 줄이는 효과
- Cache 내에서 해당 route를 모두 삭제
- Overheard, Forward한 routing information을 cache함 - route discovery 빈도를 줄임
- ROUTE REQUEST 의 propagation을 줄이기 위해 cache된 route를 사용하여 응답
- ROUTE REPLY Storm이 발생할 수 있음 - 목적지 경로까지의 홉수에 비례하는 ‘delay’를 주어 방지, Source가 최단 경로를 먼저 받을 수 있음
- 만약 overheard 패킷의 경로보다 더 빠른 경로를 알고 있으면, gratuitous Route Reply를 보내 더 빠른 경로를 유지할 수 있도록 함
- 받은 RouteError를 RouteRequest에 piggyback - stale 된 경로를 널리 알리기 위해
- RouteError메시지를 엿들어 자기 cache와 확인
* DSR이 다른 MANET 라우팅 프로토콜(DSDV,TORA,AODV)에 비해 좋은 성능
linux Source routing 적용 & 삭제 방법
** 적용방법 **
## 처음 상태
ezWall# ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup 253
## 라우팅을 위한 rule 을 생성한다
ezWall# ip rule add from 192.168.1.50/32 table 200
## 생성된 후
ezWall# ip rule list
0: from all lookup local
32765: from 192.168.1.50 lookup 200
32766: from all lookup main
32767: from all lookup 253
## 생성된 rule 에 라우팅을 추가한다
ezWall# ip route add 0.0.0.0/0 via 192.168.1.35 table 200
## 생성된 후
ezWall# ip route list table 200
default via 192.168.1.35 dev eth3
## cache를 삭제하여 라우팅을 적용한다
ezWall# ip route flush cache
## 적용된 후 -- 라우팅 테이블 변경사항은 표시되지 않는다
ezWall# ip route
192.168.1.0/24 dev eth3 proto kernel scope link src 192.168.1.1
218.145.125.0/24 dev eth0 proto kernel scope link src 218.145.125.32
default via 218.145.125.1 dev eth0
ezWall# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 40 0 0 eth3
218.145.125.0 0.0.0.0 255.255.255.0 U 40 0 0 eth0
0.0.0.0 218.145.125.1 0.0.0.0 UG 40 0 0 eth0
** 삭제방법 **
## 설정된 rule 을 삭제한다
ezWall# ip rule list
0: from all lookup local
32765: from 192.168.1.50 lookup 200
32766: from all lookup main
32767: from all lookup 253
ezWall# ip rule del from 192.168.1.50 table 200
## 삭제된 후
ezWall# ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup 253
## cahe를 삭제하여 라우팅을 적용한다
ezWall# ip route flush cache
## 삭제된 후 -- 라우팅 테이블 변경사항은 표시되지 않는다
ezWall# ip route
192.168.1.0/24 dev eth3 proto kernel scope link src 192.168.1.1
218.145.125.0/24 dev eth0 proto kernel scope link src 218.145.125.32
default via 218.145.125.1 dev eth0
ezWall# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 40 0 0 eth3
218.145.125.0 0.0.0.0 255.255.255.0 U 40 0 0 eth0
0.0.0.0 218.145.125.1 0.0.0.0 UG 40 0 0 eth0
출처 : http://cafe.naver.com/kbnetworking
댓글