CHAPTER 04 · NETWORK

주소를 받고
다른 동네로

DHCP로 네트워크 정보를 받고, 라우팅과 NAT를 거쳐 인터넷으로 나가는 과정을 따라갑니다.

읽는 시간 약 15분DHCP · Routing · Gateway · NAT · Public IP
“어디로 가야 하죠, 아저씨?” 목적지가 다른 네트워크라면 패킷은 라우터에게 길을 묻습니다.
“어디로 가야 하죠, 아저씨?” 목적지가 다른 네트워크라면 패킷은 라우터에게 길을 묻습니다.

01

새로 이사 오면 전입신고부터

네트워크에 처음 연결된 장비는 자기 주소도, 출입구도, DNS 서버도 모릅니다.

DHCP는 장비에 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버와 임대 시간을 자동으로 알려 줍니다.

이 과정을 DORA라고 부릅니다. Discover로 서버를 찾고, Offer로 주소를 제안받고, Request로 사용을 요청한 뒤 Acknowledge로 승인을 받습니다.

DiscoverDHCP 서버 계세요?
Offer이 주소를 사용하세요
Request그 주소를 쓰겠습니다
Acknowledge사용을 승인합니다
직접 확인해 보기
$ nmcli device show $ ip addr $ ip route $ resolvectl status

02

다른 동네로 보내는 길

목적지가 같은 네트워크가 아니라면 패킷은 기본 게이트웨이로 향합니다.

라우터는 라우팅 테이블에서 목적지와 가장 구체적으로 일치하는 경로를 선택합니다. 일치하는 경로가 없다면 default 경로를 사용합니다.

traceroute는 목적지까지 거치는 라우터를 순서대로 보여 주므로 어느 구간에서 통신이 멈췄는지 확인할 때 유용합니다.

직접 확인해 보기
$ ip route $ route -n $ traceroute google.com $ tracepath google.com
3번 라우팅 설명 장면4번 라우팅 설명 장면5번 라우팅 설명 장면6번 라우팅 설명 장면7번 라우팅 설명 장면8번 라우팅 설명 장면9번 라우팅 설명 장면10번 라우팅 설명 장면11번 라우팅 설명 장면12번 라우팅 설명 장면13번 라우팅 설명 장면14번 라우팅 설명 장면15번 라우팅 설명 장면16번 라우팅 설명 장면17번 라우팅 설명 장면
패킷이 목적지로 가는 길을 찾는 과정을 이미지 순서대로 따라가 봅니다.

03

사설 IP로 인터넷에 나갈 수 있는 이유

192.168.x.x 같은 사설 IP는 인터넷에서 직접 사용할 수 없습니다. 공유기나 방화벽의 NAT가 주소를 바꿔 줍니다.

NAT는 내부 장비의 사설 IP를 외부에 보이는 공인 IP로 변환합니다. 여러 장비가 하나의 공인 IP를 함께 사용할 때는 포트 번호까지 이용하는 PAT가 일반적입니다.

응답이 돌아오면 NAT 테이블을 보고 원래 요청한 내부 장비로 다시 전달합니다. curl ifconfig.me로 보이는 주소가 내 장비의 사설 IP와 다른 이유입니다.

10.0.0.0/8사설 IP
172.16.0.0/12사설 IP
192.168.0.0/16사설 IP
curl ifconfig.me외부에서 보이는 공인 IP
만약 사설 IP를 가지고 나간다면 수많은 똑같은 이름의 나와 만날 것이다. 사설 IP는 여러 내부 네트워크에서 반복해서 사용되므로 인터넷에서는 공인 IP로 변환되어야 합니다.
만약 사설 IP를 가지고 나간다면 수많은 똑같은 이름의 나와 만날 것이다. 사설 IP는 여러 내부 네트워크에서 반복해서 사용되므로 인터넷에서는 공인 IP로 변환되어야 합니다.

04

밖에서 안으로 들어오려면

NAT 환경에서는 외부 장비가 내부의 사설 IP로 바로 접속할 수 없습니다.

포트포워딩은 공인 IP의 특정 포트로 온 통신을 내부 장비의 IP와 포트로 전달하는 설정입니다.

외부에 서비스를 공개하면 공격 표면도 함께 열립니다. 꼭 필요한 포트만 열고, 강한 인증과 방화벽, 로그 모니터링을 같이 사용해야 합니다.

Rogue DHCP는 가짜 게이트웨이와 DNS 정보를 나눠 주어 트래픽을 공격자에게 유도할 수 있다. 자동 설정도 무조건 믿어서는 안 된다.

CHAPTER REVIEW

이번 장에서 기억할 한 문장

DHCP가 주소와 길을 알려 주고, 라우터는 목적지를 찾아 보내며, NAT는 사설 주소를 공인 주소로 바꾼다.