네트워크 관리
네트워크 기본
- OSI 7 Layer (개념적인 모델)
- 1 : Physical. 통신회선. 리피터, 허브
- Hub: 물리적인 노드를 확장하는 역할
- 문제점: 충돌 발생 → 속도 저하
- 2 : Datalink. Ethernet. MAC Address 사용. 서브넷(Subnet) 내의 통신 경로 결정. 스위치, 브리지. ARP
- 스위치(Switch): 노드를 확장하는 역할
- 허브와 차이점: 충돌을 회피할 수 있음
- MAC Address Table
- 3 : Network. IP주소. 라우터. 라우팅 테이블, ICMP
- 라우터: 서로 다른 네트워크를 연결하는 역할
- 4 : Transport. TCP/UDP
- TCP : Transmission Control Protocol. 전송 안정성. 연결 수립. 3 way handshake(수립), 4 way handshake(종료)
- UDP : User Datagram Protocol. 전송효율. 연결 수립하지 않음.
- 5 : Session. 연결
- 6 : Presentation. 변환
- 7 : Application. 응용프로그램
TCP/IP 모델 - TCP/IP Suite (실제적인 모델)
- OSI 1~2계층 통합 : Network(Network Access) 계층
- OSI 3계층 : Internet 계층
- OSI 4계층 : Transport 계층
- OSI 5~7계층 : Application 계층
네트워크 주소 체계
- 데이터링크 계층의 주소 : MAC Address, 물리적 주소
- 네트워크 계층의 주소 : IP Address, 논리적 주소
MAC Address
- 16진수 2자리씩 끊어서 표기
- 1당 1Byte(8Bit) X 6 = 6Byte(48Bit)
- 앞 3Byte / 뒤 3 Byte
- OUI(Organizationally Unique Identifier)-제조사별로 할당된 값
- Host Id : 각 장치별 일련번호
ARP (Address Resolution 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 : 네트워크 내에서 구분하기 위한 값.
- CIDR Prefix: 서브넷 마스크의 표기방법
- 255.255.255.0 → /24
=======================================================
Network 인터페이스 설정
- NetworkManager: 네트워크 관리 데몬
- nmcli : NetworkManager 설정 도구
- nmtui : TUI(Text User Interface) 설정 도구
Connection
- 하드웨어 장치에 직접 설정을 반영하지 않고, ‘연결(Connection)’을 생성하여 이를 하드웨어에 연결
- 다수의 네트워크 환경에 따른 연결 설정을 만들어놓고, 필요한 연결 설정을 매칭 시키는 방식으로 사용할 수 있음
nmcli
- 명령어 형식
- # nmcli <대상> <서브커맨드> <Argument>...
- 네트워크 연결 추가
- 필수항목
- 이름: con-name
- 타입: type
- 사용할 하드웨어 장치: ifname
- ex) # nmcli connection add con-name test type ethernet ifname ens33
- 선택항목
- IP주소/서브넷마스크 : ipv4.addresses <주소/netmask>
- 게이트웨이 정보 : ipv4.gateway <gateway주소>
- DNS 정보 : ipv4.dns <DNS 서버 주소>
- 자동 활성화 설정 : connection.autoconnect
- 동작 방식 : ipv4.method (auto: DHCP, manual: 수동)
- ex) # nmcli connection add con-name static ifname ens33 type ethernet ipv4.addresses 192.168.100.100/24 ipv4.gateway 192.168.100.2 ipv4.dns 8.8.8.8
- ex) # nmcli connection add con-name static2 ifname ens33 type ethernet ipv4.addresses 192.168.100.100/24 ipv4.gateway 192.168.100.2 ipv4.dns 8.8.8.8 ipv4.method manual
- 네트워크 연결 확인
- # nmcli connection show
- # nmcli connection show [연결 이름]
- 네트워크 연결 활성화
- # nmcli connection up [연결 이름]
네트워크 상태 확인 명령
- ifconfig : net-tools 패키지로 분리 (netstat)
- ip
- address show :네트워크 주소 정보 확인
- route show : 라우팅 테이블 출력
- netstat → ss : 네트워크 포트 상태 확인
장치의 이름
- ens33, eth0, eno16…
========================================================
네트워크 - IP 주소
IP주소 = Network ID + Host ID
Network ID: 네트워크를 지정하는 ID
Host ID : 네트워크 내에서 호스트를 식별하는 ID
Network ID / Host ID의 길이는 가변
- 합이 32bit이면 됨
- 서브넷의 규모가 결정됨
서브넷(Subnet)
- 같은 네트워크(라우터 등을 거치지 않는)
- 브로드캐스트 도메인 (MAC: FF:FF:FF:FF:FF:FF / IP: 네트워크 별 브로드캐스트 주소, 255.255.255.255)
네트워크 주소
- 네트워크 그 자체를 대표할 수 있는 주소
- 특정 호스트에서 사용할 수 없음
- 서브넷 내의 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
서브넷 마스크
- 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 (X)
- 서브넷 마스크를 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
- CIDR Prefix 표기방식 : Network ID 부분의 1의 개수를 표기
- 255.255.255.0 : /24
클래스
- Network ID/Host ID의 일정한 규칙을 가지는 네트워크 구분
- A클래스
- Network ID: 8bit
- Host ID: 24bit
- 구성할 수 있는 네트워크의 개수는 작으나(256개), 한 네트워크 당 호스트의 개수는 가장 많음(256*256*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개)
- IP범위: 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 : 브로드캐스트
사설 네트워크 (Private Network)
- 한정된 IP 주소 자원을 사용하기 위한 방법
- 사설 네트워크 범위로 사용되는 IP주소는 공인IP에서 사용불가
- NAT(Network Address Translation) : 사설 네트워크 내의 IP 사용시 외부로 패킷을 전송할 때 송신 IP부분에 사설네트워크 IP를 입력해놓을 경우, 응답을 받을 수 없음
부족한 IP자원 극복을 위한 대책
- 사설네트워크 + NAT(NAPT, Network Address & Port Translation)
- IPv6 → 2^128 개의 IP 사용 가능
- DHCP(Dynamic Host Configuration Protocol)
- 서브 네팅(Subnetting)
서브 네팅
- 네트워크를 분할/합병
- 단일 네트워크의 크기는 최대 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
- 100.100.100.0 ~ 100.100.100.127 : 100.100.100.0/25
- 100.100.100.128 ~ 100.100.100.255 : 100.100.100.128/25
01100100.01100100.01100100.00000000 ~ 01100100.01100100.01100100.11111111
- 01100100.01100100.01100100.00000000 ~ 01100100.01100100.01100100.01111111
- 01100100.01100100.01100100.10000000 ~ 01100100.01100100.01100100.11111111
- 서브넷 마스크 : 255.255.255.128 (11111111.11111111.11111111.10000000)
100.100.100.0/24
- -. 0 ~ -. 63 : 100.100.100.0/26
- -. 64 ~ -. 127 : 100.100.100.64/26
- -. 128 ~ -. 191 : 100.100.100.128/26
- -. 192 ~ -. 255 : 100.100.100.192/26
- -. 00000000 ~ -. 00111111
- -. 01000000 ~ -. 01111111
- -. 10000000 ~ -. 10111111
- -. 11000000 ~ -. 11111111
- 서브넷 마스크 : 11111111.11111111.11111111.11000000 = 255.255.255.192 = /26
문 1) 현재 강의장을 구성하기 위해 200.200.200.0/24 네트워크를 사용할 예정임. 현재 한 강의장 당 30개의 IP를 사용하도록 구성함. 강의장은 총 5개. 각 강의장 별 네트워크 정보는?
- 1 강의장 : 200.200.200.0/27
- 2 강의장 : 200.200.200.32/27
- 3 강의장 : 200.200.200.64/27
- 4 강의장 : 200.200.200.96/27
- 5 강의장 : 200.200.200.128/27
ex) 200.200.200.0/30 => Host ID 2비트 => 사용할 수 있는 IP 4개 => 네트워크 주소/브로드캐스트 주소 제외 시 2개
200.200.200.0/31 => 네트워크 주소/브로드캐스트 주소밖에 존재할 수 없음
문 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
=> 11111111.11111111.11111110.00000000 => 255.255.254.0 => /23
- 주소의 범위 : 200.200.200.0 ~ 200.200.201.255 = 200.200.200.0/23
- 사용할 수 있는 호스트 개수 : 256 * 2 - 2 = 510개 (네트워크당 1개의 네트워크 주소, 브로드캐스트 주소)
- 네트워크 주소 : 200.200.200.0
- 브로드캐스트 주소 : 200.200.201.255
- 서브넷마스크 : 11111111.11111111.11111110.00000000 => 255.255.254.0 => /23
문 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
ex) 200.200.201.0/23 (X)
=> 이런 식으로 애매하게 붙는 네트워크는 구성할 수 없음 : 첫 번째 네트워크의 Host ID 부분이 모두 0이 아님
VLSM(Variable Length Subnet Mask)
- 서브 네팅의 유형
- 서브넷의 크기가 다를 경우
- VLSM 구성시 규칙
- 할당된 네트워크 범위에서 가장 큰 네트워크를 먼저 할당
- 네트워크 할당 시 기본적인 할당 규칙을 준수
- ex) 회사에 100.100.100.0/24 할당하려고 할 경우, 기술부 100명, 영업부 20명, 관리부 5명
- 기술부: 100.100.100.0/25 => 128개(-2개) 할당 가능
- 영업부: 100.100.100.128/27 => 32개(-2개) 할당 가능
- 관리부: 100.100.100.160/29 => 8개(-2개) 할당 가능
========================================================
nmcli 서브 커맨드
nmcli
- connection : 연결 관련
- add : 새로운 연결 생성. 필수항목 반드시 포함(con-name, ifname, type)
- nmcli connection add con-name <연결 이름> ifname <장치 이름> type <장치 종류, 보통 ethernet> [추가 설정 항목]
- ipv4
- addresses : IP/서브넷 마스크
- dns : DNS 서버 주소
- gateway : 게이트웨이 주소
- method : DHCP 사용 여부
- connection.autoconnect => 연결 자동 사용
- modify : 기존 연결 정보 수정
- nmcli connection modify <수정할 연결 이름> [수정 내용]
- delete : 연결 삭제
- nmcli connection delete <삭제할 연결 이름>
- 사용 중인 연결은 삭제 불가 (다른 연결 사용 후 삭제)
- up : 연결 사용
- nmcli connection up <사용할 연결 이름>
- show : 상태 확인
- nmcli connection show : 연결 목록 확인
- nmcli connection show <연결 이름> : 특정 연결 세부 정보
- 소문자 항목: 연결에 설정되어 있는 값
- 대문자 항목: 사용 중인 값
- device : 장치 관련
- status : 장치 목록 출력
- show <장치 이름> 특정 장치 정보 출력
- disconnect <장치명> : 특정 장치 연결 끊기
- connect <장치명> : 특정 장치 연결하기
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
- Host name + Domain name
- hostname : www
- domain name : naver.com
hostnamectl에서 조회되는 hostname 종류
- Static : 사용자가 직접 설정한 호스트 이름
- Transient : 네트워크 등으로부터 전달받은 호스트 이름
- Pretty : 특수문자 등을 포함한 호스트 이름
# hostnamectl set-hostname <호스트 이름>
- 호스트 이름 변경 (Static)
# hostnamectl set-hostname <호스트 이름(특수문자 포함)>
- 호스트 이름 변경
- Static: 특수문자 제거, 소문자 변환 한 내용으로 저장
- Pretty: 입력한 내용 그대로
# hostnamectl set-hostname <특수문자 포함 호스트 이름> --pretty
- Pretty 호스트 이름만 변경 가능
*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.
댓글