Network

freshness·2024년 6월 14일

네트워크란?

  1. 분산 되어 있는 컴퓨터를 통신망으로 연결한 것
  2. 기본 원칙 : 요청과 응답
  3. 네트워크 구성 요소
    1. 네트워크 엣지 - 서버, 클라이언트 방식에서 사이의 연결된 장비를 제외한 맨 끝단의 서버와 클라이언트
    2. 네트워크 코어- 네트워크 엣지를 제외한 중간 단의 장비
    3. 링크 - 네트워크 상 장비들을 연결해주는 선

네트워크 분류

  1. 개인 영역 네트워크(PAN, Personal Area Network)
    1. 개인 기기 간 통신 및 데이터 공유를 위한 네트워크
    2. 블루투스, NFC 등
  2. 근거리 네트워크(LAN, Local Area Network)
    1. 가까운 거리에 위치한 비교적 소규모 네트워크
    2. 가정, PC방, 사무실 등
  3. 도시 지역 네트워크(MAN, Metropolitan Area Network)
    1. LAN이 모여 MAN이 된다.
  4. 광역 네트워크(WAN, Wide Area Network)

네트워크 토폴로지

  1. 네트워크의 요소들을 물리적으로 연결해 놓은 방식
  2. 버스
    1. 모든 장치가 하나의 케이블로 연결
  3. 스타
    1. 네트워크 중앙의 노드에 모든 노드가 연결
    2. 가장 많이 사용되는 연결 형태로 특정 장비에 네트워크 연결이 집중(가정용 모뎀, 공유기 등)
  4. 트리
    1. 계층적 네트워크로 부모-자식 계층 구조로 연결
  5. 메쉬(망)
    1. 중앙 제어 장치 없이 모든 노드가 상호 연결된 구조
    1. 좌우 인접 노드와 연결되어 있는 단방향 전송 형태
    2. 연결 특성 상 하나만 장애가 나도 모든 네트워크가 동작하지 않는다.

네트워크 통신 방식

  1. 서버-클라이언트 모델
    1. 서버(제공자)와 클라이언트(사용자)로 역할이 구분되는 모델
    2. 요청 ←→ Request ←→ 응답 의 무결성 지켜져야 함
    3. 보통 일반 PC에서 서버로 요청을 해 데이터를 처리 또는 응답 받아 작업을 진행
  2. 유니캐스트
    1. 1:1
    2. 웹브라우징, 이메일 전송 등에 사용
  3. 멀티캐스트
    1. 1:N
    2. 멀티캐스트 구독 호스트에게 다수의 목적지로 데이터 전송
    3. IPTV, 온라인 스트리밍 등에 사용
  4. 브로드캐스트
    1. 1:N
    2. LAN 네트워크 상 모든 수신자에게 데이터를 전송
    3. IP 주소가 255.255.255.255 로 고정(IP 주소 중 해당 대역은 사용 불가)
  5. 애니캐스트
    1. 여러 대상 중 가장 가까운 대상(후보군)과 데이터를 전송하는 방식(1:1)

프로토콜

  1. 컴퓨터 및 네트워크 간 통신을 위해 정의된 규칙(약)의 집합

  2. OSI 7 계층

    1. OSI 7계층 중 표현 / 세션 계층은 TCP 5계층에서는 애플리케이션에 포함
    2. 애플리케이션(편지)→전송(등기, 우편)→네트워크(수발신)→데이터 링크(발신)→물리(배달) = 요청
    3. 물리 → 데이터 링크 → 네트워크 → 전송 → 애플리케이션 = 응답

    애플리케이션 계층 - 프로그램(크롬, 파이어폭스 등), 데이터

    1. 핵심 프로토콜
      1. DHCP(Dynamic Host Configuration Protocol)
        1. 네트워크에서 컴퓨터와 장치에 자동으로 IP 주소 및 기타 네트워크 설정을 제공 하는 프로토콜
        2. IP 주소 충돌 방지, 클라이언트에게 일정 기간 동안 IP 주소 할당 및 갱신
        3. DHCP 클라이언트
          1. UDP-68 포트 사용
          2. 네트워크를 연결되는 모든 장치가 네트워크에 연결 될 때 마다 DHCP 서버에게 IP를 요청
        4. DHCP 서버
          1. UDP-67 포트 사용
          2. 클라이언트가 요청 시 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 주소 등을 동적 제공
        5. 서버가 클라이언트에 네트워크 설정을 제공할 때 255.255.255.255(브로드캐스트)와 전용 포트를 이용해 관련된 설정 정보를 교환한다.
      2. DNS(Domain Name System)
        1. IP 주소를 사람이 쉽게 접속할 수 있도록 이름을 부여하는 역할
        2. DNS 계층구조
          1. www[Third] . google[Second] . com[TOP]
          2. 역트리 구조로 TOP → Second → Third 레벨 순으로 목적된 주소를 단계적으로 찾아간다.
          3. 모든 주소를 찾으면 DNS에 연결된 IP로 접속된다.
      3. FTP(File Transfer Protocol)
        1. 능동 연결(Active)
          1. 클라이언트가 데이터 연결을 위한 포트를 열어두고 서버가 해당 포트로 연결을 수립해 데이터를 전송
        2. 수동 연결(Passive)
          1. 서버가 포트를 열어두고 클라이언트가 해당 포트 연결을 통해 데이터를 전송
      4. HTTP(Hypertext Transfer Protocol)
        1. 80 포트 사용
        2. HTTP Method
          1. GET / POST / PUT / PATCH / DELETE

    표현 계층

    1. 데이터의 표현 방식 및 변환
    2. 핵심 프로토콜
      1. SSL / TLS, ASCII, 유니코드

    세션 계층

    1. 통신 세션의 설정, 관리 종료
    2. 핵심 프로토콜
      1. 소켓

    전송 계층 - TCP(등기-수신 확인 필요), UDP(우편-유실,훼손 가능성)

    1. 통신 세션 관리, 에러 복구, 흐름 제어 기능 담당
    2. 핵심 프로토콜
      1. TCP - 연결 지향, 신뢰성
      2. 기본 크기 - 20 Byte(Option 포함 60 Byte)
        1. 3-way Handshake(SYN(C)→ACK+SYN(S)→SYN(C)) : TCP로 연결하기 위해 3번의 패킷을 보내 세션(연결)을 유지한다.
        2. 4-way Handshake(FIN(C) → ACK(S) → FIN(S) → ACK(C)) : TCP 모든 작업이 종료될 때 세션을 종료 할 때 사용하는 프로세스
        3. 신뢰성 제어(흐름제어)
          1. 수신자, 송신자 간의 데이터 전송 속도를 조절해 데이터의 넘침을 방지
          2. TCP에서는 슬라이딩 윈도우 기법으로 흐름 제어
          3. 수신자는 자신이 처리할 수 있는 데이터 양을 송신자에게 알려준다.
        4. 오류 제어(재전송)
          1. Go-Back-N(GBN) - 슬라이딩 방식으로 순차적으로 데이터를 받고 오류 시 재전송을 통해 해결, 이 때 오류 부분을 넘은 윈도우의 데이터가 정상이라면 무시하고 최초 오류 부분에 대한 응답을 기다린다.(= 페이지 로딩 시 위부터 아래로 순차 로딩 되는 방식))
          2. Selective-Repeat(SR) - 수신측에서 손실된 패킷만 선택적으로 재전송하는 방식
      3. UDP - 비연결 지향, 비신뢰성, 빠른 속도
        1. 전화, 실시간 방송에서 주로 사용
    3. PORT(=서비스) - IP(아파트) 내 특정 호수를 Port로 구분
    4. 하나의 PC, 서버 안에 여러 개의 네트워크 기반 서비스를 실행하기 위해 사용
    5. 주요 포트 번호
      1. 20~21 - FTP(20-데이터, 21-제어)

      2. 22 - SSH (보안 원격 접속)

      3. 23 - Telnet (원격 접속)

      4. 80 - HTTP(웹 페이지 전송)

      5. 443 - HTTPS(HTTP + SSL)

        TCP/UDP의 포트 목록

    네트워크 계층 - IP 주소(송수신자)

    1. 핵심 프로토콜
      1. IPv4 (32bit 주소체계 - 4Byte)
        1. 0~255 사이의 숫자를 가질 수 있는 4개의 필드로 구성(예 : 192.168.0.1)
        2. 서브넷마스크 - 동일한 네트워크를 구분
          1. 2가지의 IP로 예시를 구현 (A-192.168.20.237, B-192.168.20.105)
          2. 서브넷마스크가 255.255.255.0으로 설정되었다면 192.168.20 까지 숫자가 같은 3개의 필드를 사용하고 이를 네트워크 주소하며, 4번째 필드는 호스트 주소라고 하며 이를 통해 호스트를 구분(서브넷마스크의 구성에 따라 네트워크 주소와 호스트 주소의 필드 범위는 달라질 수 있다.)
          3. 호스트 주소는 0~255 사이의 범위에서 지정하지만 0은 네트워크 자체를 지칭하는 서브넷 주소라고 하며, 255 또한 브로드캐스트를 위한 주소로 사용하지 않는다.
          4. 넷마스크 표현
            1. 255.255.255.0 → 192.168.20.105/24(255로 표현된 부분을 이진수로 표현했을 때 1의 개수만큼 표현)
          5. 서브넷팅
            1. 네트워크를 더 작교 효율적으로 나누는 프로세스
            2. 일반 서브네팅 - 1/n으로 주소 공간 분할
              1. 192.168.20.105를 4개로 잘랐을 경우 → 1111111.11111111.11111111.11000000
              2. 192.168.20.0.0 ~ 192.168.0.63 / 26 (= 24 + 2 로 넷마스크 표현)
              3. 192.168.20.64 ~ 192.168.20.127 / 26
              4. 192.168.20.128 ~ 192.168.20.191 / 26
              5. 192.168.20.192 ~ 192.168.20.255 / 26
            3. VLSM(Variable Length Subnet Masking) - 가변식 서브넷팅
              1. 192.168.20.0/24 를 반으로 쪼갬
                1. 192.168.20.0/25 (128개)
                2. 192.168.20.128/25 (128개)
              2. 쪼갠 대역 중 하나를 또 반으로 쪼갬
                1. 192.168.20.128/26 (64개)
                2. 192.168.20.192/26 (64개)
        3. 게이트웨이 (개념 혹은 장비)
          1. 외부와 통신을 하기 위한 관문 역할로 라우터의 IP를 입력
        4. IP 클래스
          1. A - 대규모 네트워크 주소(국가) 0.0.0.0 ~ 127.255.255.255
          2. B - 중형 네트워크 주소(기업/공공기관) 128.0.0.0 ~ 191.255.255.255
          3. C - 소규모 네트워크 주소(개인) 192.0.0.0 ~ 223.255.255.255
          4. D - 멀티캐스트 주소 224.0.0.0 ~ 239.255.255.255
          5. E - 연구 및 특수용도 주소 240.0.0.0 ~ 255.255.255.255
        5. 특수 네트워크 대역
          1. 루프백 - 127.0.0.0 ~ 127.255.255.255 (내 호스트)
        6. 공인 IP
          1. ISP 가 제공하는 IP로 공인(외부) IP라고 한다.
          2. 세상에 단 하나뿐인 IP 주소
          3. IPv4 체계가 소화할 수 있는 IP의 개수가 한정되자 공인IP 하나에 사설 네트워크를 생성해 더 많은 IP를 활용 할 수 있도록 해두었다.
        7. 사설 IP
          1. 사설 네트워크
            1. 10.0.0.0 ~ 10.255.255.255 (A클래스 내 사설 네트워크 대역)
            2. 172.16.0.0 ~ 172.31.255.255 (B클래스 내 사설 네트워크 대역)
            3. 192.168.0.0 ~ 192.168.255.255 (C클래스 내 사설 네트워크 대역)
      2. IPv6 (128bit 주소체계)
        1. 16진수로 구성된 8개의 필드로 구성 (예 : 2001:0DB8:1000:0000:0000:0000:1111:2222)
        2. 한 필드의 구성이 모두 0일 경우, 필드 맨 앞이 0일 경우 0을 생략이 가능하다. ( 예 : 2001:DB8:1000::1111:2222)
    2. 라우터
      1. 기능
        1. 라우팅 - 네트워크 간 데이터 패킷을 최적의 경로로 전송
        2. 포워딩 - 패킷이 빠져나갈 위치에 데이터 패킷을 위치
      2. AS(Autonomous System) - 인터넷에서 라우팅을 관리하는 독립된 네트워크 시스템
      3. 라우팅 프로토콜(경로 지정 방식)
        1. 정적
          1. 관리자가 직접 세팅하는 방법으로 소규모 망에 적합
          2. 장점 - 라우터가 할 일이 줄어들어 부하 감소
          3. 단점 - 라우터가 많을 경우 인적 자원의 부하 상승
        2. 동적
          1. 라우터가 스스로 세팅하는 방법으로 대규모 망에 적합
          2. 장점 - 사람이 세팅할 것이 적어 인적 자원 부하 감소
          3. 단점 - 라우터의 부하가 상승
          4. 프로토콜
            1. RIP(Routing Information Protocol)
              1. 거리 벡터 라우팅 프로토콜(=최소 환승)
              2. 간단하고 구현 편의성이 좋으며 최대 15홉까지의 네트워크 지원, 소규모망에 적합
            2. OSPF(Open Shortest Path First)
              1. 링크 상태 프로토콜(=최단 거리)
              2. 라우터가 네트워크의 전체 지도를 만들어 시간이 가장 적게 드는 경로를 계산
              3. 대규모 망 적합
      4. NAT(Network Address Translation)
        1. 사설 IP 주소를 공인 IP 주소로 변경
        2. IP 주소 공간 부족 문제 완화에 도움
      5. ARP(Address Resolution Protocol)
        1. IP 주소 → MAC 주소로 변환
      6. RAPR(Reverse Address Resolution Protocol)
        1. MAC 주소 → IP 주소로 변환
      7. ICMP(Internet Control Message Protocol)
        1. 데이터가 의도한 대상에 도달하는지 확인하기 위한 용도
        2. ping, tracert, traceroute 명령어와 관련된 프로토콜
      8. VPN(Virtual Private Network)
        1. 공중망을 이용해 직접 연결한 것 처럼 망을 구성하는 기술
        2. 터널링과 암호화 기술 활용해 멀리 떨어진 곳에서도 조직 내부망을 사용할 수 있다.

    데이터 링크 계층 - MAC 주소 (송신자)

    1. OSI 3~7계층이 소프트웨어로 구현이 되어 있다면 2계층 데이터링크는 소프트웨어와 하드웨어 2가지를 이어주는 계층이다.
    2. 통신방법
      1. 단방향 통신 - 송수신이 정해져있고 데이터는 한 방향으로만 전송된다.( 아날로그 TV, 라디오 등)
      2. 양방향 통신 - 데이터를 두 방향으로 송수신 할 수 있는 통신 방식
        1. 반이중 - 무전기
        2. 전이중 - 전화, 이더넷, Wi-Fi
    3. CSMA(Carrier Sense Multiple Access)
      1. CSMA/CD(Collision Detection)
        1. 충돌 감지를 통해 동시에 데이터를 전송하지 않도록 제어
        2. 이더넷과 같은 물리 네트워크에 주로 사용
      2. CSMA/CA(Collision Avoidance)
        1. 전송 전 채널 사용 유무를 파악해 충돌을 피하는 방식으로 제어
        2. 물리적 충돌을 감지하기 어려운 환경인 무선 네트워크에서 주로 사용되는 프로토콜
    4. MAC(MAC Address)
      1. 네트워크 장비를 구분하기 위한 고유 식별자
      2. MAC 주소를 통해 네트워크에서 데이터를 주고 받는다.
    5. 이더넷
      1. LAN에서 가장 널리 사용되는 데이터링크 프로토콜 중 하나
    6. 스위치
      1. 브로드캐스트를 통해 밖에서 돌아온 데이터 패킷의 주인을 찾아준다.
      2. 여러 LAN을 하나로 묶어주는 장비
    7. 물리 - 이더넷
      1. 네트워크 인터페이스 카드(=LAN카드)
      2. 리피터 - 신호 증폭기
      3. 허브 - 여러 통신장비를 물리적으로 묶어주는 장비(스위치보다는 성능적으로 좋지않음)
      4. UTP - 흔히 알고 있는 LAN 선으로 전자기 간섭에 취
      5. FTP - 기존 LAN 선에 전자기 간섭을 최소화하기 위해 알루미늄 포일을 감싼 형태

패킷트레이서 실습

  1. PC / 서버 IP 세팅
    1. PC / 서버 클릭 후 Desktop 메뉴에서 command prompt 클릭 후 IP 주소와 서브넷마스크 설정
    1. 실선(Direct) : 다른 OSI 계층일 때
    2. 점선(Cross) : 같은 OSI 계층일 때
    3. Serial DCE : 라우터 간 연결 시 사용(라우터 간 연결은 WAN 으로 SERIAL 인터페이스를 사용)

정적 라우팅 설정

  1. 라우터 클릭 → CLI 에서 모드 변경
    1. 사용자모드 : Would you like to enter the initial configuration dialog? → no
    2. 라우터 장비 설정 시 Physical 에서 HWIC-2T 장비를 추가
    3. 관리자모드 : 사용자 모드에서 enable
    4. 전역 설정 모드 : 관리자모드에서 configure terminal (conf t )
      1. 인터페이스는 기본적으로 비활성화 상태이기 때문에 전역 설정에서 활성화 가능하다.
      2. (전역)호스트 이름 변경 : hostname <호스트 이름>
      3. (전역)인터페이스 활성화 : interface gig0/0 (int g0/0) → no shutdown
      4. (전역)라우터 IP 부여 : ip addr <IP주소> <서브넷마스크>
        1. IP 부여가 잘못됐을 때 : no ip addr 또는 덮어쓰기
      5. (관리자) 세팅 확인 : show run(sh r) , show ip int brief (IP 설정된 것만 확인)
      6. (전역) 세팅 확인 : do show run (do - 모드와 상관 없이 명령어 실행 권장X)
    5. 모드 변경 취소는 exit
    6. 초기 설정에 현재 설정 반영
      1. RAM - 현재 설정, NVRAM - 초기 설정
      2. RAM의 내용을 NVRAM으로 옮기면 이후 환경을 재시동 시 현재 설정이 초기 설정으로 변경 된다.
      3. (관리자) copy running-config startup-config == wr
    7. 현재 라우터의 라우팅 테이블 확인 → show ip route
      1. 라우팅 테이블에 다른 라우터의 대역을 입력해 라우터끼리 연결이 될 수 있도록 세팅
        1. ip route <IP 대역> <서브넷 마스크> <IP대역에 가기 위한 IP>
          1. 예 : ip route 203.230.9.0 255.255.255.0 203.230.8.2
        2. PC나 서버는 꼭 게이트웨이가 설정되어 있어야 함
    8. 디폴트 정적 라우팅
      1. 라우터에 OUT 이 하나만 있는 경우 설정 방법
      2. ip route 0.0.0.0 0.0.0.0 <맨 끝단 IP>
      3. 다른 여러대역을 설정하지 않는 이유는 어차피 모든 요청에 대한 응답이 한 통로로만 나가기 때문에 경로 설정이 불필요

동적 라우팅 설정

  1. 거리 벡터
    1. 네트워크 구성의 단계별 설치된 라우터에서 신호를 보내며 타이머를 동작 시키면 각 라우터가 가진 라우팅 테이블 정보를 인접 라우터로 전송해 각 라우터에 대해 라우팅 테이블을 갱신 시킨다.(모든 라우터가 모든 라우팅 테이블을 공유)
    2. 이 방법의 경우 라우팅 테이블의 최신화가 되려면 모든 네트워크 라인의 끝을 왕복해야 하기 때문에 처음 신호를 보낸 라우터의 라우팅 테이블 정보의 갱신이 느리다.
    3. 라우팅 테이블을 갱신하기 위해 네트워크 자원의 사용량이 올라간다.
    4. RIP(v1) 프로토콜 설정 방법
      1. 소/중규모, 공인 IP 에서 사용, Classful 방식
      2. 하나의 라우터에만 설정할 경우 라우팅 테이블 정보를 받을 수 없으니 모든 라우터의 세팅을 동일한 방식으로 지정해주어야 한다.
      3. (전역) router <라우팅 프로토콜> → router rip 입력
      4. (전역) 라우터 아래 PC에 불필요한 패킷을 차단하는 방법
        1. Passive-interface : 라우팅 관련 프로토콜 관련 브로드캐스트 및 멀티캐스트 패킷을 인터페이스로 송신 되는 것을 차단한다.
        2. router rippassive-interface <인터페이스 이름> (g0/0)
      5. (전역) network <인접 네트워크 IP> → 라우터에 인접한 IP 입력
        1. 신호가 왔을 때 network로 설정된 IP들을 알려준다.
    5. RIP(Classless)
      1. 사설 IP 에서 사용
      2. 설정 방법
        1. (전역) router ripversion 2no auto-summary
        2. auto-summary 는 자동 축약 기능으로 활성화 시 네트워크 정보를 클래스풀 방식으로 요약한다.
    6. EIGRP
      1. 특징 : 제한적, 부분적 업데이트
      2. 타이머를 통한 라우팅 테이블 업데이트 과정은 RIP와 동일
      3. 라우팅 경로에 변화가 없는 이상 추가 갱신을 하지 않는다.
      4. 경로 변화가 있는 경우 바뀐 내용만 업데이트
      5. 영향을 미치지 않는 라우터에는 별도의 패킷을 보내지 않는다.(제한적 업데이트)
      6. Hello 패킷 : 주변의 라우터가 문제가 있는지 확인 하는 패킷
        1. 문제가 발생할 경우 부분적, 제한적 업데이트 실행
      7. loopback 주소 : 라우터 구역을 구분하기 위한 ID(논리IP)
        1. 별도의 루프백 주소를 부여하지 않으면 라우터가 현재 사용 중인 대역에서 IP 중 하나를 루프백 ID로 사용(권장 X)
        2. 라우터가 중지 되기전까지 유지
        3. EIGRP ID = 루프백 IP
      8. 설정 방법
        1. (전역) int lo<번호> (루프백 설정) → ip addr <루프백 IP> <서브넷마스크>
        2. 루프백 주소 설정 시 no shutdown 명령어 입력이 필요 X(알아서 켜짐)
        3. (전역) router eigrp <1~65535> (구역 설정)→ network <IP대역> (물리 IP대역+루프백 대역 포함, 클래스 대역폭 주의) → no auto-summary (자동 요약 해제)
        4. (관리자)show ip protocols - 루프백 ID와 프로토콜 정보 확인
        5. (관리자)show ip eigrp neighbor - 라우터의 이웃 라우터 IP 확인
  2. 링크 상태
    1. 거리 벡터는 모든 라우팅 테이블을 공유하지만 링크 상태 알고리즘은 자기가 가진 라우팅 테이블만 가지고 통신한다.
    2. OSPF
      1. 거리 비용을 계산해 가장 빠른 경로로 통신
      2. EIGRP의 구역 개념에 지역(Area) 개념을 합쳐 사용
        1. 구역 1~65535, 지역 1~65535개로 2의 32승만큼의 범위를 커버
      3. 중, 대규모망에 적합, Classless
      4. 중간 지역은 무조건 Area0로 지정
      5. 네트워크 지정 시 와일드카드 입력(0.0.0.0) ↔ 서브넷마스크(255.255.255.0)
        1. 와일드카드 입력(0.0.0.255) ↔ 서브넷마스크(255.255.255.0) 처럼 서로 반대되는 개념
  3. 현재 라우터의 프로토콜 확인 → show ip protocols
  4. 현재 동적 라우팅 프로토콜 디버깅 → debug ip rip , no debug ip rip

패킷 : 데이터 묶음

SYN(Synchronize) : 동기화

ACK(Acknowledge) : 인정, 수락

AS(Autonomous System) : 하나 이상의 네트워크 운영자가 제어하며, 인터넷에 대해 명확하게 정의된 라우팅 정책을 제시하는 연결된 인터넷 프로토콜(IP) 라우팅 접두사의 모음을 의미합니다.

0개의 댓글