네트워크(Network)

- Net과 Work의 합성어로 컴퓨터와 같은 노드들이 통신 기술을 통해 그물망처럼 연결되어 통신을 하는 형태를 뜻함

- 데이터 및 리소스를 송신, 교환 또는 공유하기 위한 목적으로 케이블(유선) 또는 WiFi(무선)로 연결된 2개 이상의 컴퓨터로 구성

 


 

IP (Internet Protocol)

- 인터넷에서 다른 컴퓨터와 통신할 때 사용하는 프로토콜

- 컴퓨터의 논리적인 주소를 구분

- 현재 IP는 32비트 체계(IPv4 주소 체계)를 사용하므로 약 40억 개의 주소를 표현 가능 (1비트는 0과 1로 표현이 가능)

  └ 2^32 = 42,9496,7296

- 192.168.0.1 과 같은 형태의 주소 ( 11000000.10101000.00000000.00000001 )

 

* 우리는 도메인 네임을 통해 웹사이트에 접속하지만 사실 IP 주소를 통해 통신을 한다.

kns.kornet.net 은  kt의 DNS 서버, domain name을 통해 네이버 접속이 가능하지만 Addresses 2개의 IP 주소를 통해서도 접속이 가능

 

IPv4

- 흔히 사용하는 IP 주소 체계, 일반적인 의미의 IP

- IPv4의 가장 큰 단점은 오직 32비트만을 사용한다는 점 → 공인 IP 주소 40억 개로는 전 세계의 모든 컴퓨터를 처리할 수 없음

- 따라서 이를 해결하기 위해  128 비트를 사용하는 IPv6 주소 체계가 등장 (922,3372,0368,5477,5807 개의 주소. 922경)

 

 

IP의 분류

- 공인 IP : 세계에서 단 하나만 존재하는 IP 주소

A 클래스 IP 대역 0.0.0.0 ~ 127.255.255.255  
B 클래스 IP 대역 128.0.0.0 ~ 191.255.255.255  
C 클래스 IP 대역 192.0.0.0 ~ 233.255.255.255  
D 클래스 IP 대역 224.0.0.0 ~ 239.255.255.255 멀티캐스트 주소 지정을 위함
E 클래스 IP 대역 240.0.0.0 ~ 255.255.255.255 연구용 IP로 예약된 주소

  └ 조직 내부망(인트라넷)에서만 사용하는 내부 서버가 아니라, 외부 서비스(ex. 네이버)라면 반드시 공인 IP가 필요하다

  └ 그렇다면 유동 IP인 경우에는 서버 구축이 불가능할까? -> DDNS (Dynamic DNS)를 통해 구축이 가능하다 (네이버 서버의 IP가 변경되더라도 DDNS 서버에 접촉하여 현재 상태를 동기화 시켜준다)

 

- 사설 IP : 공유기를 이용해 만들 수 있는 가상의 IP 주소

  └ IPv4의 주소 부족 현상을 지연시킬 목적으로 생성

  └ 외부에서는 대표 공인 IP만 검색되며,  사설(내부) IP는 검색이 불가하므로 보안성이 증가

  └ 인터넷 공유기에 연결된  PC, TV, 스마트폰 등이 대표적인 예시

A 클래스 사설 IP 대역 10.0.0.0 ~ 10.255.255.255
B 클래스 사설 IP 대역 172.16.0.0 ~ 172.31.255.255
C 클래스 사설 IP 대역 192.168.0.0 ~ 192.168.255.255

  └ 공인 IP 주소를  사설 IP로 할당할 수 있다. 하지만 공인 IP (구글, 네이버, 다음 등)를 사설 IP로 등록해서 사용할 경우에는 게이트웨이를 타고 나가서 인터넷 상에서 접속해야할 외부 사이트들이 내부 네트워크에 있는 컴퓨터로 계산되어, 내부 네트워크에서 외부 서비스를 사용하지 못하는 문제를 겪을 수 있다

 

- 고정 IP : 해당 컴퓨터의 IP 주소를 고정적으로 사용

 

- 유동 IP : 수시로 변화하는 IP 주소

  └ 말 그대로 IP가 유동적으로 바뀐다는 의미지만 연결 때마다 반드시 변경되지는 않는다. 같은 랜선이라도 PC / 공유기에 연결했을때 다른 IP 받을 수 있는데, 이는 MAC 주소를 토대로 IP를 할당하는 유동 IP의 특성때문이라고 한다

 


 

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

- 하나의 공인 IP 주소를 여러 대의 호스트에서 사용할 수 있도록 내부 사설 IP로 나누는 기술

- 내부 네트워크에서 사용하는 IP 주소와 외부에 드러나는 주소를 다르게 유지할 수 있기 때문에, 내부 네트워크에 대한 어느 정도의 보안 기능을 한다. 방화벽과 비슷한 기능이다.

- 우리는 공유기를 설치하여 여러 대의 PC, 스마트폰에서 인터넷을 사용할 수 있는데, 이것이 가능한 이유는 인터넷 공유기에 NAT 기능이 탑재되어 있기 때문

- IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술이다.  패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 한다. 그렇기 때문에 네트워크 성능에 영향을 줄 수 밖에 없다

- NAT을 사용할 때 단점은 여러명이 동시에 인터넷에 접속하게 되므로, 실제로 접속하는 호스트 숫자에 따라서 접속 속도가 느려질 수 있다.

 


 

IP 주소의 여러가지 개념 

◆ 10진수 표기법 (Dotted Decimal Notation)

  └ 실제 네트워크 장비는 IP주소를 2진수로 사용

  └ 10진수 표기는 사람이 IP 주소를 보기 위한 방법

  └ 1 Byte (1옥텟, 1 octet)을 10진수로 변화해 점을 찍어 구분

192.168.10.100

◆ IP 주소의 범위 :  0.0.0.0 ~ 255.255.255.255

◆ IP 주소 = 네트워크(Network) ID  +  호스트(Host) ID

  • Network ID : 네트워크를 나타내는 ID
  • Host ID : 네트워크에 포함된 호스트를 나타내는 ID

 

◆ Class : IP 주소를 효율적으로 나누어 놓은 범위

A Class 대규모 네트워크 범위 - 처음 1비트는 항상 0
- 첫 옥텟(1 byte = 8 bit)을 네트워크 ID로 사용
- 첫 옥텟의 범위는 00000000 (0) ~ 01111111 (127)이지만 0과 127로 시작하는 주소는 예약되어 있어, 실범위는 1 ~ 126
- 나머지 3 옥텟 (3 byte = 24 bit)는 호스트 ID로 사용되며 2^24 = 약 1670만 개의 호스트 수를 가질 수 있다
B Class 중규모 네트워크 범위 - 처음 2개의 비트는 항상 10
- 두 옥텟을 네트워크 ID로 사용
- 첫 옥텟은 10000000 (128) ~ 10111111 (191) 범위를 가진다
- 호스트 ID는 2 옥텟 (2 byte = 16 bit)를 가지므로 2^16 = 65536의 호스트 수를 가진다
C Class 소규모 네트워크 범위 - 처음 3개의 비트는 항상 110
- 세 옥텟(3 byte = 24 bit)을 네트워크 ID로 사용
- 첫 옥텟은 11000000 (192) ~ 11011111 (223)의 범위를 가짐
- 호스트 ID는 1 옥텟 (1 byte = 8 bit)를 가지므로 2^8 = 256개의 호스트 수를 가진다. 
D Class 멀티캐스트용 주소 범위  
E Class 연구용 주소 범위  

 

Subnet Mask (서브넷 마스크)

  • IP주소에서 네트워크 ID와 호스트 ID를 구분하기 위해 사용
  • 32bit로 구성되어 있으며, IP주소와 동일한 표기법을 사용
  • 네트워크 ID는 1로, 호스트 ID는 0으로 표기

 

Subnet Mask - Prefix (프리픽스)

- 서브넷 마스크를 표기하는 다른 방법

- 네트워크 ID의 개수를 표기

 

네트워크 주소와 브로드 캐스트 주소

호스트 ID가 모두 0인 네트워크 주소와  호스트 ID가 모두 1인 브로드 캐스트 주소는 IP 주소로 사용할 수 없다.

위 사진의 네번째 옥텟를 봤을 때, 호스트 ID의 범위는 0 ~ 255이지만 실제로 IP 주소 할당을 할 수 있는 호스트 ID는 1 ~ 254 를 사용할 수 있다

 


 

IP 주소 실습 (내 컴퓨터)

윈도우 CMD - ipconfig

  • C 클래스 사설 IP 대역에 속함
  • 서브넷 마스크  프리픽스(Prefix) 표기 :  192.168.0.11 / 24
  • IPv4 주소 2진법으로 표기 : 11000000.10101000.00000000.00001011
  • 서브넷 마스크 2진법 표기 : 11111111.11111111.11111111.00000000
  • IPv4 주소와 서브넷 마스크.  비트 AND 연산하여 네트워크 ID를 구한다.  
    • 네트워크 ID : 11000000.10101000.00000000.00000000 (192.168.0.0)
    • 호스트 ID는 192.168.0.0 (네트워크 주소) ~ 192.168.0.255 (브로드캐스트 주소)를 가지며 개수는 2^8 = 256개
    • IP 주소로 사용할 수 있는 범위는 192.168.0.1 ~ 192.168.0.254이며, 나의 IP 주소는 범위안에 있는 192.168.0.11
  • 기본 게이트웨이는 ipTime 공유기 주소를 뜻하며, 일반적으로 1로 지정한다고 한다. 그렇다면 내 공유기에 연결될 수 있는 장치는 2 ~ 254 범위, 253개의 장치를 연결할 수 있다는 뜻이다

 


 

IP 추적 (Tracking)

- 공인 IP 주소를 가진다면 추적이 쉽다

- 사설 IP라고 하더라도 수사권이 있는 경찰은 ISP 업체를 통해 추적할 수 있다

 

나의 공인 IP로 조회해본 결과, 특정한 위치까지 나오지 않는다.

https://www.ip-tracker.org/

https://findip.opendocs.co.kr/

 


 

ISP (Internet Service Provider, 인터넷 서비스 제공자)

KT(KORNET), SK텔레콤(SK_TELECOM-NET), SK브로드밴드(broadNnet)은 인터넷망이 통합되어 있다. LG U+는 여러 인터넷 망을 사용하기 때문에 혼파망이라고 부르고, 이 때문에 같은 지역에서 같은 LG U+ 인터넷을 쓰더라도 어느 ISP에 연결되어있는지에 따라 인터넷의 품질이 극과 극으로 나누어 진다.

 


 

서버 구축을 쉽게 하는 방법은 호스팅 업체를 이용

아마존 AWS (Amazon Web Services), MS Azure, Google GCP, 네이버 클라우드, NHN 클라우드, Cafe24, 가비아 등이 있다

 

사설 IP로 서버 운영하는 방법

- 외부에서는 사설 IP로 접속이 불가능하지만, 포트 포워딩(특정한 포트로 들어오는 데이터 패킷을 다른 포트로 바꿔서 다시 전송해주는 작업)을 통해 해결할 수 있다

ipTIME 공유기를 사용한다면 192.168.0.1에 접속하여, 포트포워딩 설정을 할 수 있다

- 우리 집의 공인 IP를 219.214.33.125 라고 가정, 공유기를 사용하는 PC 2대는 192.168.0.2 (A 컴퓨터, 웹 서버(PORT : 3000), 192.168.0.3 (B 컴퓨터) IP를 할당받아 사용하고 있다

- 포트 포워딩을 설정하여, 3000번 포트로 들어오는 패킷은 192.168.0.2 (A 컴퓨터)로 접속할 수 있도록 설정해준다

- http://219.214.33.125:3000 로 접속 시, A 컴퓨터 서버로 접속이 가능하다

- 만약 B 컴퓨터에도 3000번 포트를 사용하는 웹 서버를 구축했다고 가정해보자. 이 경우 B 컴퓨터에 대한 포트 포워딩 규칙을 외부 포트:3001, 내부 포트:3000으로 추가하여, 공인IP:3000 은 A 웹 서버,  공인IP:3001 은 B 웹 서버로 포워딩하여 충돌을 피할 수 있다

 


 

포트 (PORT)

- IP는 컴퓨터를 찾는 주소라고 한다면, PORT는 컴퓨터의 응용 프로그램을 찾는 주소이다. 

- A 대학교의 주소를 IP 주소라고 비유한다면,  컴퓨터공학과는 포트(PORT)이다. 또는 서울 B아파트 102동이 IP 주소라고 한다면,  301호는 포트(PORT)라고 생각하면 될 것 같다

잘 알려진 포트 (well-known port) 0번 ~ 1023번 - IANA의 권고안일 뿐이다. 가끔 각 포트 번호를 그대로 사용하지 않고 다른 용도로 사용하기도 한다
- SSH(22), HTTP(80), HTTPS(443), FTP(20, 21), TELNET(23), RDP(3389, 원격 데스크톱) 
- well-known port는 정보보안 컨설팅 시 지적사항에 해당하기 때문에, 잘 알려진 포트에 대해서는 변경이 필요하다고 한다
등록된 포트 (registered port) 1024번 ~ 49151번 - 사용자가 직접 등록할 수 있는 포트를 의미하며 등록해서 사용할 수 있다
동적 포트 (dynamic port) 49152번 ~ 65535번 - 수시로 변경되는 포트를 의미하며 인터넷이나 시스템에서 사용할 때 동적으로 할당하는 포트를 의미한다 (동적포트)
- 운영체제가 부여하는 동적 포트 또는 개인적인 목적으로 사용할 수 있는 포트

 

 

더 공부 : DMZ


참고 사이트

https://www.youtube.com/watch?v=pRWD7oTeuFw 

https://rcsecurity.tistory.com/4

https://itinformation.tistory.com/59

https://www.youtube.com/watch?v=b7Wk-6w5vgg 

https://namu.wiki/w/NAT

 

+ Recent posts