네트워크 기본 - OSI 7 Layer
- 1 Layer - Physical : 통신회선, 리피터, 허브
- 2 Layer - DataLink : Ethernet, 맥주소(MAC Address)사용, 서브넷 (Subnet) 내의 통신경로 설정, 스위치, 브릿지, ARP프로토콜
- 스위치(Switch) : 노드를 확장하는 역할
- 허브와의 차이점 : 충돌을 회피할 수 있음 - MAC Address Table을 사용하기 때문
- 3 Layer - Network : IP주소, 라우터, 라우팅테이블, ICMP프로토콜
- 라우터 : 서로 다른 네트워크를 연결하는 역할
- 4 Layer - Transport : TCP/UDP
- TCP : Transmission Control Protocol , 전송 안정성에 중점, 연결수립, 3-way handshake (수립), 4-way handshake(종료), 유니캐스트만 가능
- UDP : User Datagram Prortocol , 전송 효율성에 중점 , 연결 수립하지 않음, 브로드캐스트 가능
- 5 Layer - Session : 연결
- 6 Layer -Presentation : 변환
- 7 Layer -Application : 응용프로그램
TCP/IP 모델 - 실제적인 모델
- OSI 1 ~ 2 계층 통합→ Network(Network Access) 계층
- OSI 3 계층→ Internet 계층
- OSI 4 계층→ Transport 계층
- OSI 5 ~ 7 계층 통합→ Application 계층
네트워크 주소 체계
- 데이터링크 계층의 주소 : MAC Address, 물리적 주소
- 네트워크 계층의 주소 : IP Address, 논리적 주소
MAC Address
- 2계층 주소
- 16진수 2자리씩 끊어서 표기 XX-XX-XX-XX-XX-XX
- 한 단위당 1Byte, 총 6Byte(48bit)
- 앞 3Byte - OUI(Organization Unique Identifier) : 제조사별로 할당된 값
- 뒤3Byte - Host Id : 각 장치별 일련번호
ARP(Address Resolurion Protocol)
- IP와 MAC 주소의 매칭 정보를 요청/ 응답
IP Address
- 3계층 주소, IPv4, IPv6 두 가지로 나누어짐
- IPv4
- 10진수(0~255) 숫자 4개로 구성 (192.168.0.100)
- 클래스 개념, 사설네트워크, 사용하지 못하는 주소
- Network ID/ Host ID
- Network ID : 네트워크를 구분하기 위한 값, 같으면 같은 네트워크
- Host ID : 네트워크 내에서 구분하기 위한 값
- Network / Host ID 의 길이는 가변, 다만 합이 32bit - 서브넷의 규모가 결정됨
- 서브넷(Subnet)
- 같은 네트워크(라우터 등을 거치지 않는)
- 브로드캐스트 도메인 (MAC : FF:FF:FF:FF:FF:FF / IP: 네트워크 별 브로드캐스트 주소, 255.255.255.255)
- 서브넷 마스크(Subnet Mask)
- IP주소에서 Network ID부분과 Host ID에 해당하는 부분을 나누어 표기
- Network ID에 해당하는 부분은 2진법으로 1로 표기
- Host ID에 해당하는 부분은 2진법으로 0로 표기
- Network ID는 왼쪽부터 시작해서 이어진 1의 연속
- Host ID는 오른쪽부터 시작해서 이어진 0의 연속
- 중간에 1이나 0이 반복해서 출현하지 않음
- ex) 11111111 11111111 00000000 10000000 (❌)
- 서브넷 마스크를 10진수로 표시
- ex) 11111111 11111111 11111111 00000000 : 255.255.255.0
- ex) 11111111 11111111 00000000 00000000 : 255.255.0.0
- ex) 11111111 11111111 11111100 00000000 : 255.255.252.0
- 네트워크 주소
- 네트워크 그 자체를 대표할 수 있는 주소
- 특정 호스트에서 사용할 수 없음
- 서브넷 내의 IP중에 가장 앞쪽 IP = Host ID가 모두 0인 값
- ex)192.168.0.0→192.168.0.0 ~ 192.168.0.255
- 브로드캐스트 주소
- 네트워크 내의 모든 호스트를 지칭하는 주소
- 특정 호스트에서 사용할 수 없음
- 서브넷 내의 IP중에 가장 뒤쪽 IP = Host ID가 모두 1인 값
- ex)192.168.0.255 => 192.168.0.0 ~ 192.168.0.255
- CIDR Prefix 표기방식 : Network ID의 일정한 규칙을 가지는 네트워크 구분
- 클래스
- Network ID/ Host ID 의 일정한 규칙을 가지는 네트워크 구분
- A 클래스 - Network ID: 8bit/ Host ID: 24bit
- 구성할 수 있는 네트워크의 갯수는 작으나 (256개), 한 네트워크당 호스트의 갯수는 가장 많음(16,777,216개)
- IP 범위 : 0~127.0.0.0/8 (0.0.0.0/8 ~ 127.0.0.0/8) - 128개의 A클래스 네트워크
- B 클래스 - Network ID: 16bit/ Host ID: 16bit
- 구성할 수 있는 네트워크 개수 : 16bit(65536개)
- 네트워크 당 호스트 개수 : 16bit(65536개)
- IP범위: 128~191.0.0.0/8 (128.0.0.0/8 ~ 191.0.0.0/8) - 64개의 A클래스 네트워크
- C 클래스 - Network ID: 24bit/ Host ID: 8bit
- 구성할 수 있는 네트워크 개수 : 24bit (16,777,216개)
- 네트워크 당 호스트 개수 : 8bit (256개)
- P범위: 192~223.0.0.0/8 (192.0.0.0/8 ~ 223.0.0.0/8) - 32개의 A클래스 네트워크
- D클래스
- 멀티캐스트 용도로 사용
- IP범위: 224.0.0.0/8 ~ 239.0.0.0/8
- E클래스
- 연구목적, 향후 사용
- IP범위: 240.0.0.0/8 ~ 255.0.0.0/8
- 공인 IP 용도로(유일한 IP)사용하지 못하는 IP대역
- 0.0.0.0 ~ 0.255.255.255 : Local Identification
- 10.0.0.0 ~ 10.255.255.255 : A클래스 사설 네트워크(Private Network)
- 127.0.0.0 ~ 127.255.255.255 : Local Loopback
- 169.254.0.0 ~ 169.254.255.255 : Link Local address (DHCP등으로부터 정상적으로 네트워크 정보를 가져오지 못했을 경우 할당)
- 172.16.0.0 ~ 172.31.255.255 : B클래스 사설 네트워크
- 192.168.0.0 ~ 192.168.255.255 : C클래스 사설 네트워크
- D,E클래스
- 255.0.0.0 ~ 255.255.255.255 : 브로드캐스트
- CIDR Prefix : 서브넷마스크의 표기방법
- 사설 네트워크(Private Network)
- 한정된 IP 주소 자원을 사용하기 위한 방법
- 사설네트워크 범위로 사용되는 IP주소는 공인 IP에서 사용 불가
- NAT(Network Address Traslation) : 사설 네트워크 내의 IP 사용시 외부로 패킷을 전송할 때 송신 IP를 입력해 놓을 경우, 응답을 받을 수 없음
- 부족한 IP자원 극복을 위한 대책
- 사설네트워크 + NAT(NAPT, Network Address & Port Translation)
- IPv6 → 2^128 개의 IP 사용가능
- DHCP(Dynamic Host Configuration Protocol)
- 서브네팅(Subneting)
- 서브네팅(Subneting)
-
네트워크를 분할
-
단일 네트워크의 크기는 최대 500 호스트 이상은 권장하지 않음
- 단일 네트워크가 과도하게 커질경우 브로드캐스트에 의한 부하가 발생
-
기본적인 클래스 규칙 클래스풀 (Classful)을 따라서 할당된 네트워크
-
IP할당 흐름 : iana - APNIC - KRNIC - ISP(Internet Service Provider) - 고객
ex) 100.100.100.0 ~ 100.100.100.255, 사용할 IP는 3개 → 서브네팅으로 네트워크를 효율적으로 쪼갤 수 있음
-
Network ID를 조정하여 네트워크 개수 늘리기 = Host ID를 조정하여 네트워크 내의 호스트 개수 줄이기
-
CIDR(Classless Inter Domain Routing) 클래스 정보와 무관하게 네트워크를 다시 서브넷으로 분리함
100.100.100.0/24 네트워크 반으로 분할할 시
서브넷 마스크 : 255.255.255.128 →1111111.1111111.1111111.1000000 = /25
-
100.100.100.0 ~ 100.100.100.127
→ 01100100.01100100.01100100.00000000 ~ 01100100.01100100.01100100.01111111
→100.100.100.0/25
-
100.100.100.128 ~ 100.100.100.255
→01100100.01100100.01100100.10000000 ~ 01100100.01100100.01100100.11111111
→100.100.100.128/25
100.100.100.0/24 네트워크 네개로 분할할 시
서브넷 마스크 : 255.255.255.192→11111111.1111111.1111111.11000000 = /26
-
.0 ~ .63 : 100.100.100.0/26
→.00000000 ~ .00111111
-
.64 ~ .127 : 100.100.100.64/26
→.01000000 ~ .01111111
-
.128 ~ .191 : 100.100.100.128/26
→.10000000 ~ .10111111
-
.192 ~ .254 : 100.100.100.192/26
→.11000000 ~ .11111111
- VLSM(Variable Length Subnet Mask)
- 서브네팅의 유형
- 서브넷의 크기가 다를 경우
- VLSM 구성시 규칙
- 할당된 네트워크 범위에서 가장 큰 네트워크를 먼저 할당
- 네트워크 할당시 기본적인 할당 규칙을 준수
- ex) 회사에 100.100.100.0/24 할당하려고 할 경우, 기술부 100명, 영업부 20명, 관리부 5명
- 기술부 : 100.100.100.0/25 → 126(128 - 2)개 할당가능
- 영업부 : 100.100.100.128/27→ 30(32 - 2)개 할당가능
- 관리부 : 100.100.100.160/29→ 6(8 - 2)개 할당가능
Network 인터페이스 설정
- NetworkManager : 네트워크 관리 데몬
- nmcli : NerworkManager 설정도구
- nmtui : TUI (Text User Interface) 설정도구
Connection
- 하드웨어 장치에 직접 설정을 반영하지 않고 연결(Connection)을 생성하여 이를 하드웨어에 연결
- 다수의 네트워크 환경에 따른 연결 설정을 만들어 놓고, 필요한 연결설정을 매칭시키는 방식으로 사용할 수 있음
nmcli
네트워크 상태 확인
- ifconfig : net-tools 패키지로 분리(netstat)
- ip
- address show : 네트워크 주소정보 확인
- route show : 라우팅 테이블 출력
- netstat → ss
- nmtui - Text User Interface
- nm-connection-editor : GUI
시스템 이름
- 이름 관련 항목 hostname : 각 시스템이 자신의 이름을 설정할 때 네트워크 상에서 유효하게 동작하는 정보는 아님. 호스트 내에서 식별하기 위한 정보
- 이름 (Hostname, FQDN) : 호스트의 IP 대신 사용할 수 있는 정보, 변환과정이 필요
- hosts 파일
- etc/hosts : 리눅스/ 유닉스
- C:\Windows\System32\drivers\etc : 윈도우
- DNS 캐시(Cache) : 일정기간동안 유지되고 있는 DNS 요청 기록
- DNS 요청 : 모르는 정보에 대한 새로운 요청
- FQDN(Full Qualified Domain Name) - 정규화된 도메인 이름 ex) www.naver.com
- Hostname + Domain Name
- Hostname : www
- Domain name : naver.com
- hostnamectl 에서 조회되는 hostname 종류
- Static : 사용자가 직접 설정한 호스트 이름
- Transient : 네트워크 등으로 부터 전달받은 호스트 이름
- Pretty : 특수문자 등을 포함한 호스트 이름
- hostnamectl set-hostname : 호스트 이름 변경
- hostnamectl - set-hostname [호스트이름]
- hostnamectl - set-hostname [특수문자 포함호스트이름]
- 호스트이름 변경
- Static: 특수문자 제거, 소문자 변환 한 내용으로 저장
- Pretty: 입력한 내용 그대로
- hostnamectl set-hostname <특수문자포함 호스트이름> --pretty
연습문제
예제1 ) 현재 강의장을 구성하기 네트워크를 200.200.200.0/24 네트워크를 사용할 예정임. 현재 한 강의장 당 30개의 PC를 사용하도록 구성함. 강의장은 총 5개. 각 강의장 별 네트워크 정보는?
- 1강의장 : 200.200.200.0/27
- 2강의장 : 200.200.200.31/27
- 3강의장 : 200.200.200.63/27
- 4강의장 : 200.200.200.95/27
- 5강의장 : 200.200.200.127/27
예제 2) 현재 회사의 네트워크를 구성하기 위하여 200.200.200.0/24, 200.200.201.0/24 두 개의 C클래스 네트워크를 할당받음. 네트워크를 구성할 때 두 네트워크를 하나로 묶어서 사용하려고 할 경우, 사용할 수 있는 네트워크의 주소의 범위, 사용할 수 있는 호스트의 개수, 네트워크 주소, 브로드캐스트 주소, 서브넷마스크의 정보는?
- 네트워크 주소범위 : 200.200.200.0 ~ 200.200.201.255 → 11001000.11001000.11001000.00000000 ~ 11001000.11001000.11001001.11111111
- 호스트 개수 : 256*2 -2 = 510(네트워크당 1개의 네트워크주소, 브로드캐스트 주소)
- 네트워크 주소 : 200.200.200.0
- 브로드캐스트 주소 : 200.200.200.255
- 서브넷마스크 : 255.255.254.0 → /23 → 11111111.11111111.11111110.00000000
예제 2-1) 200.200.201.0/24 + 200.200.202.0/24 → ?
200.200.201.0 →11001000.11001000.11001001.00000000
200.200.202.0 →11001000.11001000.11001010.00000000
→ 200.200.201.0/23 (❌) : 이런식으로 애매하게 붙는 네트워크는 구성할 수 없음 : 첫 번째 네트워크의 Host ID 부분이 모두 0이 아님