본문 바로가기
IT/Linux

네트워크 관리(기초,NetworkManger,호스트이름)

by 혁클 2021. 4. 8.

 

네트워크 관리

 

네트워크 기본

  • 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

  1. 100.100.100.0 ~ 100.100.100.127 : 100.100.100.0/25
  2. 100.100.100.128 ~ 100.100.100.255 : 100.100.100.128/25

 

01100100.01100100.01100100.00000000 ~ 01100100.01100100.01100100.11111111

  1. 01100100.01100100.01100100.00000000 ~ 01100100.01100100.01100100.01111111
  2. 01100100.01100100.01100100.10000000 ~ 01100100.01100100.01100100.11111111
  3. 서브넷 마스크 : 255.255.255.128 (11111111.11111111.11111111.10000000)

 

100.100.100.0/24

  1. -. 0 ~ -. 63 : 100.100.100.0/26
  2. -. 64 ~ -. 127 : 100.100.100.64/26
  3. -. 128 ~ -. 191 : 100.100.100.128/26
  4. -. 192 ~ -. 255 : 100.100.100.192/26

 

  1. -. 00000000 ~ -. 00111111
  2. -. 01000000 ~ -. 01111111
  3. -. 10000000 ~ -. 10111111
  4. -. 11000000 ~ -. 11111111
  5. 서브넷 마스크 : 11111111.11111111.11111111.11000000 = 255.255.255.192 = /26

 

문 1) 현재 강의장을 구성하기 위해 200.200.200.0/24 네트워크를 사용할 예정임. 현재 한 강의장 당 30개의 IP를 사용하도록 구성함. 강의장은 총 5개. 각 강의장 별 네트워크 정보는?

  1. 1 강의장 : 200.200.200.0/27
  2. 2 강의장 : 200.200.200.32/27
  3. 3 강의장 : 200.200.200.64/27
  4. 4 강의장 : 200.200.200.96/27
  5. 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 호스트 이름만 변경 가능

*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.

'IT > Linux' 카테고리의 다른 글

SSH  (0) 2021.04.13
소프트웨어 패키지 관리(rpm,yum)  (0) 2021.04.10
NTP  (0) 2021.04.07
부팅 문제 해결  (0) 2021.04.06
SELinux  (0) 2021.04.05

댓글