네트워크 및 네트워크 장비

최병훈·2024년 9월 28일
post-thumbnail

1. 네트워크

1) 네트워크 구성도

  • 홈 네트워크
    인터넷 <-> 모뎀 <-> 공유기 <-> 컴퓨터, 테블릿, 스마트폰
  • 데이터 센터 네트워크

    • 안정적이고 빠른 대용량 서비스 제공을 목표로 함

    • 구성 방법

      • 3계층 디자인 - 예전에 많이 사용하던 방식
        CORE <-> Aggregation <-> Access

      • 2계층 디자인 - 최근에 네트워크 속도가 빨라지며 사용
        Spine-Leaf 구조

2) 프로토콜

  • 개요
    • 통신을 하기 위한 규칙이나 규약
    • 물리적 측면 : 데이터 전송 매체(케이블), 신호 규약, 회선 규격 등을 정의하는 것, 최근에는 거의 이더넷만 사용
    • 논리적 측면 : 프로토콜 규격 등을 정의하는 것, 최근에는 거의 TCP/IP 만 사용
    • 프로토콜을 정의할 때, 예전에는 비트 기반으로 많이 만들었는데 최근에는 문자 기반으로 많이 사용합니다.
      • 비트 기반의 프로토콜은 효율적이기는 하지만 사람이 읽기가 어렵습니다.
    • TCP/IP는 엄밀한 의미에서 프로토콜이 아니고 프로토콜 스택
      • TCP와 IP는 별도의 계층에서 동작하는 프로토콜인데 이를 합쳐서 부릅니다.
      • TCP/IP 프로토콜 스택에는 TCP와 IP 이외에도 UDP, ICMP, ARP, HTTP, SMTP, FTP, HTTPS 등이 포함되어 있습니다.

3) OSI 7계층과 TCP/IP

  • OSI 7계층

    • 전에는 프로토콜을 각 벤더들이 별도로 개발했기 때문에 호환되지 않는 시스템이나 애플리케이션이 많았다.

    • 하나의 프로토콜로 통합하고자 했던 노력으로 만들어진 것이 OSI 7계층

    • 7개의 계층으로 모듈화 한 이유는 재사용 문제 때문 : 하나로 만들면 재사용성이 떨어지고 이해하기 어려워집니다.

      이름데이터
      Applicationdata
      Presentationdata
      Sessiondata
      TransportSegments
      NetworkPacket
      DataLinkFrames
      PhysicalBits
    • 2개 부분으로 분할
      5~7 계층 : 상위 계층 - 애플리케이션 계층 : 인간, 애플리케이션 개발자의 영역
      1~4 계층 : 하위 계층 - Data Flow 계층 : 기계, 네트워크 엔지니어의 영역

  • TCP/IP 프로토콜 스택

    • 4개 계층으로 프로토콜을 정의
      Application : OSI 의 5~7 계층
      Transport
      Internet : OSI 의 3계층
      Network Access : OSI 의 1, 2 계층
  • 계층 별 기능을 설명할 때 OSI 7계층을 가지고 설명을 많이 합니다.

4) OSI 7계층 별 이해

  • 1계층(물리 계층)
    • 물리적 연결과 관련된 정보
    • 장비 : Hub, Repeater, Cable, Connector, Transiver(랜카드와 케이블을 연결해주는 장비), TAP(네트워크 모니터링 이나 패킷 분석을 위해서 전기 신호를 다른 장비로 복제해주는 장비) 등
  • 2계층(데이터 링크 계층)
    • 전기 신호를 데이터 형태로 변환하는 계층
    • 주소 정보를 정의하고 정확한 주소로 통신이 되도록 하는 역할을 수행
    • 1계층에는 주소라는 개념이 존재하지 않지만, 출발지 주소와 목적지 주소를 확인하고 자신에게 전송된 것인지 확인
    • 에러 탐지도 수행
    • 2계층 장비는 NIC(Netwokr Interface Card) 와 Switch
    • 사용하는 주소 체계는 MAC Address
    • 2계층 장비들은 MAC Address를 이해할 수 있는 장비
    • NIC 동작 방식
      • 전기 신호를 데이터 형태로 생성
      • 목적지 MAC Address 와 출발지 MAC Address를 확인
      • 자신의 MAC Address 를 확인
      • 목적지 MAC Address 와 자신의 MAC Address 가 일치하면 데이터를 처리하고 다르면 데이터를 폐기
    • Switch
      • 허브와 유사하게 여러 개의 포트로 구성
      • MAC Address Table을 가지고 있어서 통신을 하면 MAC Address를 학습해서 테이블에 저장할 수 있습니다.
      • 단말들이 통신할 때 포트를 적절히 필터링하고 정확한 포트로 포워딩합니다.
      • 허브는 어느 한 순간 하나의 장비만 전송이 가능하지만, Switch는 동시에 데이터 전송이 가능데이터 전송이 가능

  • 3계층(네트워크 계층)
    • 논리적인 주소를 정의
    • 사용자가 환경에 맞게 변경할 수 있고 주소를 네트워크 주소 부분과 호스트 주소 부분으로 나누어서 할당할 수 있습니다.
    • 3계층 장비가 라우터 : IP를 이해해서 다른 네트워크를 찾아가는 장비
  • 4계층(전송 계층)
    • 데이터들이 정상적으로 잘 전송이 되는지 확인하는 역할
    • 데이터는 하나의 묶음으로 전송되지 않고 일정한 크기(Packet) 단위로 분할해서 보내게 되는데 중간에 패킷이 유실되거나 순서가 바뀔 수 있는데 이러한 문제를 해결하는 계층
    • 패킷을 만들 때 Sequence Number 를 붙이고 받는 쪽에서는 ACK(Acknowlegement) Number 를 전송합니다.
    • 컴퓨터 내에서 애플리케이션을 구분하기 위해서 Port 를 부여
    • 4계층에서 동작하는 장비는 Load Balancer 와 Firewall : 장비라고 하기도 하고 Software 라고 하기도 합니다.
  • 5계층(세션 계층)
    • 연결 해제와 연결 유지하는 역할
    • 에러 복구와 중단된 통신의 재전송 수행
    • 연결 해제와 유지를 위해서 특별한 키를 발급해서 키를 가지고 실제 연결하는 컴퓨터를 구분
  • 6계층(프레젠테이션 계층)
    • 구문 변환, 데이터 압축, 인코딩과 디코딩을 수행
    • 데이터의 형식을 맞추는 계층
  • 7계층(애플리케이션 계층)
    • 애플리케이션 프로세스를 정의하는 계층
    • OSI 전 계층을 수행하는 장비는 Gateway(Router를 Gateway로 보는 경우가 많음)

5) 통신 과정

  • 데이터를 전송하게 되면 상위 계층에서 하위 계층으로 데이터를 전송
  • 전송을 받는 쪽에서는 하위 계층에서 상위 계층으로 데이터를 전송
  • 데이터를 보내는 과정을 Encasulation 그리고 받는 과정을 Decapsulation 이라고 하기도 합니다.
  • 보내는 쪽
    • Data
      -> 4계층(4계층 헤더 + Data : Segment)
      -> 3계층(3계층 헤더 + 4계층 헤더 + Data : Packet)
      -> 2계층(2계층 헤더 + 3계층 헤더 + 4계층 헤더 + Data + FCS)
      -> 1계층(전기적 신호로 변환)
  • 받는 쪽은 반대 과정을 거침
  • MSS 와 MTU
    • MSS(Maximum Segment Size) : 4계층에서 사용할 수 있는 데이터의 최대 크기
    • MTU(Maximum Transmission Unit) : 네트워크 계층에서 한 번에 보낼 수 있는 데이터의 크기, 이더넷에서는 1500 byte

2. 네트워크 구분과 구성 요소

1) 네트워크 연결 구분

  • 규모에 따른 구분
    • LAN : Local Area Network
      • 사무실이나 건물 하나 정도의 소규모 네트워크
    • MAN : Metropolitan Area Network
      • 하나의 도시 정도를 네트워크로 연결
      • 도시 단위의 네트워크를 만들 때, 통신사의 인프라를 이용하면 WAN 이라고 하고 자체 인프라를 이용하면 MAN 이라고 하기도 합니다.
    • WAN : Wide Area Network
      • 먼 거리를 연결한 네트워크
    • PAN : Personal Area Network
      • 개인의 작업 공간을 중심으로 장치들을 서로 연결하기 위한 네트워크

2) 회선에 따른 분류

  • 인터넷 회선 : 인터넷 접속을 위해 통신 사업자와 연결하는 회선
    • 가입자와 통신 사업자 간에 직접 연결되는 구조가 아니라 전송 선로 공유 기술을 이용
  • 전용 회선 : 가입자와 통신 사업자 간에 대역폭을 보장해주는 서비스
    • 컴퓨터 - 스위치 - 라우터 - ISP(통신 사업자) - 라우터 - 스위치 - 컴퓨터
    • 본사와 지사 연결이나 지사와 지사 연결 등에 사용
    • 종류는 저속인 음성 전송 기술 기반이 있고 고속인 메트로 이더넷이 있습니다.
    • LLCF(Link Loss Carry Forward)
      • 한쪽 링크가 다운되면 이를 감지해 반대쪽 링크도 다운시키는 기능
      • 전용 회선을 이더넷으로 구성할 때 통신 사업자가 LLCF를 설정하지 않으면 한 사이트에서 다운되더라도 반대쪽 사이트에서 회선이 살아있는 것처럼 보이기 때문에 회선을 개통한 후 회선사에서 LLCF 설정이 되어있는지 확인
  • 인터넷 전용 회선 : 인터넷 연결 회선에 대한 통신 대역폭을 보장해주는 서비스

3) VPN(Virtual Private Network)

  • 전용 회선이 아니지만 가상으로 직접 연결한 것 같은 효과가 나도록 만들어주는 네트워크 기술
  • 통신 사업자 VPN
    • 통신 사업자가 VPN을 구성해주는 것
    • 하나의 건물에서만 VPN을 구성한다면 직접 구성하면 되지만 먼 거리에 떨어져있는 곳과도 통신이 가능한 VPN을 만들려면 회선 연결 비용이 증가하기 때문에 통신 사업자의 회선을 이용해서 구성합니다.
    • MPLS VPN : 통신 사업자는 전용선인 것처럼 보이게 하지만 실제로는 가입자를 구분하는 기술과 시분할을 이용해서 서비스를 제공
  • 가입자 VPN : 일반 사용자가 가상 네트워크를 직접 구성하는 것

4) DWDM(Dense Wavelenth Division Multiplex) : 파장 분할 다중화

  • 광케이블로 데이터를 전송할 때 채널을 분할해서 데이터를 전송하는 것

5) 네트워크 구성 요소

  • NIC(Network Interface Card)
    • 직렬화, MAC Address, 흐름 제어(Flow Control - 데이터를 안정적으로 주고 받기 위해서 기존에 통신 중이라면 다른 네트워크에서 데이터를 보내는 것을 중지하라고 요청)
    • 일반적으로 사용하는 NIC 외에도 스토리지와 서버를 연결하는 NIC도 존재
    • 고성능 클러스터링을 구현하기 위한 HPC(High Performance Computing)에서도 일반적으로 사용하는 NIC를 사용하지 않습니다.
  • 케이블과 커넥터
    • 1000BASE-T
      • 1000(속도, Mbps)BASE(채널)-T(케이블 타입)
    • 케이블 종류는 트위스트페어(유선 인터넷), 동축 케이블(TV 회선), 광케이블 등이 있음
  • 스위치
    • 여러 장비를 연결하고 케이블을 한 곳으로 모아주는 역할을 수행
    • 스위치와 허브의 기능을 같이 하면 스위칭 허브라고 부르고 4계층이나 3계층의 역할까지 수행하는 스위치를 L3 또는 L4 스위치라고 합니다.
  • 라우터
    • 외부 네트워크와 통신하기 위한 장비
    • 정확한 방향으로 데이터가 전송되도록 하고 최적의 경로로 데이터를 포워딩하는 역할
  • 로드밸런서
    • 4계층 장비
    • 애플리케이션 계층에서 애플리케이셔 프로토콜의 특징을 이해하고 동작하는 로드밸런서를 ADC(Application Delivery Controller)라고 합니다.
    • 포트 주소를 확인하는 동시에 IP 변환도 수행
    • 웹 서버를 구축할 때 많이 사용하는데 동일한 역할을 수행하는 웹 서버를 여러 대 만들고자 하는 경우 로드 밸런서를 웹 서버 앞에 두고 웹 서버를 여러 대 만든 다음 대표 IP는 로드밸런서에게 부여하고 로드밸런서가 요청이 오면 웹 서버를 지정해서 전송하도록 합니다.
    • 이런 원리로 동작하는 소프트웨어 중 하나가 nginx 입니다.
    • 로드밸런서를 이용하게 되면 서비스 헬스 체크나 대용량 세션 처리 기능을 사용할 수 있습니다.
  • 보안 장비
    • 방화벽이나 IPS 등의 장비 또는 소프트웨어
    • 방화벽 : OSI 7계층 중 4계층에서 동작해서 패킷의 3,4 계층 정보를 확인하고 패킷을 정책과 비교해서 버리거나 포워딩합니다.
  • 공유기
    • 2계층 스위치, 3계층 라우터, 4계층 NAT 와 간단한 방화벽 기능을 모아놓은 장비
    • 내부는 스위치와 무선 AP 그리고 라우터 부분으로 구성되어 있음
  • 모뎀
    • 공유기의 LAN 포트와 WAN 포트는 일반 이더넷이어서 100m 이상 먼 거리로 데이터를 보내지 못하기 때문에 먼 거리 통신을 위해서 모뎀이 필요이 필요

3. 네트워크 통신

1) 네트워크에서 출발지에서 목적지로 데이터를 전송할 때 사용하는 통신 방식

  • unicast
    • 1:1 통신
    • 출발지와 목적지가 명확히 하나로 정해져있는 통신 방식
    • 대다수의 통신은 unicast
  • broadcast
    • 목적지 주소가 모든으로 표기되어 있는 통신 방식
    • 유니캐스트로 통신하기 전에 상대방의 정확한 위치를 알기 위해서 사용
    • 로컬 네트워크에서 모든 호스트에 패킷을 전달해야 할 때 사용
  • multicast
    • 멀티캐스트 그룹 주소를 이용해서 해당 그룹에 속한 다수의 호스트로 패킷을 전송하기 위한 통신 방식
    • IPTV 와 같은 실시간 방송을 볼 때 사용하고 사내 방송이나 증권 시세 전송과 같이 단방향으로 다수에게 같은 내용을 전송할 때 사용
  • anycast
    • 주소가 같은 호스트 중에서 가장 가깝거나 가장 효율적으로 서비스할 수 있는 호스트와 통신하는 방식
    • 도메인을 이용해서 인터넷을 할 때 가장 가까운 DNS 서버를 찾을 때 사용
  • IPv6 에서는 broadcast 라는 용어 대신에 Link Local Multicast 라고 합니다.

2) MAC Address

  • 주소 체계
    • 변경할 수 없도록 하드웨어에 고정되어 출하
    • 모든 네트워크 장비에는 MAC 주소를 할당해야 합니다.
    • 한 제조업체에 하나 이상의 주소 풀을 주고 그 안에서 자체적으로 할당
    • 48bit로 구성되는데 앞의 24bit가 제조회사 코드(OUI)이고 뒤의 24bit(UAA)는 제조사에서 자체적으로 할당
    • 고유하지 않을 수 있는데, 이유는 제조사의 실수나 코드의 부족 때문인데 동일 네트워크 안에서만 같지 않으면 통신하는데 문제가 없습니다.
    • ROM에 고정되서 변경할 수 없도록 출하가 되지만 이 주소도 메모리에 적재되서 사용되므로 MAC 주소를 변경해서 사용하는 것이 가능

3) IP Address

  • IPv4
    • 32bit로 만들고 표기할 때는 4개의 Octet(8bit)으로 나누고 각 Octet은 .(점) 으로 구분. 각 Octet은 10진수로 표기
    • 192.168.0.1 과 같이 표기
    • 2개 부분으로 구성
      • 네트워크 부분 : 호스트들을 모은 네트워크를 지칭하는 주소, 네트워크 주소가 같으면 같은 로컬 네트워크라고 합니다.
      • 호스트 부분 : 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소
    • 네트워크 부분과 호스트 부분을 구분하는 경계점이 고정이 아닙니다.
      • 호스트의 IP 개수에 따라 네트워크 크기를 다르게 할당하는 것이 가능한데 이를 위해서 클래스라는 개념을 도입
        • A 클래스는 약 1600만 개의 IP 주소를 가질 수 있습니다. 첫번째 점이 경계
        • B 클래스는 65536개의 IP 주소를 가질 수 있습니다. 두번재 점이 경계
        • C 클래스는 256개의 IP 주소를 가질 수 있습니다. 세번째 점이 경계
      • 최근에는 조금 더 세밀하게 네트워크와 호스트 부분을 설정할 수 있습니다.
      • 사용 가능한 IP 범위를 할 때도 이를 이용
        처음 IPv4를 만들 때 각 클래스 별로 별도의 주소 블록을 할당
        • A 클래스 : 맨 앞 비트가 0으로 시작
          0.0.0.0 ~ 127.255.255.255
        • B 클래스 : 맨 앞 2개 비트가 10으로 시작
          128.0.0.0 ~ 191.255.255.255
        • C 클래스 : 맨 앞 3개 비트가 110으로 시작
          192.0.0.0 ~ 223.255.255.255

만일 IP 주소가 192.168.202.207 이라면 기본적으로 C 클래스
네트워크 주소 : 192.168.202.0
브로드캐스트 주소 : 192.168.202.255
실제 사용 가능한 IP 범위 : 192.168.202.1 ~ 192.168.202.254 가 됩니다.
이를 조금 더 세분화시켜서 비트 단위로 분할할 수 있는데 이를 서브네팅이라고 합니다.

  • IP 주소 부족 문제 해결
    • 인터넷을 사용하는 호스트 숫자가 폭발적으로 증가해서 IP 주소가 부족해지는 문제가 발생
    • 이를 해결하기 위해서 가장 먼저 도입한 것은 클래스리스 방식, 즉 CIDR
    • 두번째 도입한 것은 NAT 와 사설 IP 주소
    • 세번째 도입한 것이 IPv6
  • 클래스리스
    • 기존 클래스의 개념을 없앤 것으로 네트워크를 원하는 단위로 분할할 수 있도록 한 것
    • 이를 위해서 subnet mask 라는 개념을 도입
    • subnet mask 는 동일한 네트워크 크기를 표현하기 위한 주소
    • subnet mask 를 표현하는 방법은 비트 수를 기재하는 방법과 10진수로 표현하는 2가지
    • IP Address/비트수 또는 IP Address/10진수로 표기
    • 비트 수로 표시를 하면 비트 수 만큼 같으면 동일한 네트워크로 간주하는 것이고, 10진수로 표현하면 이진수로 변환해서 1이 있는 부분까지가 동일하면 동일한 네트워크로 간주
    • 라우터나 컴퓨터에 IP를 설정할 때 이 방법을 사용
    • 비트 수로 설정하지 않고 10진수로 설정
    • 네트워크를 설정할 때는 네트워크 대역 안에 있는 어떤 IP 주소를 할당해도 동일하게 적용
    • 컴퓨터의 IP를 설정할 때는 동일 네트워크 대역 안에서 정확하게 IP를 할당해야 합니다.
  • Public IP 와 Private IP
    • 인터넷에 접속을 하려면 IP 주소가 있어야 합니다.
      • 인터넷을 할 때 사용할 수 있는 주소를 Public IP 라고 합니다.
      • 인터넷을 연결하지 않고 네트워크를 구성하기 위해서 사용하는 IP 주소를 Private IP 라고 합니다.
    • 인터넷에 접속하려면 통신 사업자로부터 IP 주소를 할당받거나 IP 할당 기관(KISA)에서 인터넷 독립 기관 주소를 할당받은 후 할 수 있는데 직접 할당받는 것은 절차가 복잡하기 때문에 대부분은 통신 사업자로부터 할당을 받습니다.
    • 인터넷에 접속하지 않거나 NAT(Network Address Translation) 기술을 사용할 경우 Private IP를 이용
      • Private IP를 가지고는 인터넷을 할 수 없지만 NAT 장비에서는 Public IP로 변경해서 인터넷에 접속이 가능
    • Private IP 대역
      • 10.0.0.0/8
      • 172.16.0.0/12
      • 192.168.0.0/16
    • 회사 내부에서 Private Network를 구축할 때 보안 상의 문제나 IP 공유를 위해서 NAT를 사용하는데, 이때 다른 사용자와 중복된 IP를 사용하면 안되는데, 다른 사용자가 사용하고 있는 Public IP를 내부 네트워크의 IP로 할당을 하면 인터넷은 문제가 없지만 그 IP를 가진 컴퓨터와 통신은 안됩니다.
  • Bogon IP
    • 사용할 수 없는 IP 주소로 IANA(IP 주소를 할당하는 최상위 기관)가 여러 목적으로 예약해 놓아서 Public IP 로 사용할 수 없는 IP
    • 이 주소를 이용한 네트워크 접속 시도가 있을 때는 IP Spoofing(주소를 변조해서 공격) 일 가능성이 높으므로 필터링 해야 합니다.

      0.0.0.0/8 : This Network
      10.0.0.0/8 : Private IP
      100.64.0.0/10 : 캐리어 그래이드 NAT(통신 사업자가 Private IP 를 할당하기 위해 사용)
      127.0.0.0/8 : Loop Back Address(자기 자신)
      169.254.0.0/16 : 링크 로컬
      172.16.0.0/12 : Private IP
      192.0.0.0/24 : IETF 프로토콜 할당
      192.168.0.0/16 : Private IP
      224.0.0.0/4 : 멀티캐스트 예약
      255.255.255.255/32 : 브로드캐스트

4) TCP 와 UDP

  • 4계층 프로토콜
  • 포트가 이 계층에서 제공하는 주소
  • 애플리케이션에서 사용하는 프로세스를 정확히 찾아가고 데이터를 분할한 패킷을 잘 쪼개고 조립하는 역할을 수행
  • 포트번호
    • HTTP TCP는 80, HTTPS TCP는 443, SMTP TCP는 25 이런 식으로 알려진 포트를 Well Known 포트라고 하고 IANA에서 등록해 놓았고 1023 이하의 포트번호를 사용
    • 애플리케이션에서도 IANA에 포트 번호를 등록할 수 있는데 이때는 1024 ~ 49151번 포트를 사용합니다.
    • 자주 사용하는 Application의 포트번호는 기억해두는 것이 좋습니다.
      • MySQL 이나 MariaDB 3306
      • Oracle : 1521, 8080
      • MongoDB : 27017
      • Django : 8000
      • Tomcat : 8080
    • 49152 ~ 65535 까지는 자동으로 할당되거나, Private 용도로 클라이언트의 임시 포트 번호로 사용
  • TCP
    • 신뢰할 수 없는 공용망에서 정보 유실 없는 통신을 보장하기 위해 세션을 안전하게 연결하고 데이터를 분할하고 분할된 패킷이 잘 전송되었는지 확인하는 기능을 가진 프로토콜
    • 송신자와 수신자가 3개의 패킷을 주고 받아야 한다면
      송신자 측에서 1번 패킷을 전송하면 수신자 측에서 1번을 잘 받으면 2번을 요청하고 송신자 측에서 2번을 전송하고 수신자 측에서 2번을 전송받았다면 3번을 요청, 송신자에서 3번을 전송하고 수신자 측에서 3번을 받으면 데이터를 전부 받았다고 알려주고 통신을 종료
    • 유실 없는 안전한 통신을 위해서 통신 시작 전에 사전 연결 작업을 수행
      클라이언트가 서버에서 Syn 신호를 전송하고 서버는 Syn 과 Ack를 전송하고 다시 클라이언트는 Ack를 전송해서 연결을 수행ck를 전송해서 연결을 수행
    • 네트워크 프로그램을 직접 만든다면 중요한 데이터 전송은 TCP 방식을 사용해야 합니다.
  • UDP
    • 사전 연결 작업을 수행하지 않고 일방적으로 데이터를 전송하는 프로토콜
    • 음성 데이터나 실시간 스트리밍과 같이 시간에 민감한 프로토콜이나 애플리케이션을 만들 때 사용. 사내 방송이나 증권 시세 데이터 전송에 사용하는 멀티캐스트 환경에서 사용
    • 중요하지 않은 데이터 전송이나 단방향 전송을 하는 애플리케이션을 만들 때 사용

4. Switch

1) 개요

  • 2계층 주소인 MAC Address 기반으로 동작하는 장비

  • 아무 설정 없이 네트워크에 연결해도 MAC Address를 기반으로 패킷을 전달하는 기본 동작을 수행할 수 있습니다.

  • 기본 동작 이외에도 한 대의 장비에서 논리적으로 네트워크를 분리할 수 있는 VLAN 기능과 네트워크 루프를 방지하는 스패닝 트리 프로토콜(STP) 같은 기능을 기본적으로 가지고 있음

  • MAC Address Table 을 만들어서 어떤 포트에 어떤 MAC Address를 가진 호스트가 연결되어 있는지 학습을 할 수 있습니다.

  • Flooding -> Address Learning -> Forwarding/Filtering 의 3가지 동작으로 설명이 가능합니다.

    • Flooding
      • 스위치는 부팅되면 네트워크 관련 정보가 하나도 없습니다.
      • 이 상태에서는 스위치는 네트워크 통신을 중재하는 자신의 역할을 하지 못하고 허브처럼 동작
      • 스위치가 허브처럼 모든 포트로 패킷을 흘리는 동작을 Flooding 이라고 합니다.
      • 새로 부팅하지 않았는데도 자꾸 flooding이 일어나면 스위치가 정상적으로 동작하지 않거나 공격받는 상황
    • Address Learning
      • 모르는 MAC Address 로 데이터를 전송하라고 하면, 일단 flooding을 수행하고 데이터를 전송하는 MAC Address를 주소 테이블에 기록합니다.
    • Forwarding/Filtering
      • 패킷이 스위치에 들어오면 도착지 MAC Address 를 확인하고 자신이 가진 주소 테이블과 비교해서 맞는 정보가 있는 해당 포트로 데이터를 전송(Forwarding)하고 다른 포트로는 데이터를 전송하지 않음(Filtering)

2) VLAN

  • Virtual Local Area Network
  • 하나의 물리적인 스위치에서 여러 개의 네트워크를 나누어 사용할 수 있는 기능
  • VLAN을 나누게 되면 유니캐스트나 브로드캐스트로 다른 VLAN과 통신을 할 수 없습니다.
  • VLAN을 나누게 되면 VLAN 간에는 3계층 장비를 이용해서 통신해야 합니다.
    • 클라우드에서는 VPC 라는 용어를 사용
      • VPC 논리적으로 하나의 네트워크로 구성
  • 종류
    • 포트 기반의 VLAN : 포트 단위로 VLAN을 생성
    • MAC Address 기반의 VLAN : LAN을 이동하면서 사용하는 경우 MAC Address 기반으로 VLAN 생성

3) STP

  • SPoF(Single Point of Failure) : 단일 장애점
    • 하나의 요소에 발생한 장애가 전체 시스템에 장애를 일으키는 것
  • 네트워크에서도 하나의 장비 고장으로 전체 네트워크가 마비되는 것을 막기 위해서 이중화 또는 다중화된 네트워크를 디자인하고 구성
  • 다중화의 목적으로 여러 개의 switch로 네트워크를 디자인하게 되면 패킷이 잘못하면 네트워크를 따라 계속 전송되는 일이 발생할 수 있습니다.
  • 루프 구조의 switch 연결이 있으면 계속해서 데이터를 전송할 수 있습니다.
  • 브로드캐스트 스톰
    • 루프 구조를 가진 네트워크에서 브로드캐스트 전송을 하는 경우 각 스위치는 데이터가 들어온 포트를 제외하고 모든 포트에 데이터를 전송합니다.
    • 이 경우 케이블을 제거하기 전까지 데이터를 계속 전송합니다.
  • STP(Spanning Tree Protocol)
    • Switch가 루프를 확인하고 적절히 포트를 사용하지 못하도록 하여 브로트캐스트 스톰을 방지하는 프로토콜
  • MAC 러닝 중복 문제
    • Switch는 출발지의 MAC Address를 가지고 테이블을 구성하는데 여기서 출발지와 실제 데이터를 전송받은 곳의 MAC Address가 다른 경우 잘못된 학습을 할 수 있습니다.

5. Router

1) 개요

  • 3계층에서 동작하는 네트워크 장비 중 하나
  • 경로를 지정해주는 장비
  • 라우터에 들어오는 패킷의 목적지 IP 주소를 확인하고 자신이 가진 Route 정보를 이용해서 패킷을 최적의 경로로 포워딩(출발지의 IP + Subnet Mask를 가지고 패킷을 전달)
  • 라우터는 다른 네트워크에 접근할 때 필수 장비
  • L3 Switch
    • Switch는 2계층 장비
    • 3계층에서 동작하는 Switch를 L3 Switch라고 부릅니다.
    • 라우터의 기능은 Software로 구현하고 스위치는 하드웨어로 구현하는 방식
    • 최근에는 기술이 발달해서 L3 Switch와 Router를 기능 상으로 구별하는 것은 어렵다.

2) 라우터의 동작 방식과 역할

  • 패킷이 라우터로 들어오면 도착지 IP 주소와 라우팅 테이블을 비교해서 최선의 경로로 패킷을 전달하는 역할을 수행
  • 동작 과정은 경로 지정 -> 브로트캐스트 컨트롤 -> 프로토콜 변환
    • 최근에는 거의 모든 네트워크에서 이터넷을 사용하기 때문에 프로토콜 변환 역할이 거의 유명무실해졌습니다.

3) 경로 지정

  • 라우터가 패킷을 처리할 때는 크게 두 가지 작업을 수행
    • 경로 정보를 얻어서 경로 정보를 정리하는 역할
    • 정리된 경로 정보를 기반으로 패킷을 포워딩하는 역할
  • Hop : 다른 라우터
    • R1 - R2 - R3 - R4 : R1에서 R4로 데이터를 전송하는 경우 2 Hop
  • Hop Count : 경로를 찾기 위해서 지나가야 하는 라우터의 개수
  • TTL(Time To Live) : IP 헤더에 부착된 필드인데, 패킷이 네트워크에서 살아 있을 수 있는 시간

4) 리우팅 방법

  • 다이렉트 커넥티드
    • IP 주소를 입력할 때 사용된 IP 주소와 Subnet Mask로 입력을 하는데, 라우터는 이 정보를 가지고 자동으로 라우팅 테이블을 만들 수 있는 경우
    • 인접한 라우터와의 네트워크
    • 직접 연결되어 있는 경우 주기적으로 네트워크 정보를 주고받기 때문에 별도로 학습할 필요가 없다.
  • static routing
    • 관리자가 목적지 네트워크와 다음 hop을 직접 지정해서 경로 정보를 입력하는 것
    • 변화가 적은 네트워크에서 네트워크를 손쉽게 관리할 수 있는 방법
    • 설정 문법
      ip route NETWORK NETMASK(Subnet Mask의 반대) NEXTHOP
      • 예시 : 모든 곳에 전송할 때는 192.168.0.1을 통해서 가도록 설정
      ip route 0.0.0.0 0.0.0.0 192.168.0.1
      • 리눅스
      route add -net NETWORK/Prefix gw NEXTHOP
      route add -net 0.0.0.0/0 gw 192.168.0.1
  • dynamic routing
    • static routing은 바로 앞 라우터의 주소만 지정하기 때문에 라우터 넘어의 다른 라우터의 상태 정보를 파악할 수 없어서 라우터 사이의 회선이나 라우터에 장애가 발생하면 장애 상황을 파악하고 대체 경로로 패킷을 보낼 수 없다.
    • 다른 라우터와 라우팅 정보를 주기적으로 교환해서 전체 네트워크의 정보를 학습하는 방식
    • 네트워크에 장애가 발생하더라도 주기가 지나면 다른 라우팅 정보를 학습해서 대체 경로로 패킷을 보낼 수 있습니다.
    • 실제 대다수의 네트워크는 다이나믹 라우팅을 사용
  • 우선 순위는 순서대로 적용된다.

5) Dynamic Routing Protocol

  • AS(Autonomous System)
    • 자율 시스템 : 라우팅이 자동으로 이루어지는 하나의 네트워크 묶음
    • 인터넷 사업자들이 하나 이상의 AS를 운영
  • AS를 기준으로 프로토콜을 분류
  • IGP(Interior Gateway Protocol)
    • AS 내부에서 사용하는 라우팅 프로토콜
    • Distance Vector : 인접한 라우터로부터 라우팅 정보를 학습
      • Classful - RIPv1, IGRP
      • Classless - RIPv2
    • Link State : 라우터에 연결된 링크 상태를 서로 교환하고 각 네트워크 맵을 그리는 라우팅 프로토콜
      • OSPF, IS-IS
    • Advanced Distance Vector
      • EIGRP
  • EGP(External Gateway Protocol)
    • AS 간 통신을 위해서 사용하는 라우팅 프로토콜
    • BGPv4

3. 통신을 도와주는 기술

1) NAT(Network Address Translation)/PAT

  • NAT는 하나의 네트워크 주소에 다른 하나의 네트워크 주소를 1:1로 변환해주는 기술
  • PAT(Port Address Translation)는 공식 용어는 NAPT
  • 용도와 필요성
    • IPv4 주소 고갈 문제의 솔루션
    • 보안 문제 : 외부와 통신할 때 내부 IP를 다른 IP로 변환해서 통신하면 외부에서는 내부 IP주소를 알 수 없습니다.
    • IP 주소 체계가 같은 두 개의 네트워크 간 통신이 가능하도록 해줍니다.
      • 동일한 private IP 에 대해 IP 충돌 방지
    • 불필요한 설정 변경을 줄일 수 있습니다.
    • 오버헤드가 발생
  • SNAT와 DNAT
    • SNAT : 출발지 주소를 변경하는 NAT
    • DNAT : 도착지 주소를 변경하는 NAT
  • 동적 NAT와 정적 NAT
    • 동적 NAT : 변환되는 IP가 계속 변경
    • 정적 NAT : 변환되는 IP가 고정P가 고정

2) DNS(Domain Name Service)

  • 개요
    • Domain
      • IP 주소에 대한 별명
      • Network 계층에서는 IP 주소를 이용해서 컴퓨터를 찾아갑니다.
      • IP 주소는 인간이 기억하기 어렵고 논리적인 주소라서 변경될 가능성이 있습니다.
      • 문자로 된 도메인을 사용하면 인간이 기억하기 쉬워지고, IP 주소가 변경되더라도 도메인과 연결만 해주먼 동일한 도메인으로 계속 접속 가능
    • DNS는 도메인 주소를 IP 주소로 변환해주는 서비스
    • 최근에 클라우드 기반 인프라 구성이 많아지면서 인프라가 빈번히 변경되어 DNS 설계가 점점 중요해지고 있다.
    • MSA 기반의 서비스 설계가 많아지면서 다수의 API를 이용하다보니 사용자의 호출 뿐만 아니라 서비스의 API 호출이나 인터페이스가 많아져서 Domain의 역할이 더욱 중요해지고 있습니다.
  • 구조
    • 역트리 구조로 최상위 루트부터 Top-Level 도메인, Second-Level 도메인, Third-Level 도메인과 같이 단계적으로 찾아감.
      • mail(Third-Level).naver(Second-Level).com(Top-Level)
    • 도메인의 계층은 최대 128계층까지 구성할 수 있습니다.
    • 계층별 길이는 최대 63byte
    • 도메인 구분자 .을 포함해서 전체 도메인의 최대 길이는 255byte
    • 문자는 알파벳, 숫자, -만 가능
    • 루트 도메인
      • 도메인을 구성하는 최상위 도메인으로 이 도메인을 가지고 DNS 서버에 가서 찾는데 없으면 루트 DNS(전 세계에 13개)에 쿼리
    • Top-Level Domain 은 6가지 유형으로 구분
      • generic (com, edu 등)
      • country-code (kr, uk, jr 등)
      • sponsered : 특정 목적을 가진 스폰서를 두는 경우 민족 공동체나 전문가 집단 (asiz, museum 등)
      • infrastructure : 운용상 중요한 인프라 식별자 공간을 위해 사용
      • generic-restricted : 특정 기준을 충족하는 사람이나 단체가 사용 (biz, name, pro 등)
      • test
  • DNS 동작 방식
    • 기본적으로는 DNS 서버에 쿼리를 수행
    • DNS 서버 없이 로컬에서 도메인과 IP 주소를 직접 설정해서 사용할 수 있습니다.
      • 이 정보는 hosts 파일에 기록이 되는데 여기에 기록된 정보는 항상 DNS 캐시에 저장됨.
      • 도메인을 쿼리하면 DNS 캐시를 조사하고 없으면 DNS 서버에게 문의
    • 윈도우에서 캐시된 내용 확인 : ipconfig /displaydns
  • DNS 주요 레코드

    레코드역할
    A도메인 주소를 IPv4로 매핑
    AAAA도메인 주소를 IPv6로 매핑
    CNAME별칭 이름을 사용하게 해주는 레코드
  • CNAME 을 사용하는 이유
    • 2개의 도메인을 하나의 웹 애플리케이션에 연결하려고 합니다. adam.net 과 www.adam.net 을 매핑하고자 하는 경우
    • A 레코드를 이용해서 매핑을 하게 되면 2번 매핑을 하는데 이때 IP가 수정되면 2번 변경해야 합니다.
    • adam.net 은 A 레코드로 매핑하고 www.adam.net 은 adam.net의 별명으로 만들면 IP가 수정되는 경우 adam.net 만 수정하면 됩니다.
  • 화이트 도메인
    • KISA에서는 불법적인 방법으로 발송되는 스팸 메일 차단 활동을 수행
    • 정상적인 도메인을 인증 관리하는 제도가 화이트 도메인
    • 비정상적인 스팸 메일을 발송하는 사이트를 RBL(Realtime Blackhole List, Blocking List)라고 합니다.
    • KISA 의 RBL 사이트에 화이트 도메인으로 등록을 하면 대량의 메일을 발송해도 문제가 되지 않습니다.
  • 한글 도메인
    • 한글을 punycode로 변환해서 등록
    • 유니코드로 변환해서 등록하는 것인데 이 코드는 xn으로 시작합니다.
    • 변환 코드는 한국인터넷진흥원에서 알 수 있습니다.

3) GSLB (Global Server/Service Load Balancing)

  • DNS에서 동일한 레코드 이름으로 서로 다른 IP 주소를 동시에 설정하는 것
  • 이렇게 하면 도메인 질의에 따라 응답받는 IP 주소를 나눌 수 있는데 이것이 로드밸런싱입니다.
  • DNS만으로는 이 구성을 할 수 없는데, DNS는 연결된 호스트의 비정상적인 상황을 감지하지 못합니다.
  • GSLB는 등록된 도메인에 연결된 서비스가 정상적인지 헬스 체크 기능을 가지고 있습니다.
  • 구성 방법은 2가지인데 도메인 자체를 GSLB로 구성할 수 있고 도메인 내의 특정 레코드만 GSLB로 구성할 수도 있다.

4) DHCP (Dynamic Host Configuration)

  • 개요
    • 네트워크 정보를 호스트에 적용하려면 사용자가 IP 정보를 설정하거나 IP 정보를 할당해주는 서버를 이용해 자동으로 설정해야 합니다.
    • 수동으로 네트워크 정보를 설정하는 것을 정적 할당이라고 하고, 자동으로 설정하는 것을 동적 할당이라고 합니다.
    • 일반적으로 데이터센터의 서버 팜과 같은 운영망에서는 주로 정적 할당을 수행하지만, 일반적인 PC 사용자들은 동적 할당을 사용합니다.
    • 네트워크 정보를 동적으로 할당하는데 사용되는 프로토콜이 DHCP
    • DHCP를 사용하게 되면 사용자가 직접 입력해야하는 IP 주소, 서브넷 마스크, 게이트웨이, DNS 정보를 자동으로 할당받아서 사용할 수 있습니다.
    • 별도의 설정 과정이 없기 때문에 사용자와 관리자 모드 편리하게 네트워크에 접속할 수 있다.
    • 사용하지 않는 IP 정보는 회수되어 사용하는 경우에만 재할당되기 때문에, 사용자 이동이 많고 한정된 IP 주소를 가진 경우 유용하게 사용할 수 있습니다.
  • DHCP 서버 구성
    • 윈도우나 리눅스 서버의 DHCP 데몬을 이용해서 구현이 가능
    • 스위치, 라우터, 방화벽, VPN 같은 네트워크, 보안 장비에서도 구현 가능
    • 설정 값
      • IP 주소 풀 : 클라이언트에 할당할 IP 주소 범위
      • 예외 주소 풀 : 할당하지 않을 대역
      • 임대 시간 : 기본 임대 시간
      • 서브넷 마스크
      • 게이트웨이
      • DNS
  • 우분투 리눅스에서 DHCP 서버 구성
    • 패키지 설치 : sudo apt-get install isc-dhcp-server
    • 설정 파일에 주소 풀을 설정 : /etc/dhcp/dhcpd.conf
      sudo nano /etc/dhcp/dhcpd.conf
      subnet 네트워크주소 netmask 서브넷마스크{
      	range 시작IP 종료IP;
      }
      subnet 192.168.0.0 netmask 255.255.255.0{
      	range 192.168.0.2 192.168.0.254;
      }
    • 네트워크 노드 추가 : /etc/default/isc-dhcp-server
      sudo nano /etc/default/isc-dhcp-server
      INTERFACEv4="eth1"
      INTERFACEv6="eth1"
    • eth1에 IP를 할당 : 일종의 Gateway 가 되서 다른 컴퓨터들이 이 IP에 접속하면 동적으로 IP를 할당받음
      sudo ifconfig eth1 192.168.0.1
      • ipconfig 명령이 없다면 sudo apt install net-tools
    • 서버 재시작
      sudo /etc/init.d/isc-dhcp-server restart

0개의 댓글