Linux(CentOS) 네트워크 관리

박종현·2022년 5월 16일
0

리눅스(CentOS)

목록 보기
8/13

네트워크 기본 - 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 : 서브넷마스크의 표기방법
    • 255.255.255.0→/24
  • 사설 네트워크(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

      1. 100.100.100.0 ~ 100.100.100.127

        → 01100100.01100100.01100100.00000000 ~ 01100100.01100100.01100100.01111111

        →100.100.100.0/25

      2. 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

      1. .0 ~ .63 : 100.100.100.0/26

        →.00000000 ~ .00111111

      2. .64 ~ .127 : 100.100.100.64/26

        →.01000000 ~ .01111111

      3. .128 ~ .191 : 100.100.100.128/26

        →.10000000 ~ .10111111

      4. .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

  • 명령어 형식
     #nmcli [대상] [서브커맨드] [argument]...
  • 서브커맨드 connection : 연결관련
    • add : 새로운 연결 생성. 필수항목 반드시 포함
       # nmcli connection add con-name test type ethernet ifname ens33
      • 필수항목
        • 이름 : con-name
        • 타입 : type
        • 사용할 하드웨어 장치 : ifname
          • 장치의 이름

            -ens33, eth0, eno16 ...

      • 선택항목
        • IP주소/ 서브넷 마스크 : ipv4.addresses [주소/netmask]
        • 게이트웨이 정보 : ipv4.gateway [gateway 주소]
        • DNS 정보 : ipv4.dns [DNS서버 주소]
        • 자동 활성화 설정 : connection.autoconnect
          • 동작방식 : IPv4.method (auto : DHCP, manual : 수동)
    • modify : 기존 연결정보 수정
      • nmcli connection modify <수정할 연결이름> [수정내용]
    • delete : 연결 삭제
      • nmcli connection delete <삭제할 연결이름>
      • 사용중인 연결은 삭제 불가 (다른 연결 사용 후 삭제)
    • up : 연결 사용
      • nmcli connection up <사용할 연결이름>
    • show : 상태확인
       # nmcli connection show
       # nmcli connection show [연결이름] // 상세정보
      • nmcli connection show : 연결 목록 확인
      • nmcli connection show <연결이름> : 특정연결 세부정보
        • 소문자 항목: 연결에 설정되어 있는 값
        • 대문자 항목: 사용중인 값
  • 서브커맨드 device : 장치 관련
    • status : 장치 목록 출력
    • show <장치이름> 특정 장치 정보 출력
    • disconnect <장치명> : 특정 장치 연결 끊기
    • connect <장치명> : 특정 장치 연결하기

네트워크 상태 확인

  • 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 [호스트이름]
      • 호스트이름 변경 (Static)
    • hostnamectl - set-hostname [특수문자 포함호스트이름]
      • 호스트이름 변경
        • Static: 특수문자 제거, 소문자 변환 한 내용으로 저장
        • Pretty: 입력한 내용 그대로
    • hostnamectl set-hostname <특수문자포함 호스트이름> --pretty
      • Pretty 호스트이름만 변경 가능

연습문제

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

  1. 1강의장 : 200.200.200.0/27
  2. 2강의장 : 200.200.200.31/27
  3. 3강의장 : 200.200.200.63/27
  4. 4강의장 : 200.200.200.95/27
  5. 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이 아님

0개의 댓글