이더넷과 무선 LAN은 같은 네트워크 안에서 데이터를 전송할 수 있다. 다른 네트워크에 데이터를 전송하려면 서로 다른 네트워크를 연결해야 하는데, 이 때 사용하는 네트워크 기기가 라우터이다.
라우팅
라우팅이란 라우터가 데이터의 목적지가 어느 네트워크에 접속해 있는지 판단해서 연결된 네트워크의 라우터로 전송하는 것을 말한다.
라우터가 전송하는 데이터는 TCP/IP에서 인터넷 계층에 속하는 IP 패킷이다. 이 IP 패킷을 전송할 때 IP 헤더 안에 있는 목적지 IP 주소를 확인하는데, NAT 주소 변환이 이루어질 때를 제외하고는 IP 주소가 변경되지 않은 채 전송된다. 반면에 이더넷 헤더의 경우 연결된 네트워크에 있는 다른 라우터까지 보내기 위한 것이기 때문에 새로운 헤더로 교체된다.
라우터에도 다수의 네트워크를 연결하기 위한 인터페이스가 다수 있는데, 각 인터페이스마다 IP 주소 설정을 해야 통신을 할 수 있다.
라우터가 라우팅하는 대상인 IP 패킷에는 다음과 같은 주소 정보를 가지고 있다.
예를 들어, 위와 같은 네트워크 구조 상에서 A 네트워크에 있는 호스트 A1에서 B 네트워크에 있는 호스트 B1으로 데이터를 전송할 때 A1에서 보내는 IP 패킷에는 주소 정보가 다음과 같이 되어 있다.
라우터가 위 주소 정보로 되어 있는 IP 패킷을 받으면 목적지 IP 주소와 일치하는 라우팅 테이블의 경로 정보를 검색한다. 라우터 R2로 전송해야 한다고 판단하면 R2로 전송하기 위해 이더넷 헤더의 목적지 MAC 주소를 R2의 MAC 주소로 변경한다. 이더넷 헤더가 변경되었기에 FCS도 새로 추가한다. 라우터 R2로 온 IP 패킷의 헤더의 주소 정보는 다음과 같아진다.
다음 라우터로 전송될 때마다 목적지 MAC 주소는 변경되지만 목적지 IP 주소는 변경되지 않는다. 라우터 R2에서도 마찬가지로 라우팅 처리를 하여 최종 목적지인 호스트 B1으로 IP 패킷을 전송한다.
라우팅 테이블에는 어떤 네트워크로 IP 패킷을 전송하기 위한 경로가 저장되어 있다. 경로란 다음에 전송해야 하는 라우터인데, 이 라우팅 테이블 상에서 인식할 수 없는 네트워크로 가는 IP 패킷은 모두 폐기된다. 그렇다면 라우팅 테이블에 경로 정보를 저장해야 하는데, 다음과 같은 방법을 사용해서 저장한다.
라우팅 프로토콜
라우팅 프로토콜에도 여러 종류가 있는데 주요 라우팅 프로토콜에는 다음과 같은 것들이 있다.
- RIP(Routing Information Protocol) : 주로 소규모 네트워크에서 이용한다.
- OSPF(Open Shortest Path First) : 중규모~대규모 네트워크에도 대응 가능한 프로토콜.
- BGP(Border Gateway Protocol) : 주로 인터넷 백본에서 이용한다.
라우팅 테이블에는 전송 가능성이 있는 모든 네트워크의 경로 정보가 필요하다. 하지만 모든 네트워크의 경로 정보를 등록하기란 쉽지 않은 일이기 때문에 경로 정보를 요약해서 등록할 수 있다. 다음으로 전송해야 하는 라우터가 공통으로 연결되어 있는 네트워크의 경로 정보를 하나로 모아 등록할 수 있다. 즉, 네트워크 A, B, C로 가는 경로 모두 라우터 R1을 거친다면 각 네트워크의 정보를 하나로 모아 A~C로 가는 경로는 모두 R1으로 보내는 것으로 요약해서 등록할 수 있다.
그 외에 디폴트 경로라는 것이 있는데, 이는 모든 네트워크를 집약한 경로 정보로, 인터넷에 존재하는 방대한 네트워크를 디폴트 경로로 모두 집약해서 라우팅 테이블에 등록한다.
PC나 서버 등 TCP/IP를 이용하는 모든 기기에도 라우팅 테이블이 있다. PC의 라우팅 테이블에 기재되지 않은 네트워크로는 IP 패킷을 보낼 수 없기 때문에 IP 패킷을 전송하고 싶은 모든 네트워크를 등록해 두어야 한다. 하지만 모든 경로 정보를 등록하기란 불가능한 일이기 때문에 디폴트 경로로 등록하는데, 그 설정이 바로 기본 게이트웨이의 IP 주소이다.