본문 바로가기
Computer Science/컴퓨터 네트워크

컴퓨터 네트워크: IPv4 Address - Special Addresses, NAT

by 청량리 물냉면 2021. 12. 2.
반응형

IPv4 Address

4. Special Addresses

classful addressing에서 일부 주소는 특수 목적을 위해 예약되어 있었다. classless addressing 체계는 classful addressing에서 이러한 특수 주소 중 일부를 상속한다.

 

All-zero address

고정 IP

컴퓨터를 껐다 켜도 IP가 바뀌지 않는 것. 사이트 운영 시 사용. ex) 네이버, 다음, 쿠팡, 11번가, 개인쇼핑몰 등...

 

유동 IP

일반 가정집에서 사용하는 모든 IP. 컴퓨터 부팅 시 마다 누군가에게 할당받아야 함.

 

Dynamic Host Configuration Protocol(DHCP)

  • 클라이언트는 네트워크 부팅과정에서 DHCP 서버에 IP주소를 요청하고 DHCP는 클라이언트에게 동적으로 IP를 할당해 준다. 인터넷 공유기에 탑재된 DHCP 서버는 각각의 Client PC에 사설 IP를 할당하여 네트워크 연결이 가능하게 한다.
  • DHCP 서버: 클라이언트에게 IP 할당 요청이 들어오면 IP를 부여해주고 할당 가능한 IP들을 관리한다. 
  • DHCP 클라이언트: PC, 스마트폰, 스마트패드 등 각종 최종 단말 장치들은 모두 DHCP Client가 탑재되어 있어서, 서버로부터 IP를 할당받아 사용한다. 서버에게 IP를 할당받으면 TCP/IP 통신이 가능하게 된다.

All-zero address

  • Source: 0.0.0.0 ☞ 모든 bit가 0인 주소
  • 호스트가 IP 주소를 할당받기 전 DHCP 서버에 IP주소를 요청하기 위해 0.0.0.0를 Source로 사용

 

Limited broadcast address

Broadcast

  • 네트워크 상의 모든 호스트들에게 동시에 메시지를 전송하는 방법
  • 전체에게 트래픽을 전달하는 All-to-All 통신 ☞각 송신자가 그룹 내의 모든 수신자에게 메시지를 전송하는 컴퓨터 통신 방법. ↔ 유니캐스트(각 발신자가 하나의 수신자와 통신하는 지점 간 (point-to-point) 통신 방법)
  • 호스트는 도착한 패킷을 확인해 목적지가 본인 ip주소와 동일할 시 수신하고 그렇지 않을 시 무시한다.
  • directed broadcast와 limited broadcast로 나뉜다.

limited broadcast

  • Destination IP address: 255.255.255.255 (1.1.1.1) ☞  모든 bit가 1인 주소
  • 목적지 DHCP 서버의 주소를 모르기 때문에 1.1.1.1을 Destination으로 사용
  • 로컬 네트워크의 device에게 정보를 전송하기 위해 사용
  • 해당 네트워크의 라우터는 패킷이 다른 네트워크로 전송되지 못하게 block ☞ block 안 하면 내가 보낸 패킷을 전세계 사람들이 수신

 

Directed broadcast address

Directed broadcast

  • 네트워크 밖에서 특정 네트워크의 호스트들에게 메시지를 전송하는 방법
  • 라우터가 해당 네트워크의 모든 호스트들에게 보낼 데이터가 존재하는 경우 directed broadcast 사용
  • Destination IP address: 221.45.71.255 ☞ suffix가 모두 1인 주소

 

Loopback address

  • 한 컴퓨터에서 서버와 클라이언트를 모두 실행하는 IP 주소
  • 로컬 컴퓨터를 원격 컴퓨터인것 처럼 통신할 수 있어 웹 서버나 인터넷 소프트웨어의 네트워크 동작 기능을 테스트하는 목적으로 사용된다
  • 해당 주소로 데이터를 입력하면 발송된 데이터가 중간 계층을 거쳐 되돌아와서 수신된 것처럼 보이지만, 실제로는 네트워크가 연결되어 있지 않기 때문에 네트워크 외부로 데이터가 전달되지 않고 다시 가상의 주소로 전달되어 온 것이다.
  • IPv4에서의 루프백 주소: 127.0.0.1
  • 루프백 주소에 대응되는 호스트 이름을 localhost라 한다.

출처: 과학포털 사이언스올 '루프백 주소', 위키백과 'loopback address'

 

 

Address for private networks (사설망 주소)

  • 사설망(private network): 특정 회사나 조직이 소유하여 독점적으로 사용하는 네트워크
  • 인터넷과 연결되지 않고 내부적인 망으로만 사용 시 TCP/IP를 자유롭게 사용하고 그 안의 호스트 주소도 사설망 관리자가 마음대로 지정 가능
  • 사설 망 내의 주소는 사설망 관리자에 의해 임의로 지정된 주소이므로, 사설망에서 벗어난 다른 네트워크와 접속하고자 할 때는 추가적인 장비가 필요. 즉, 추가적인 장비를 통해야만 인터넷에 접속 가능
  • 사설망 내 호스트는 본인의 IP가 사설망 관리자에 의해 임의로 부여받은 것인지 다른 네트워크와 통신할 수 있는 IP인지 구분을 하지 못함 ☞ 사설망 주소를 나타내는 주소를 따로 관리 (상단의 표). 위의 표에 해당하는 주소는 사설망 주소. 
  • 자주 쓰이는 주소: 10.0.0.0/8, 192.168.0.0/16
  • 192.168.0.0/16: 공유기의 99%가 이 주소를 할당해 준다. 

 

5. NAT

NAT: Network Address Translation(네트워크 주소 변환)

  • IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술
  • 패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 한다.
  • NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다.
  • 많은 네트워크 관리자들이 NAT를 편리한 기법이라고 보고 널리 사용하고 있다.
  • NAT가 호스트 간의 통신에 있어서 복잡성을 증가시킬 수 있으므로 네트워크 성능에 영향을 줄 수 있다.
  • 자동으로 Port-Forwarding을 해줌

출처: 위키백과 '네트워크 주소 변환'

 

1. 10.0.0.1, 10.0.0.2, 10.0.0.3은 사설망 내 호스트의 IP주소

2. IP주소 10.0.0.1, Port 번호 3345인 호스트가 사설망 외부 서버에 접속하고자 한다. 

3. Source에 호스트 IP와 Port번호 / Destination에 상대 서버의 IP와 Port번호를 기재한 데이터그램을 전송한다. 

4. 중앙의 NAT 라우터는 Source IP주소에 외부에서 사용할 수 있는 IP, Port(138.76.29.7, 5001)를 할당해 목적지 서버에 전달한다. 해당 변환 사항은 NAT translation table에 작성해 관리한다. 

5. 서버에게서 응답이 오면 table을 확인해 서버가 보낸 패킷의 목적지 Port(138.76.29.7, 5001)와 매칭되어 있는 사설망 Port(5001)를 찾은 뒤(어떤 호스트를 위해 5001번을 만들었는지 찾아봄) 해당 주소(10.0.0.1, 3345)로 정보를 전달한다.

6. 하나의 컴퓨터에서, 각각 다른 port 번호를 사용하는 호스트들이 동일한 서버에 동시 접속할 때 해당 방법을 통해 호스트들을 구별하고 트래픽을 관리한다. (ex. 네이버 서버에 10.0.0.1, 10.0.0.2, 10.0.0.3이 다양한 브라우저로 모두 접속→ 각 호스트들과 매칭된 port번호가 다 다르기 때문에 여러 개의 호스트를 구별 가능)

 

* NAT가 할당해주는 외부에서 사용가능한 IP주소는 NAT 라우터 자기자신의 IP주소이다.

* 외부에서 사용가능한 Port는 사용하고 있지 않은 번호를 랜덤으로 할당한다. 

* WAN side addr와 LAN side addr은 1:1 매칭된다. 

* 10.0.0.1은 사설망 내에서는 고유하지만, 다른 사설망과는 중복될 수도 있다. 반면 138.76.29.7은 전세계에 하나뿐인 unique한 IP이다. 

 

 

 

추가

P2P(peer-to-peer network)

일반 클라이언트가 서버와 클라이언트 역할을 둘 다 하는 것 

내가 서버일 때는 소켓을 만들어놓고 남들이 접속하길 기다리고, 클라이언트일 때는 다른 서버에 접속한다. 

사설망 내의 서버
포트번호를 할당해주고 해당 내용을 테이블에 저장해 관리

랑데뷰 서버

  • 제 3의 서버. A2 서버에 접속하기 위해서는 138.76.29.7 / 5002에 접속하면 된다는 정보를 저장해둔다.
  • 클라이언트가 A2 서버에 접속하기 위해서는 우선 랑데뷰 서버에 접속해 A2 서버의 주소 정보를 얻어야 한다. 
  • 이러한 기술을 Hole punching이라 한다. (해당 기술을 이용한 다른 예: IP전화기)

 


참고

 

https://m.blog.naver.com/dly_ylb/220235242895

 

유동아이피와 고정아이피란?

유동 아이피와 고정아이피에 대해서 포스팅 하겠습니다. :) 유동 아이피 유동 아이피는 말그대로 아이피가 ...

blog.naver.com

 

DHCP

https://jwprogramming.tistory.com/35

 

DHCP란?

DHCP (Dynamic Host Configuration Protocol) - DHCP는 Dynamic Host Configuration Protocol의 약자입니다. DHCP란 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주..

jwprogramming.tistory.com

 

https://www.netmanias.com/ko/post/blog/5348/dhcp-ip-allocation-network-protocol/understanding-the-basic-operations-of-dhcp

 

DHCP 프로토콜 기본 원리

전화를 사용할 때 자신의 전화 번호가 있듯이 인터넷을 사용할 때도 인터넷 주소가 있어야 하는데, 이 인터넷 주소가 IP 주소입니다. 이 인터넷 주소는 통상 인터넷에 접속할 때 동적(Dynamic)으로

www.netmanias.com

 

Broadcast

https://security-nanglam.tistory.com/160

 

[네트워크] 브로드캐스트(Broadcast)

[브로드캐스트(Broadcast)] 브로드캐스트(Broadcast) - 1 대 전체 - 로컬 랜 상에 붙어있는(브로드캐스트 도메인 안에 있는) 모든 네트워크 장비들에게 보내는 통신이다. - 예를 들어 동네 이장님이 마

security-nanglam.tistory.com

 

https://s2playground.blogspot.com/2019/09/directed-broadcast-and-limited-broadcast.html

 

[네트워크] directed broadcast and limited broadcast

개발자의 일상과 개발에 대한 블로그입니다.

s2playground.blogspot.com

 

private network

https://blog.naver.com/wnrjsxo/221072250641

 

가상 사설망(VPN : Virtual Private Network)의 이해

1. 사설망(Private Network)과 공중망(Public Network) 가상 사설망에 대한 이해를 위해서는 먼저 사설...

blog.naver.com

 

반응형