■ 게이트웨이 란

네트워크 관리자는 대게 IP 범위의 시작 주소를 기본 게이트웨이로 사용하여 컴퓨터의 라우팅 기능을 구성하고

모든 클라이언트가 해당 IP 주소 (Ex. 192.168.0.1 - 게이트웨이)를 가리키도록 합니다.


기본 게이트웨이를 사용하면 네트워크의 컴퓨터가 다른 네트워크의 컴퓨터와 통신할 수 있는데, 게이트웨이가 없으면 네트워크는 외부와 격리됩니다. 게이트웨이 값이 0.0.0.0 이라면 외부 네트워크와는 통신이 불가능한 내부망이라고 표현할 수 있습니다.
호스트가 자체 네트워크가 아닌 외부에 있는 대상에 도달하려면 반드시 게이트웨이를 거쳐 나가야 합니다.


주로 라우터 또는 멀티 레이어 스위치 (라우팅을 수행할 수 있는 스위치)를 기본 게이트웨이로 사용하는데, 

라우터는 로컬 네트워크와 인터넷 사이의 중간 장치로 생각하면 됩니다. 
대부분의 집이나 회사에서 기본 게이트웨이는 로컬 네트워크에서 케이블이나 DSL 모뎀으로 트래픽을 전달하는 라우터로 인터넷 서비스 제공 업체 (ISP)로 보냅니다.

 

Default Gateway 란 기본적으로 설정된 라우팅 경로 입니다. 
즉, 특정 목적지로 가는 데이터패킷이 유입이 되었는데, 해당 목적지가 장비가 알지 못한다면 해당 패킷은 Default Gateway로 전달합니다. 
아래의 Route Table에서는 ①번이 Default Gateway로 번 및 ②번 차례로 비교 후 유효한 값이 없으면 번에서는 0.0.0.0과 AND 연산은 하므로 항상 유효합니다.
따라서 번에서 번, 번 등 라우트 테이블 순서에 따라 이전에 비교간 유효하지 않았던 모든 패킷을 처리하는데 이를 Default Gateway로 전달한다고 합니다.

 

 ■ 라우트 테이블 비교순서

Route Table 에서는 줄의 순서와 관계 없이 Prefix의 값이 클수록 우선 순위를 가집니다.

따라서 위의 경우 Prefix 값이 큰 ③, ②, ① 순으로 비교를 진행합니다.

 

즉, Genmask 255.255.255.0 (Prefix=24)로 ①, ②, ③ 중 가장 큰 Prefix 값을 가지는 번에 대해 먼저 값이 유효한지 검사를 하고, 

유효하지 않으면 다음으로 Genmask 255.0.0.0 (Prefix=8) 값이 큰 번과 비교합니다. 

두 경우가 유효하지 않으면 마지막으로 Genmask 0.0.0.0 (Prefix=0) 를 가지는 번과 비교를 진행합니다.


이때, 값이 유효한가 유효하지 않은가를 판단하는 방법은 Packet을 보낼 곳의 IP 주소와 해당 줄의 Genmask를 AND 연산한 후 해당 줄의 Destination 주소와 일치할 경우가 유효하다고 표현합니다.
번의 경우 Genmask가 항상 0.0.0.0이므로 어떤 값과 AND 연산을 진행하더라도 Destination 값인 0.0.0.0과 일치하게 됩니다.
따라서 앞서 모든 경우가 유효하지 않더라도 해당 줄의 enp4s0 인터페이스로 보내버립니다.


Ex) 8.8.8.8 의 주소로 Packet을 보낸다고 가정할 경우
1. 8.8.8.8 과 255.255.255.0에 대해 AND 연산 진행 후 Destination 192.168.0.0 값과 비교합니다. 
두 값은 일치하지 않으므로 유효하지 않습니다.
2. 8.8.8.8 과 255.0.0.0에 대해 AND 연산 진행 후 Destination 111.0.0.0 값과 비교합니다. 
두 값은 일치하지 않으므로 유효하지 않습니다.
3. 8.8.8.8 과 0.0.0.0에 대해 AND 연산 진행 후 Destination 0.0.0.0 값과 비교합니다. 
두 값은 정확하게 일치하므로 해당 enp4s0 인터페이스로 192.168.0.1의 게이트웨이를 통해 Packet을 송수신합니다.

추가로 게이트웨이에서 0.0.0.0 값을 가지는 것은 해당 줄은 내부망으로 연결되어 있어 외부 네트워크로 나갈 게이트웨이가 없다는 표현입니다.

0.0.0.0 은 "미지정"이라는 특정 의미를 갖고, 이는 게이트웨이의 맥락에서 "없음"으로 표현할 수 있습니다.
결론적으로 네트워크가 해당 인터페이스에 로컬로 연결되어 있음을 알 수 있습니다.