이제까지 배운 라우팅은 다 이상적인 상황을 가정했다. (flat한 network 모형)
실제로는 네트워크를 구성하는 라우터가 동일하지도 않다.
라우팅 테이블에 억단위의 목적지 정보를 다 저장할 수는 없다. (당연히 exchange를 위한 트래픽이 오히려 증가할 것이다)
따라서 실제 네트워크 환경은 scalability를 위해 hierarchy가 있다.
실제 internet은 여러 intranet들의 inter-networking으로 구성된다. 각 intranet 관리자는 자신들의 네트워크 라우팅을 직접 관리하고 싶을 수 있다.
intranet 집단을 하나의 autonomous system(AS)이라고 부른다.
AS끼리의 routing을 inter-AS routing이라고 한다. 이때 가장 많이 사용하는 프로토콜이 BGP이다.
반대로 intranet 안에서 rounting을 intra-AS routing이라고 한다.
동일한 AS안에 host, router끼리의 라우팅을 말한다. 한 AS 내부 노드들은 전부 동일한 intra-domain protocol을 따라야 한다.
물론 서로 다른 AS는 다른 intra-domain protocol을 따를 수 있다.
다른 AS와 연결하기 위한 edge 라우터를 gateway router라고 한다.
AS안에 node는 inter-AS, intra-AS 알고리즘으로 forwarding table을 만들어서 관리한다.
intra-AS routing은 동일 AS에 있는 다른 노드로 가는 경로를 결정하고 외부로 가는 경로는 inter-AS, intra-AS가 결정한다.
inter-AS routing은 policy에 따른 traffic흐름을 결정하고 intra-AS routing은 performance에 집중한다.
1. intra-AS routing in the Internet: OSPF
intra as routing protocol로 가장 유명한 두가지는 RIP, OSPF이다.
Routing Information Protocol (RIP)은 bellman-ford 알고리즘을 활용한다.
Open shortest Path First Protocol (OSPF)는 Dijkstra's 알고리즘을 활용한다. (link state)
OSPF는 Open source로 공개되어 있다.
모든 노드가 AS network topology를 알고 있어야 하므로 많은 양의 OSPF link-state advertisement(message)가 IP로 서로서로 전달된다. (very chatty)
2. routing among the ISPs: BGP
border gateway protocol은 domain간의 라우팅 프로토콜이다.
AS 끼리의 routing은 eBGP를 사용하고 AS 내부 라우터 까지의 routing은 iBGP를 사용한다.
지금까지는 good path를 찾는 기준 중 최단 경로만 살펴보았지만 관리자의 policy에 따른 path를 결정할 수도 있다.
AS끼리 연결하는 edge router(gateway router)는 e/i BGP 모두를 따른다.
AS3 gateway router(3a)가 AS2에게 "X로 가려면 나를 거쳐라" 라고 advertise한다. (eBGP)
그럼 AS2 gateway router(2c)는 AS3,X라는 경로를 AS2 내부에 다른 라우터들에게 전파한다.(iBGP)
그럼 또 AS2는 AS1의 gateway router(1c)에게 "x로 가려면 AS2, AS3를 거쳐라" 라고 advertise한다. (eBGP)
꼭 gateway 라우터가 한쌍으로만 연결될 필요는 없다. 1c는 3a, 2a로 가능 multiple path를 가질 수 있다.
이런 경우 1c는 x로 가는 두 경로를 얻게 된다. {AS2,AS3,x}, {AS3,X}
그 중 policy에 맞게 경로를 선택해서 AS 내부 라우터들에게 전파한다. (iBGP)
다양한 기준이 policy가 될 수 있다. 어떤 지역을 피해야 한다, 가장 짧은 path, 가장 빨리 AS를 탈출하는 path 등 여러 기준이 있다.
위 그림에서 B는 C가 자신의 고객이 아니라는 이유로 C가 BAw 경로를 배우지 못하도록 path를 advertise하지 않을 수 있다.
이런식으로 정책을 구현할 수 있다.
혹은 트래픽이 자신을 거쳐가는 것을 x가 원하지 않아서 B,C에게 자신을 advertise하지 않을 수 있다. 그러면 B에 달려있는 고객과 C의 달려있는 고객 사이의 패킷은 BxC 같은 경로로 전달되지 않는다.
3. Hot potato routing
2d는 iBGP 프로토콜을 통해 x로 가려면 2a, 2c를 통하면 된다는 사실을 알고 있다.
hot potato routing은 intra-domain cost가 최소인 local gateway를 선택하는 것을 말한다.
즉 가장 cost가 적게 AS를 빠져나가는 path를 고른다.
4. BGP, OSPF, forwarding table
BGP 프로토콜로 x로 가기위한 path는 1c가 받아서 AS1으로 전파한다.
내부 node들은 OSPF 프로토콜로 x로 가기 위한(=1c로 가기위한) output inteface를 구한다.
5. ICMP: The Internet Control Message Protocol
host, router 사이 network level information을 주고 받을때 사용하는 프로토콜이다.
unreachable host, network, port 같은 error reporting이나 ping(ehco request/reply)이 ICMP를 사용한다.
ICMP는 IP datagram으로 전달되기 때문에 network layer보다 살짝 상위에 있다.
ip datagram이 네트워크에서 전달되다가 오류가 발생하면 송신자에게 error message를 icmp로 보낸다.
이때 type, code와 datagram의 첫 8바이트 정보를 함께 보내서 어떤 메시지를 보내다 에러가 났는지 알려준다.
예를들어 traceroute는 UDP segment를 목적지로 보내는데, TTL=n일때마다 datagram을 버리고 ICMP 프로토콜로 11 0의 타입, 코드를 송신자에게 알린다.
6. Network management and SNMP
AS(autonomous system, network)는 수천개의 상호작용하는 하드웨어/소프트웨어로 구성되어있다. 따라서 당연히 모니터링과 관리도 필요하다.
네트워크 관리를 위해서는 managing entity가 필요하다. 그리고 네트워크에 모든 device에는 management agent가 실행되고 있어야 한다.
agent들은 네트워크 관리를 위해 각자 수집한 정보들을 가지고 있고 managing entity의 요청에 따라 정보를 보내준다. 그 정보들을 management information base(MIB)라고 한다.
이 정보를 주고 받을때 simple network management protocol을 사용한다. (SNMP)
'ComputerScience > Network' 카테고리의 다른 글
Network Layer - 5. Control Plane (1) (0) | 2022.05.23 |
---|---|
Network Layer - 4. IP: Internet Protocol (2) (0) | 2022.05.16 |
Network Layer - 3. IP: Internet Protocol (1) (0) | 2022.05.16 |
Network Layer - 2. What's inside a router? (1) (0) | 2022.05.12 |
Network Layer - 1. overview (0) | 2022.05.10 |