Routing 환경


1. 공통 Routing 환경
 Routing과 Routing Protocol사이엔 차이점이 있다. 모든 File System이 Data를 Route
 하지만 모든 시스템이 Routing Protocols를 수행하지는 않는다.
 Routing이란 Routing Table에 내포된 정보에 기초하여 Datagrams를 Forwording 하는
 것이다. Routing Protocols는 Routing Tables를 만들때 사용되어지는 정보를 교환하
 는 Programs를 말한다.

 Minimal Routing - 모든 다른 TCP/IP Network으로 부터 완전히 고립된 Network만이 
                   Minimal Routing Table은 Network Interface가 구성될때"ifconfig"
                   에 의해만들어진다.만약 Network이 다른 TCP/IP Network와 직접 
                   직접적인 접근을 하지않고 Subnetting을 사용하지 않는다면 이
                   Minimal Routing Table만이 유일하게 필요하지만 이같은 고립된 
                   Network은 Unix환경에서 생각보다 드물다.

 Static Routing  - 다른 TCP/IP Network과 제한된숫자의 Gateway를 가지는 Network
                   은 Static Routing 으로 구성할수 있다. 이Static Routing 은 
                   "route" 명령어를 사용하여 Manually하게 구성된다. Static  
                   Routing Table은 Network변경에 대하여 적응되지 않으므로 Route
                   가 바뀌지않는 곳에 사용되어 야한다.
                   그러나 원격 목적지가 오직 하나의 Route로만 닿을수 있을때
                   Static Route가 가장좋은 선택이다.

 Dynamic Routeing - 같은 목적지에 하나 이상의 Route가 가능할때 Dynamic Routing
                    을 사용해야 할것이다.
                    Dynamic Routing Table은 Route Protocol에 의해 바뀌어진 정보
                    로 부터 만들어진다. 이 Protocol들은 바뀌는 Network상태를 반
                    영하여 Route를 동적으로 적응시킬수 있는 정보를 분배하기 위해
                    설계되어 있다. Routeing Protocol복잡한 Routing 상황에 시스템
                    관리자 가 할수 있는것보다 정확하고 빠르게 다룰수 있으며 
                    Primary Route 가 동작하지 않을 경우의 Back-up Route로의 교체
                    뿐만아니라 목적지로의 최선의 Route를 결정할수 있도록 설계되
                    어있다. 같은 목적지에 대하여 다중의 Path가 있는 어떠한 Netw-                    work에서도 Routing Protocol이 사용되어진다.

 Route는 ifconfig, route 명령어에 의한 수작업, Routing Protocol에 의한 동적Rou-
 ting 중의 어떤 방법을 사용하더라도 Route가 들어가면 모두 Routing Table이 됨.

2. Minimal Routing Table
  ----------------------------------------------------------------------------
  | % netstat -rn                                                             |
  | Routing tables                                                            |
  | Destination		Gateway		Flags		Refcnt	    Use       |
  | Interface                                                                 |
  | 127.0.0.1		127.0.0.1	UH		1      	    132   lo0 |
  | 128.66.12.0		128.66.12.2	U		26          49041 le0 |
  ----------------------------------------------------------------------------

 "ifconfig"에 의해 구성된 Routing Table의 첫번째의 Entry는 lo0가 바치될때 만들어
 진 localhost 대한 loopback route이다.
 또다른 network 128.66.12.0에 대한 route는 le0 interface를 통한다. 128.66.12.2
 는 원격 gateway ddress가 아니고 system의 le0 interface에 할당된 주소이다. 
 두개의 entry 모두 "U" (UP)라는 flag를 가진다. 이것은 사용할수 있는 준비가 되어
 있다는것이다. 또한 entry 모두 flag에 "G"(gateway) flag 가없는데 "G" flag는 
 remote gateway 를 사용하는것을 의미한다. "G" flag가 없는것은 외부 gateway를 통
 하지않고 local interface 를 통한 직접적인 route를 의미한다.

 loopback route는 "H" (host)flag set도 가지고 있다. 이것은 이 route를 통해서 오
 직 하나의 host에만 도달할수 있다는 것을 의미한다. loopback entry의 destination
 field를 보면 network 주소 가 아닌 것을 알수있다. loopback의 network주소는 
 127.0.0.0이며, 127.0.0.1은 개별적 host인 모든 host table에는 특별한 host route
 가 있다. 비록 모든 host table이 이러한 host-specific route 를 가진다해도 대부분
 의 route는 network을 route한다. 이것은 routing table의 size를 줄이는데 한 이유
 가 있다.

 위의 sample table을 보면 오직 하나의 network route 128.66.12.0만이 존재 하므로  해당 시스템은 128.66.12.0 network상의 host들 에게만 통신할스 있다. 이러한 제
 한된 routing table은 "ping" 명령어로 쉽게 검증할수 있다.
 "ping"은 ICMP를 이용하여 Echo message를 remote host로 강제적으로 보내고 local
 host 사이의 통신이 성공임을 나타낸다.

3. Building a Static Routing Table
 외부 gateway를 통해 remote host로 도달하려면 routing table에 route가 반드시 더
 해져양 한다. "route" 명령어는 routing table에 entry를 수동으로 더하거나 삭제할
 수 있다.

  ---------------------------------------------
 | #route add 26.0.0.0 128.66.12.1.1          |
 | add net 26.0.0.0 : gateway almond          |
 ---------------------------------------------

 cf) #route add destination gateway metric

 destination address는 IP address, /etc/networks file의 network name 또한     
 /etc/hosts file의 host name, 그리고 "default" 로 명시된다.
 대부분의 route가 startup 이전에 추가되므로 IP address가 name보다 많이 사용한다.
 name service가 없다는 가정하에 routing configuration에 필요한 file은 더이상없다
 항상 4byte numeric IP address를 사용하며 4byte보다 작으면 "route"가 address를 
 확장시킨다. 이결과 우리의 의도와 틀릴수 있다.
 "26"이라고 주어질경우 어떤 "route"의 구현은 26.0.0.0 이라 확장하며 어떤것은
 0.0.0.26 이라 할수 있다. "default"가 destination address에 쓰이면 route는  
 default route를 만듬. default route에 연관된 network address는 0.0.0.0 이며 
 default route는 destination으로 명시된 route가 없을경우에 항상 사용된다.
 그리고 이것이 우리에게 필요한 유일의 route를 가질수 있다.
 만약 network이 하나의 gateway 만을 가진다면 default route를 사용하여 해당 
 gateway 를 통하여 remote network을 향한 모든 traffic을 직접적으로 route한다.

 route 명령어의 다음 field는 gateway address이다.  이것은 목적지 address로 보내
 는 data들이 경유할 external gateway의 address이다.
 이것은 반드시 직접적으로 network에 연결된 gateway의 address이어야 한다.

 route의 마지막 argument는 routing metric이다. 이것은 route를 delete할때는 사용
 되지않으며 added될때는 항상 필요하다. 만약 route가 local interface를 통하여 G
 flag가 setting 되어있지 않으면 metric 이 0 이 되며 metric value가 0 보다 크고
 G flag가 setting 되어 route가 설치되어 있으면 해당 gateway address는 external
 gateway 로 여겨진다. static routing에서 metric의 쓰임은 다른용도는 없으며 다양
 한 metric value 의 사용은 dynamic routing에서만 필요하다.