service를 위한 기본 네트워크 지식

2023. 10. 7. 08:16리눅스/CentOS

OSI 7 Layer 모델 & TCP/IP 모델

 - ISO(국제 표준화 기구)에서 internetworking에 사용하기 위한 목적으로 연구했던 프로토콜의 집합이 OSI 7 Layer
   연구 과정이 많이 지연되면서 TCP/IP 모델이 인터넷의 표준 프로토콜로 사용

 - OSI 7 Layer 모델은 이론적인 내용을 표현하는 용도(연구용 / 개발용 / 교육용)
   TCP/IP 모델은 실제 사용하는 인터넷 표준 프로토콜

* 프로토콜 : 장치 간의 통신에 사용되는 규칙과 약속들의 집합
  표준 프로토콜 : 프로토콜이 다른 장치들은 서로 간의 통신이 불가능하기 때문에 만들어진 규칙
  모든 장치가 동일한 프로토콜을 사용할 수 있도록 약속된 프로토콜

 

OSI 7 Layer

 - 상위 계층(L5 ~ L7, application)과 하위 계층(L1 ~ L4, date-flow)으로 분류
   <하위 계층>
L4 : transport, port 번호를 이용하여 서비스를 식별
L3 : network, logical address(논리적 주소)를 사용하여 서로 다른 네트워크 사이에서 데이터 전송을 담당
L2 : data-link, physical address(물리적 주소)를 사용하여 동일 네트워크 안에서 데이터 전송을 담당
L1 : physical, 통신에 관련된 모든 물리적인 규칙을 정의(cable 규격, connector 규격, 전압, 등)
+ 전송하려는 data를 signal(신호)로 변환

* port 번호는 0 ~ 65535 범위의 번호를 사용
  0 ~ 1023 port는 well-known port(잘 알려진 포트)라고 하여 자주 사용되는 서비스들이 고정으로 사용하도록 예약

* logical address는 Layer 3에서 사용하는 프로토콜에 따라 달라진다
  (우리는 주로 IPv4 - IPv4 address, IPv6 - IPv6 address를 사용)

* physical address는 Layer 2에서 사용하는 프로토콜에 따라 달라진다
  (우리는 주로 LAN - MAC address를 사용)

 

IP address

 - 인터넷 표준 프로토콜 TCP/IP에서 사용되는 logical address(논리적 주소)
   TCP/IP 표준 프로토콜을 사용하는 모든 장비들은 반드시 IP 주소가 할당되어 있어야 통신이 가능

 - 운영체제(OS)에서 인식한 각 interface마다 할당되는 주소
> 사람이 직접 입력 or DHCP 서버를 이용한 자동 할당

 - InterNIC에서 각 국가별로 IP를 분배 -> 국가에서는 ISP(통신 업체)에 IP를 분배
-> 사용자는 ISP에 IP를 신청하여 할당

 - 초창기에는 IPv4를 사용하다가 IP의 개수가 부족해지면서 1996년에 IPv6 제정
> 기존에 만들어진 장비들과의 호환성을 위해 IPv4와 IPv6를 혼용(현재까지 계속되고 있다)

* IPv4 : 32bit 길이, 2^32 = 약 42억 9천만개
  IPv6 : 128bit 길이, 2^128 = (2^32)^4개

 

IPv4

 - Network ID와 Host ID로 구성
> Network ID를 InterNIC/ISP에서 할당, Host ID는 사용자가 범위 안에서 자유롭게 사용

 - IP 주소의 Network ID를 구분하기 위해 subnetmask를 사용
192.168.10.128 << Network ID, Host ID 구별? 예전에는 가능, 현재는 불가능

그래서 netmask(subnetmask)를 이용하여 Network ID와 Host ID 를 구별
network는 Network ID의 bit 수 만큼 1을 나열, Host ID의 bit 수 만큼 0을 나열한 값

* 동일한 Network ID를 사용하는 장치들은 논리적으로 같은 네트워크에 속해 있다

 - IPv4 주소는 총 32bit로 구성되어 있으며, 8bit씩 나눠서 octet 이라는 단위로 끊어서 표현
   1개 octet은 2^0 ~ 2^7를 표현(0 ~ 255 숫자를 이진수로 표현), IPv4는 총 4개 octet을 사용

 - IPv4 는 기본적으로 두 가지 방식으로 사용; classful, classless
  1. classful
IP 주소의 첫 번째 8bit(= 첫번째 octet)의 값에 따라 A ~ E class 를 구분하고
class 마다 정해져있는 Network ID와 netmask 를 사용

class A : 첫번째 bit가 0으로 고정된 범위
  앞의 8bit를 Network ID, 뒤에 24bit를 Host ID로 사용
  netmask는 255.0.0.0 을 고정적으로 사용
    하나의 network가 2^24 = 16,777,216개의 IP를 포함

class B : 첫번째 ~ 두번째 bit가 10으로 고정된 범위
  앞의 16bit를 Network ID, 뒤에 16bit를 Host ID로 사용
  netmask는 255.255.0.0 을 고정적으로 사용
  하나의 network가 2^16 = 65,536 개의 IP를 포함

class C : 첫번째 ~ 세번째 bit가 110으로 고정된 범위
  앞의 24bit를 Network ID, 뒤에 8bit를 Host ID 로 사용
  netmask 는 255.255.255.0 을 고정적으로 사용
  하나의 network 가 2^8 = 256 개의 IP를 포함

* class D, E는 일반적으로 장치에 할당하여 사용하는 주소가 아니다
 

  2. classless
IP의 낭비가 심한 classful 방식은 현재 사용 x
 > 필요에 따라 class 네트워크를 분할하여 사용하는 classless 방식을 사용

classful 네트워크를 분할하는 작업을 subnetting 이라고 표현
 > 분할된 네트워크를 subnetwork(subnet)이라고 부르고
   netmask는 subnetmask라고 부른다

classless 방식에서는 subnetmask 표현이 정확해야 한다
 > IP 주소의 첫번째 8bit에 따라 Network ID가 결정 X
   subnetmask 정보를 보고 Subnet ID(= Network ID)의 bit의 개수를 파악

subnetmask 계산 대신에 subnet ID의 bit 수를 그대로 적어주는 Prefix length 표현 방식이 존재

 - classful 방식과 classless 방식 전부 각 네트워크에서 특정 IP를 장치에 할당할 수 없다
> 네트워크의 첫번째 IP는 해당 네트워크의 이름(대표 주소, Network ID)로 사용
  네트워크의 마지막 IP는 해당 네트워크의 방송 주소(broadcast)로 사용

> VMware에서는 추가로 몇 개의 IP를 장치에 할당할 수 없다
.1 : Host only, NAT에서 windows와 연결되는 virtual network adapter 에 사용
.2 : NAT에서 기본 gateway 로 사용

* broadcast : 1:n 통신, 방송 주소, 전체 통신, 특정 네트워크 내부 전체 장치에 동일한 내용을 전달
  unicast   : 1:1 통신, 장치와 장치 간의 통신
  multicast : 1:n 통신, 그룹 통신, 몇몇 장치를 그룹화하여 하나의 class D IP로 묶어준 후 그 IP에 내용을 전달

 

NAT

 - Network Address Translataion; 네트워크 주소 변환(네트워크 주소 : IP address)

 - IPv4의 문제점 중 하나인 주소 부족 현상을 해결하기 위해 90년대 후반에 만들어짐

 - 자유롭게 사용하는 내부 네트워크와 실제 internet인 외부 네트워크를 분리하여 연결해주는 역할
내부 네트워크 : NAT inside, trust, 사설(private) 네트워크, 사설 IP 주소 사용
외부 네트워크 : NAT outside, untrust, 공인(public) 네트워크, 공인 IP 주소 사용
 
* 공인 IP 주소 / 사설 IP 주소
  NAT 가 사용되면서 IP주소는 공인 IP 주소와 사설 IP 주소로 구분해서 사용
1. 공인 IP 주소 : 유료, ISP에서 제공, 외부 네트워크와 통신 가능
2. 사설 IP 주소 : 무료, 내 마음대로 사용, 외부 네트워크과 통신 불가능
class A : 10.0.0.0/8
class B : 172.16.0.0/12 (172.16.0.0 ~ 172.31.255.255)
class C : 192.168.0.0/16

 - 일반적으로 공유기를 사용하면 NAT 를 사용 중인 상태

'리눅스 > CentOS' 카테고리의 다른 글

CentOS 설치 예제  (0) 2023.10.08
네트워크 관련 명령어  (0) 2023.10.08
run-level  (0) 2023.10.07
비밀번호 없이 root 계정 접속법  (0) 2023.10.07
프로세스  (0) 2023.10.07