가상화 기술을 위한 네트워크

가상화 서버 구성 시의 네트워크 설정

  • WMWare의 ESXi나 Microsoft 의 Hyper-V와 같은 하이퍼바이저를 사용하면 하나의 물리 Host안에서 여러개의 가상 서버가 구동된다.

  • 하나의 물리 Host 내부에 있는 가상 서버가 모두 동일한 네트워크안에서 동작할 수도 있지만, 다양한 네트워크와 서비스를 가상화 서버에 수용하기 위해 두 개 이상의 네트워크를 연결한다.

  • 하나의 스위치에 여러개의 VLAN이 있을때 스위치간에 모든 VLAN을 연결해주려면 VLAN 개수만큼의 물리적 케이블과 스위치 포트가 필요하다. 이를 막기 위해 Tagged 포트 기능이 나왔다.

  • Tagged 설정 : 하나의 포트만 가지고 여러개의 VLAN을 가진 가상화 서버에 연결하고 가상화 서버내의 가상 스위치가 내장되어 있어서 가상 스위치가 스위치 역할을 한다.

  • VLAN(Virtual Local Area Network) : 물리적 배치와 상관없이 LAN을 논리적으로 분할,구성하는 기술 (네트워크 분리시켜주는 기술). 즉 VLAN간에 통신하려면 서로 다른 네트워크간의 통신임으로 3계층 장비가 필요하다.

이중화 기술

이중화 기술을 사용하는 목적

  • 이중화를 하지 않았을때 SPoF (Single Point Of Failure , 단일 장애점) 문제가 발생할 수 있다, 인프라를 구성하는 요소가 복수 개 이상으로 인프라를 구성해 특정 인프라에 문제가 발생하더라도 이중화된 다른 인프라를 통해 서비스가 지속되도록 해준다.(Fault Tolerance 보장)

이중화의 목적

  • SPoF를 제거하여, 시스템의 고가용성 보장 ( Fault Tolerance )
  • 이중화 구성 방식은 Active-Active 또는 Active-Standby 형태로 구성된다.
  • Active-Active로 구성시 이중화된 인프라에서 서비스 요청을 동시 처리할 수 있으므로, 처리 가능한 전체 용량이 증가하고, 장비간 네트워크 연결이나 회선의 대역폭이 증가한다. 증가된 인프라 용량을 기준으로 서비스시 장애가 발생하였을때 정상적인 서비스가 불가능해진다.
  • 단일 스위치의 물리적인 포트 여러개를 하나의 논리적인 포트로 구성하여 대역폭을 확장시킴

LACP 대역폭 확장을 통해 아래와 같은 기능이 제공된다. (IEEE 802.1AX-2008)

  1. 링크 사용률 향상
  2. 향상된 장애 회복
  • 모든 물리 포트를 Active 상태로 사용한다 ( Active-Active 방식 )
  • 물리 네트워크 인터페이스 일부에서 장애가 생기더라도, 나머지 물리 인터페이스로 서비스를 유지해준다.

주의점

  1. 논리 인터페이스의 대역폭을 서비스에 필요한 전체 트래픽 기준으로 서비스 트래픽을 산정하면 안된다.
  2. 물리 인터페이스간의 속도가 동일해야 한다.

LCAP 동작 방식

  • LACPDU (LACP Data Unit)이라는 프레임을 사용하여, Muticast 통신방식으로 한 장비와 LACPDU 프레임을 주고받는다 (1:1 구성방식)
  • 만약 여러개의 장비 (N:M) 간 LACP를 구성하고자할떄는 별개의 프로토콜 필요(MC-LAG protocol )

LACP 모드

  1. Active Mode : LACPDU를 먼저 송신하고 상대방이 LACP로 구성된 경우 , LACP를 구성
  2. Passive Mode: LACPDU를 송신하진 않지만, LACPDU를 수신받으면 응답해 LACP를 구성
  • LACP를 구성한 모든 장비에서 LACPDU 프레임을 보내는게 아니라, 한쪽은 Active 한쪽은 Passive Mode로 설정해도 LACP가 구성된다. 단 두 장비 모두 Passive Mode 인 경우에는 당연히 LACP 연결이 되지 않는다.
  • 일반적으로 1~8개의 물리인터페이스를 LACP로 하나의 논리 인터페이스로 구성하지만 벤더에 따라 다름.

LACP와 PXE

  • 서버와 Active-Active 형태로 네트워크 인터페이스 이중화시에도 LACP 프로토콜이 사용된다.

  • 서버 네트워크 인터페이스를 하나의 논리 포트로 묶는 과정을 Bonding 또는 Teaming이라고 부르며 OS에서 설정하게 됨.

  • LACP 설정은 본딩과 티밍에서 액티브-액티브로 사용하기 위한 옵션 설정임으로, 운영체제 설치 전에는 LACP를 사용할 수 없다.

  • 서버가 OS를 설치하기 전은 LACP를 사용할 수 없음. 따라서 LACP 로 구성하려는 서버를 PXE로 OS 를 설치하고자 할때는 일반 인터페이스로 구성해 OS를 설치하고 LACP 설정을 다시 한 후 스위치 포트 설정을 다시 해야 함.

  • LACP protocol에 옵션을 주어서, OS 설치전에는 한개의 네트워크 인터페이스만 활성화, LACPDU 패킷을 수신하기 시작하면 두개의 네트워크 인터페이스를 활성화하여 LACP 로 구성할 수 있도록 옵션을 줄 수 있다.

벤더 기술명
Cisco lacp suspend-individual
Arista lacp fallback
Extreme lacp fallback
HP lacp edge-port
( PXE (Pre-Boot Environment) : 네트워크 인터페이스를 통해 컴퓨터를 부팅할 수 있게 해주는 환경 )
Read more

통신을 도와주는 네트워크 주요 기술

NAT (Network Address Translation,NAPT,PAT)

  • IP 주소를 다른 IP주소로 변환해 라우팅을 원할히 해주는 기술
  • 사설 IP주소를 공인 IP로 전환하는 경우에 NAT를 가장 자주 사용함

NAT 필요성

  • IPv4 주소 고갈 문제 : 외부에는 공인 IP로 보이지만 내부에는 사설 IP체계를 사용

  • 보안 강화 : 사내 사설 IP 주소 체계를 숨길 수 있다.

  • IP 주소 체계가 같은 두 개의 네트워크간 통신을 가능하게 해준다. 사내 IP가 겹치는 경우 , IP대역이 같은 네트워크와 통신이 가능함 (Double Nat 기술)

  • 불필요한 설정 변경을 줄일 수 있다.

KISA를 통해 인터넷 독립기관으로 직접 등록하고 소유한 IP주소를 직접 운영하는게 아니라면 통신사업자나 IDC 쪽에서 IP를 할당받아 사용하게 되고 , IP주소가 중간에 변경될 수 있다.
NAT 기술을 사용하면 내부 사설 IP체계를 유지하면서 공인 IP만 독립적으로 변경할 수 있다.

NAT 동작 방식

  1. NAT 내부 사용자는 웹 서버에 접근하기 위해 사용자의 IP주소와 포트번호를 3,4계층 헤더에 넣어 패킷을 보낸다.

  2. NAT 역할을 수행하는 장비에서 사용자가 보낸 패킷을 받아, NAT 정책에 따라 공인 IP주소로 변경한다.
    NAT 장비에서 변경 전후의 IP주소는 NAT 테이블에 저장된다.

  3. 웹 서버는 NAT가 변경한 공인 IP주소로 응답을 보낸다.

  4. NAT 장비는 NAT 테이블을 보고 사용자의 원래 IP주소로 변경하여 사용자에게 패킷을 전달한다.

PAT 동작 방식

  1. NAT 동작 방식과 동일하나 , 다수의 사용자가 동일한 공인 IP 주소로 변환되야 하므로 출발지의 IP주소뿐 아니라 Port 번호도 변경하여 NAT 테이블에 저장한다.
  2. 웹서버가 변경된 공인 IP주소와 변경된 Port번호로 응답한다.
  3. NAT 장비는 NAT 테이블을 보고 사용자의 원래 IP주소와 Port 번호로 패킷을 재작성하여 사용자에게 패킷을 전달한다.
  • PAT는 다수의 IP가 있는 출발지에서 목적지로 갈때 IP주소,포트번호로 사용자를 식별할 수 있는 NAT 테이블이 생성되고, 응답에 대해 NAT 테이블이 원래 사용자를 식별한다.
  • 반대로 PAT IP가 목적지일때에는 해당 IP가 어느 IP에 binding되고 있는지 확인할 수 있는 NAT 테이블이 없으므로 사용할 수 없다.
Read more

4계층 장비 (로드 밸런서 / 방화벽)

4계층 장비의 특징

  • 4계층 장비(세션 장비)는 통신의 방향성이나 순서와 같은 통신 전반에 관한 관리가 필요하는데, 이러한 정보를 세션 테이블이라는 공간에 담아 관리한다.

로드 밸런서

  • 서버의 부하를 분산시키기 위한 장비

  • 로드 밸런서가 서비스에 사용되는 대표 IP주소를 가지고, 그 밑에 실제 서버들의 실제 IP주소로 요청을 전달한다.

  • WAS뿐만아니라 FWLB(FireWall Load Balancing) , VPNLB(VPN Load Balancing) 와 같이 다양한 서비스에 사용될 수 있다.

  • 시스템 Scale Out시 사용

(* Scale up : 메모리,cpu와 같은 하드웨어 리소스의 성능을 높임 / Scale out : 같은 리소스를 가진 시스템을 여러개 병렬로 배치 )

로드밸런서는 동작하는 계층에 따라 4,7계층으로 나뉜다.

  • L4 로드 밸런싱은 일반적인 로드 밸런서가 동작하는 방식으로 , 4계층 헤더 정보(TCP,UDP)를 기반으로 로드 밸런싱을 수행한다.
  • L7 로드 밸런싱 application 계층의 프로토콜 (HTTP,FTP,SMTP)을 기반으로 로드 밸런싱을 수행한다.
  • L7 로드 밸런서를 ADC(application delivery controller) 라고 부르며, proxy 역할을 수행하며, Nginx 의 reverse proxy와 유사한 기능을 수행한다. (https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/)

(* Reverse proxy : 외부에서 내부 서버가 제공하는 서비스 접근시, proxy 서버를 먼저 거치고 내부서버를 들어오는 방식)

  • AWS 에서는 계층별로 L4,L7 로드 밸런싱을 수행해주는 컴포넌트를 제공한다.
  • NLB(Network Load Balaner) == L4 로드 밸런싱 / ALB(Application Load Balancer) == L7 로드 밸런싱

L4 스위치

  • 4계층에서 동작하는 로드 밸런서 기능이 있는 스위치로 여러개의 포트를 가지고 있다.

  • SW 형태의 로드 밸런서도 있지만, 다양한 네트워크 구성이 가능한 스위치형 로드 밸런서가 가장 대중화되어 있다.

  • L4 스위치가 동작하기 위해 필요한 설정은 다음과 같다

  1. 가상 서버 : 사용자가 바라보는 서비스
  2. 가상 IP : 사용자가 접근해야하는 서비스의 IP주소
  3. 리얼 서버 : 실제 서비스를 수행하는 서버
  4. 리얼 IP : 리얼 서버의 IP 주소

L4스위치는 사용자가 가상 IP주소로 접근하였을때 이를 리얼 IP주소에 대한 요청으로 변경해주는 역할을 한다.

Read more

3계층 장비 (라우터,L3 스위치)

Router 역할

Router는 크게 아래와 같은 3가지 역할을 갖는다.

  1. 경로 지정
  • Router는 최적의 경로를 얻어서 Routing table에 저장하고, 패킷이 Router로 들어오면 도착지 IP주소와 Routing table을 비교해 최적의 경로로 패킷을 내보낸다.
  1. 브로드캐스트 컨트롤
  • 패킷의 목적지 주소가 Rotuing table에 없는 경우 패킷을 버린다.
  • 멀티캐스트 정보를 습득하지 않고 브로드캐스트 패킷을 전달하지 않는다. (브로드캐스트가 다른 네트워크로 전파되는것을 막는다. )
  1. 프로토콜 변환
  • 패킷 포워딩 과정에서 2계층 헤더를 변경할 수 있다.
  • 3계층에서 동작하는 장비이기 떄문에 2계층 헤더를 벗겨내고, 다시 2계층 헤더 정보를 새로 만들어 외부로 내보내는데, 이때 헤더 정보를 변경할 수 있다.
    ex) WAN : PPP protocol / LAN : ethernet protocol

Router 동작방식

  • Hop-by-Hop Routing : 인접한 Router(Next Hop)까지 경로를 지정하면 인접한 Router에서 다시 최적의 경로를 파악해서 Router로 패킷을 포워딩한다.

Next Hop 지정시에는 다음과 같은 3가지 방법이 사용된다.

  1. IP주소 지정
  2. 인터페이스 지정 : IP주소를 모르더라도, MAC주소정보를 아는 경우에 사용
  3. IP,인터페이스 동시에 지정
  • Router table 에 저장되는 데이터는 아래와 같다.
  1. 목적지 주소
  2. next hop IP 주소 , 나가는 로컬 인터페이스
  • Router 에서 패킷의 출발지 주소를 이용해 라우팅하도록 PBR(Policy-Based Routing)기능을 사용할 수는 있으나 특별한 목적으로만 사용된다.
  • TTL (Time To Live) : 3계층 IP헤더에는 TTL이라는 필드가 존재한다. 이 필드는 네트워크에 살아 있을 수 있는 시간(홉)을 제한하여 라우팅 루프 현상을 방지한다.
    (* 라우팅 루프 현상 : 라우터간에 패킷이 무한히 핑퐁되는 현상 )
Read more

네트워크 통신하기

네트워크 통신 방식에는 Unicast,BroadCast,Multicast,Anycast가 존재한다.

Unicast

  • 출발지와 목적지가 1:1 통신

BroadCast

  • 같은 네트워크에 존재하는 모든 host가 목적지 (1: 모든 통신)
  • local 네트워크 내에서 모든 host에게 패킷을 전달할 때 사용됨
  • IPv6에서는 브로드 캐스트가 존재하지 않고, 링크 로컬 멀티캐스트로 대체되어 사용되고 있다.

Multicast

  • 다수의 특정 목적지로 데이터 전송 (1: 멀티캐스트 구독 호스트들)

AnyCast

  • 가장 가까운 호스트 (1:1 통신인데, 목적지는 동일 그룹내 1개 호스트 )
  • 가장 가까운 DNS 서버 , Gateway를 찾는데 사용하기도 함
  • Unicast와 다르게 anycast는 같은 목적지 주소를 가진 서버가 여러대이다.

BUM 트래픽

  • B(broadcast) , U(Unknown unicast) , M(multicast) 을 지칭 , BUM 트래픽이 많으면 네트워크 성능 저하
  • unknown unicast는 스위치가 목적지 주소를 몰라 , 모든 포트로 전송하는데 이러한 unicast를 unknown unicast라고 함 (unicast지만, 마치 broadcast와 유사한 동작 )
  • 이더넷 환경에서는 ARP broadcast를 먼저 보내고 통신을 시작하므로 BUM 트래픽이 많이 발생하지 않음
Read more

네트워크 연결과 구성요소

네트워크 연결 구분

네트워크는 규모에 따라 LAN,MAN,WAN 3가지로 구분된다.

1.LAN(Local Area Network) : 사용자 내부 네트워크 (근거리 통신망으로 주로 집 , 사무실 단위)
2.MAN(Metro Area Network) : 한 도시 정도를 연결하고 관리하는 네트워크
3.WAN(Wide Area Network) : 멀리 떨어진 LAN을 연결해주는 네트워크

네트워크 회선

인터넷 회선

  • 인터넷 접속을 위해 통신사업자와 연결하는 회선

인터넷 가입자와 통신사업자간에는 직접 연결되는 구조가 아니라 전송 선로 공유 기술을 사용한다. 예를 들어 아파트 광랜은 아파트에서 통신사업자까지 연결한 회선을 아파트 가입자가 공유하는 구조임. 즉, 전송 선로를 공유하므로 전용 회선과 다르게 속도가 보장되지 않는다 (주변 사용량에 따라 속도가 느려질 수도 있다. )

인터넷 회선 종류는 다음과 같다.

  • 광랜(이더넷) , FTFH , 동축 케이블 인터넷 , xDSL

전용 회선

  • 가입자와 통신사업자 간에 대역폭(bandwith,링크 용량)을 보장해주는 서비스.

가입자와 통신사업자 간에는 전용 케이블로 연결되어 있고, 통신사업자 내부에서 TDM(Time Division Mulitiplexing) 같은 기술로 마치 직접 연결한 것처럼 통신 품질을 보장해준다.

인터넷 전용 회선

  • 인터넷 회선에 대한 통신 대역폭을 보장해주는 서비스

가입자가 통신사업자와 연결되고 이 연결이 다시 인터넷과 연결되는 구조이다.

VPN (Virtual private network , 가설 사설망 )

  • 물리적으로는 전용선이 아니지만, 가상으로 직접 연결한 것 같은 효과가 나도록 만들어주는 네트워크 기술

ex) 재택근무중인데 회사 사설망에 연결되어있는 것처럼 업무 가능

  • 통신사업자 VPN : VPN 서비스를 ISP에서 제공하며 전용선의 거리에 비례하는 비용문제가 있다.
  • 가입자 VPN : 일반 인터넷망을 이용해 가상 네트워크를 구성할 수 있다.

네트워크 구성 요소

네트워크 인터페이스 카드 (NIC)

흔히 랜카드,네트워크 카드, 네트워크 인터페이스 컨트롤러로도 불리는 네트워크 인터페이스 카드는 컴퓨터를 네트워크에 연결하기 위한 하드웨어 장치이다.

노트북과 데스크탑 PC에서는 기본적으로 온보드 형태로 장착됨으로 별도로 추가할 필요는 없으나, 서버의 경우에 여러 네트워크에 동시에 연결하거나 혹은 더 높은 대역폭이 필요한 경우, 네트워크 인터페이스 카드를 추가로 장착한다.

네트워크 인터페이스 카드의 주요 역할은 다음과 같다.

  • 직렬화 (Serialization) : 전기적 신호를 bit열의 데이터 신호 형태로 , bit열의 데이터 신호 형태를 전기적 신호 형태로 변환시켜주는데, 이러한 상호 변환작업을 직렬화라고 한다.

  • MAC 주소 : 네트워크 인터페이스 카드는 고유한 MAC주소를 가지고 있어서, 받은 패킷의 도착지 MAC주소가 자신의 MAC주소가 아니면 폐기하고 맞으면 전달한다.

  • 흐름 제어 (Flow control) : 이미 통신 중인 데이터 처리 떄문에 새로운 데이터를 받지 못하는 상황에서 데이터 유실 방지를 위해 상대방에서 통신 중지를 요청할 수 있다.

Read more

OSI 7 계층과 TCP/IP

Protocol

  • 네트워크에서는 통신할떄의 규약을 protocol이라고 함.
  • 최근 이더넷 - TCP/IP 기반 protocol로 획일화되고 있는 추세이다.
    • 물리적인 측면 : 데이터 전송 매체 , 신호 규약 , 회선 규격 등 이더넷이 널리 쓰인다.
    • 논리적인 측면 : 장치들간에 통신하기 위한 protocol 규격으로 TCP/IP가 널리 쓰인다.

과거에는 네트워크 환경과 컴퓨팅 환경이 열악해 한정된 자원으로 최대한 효율적인 protocol을 정의하고 사용해야 했음. 따라서 대부분의 protocol이 문자 기반이 아닌 2진수 bit 기반으로 만들어졌음. application level의 protocol은 bit 기반이 아닌 문자기반으로 많이 사용되고 있음. ex) HTTP,SMTP

문자기반으로 사용할 경우, 효율성은 bit 기반 protocol보다 많이 떨어지지만 다양한 확장이 가능하다.

TCP/IP protocol stack

  • TCP(transport 계층)와 IP(network 계층)는 별도의 계층에서 동작하는 protocol 이지만 함께 사용하고 있는데 , 이런 프로토콜의 묶음을 protocol stack이라고 부름

  • TCP/IP protocol stack은 총 4개 부분으로 나뉜다.

OSI 7계층과 TCP/IP

  • OSI 7계층은 네트워크의 주요 reference model로 활용되고 있지만, 현재는 대부분의 protocol이 TCP/IP protocol stack 기반으로 되어 있다.

  • 계층별로 표준화된 protocol을 개발함으로서 네트워크 구성 요소들을 모듈화 할 수 있다.
  • 모듈화함으로서 기존에 다른 계층의 protocol들과 연동해 사용할 수 있다.

OSI 7계층은 다시 2가지 계층으로 나뉜다.

  1. Data Flow layer (Lower Layer) : 1~4 계층
  2. Application Layer (Upper Layer) : 5~7 계층

Data flow layer 는 데이터를 상대방에게 잘 전달하는 역할을 가지고 있으며 , application layer는 데이터를 잘 표현하는데 역할을 가지고 있다. 따라서 네트워크 엔지니어는 Data flow layer 을 고려하고, application 개발자는 application layer를 고려한다.

OSI 7계층과 TCP/IP protocol stack의 차이점

  • OSI reference model은 7 계층으로 이루어진 반면, TCP/IP 모델은 4계층으로 구분된다.

  • TCPI/IP 모델은 상위 3개 계층 (application,presentation,session) 은 하나의 application 계층으로 묶고, 하위 2개 계층 (physical , data link) 계층을 하나의 network access 계층으로 분류한다.
Read more

packet switching

network 구성 요소

  • network edge : application (ex) web server ) , host
  • network core : routers
  • communication link : network 구성요소들을 이어주는 물리적인 cable

protocol

  • 둘 이상의 통신 개체간에 교환되는 메시지 포맷과 순서뿐 아니라 , 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다. (통신매체간 통신 규약)

network core 내 router간 데이터 교환 방식

  1. circuit switching (회선 교환)

종단 system (network edge)간에 통신을 제공하기 위해 경로상에 필요한 자원 (link 전송률,buffer)를 통신 기간동안 미리 확보(예약) 해두는 방식

  1. packet switching(패킷 교환) : 현재 인터넷에서 사용중인 방식

circuit switching 방식과는 다르게 on-demand방식으로 네트워크 자원을 사용하기 떄문에 더 많은 사용자 수용가능

  • 송신측은 송신할 데이터를 packet이라고 하는 단위로 분할해서 송신.
  • router 에서 packet을 store-and-forwarding transmission (저장-후-전달 전송) 방식으로 전달함
Read more