라우팅 - 정적 라우팅 (Static Routing)
굵직한 스위칭 프로토콜은 대충 다 다루었고, 이제 라우팅 프로토콜들을 정리한 다음에 잘 쓰이지 않는 프로토콜들이나 기술에 대해 써볼까 합니다. 라우팅은 내용이 조금 복잡하다 보니 잘 설명드릴 수 있을지 걱정되네요. 오류나 질문사항은 댓글남겨주시기 바랍니다.
라우팅은 스위칭의 개념과 IPv4, CIDR 개념을 이해하시고 읽으셔야합니다. 관련 내용은 이전 포스팅들을 참조하시기 바랍니다.
1. 라우팅 (Routing) 개요
라우팅을 시작하기전에 먼저 스위치의 동작방법을 되짚어 보겠습니다. 스위치는 L2, 즉 MAC-Address를 보고 데이터를 전달하고, 우리는 IP를 사용하니까 MAC 주소를 알기위해 ARP를 사용하죠.
이 ARP Request는 브로드캐스팅되고, End-Device도 ARP Table에 서로의 IP와 MAC주소를 기록하며 최종적으로는 아래와 같은 정보들을 가지게 됩니다. 스위치는 학습한 MAC Address Table을 보고 데이터를 스위칭합니다.
가장 기본적인 동작은 이러한 방식이었는데, 라우터라고 특이하게 동작한다거나 하진 않습니다. 라우터는 MAC Address 대신 IP Address를 사용하고, MAC Table 대신 Routing Table을 사용한다는것만 기억하시면 됩니다. 아래 구성을 보겠습니다.
서로 다른 대역의 네트워크가 통신하기 위해 필요한 것이 라우터였죠. 그리고 라우터는 Layer3 에서 동작하므로 포트에 IP Address 를 주게 됩니다. 지금까지 스위치나 스위치를 다룰 때에는 IP주소를 딱히 쓸 일이 없었지만 이제부터는 모든게 IP주소를 사용하고 동작한다고 생각하셔야 합니다.
이러한 구성에서 192.168.0.0/24 네트워크와 192.168.10.0/24 네트워크가 어떻게 통신할 수 있을까요? 스위치는 그냥 선만 꽂아도 알아서 통신이 됬는데, 라우터도 알아서 데이터를 전송해줄 수 있을까요?
당연히 안됩니다. 라우터가 Routing Table을 참조해서 데이터를 전송해야하는데, 아무것도 설정하지 않는다면 데이터를 어디로 보낼지 당연히 모를겁니다. 이 예시에서 라우터는 자기와 직접 연결된 10.0.0.2/30 네트워크의 정보만 알고 있을 뿐입니다. 그렇다면 이제 관리자가 알려줘야겠죠.
이렇게 데이터가 전달되기 위해 올바른 길을 안내해주는 것이 라우팅이며, 안내를 관리자가 직접 수동으로 지정해주는것이 정적 라우팅, 라우터들끼리 정보를 교환하며 자동으로 길을 파악하는것이 동적 라우팅이라고 할 수 있겠습니다.
2. 정적 라우팅 (Static Routing)
라우팅을 위해서는 우선 관리자가 네트워크에 대한 정보를 잘 파악하고 있어야만 하고, 올바른 IP의 할당과 경로를 지정해야합니다. 다시 예시를 확인해보겠습니다.
좌측의 라우터는 192.168.10.0/24 네트워크로 가는 길을 알지만, 우측의 라우터는 192.168.0.0/24 네트워크로 가는 길을 지정해주지 않았습니다. 이 경우 양방향 통신이 불가능합니다.
우측의 라우터에게도 길을 알려줘야겠죠.
라우터를 하나 더 추가시켜보겠습니다. 아래와 같은 구성에서는 라우팅을 어떻게 구성해야 모든 PC가 통신할 수 있을까요?
R1은 R2, R3쪽으로 가는 방향을 알아야하고,
R2는 R1, R3쪽으로 가는 방향을 알아야하고,
R3는 R1, R2쪽으로 가는 방향을 알아야합니다.
결과적으로 아래와 같은 라우팅 테이블이 필요합니다.
조금 더 복잡해졌습니다. 라우터가 몇개만 더 추가되어도 테이블은 더욱더 복잡해질겁니다. 이렇듯 정적 라우팅은 네트워크의 규모가 커질수록 작업량이 많아지고, 네트워크 변화가 발생하면 관리자가 일일히 수동으로 라우팅 테이블을 갱신해야 하기 때문에 변화에 즉각적으로 대응하기 어렵다는 단점을 갖고 있습니다.
물론 라우터 역시 지정된 경로로만 데이터를 전송하면 되기 때문에, 동적 라우팅에 비해 속도가 빠르고 성능면에서 좋다는 장점또한 갖긴 하지만 소규모 네트워크나 특수한 몇몇 경우를 제외하고는 사용되기 힘듭니다.
3. Default Routing
이러한 구성을 자세히 들여다보면 R1, R3는 어디와 통신하던 모든 트래픽을 R2 방향으로 전달해야만 하는 구조입니다. 따지자면 R1과 R3는 길이 하나밖에 없고, R2만 갈림길이 있는 도로입니다. 갈림길에서는 방향을 안내해줄 표지판이 필요하지만 길이 하나뿐이라면 굳이 표지판은 필요 없겠죠.
여기서 디폴트 라우팅이란 그냥 길따라서 가라는 것과 비슷합니다. 무슨 네트워크는 어디로 가라, 어디로 가라, 지정해줄 필요없이 그냥 전부다 길따라서 저까지 가라! 는 명령을 내리는것과 같다고 볼 수 있겠습니다.
조금더 간략해 보이죠. 라우팅 테이블이 줄어들면 장비의 부하도 줄어드는 효과가 있습니다.
조금 더 복잡해진 네트워크에서는 디폴트 라우팅을 어떻게 줘야 할까요? 모두 중앙으로 트래픽을 전달하면 중앙의 라우터가 Down 되었을때 모든 네트워크가 통신이 불가능해집니다. 다른 장비가 디폴트 라우팅으로 부하를 줄인만큼, 더 큰 부담을 안게 되겠죠.
따라서 네트워크 설계시에 잘 고려해야하며 일반적으로는 내부망에서 L3 기능을 수행하는 스위치에서 업링크로 걸어주는 경우가 많으며, 인터넷에서는 ISP 라우터가 대부분의 라우팅 테이블을 갖고 있기 때문에 주로 사용됩니다.
4. Default Gateway
라우팅 테이블이 없는 L2 장비에서 사용하는 Default Routing 과 같은 개념이 Default Gateway 입니다. 당장 명령 프롬프트에서 ipconfig등의 명령어로 네트워크 정보에 기본 게이트웨이 주소를 확인하실 수 있을텐데, 목적지를 알 수 없는 모든 트래픽을 이 기본 게이트웨이로 보낸다는 의미입니다.
즉, 223.130.200.107 서버와 통신하기 위한 트래픽이 발생하면 다른 대역이니 외부로 통신해야하고 트래픽을 일단 192.168.6.254 라는 기본 게이트웨이로 전달합니다. 192.168.6.254는 자신의 라우팅 테이블을 참조하거나 또는 설정에 따라 다른 홉으로 Default Routing 될 수 있겠습니다.
Command
Static Routing
Router(config)# ip route [Network ID] [Subnet Mask] [Next Hop Address / Output Interface]
Default Routing
Router(config)# ip route 0.0.0.0 0.0.0.0 [Next Hop Address / Output Interface]
Default Gateway
Switch(config)# ip default-gateway [IP Address]