로드 밸런싱 : 부하 분산을 위해서 Virtual IP를 통해 여러 서버로 접속하도록 분배하는 기능

주요 기능

 -NAT: 사설 IP를 공인 IP로 바꾸는데 사용하는 주소 변조기

 -DSR(Dynamic Source Routing protocol): 클라이언트로 응답하는 경우에 스위치를 거치지 않고 바로 클라이언트로 찾아가는 개념

 -Tunneling: 데이터를 캡슐화 하여 연결된 상호간에만 캡슐화된 패킷을 구별해 캡슐 해제

동작 방식

 -Bridge/Transparent Mode

  1. 요청 전달 시 변조

   사용자 > L4 > NAT(IP/MAC 변조) > real server

  2. 응답 전달 시 변조

   real server > NAT > L4 > 사용자 - source IP를 L4 virtual IP로 변조. MAC은 변조하지 않음


 -Router Mode

  Bridge/Transparent Mode와 유사. Source MAC 변조 포함


 -One Arm Mode

  사용자가 real server 접근 시 목적지 IP는 L4 IP를 바라보며, L4에 도달하면 클라이언트에게 받은 목적지 IP를 L4 IP에서 real server IP와 real server MAC으로 변조. 되돌아가는 IP는 L4의 IP Pool의 IP로 변조


 -DSR(Direct Server Return) Mode

  사용자가 real server 접근 시 출발지와 목적지 IP 변조 없이 L4에서 관리하는 real server의 MAC addr table 확인하여 MAC 주소만 변조


HAProxy 동작 방식

기본적으로 reverse proxy 형태로 동작. 브라우저에서 사용되는 일반적인 proxy의 경우, 클라이언트 앞에서 처리하는 기능으로, forward proxy라 함. Reverse proxy의 역할은 real server 요청에 대해 서버 앞 단에 존재하면서 서버로 들어오는 요청을 대신 받아 서버에 전달하고 그 결과를 다시 전달하는 것.


최초 접근 > 응답 시 쿠키에 서버 정보 추가 > 재요청 시 클라이언트가 가지고 있는 쿠키 정보를 proxy에서 확인하여 요청 > 응답 시 쿠키에 정보 추가 없고 이후 요청 시 쿠키 재사용


XFF (X-Forwarded-For) header

HTTP header 중 하나로 client의 IP 식별을 위한 사실상의 표준

WAS 앞의 L4 등의 LB나 Proxy, Caching, WAS Connector 등이 있을 경우 HTTP나 AJP(전용 프로토콜)

로 요청을 보낸 후 받은 결과를 가공하여 클라이언트에 재전송하기 때문에 웹서버나 WAS에서 request.getRemoteAddr(); 등으로 client IP를 얻게 되는데 원하는 결과가 아니므로 이를 해결하기 위해서 사용하는것이 XFF Header 이다. 콤마 구분자로 client IP와 proxy IP를 식별할 수 있다


HA 구성

Virtual Router Redundancy Protocol 지원으로 성능상 초당 8만 건 정도의 연결 처리 가능

소프트웨어 기반 솔루션이기 때문에 HAProxy 설치 서버에 문제 발생 시 HW L4보다는 불안정

HA 구성으로 master HAProxy에 문제가 생겨도 slave HAProxy에서 서비스 제공하도록 구성


vIP를 공유하는 active HAProxy와 stnadby HAProxy가 heartbeat를 주고받으며 서로 체크


단일 HAProxy와 다른점은 최초 접근 시 서버 정보를 쿠키가 아닌 서버에서 jsessionid 전달 시 합쳐서 전달한다

쿠키에 정보 추가 없이 XFF에 정보 추가 > 쿠키 추가 없음 > Jsessionid 추가 > 서버 정보 + jsessionid 쿠키에 추가 > 쿠키에서 서버 판별 후 jsessionid만 전달


L4 + HAProxy HA 구성

HAProxy와 기존 HW 스위치를 이용하여 더 확장된 형태의 HA 구조 설계

클라이언트에서 연결되는 부분은 vIP + L4 구성으로 HW 이중화 구축

L4에서 서버 앞단에 HAProxy 구축


GSLB (Global Service Load Balancing) + HAProxy

IDC간 이중화 및 global 환경 무정지 서비스를 위한 DR 시스템 구축

GSLB용 L4는 고가의 장비이므로 DNS를 이용한 구축 형태

client에서 DNS 도메인 조회 > 근거리 IDC 정보 전달


ref: http://d2.naver.com/helloworld/284659

'System Engineering > Network' 카테고리의 다른 글

Protocol: TCP and UDP  (0) 2018.06.18
About https  (0) 2018.06.11
포트 미러링  (0) 2018.05.24
Difference between each layer  (0) 2018.05.16
What is DNS?  (0) 2018.05.02

-네트워크 스위치의 한 포트에서 보이는 모든 네트워크 패킷 혹은 전체 VLAN의 모든 패킷들을 다른 모니터링 포트로 복제하는데 사용.


-IDS, 패시브 프로브 또는 Application Performance Management에 필요한 Real User Monitoring 기술과 같이 네트워크 트래픽을 모니터링 해야하는 네트워크 장비에서 사용.


-시스코 – Switched Port Analyzer / Remote Switched Port Analyzer


-네트워크 상의 데이터 분석 및 디버그, 오류 진단에 사용. 인바운드/아웃바운드 트래픽을 N:N으로 미러링 가능

'System Engineering > Network' 카테고리의 다른 글

About https  (0) 2018.06.11
HAProxy – 오픈 소스 로드 밸런서  (0) 2018.05.24
Difference between each layer  (0) 2018.05.16
What is DNS?  (0) 2018.05.02
CCNA note  (0) 2017.03.20

- Layer 2 Data link layer (Ethernet)

Unit : Frame

Header : Includes MAC address of source and destination

Source broad casts the data and can receive data who has destination MAC address.



- Layer 3 Network Layer (IP)

Unit : Packet

Header : Includes IP addresses of source and destination

Use routing to distinct the network.

Routing table has IP and route information to find best route.



- Layer 4

Transport Layer (TCP/UDP)

Header : Use port to networking. http, ftp, smtp etc

Load balancing on the server farm environment



- Layer 7

Application Layer

To overcome L4's limitation.

Using more informations to networking : Data payloads (IP, port, URL, cookies, FTP file name, SSL ID, virus pattern etc)

'System Engineering > Network' 카테고리의 다른 글

About https  (0) 2018.06.11
HAProxy – 오픈 소스 로드 밸런서  (0) 2018.05.24
포트 미러링  (0) 2018.05.24
What is DNS?  (0) 2018.05.02
CCNA note  (0) 2017.03.20

DNS

Domain Name System(server)


네트워크 상의 도메인 이름을 IP 주소를 매핑해 주는 시스템초기에 호스트 네임 별로 IP 주소 정보를 시스템의 hosts.txt 파일로 관리하던 것이 기술이 발달하고 관리 대상이 증가함에 따라분산 구조로 관리가 가능하게 개발된 시스템이다.

DNS Components

Domain Name Space

DNS에서 사용할 데이터 자료구조를 정의하는 항목이다도메인 네임 스페이스는 도메인 네임을 중복되지 않게 네임을 생성하여 사용하도록 정의된 구성체계이다최상위 루트 도메인을 시작으로 트리 구조의 네임 체계를 이루며, DNS에서 하나의 도메인 네임은 유일한 값이다
  
상위 노드와 그 노드 아래로 연결된 공간을 모두 상위 노드의 도메인이라고 한다노드에 레이블을 붙여 노드를 구분하는데 루트 도메인 계층인 루트 도메인의 레이블은 null’이다모든 도메인은 루트 도메인으로부터 시작한다루트 도메인 네임은 하위 도메인들을 분배할당한다.

TLD (Top Level Domain)

 루트 도메인 계층 하위에 해당하는 계층으로국가 할당 도메인과 국제적 업체 할당 도메인으로 분류된다.

     -country code TLD: 국가를 나타내고하위 도메인들은 그 성격을 나타내는 도메인 네임을 사용한다.
-generic TLD: 국가 단위가 아닌국제적 단위로 사용되는 도메인으로전 세계를 기준으로 비영리상업적지역별 등 목적에 따라 분류된다


Second Level Domain

도메인 등록 조직이나 국가에 속하는 기관의 성격으로 분류된다. gTLD 하위의 경우 최종 사용자(개인이나 조직) 호스트 네임을 사용하여 도메인을 등록할 수 있다.


최종적으로 호스트 네임과 도메인 네임을 합쳐(Fully Qualified Domain Name) 완성된다. FQDN이 아닌 부분적인 경로만으로 식별 가능한 Partially Qualified Domain Name을 사용하기도 한다이는 하나의 도메인 안에서만 사용할 수 있으며, w.naver.com 이라는 FQDN에서 w PQDN이 된다일반적으로 루트 도메인의 마지막에 오는 점은 주로 생략하며, DNS에서는 마지막에 오는 점을 사용하면 FQDN으로 인식한다.
  
레이블은 기업의 이름 등 특정 단어로 만든다. ccTLD 하위의 경우에는 호스트와 조직의 성격을 나타내는 도메인이 위치한다.


Sub Domain

SLD에서 최종 사용자가 정의한 도메인일 경우서브 도메인으로서사용자 필요에 따라 만든 하위 도메인이다사용자 목적에 따라 도메인 네임 스페이스를 분할하여 웹 서버 도메인을 www.naver.com, café.naver.com, ns1.naver.com 등으로 나누어 사용할 수 있다.

Third Level Domain

SLD 하위 도메인으로, 사용자가 등록할 도메인



Name Server

도메인 zone에 속하는 노드들의 정보를 리소스 레코드로 정의하여 저장한 호스트를 네임 서버라고 하며, 1개 이상이 존재한다. 해당 도메인 존의 정보를 가진 마스터 네임 서버와 보조로 슬레이브 네임 서버가 있다. 해당 도메인 존에 속하는 네임에 대한 질의가 올 경우 해당 도메인 존의 하위 네임 서버 주소를 응답하여 질의를 유도한다.


Resolver

웹 브라우저 등의 DNS 클라이언트의 요청을 name server로 전달하고도메인 네임과 IP 주소를 받아 클라이언트에게 제공하는 기능을 수행한다. DNS 서버에 resolver 기능을 구현하고클라이언트에는 resolver routine을 구현하여 단말 시스템 자원 한계 등의 제약을 극복한다. Stub resolver 각 네임 서버의 구조를 파악할 필요 없이 resolver가 구현된 네임 서버의 IP 주소만 파악하면 된다


Resource Record (RR)

 리소스 레코드는 도메인 네임에 설정할 수 있는 데이터 타입이다도메인 네임을 키 값으로 하여 이를 도메인 네임에 필요한 데이터를 설정하는데사전에 정의된 데이터 타입과 포맷으로 해야 한다도메인 네임과 IP 주소 매치를 위해 사용된다

  -A 리소스 레코드: Host Address란 의미로 도메인 네임에 매치되는 IPv4를 정의한다

Name 

Class 

TTL 

Type 

Address 

www.naver.com 

IN 

 

202.xxx.xx.xxx 

Ø  Class: IN(InterNet) 외에도 있지만 현재 대부분 IN사용
  TTL: 
요청된 리소스 리코드는 TTL에 명시된 시간 소요 후 삭제되어 재요청이 필요생략 시 SOA 리소스 레코드에 정의된 default TTL 적용 

Ø  NS (Name Server) 리소스 레코드도메인 존의 네임서버를 정의

Ø  CNAME 리소스 레코드: Canonical Name. 도메인 네임에 별칭을 매치해당 도메인 네임에 대한 리소스 레코드를 동일하게 접근하여 사용하므로정보를 CNAME이 상속받는다
   ex) www.naver.com IN CNAME naver.com 
참조 시 naver.com 리소스 레코드를 참조하여 정보를 반환한다

-SOA 리소스 레코드: Start of a zone Of Authority. 존에 대한 권한 시작을 의미하나의 도메인 존에 반드시 하나의 SOA가 존재하는 특수 레코드로도메인 존의 default 설정과 마스터 네임 서버 지정 등에 사용된다

Name 

TTL 

Class 

Type 

Master NS 

Responsible person 

Serial; Refresh; Retry; Expire; Minimum; 

naver.com 

 

IN 

SOA 

ns.naver.com 

admin.ns.naver.com 

(

Name: 상위 도메인 존에게 위임 받은 도메인 존의 도메인 네임 
  
마스터 네임 서버: NS 리소스 레코드와 A 리소스 레코드를 통해 도메인 존에 대한 리소스 레코드 생성변경삭제 등의 권한을 위임 받음
  Responsible person: 
도메인 존 관리 담당자 메일 주소 
  Serial: 
도메인 존 파일에 대한 버전 정보정보 변경 시 증가이 값을 기반으로 슬레이브 네임 서버가 마스터 네임서버의 최신 리소스 레코드 정보를 획득한다
  Refresh: 
슬레이브 네임 서버가 마스터 네임서버에 도메인 존 파일 버전을 질의하는 초단위 시간으로해당 시간만큼 대기 후 마스터에 질의 
  Retry: 
슬레이브 네임 서버가 마스터 네임 서버에 질의 실패 시 재시도 하는 초 단위 시간으로 Refresh 보다 작은 값 작성 
  Expire: 
슬레이브 네임 서버가 질의 실패 시 마스터로부터 얻은 정보의 유효 시간 초 단위 작성해당 도메인 존에 대한 질의 무시 
  Minimum: 
도메인 존 파일에 있는 리소스 레코드들의 default TTL 값 작성(초 단위

SOA 끝 필드의 각 설정 값들은 기본 초 단위이며, D, H, W로 각각 일시간주로 작성 가능하다.


-MX 리소스 레코드: 수신 메일  서버를 정의. 호스트명이나 도메인 네임으로만 정의가 가능하다. IP 주소 입력 시 도메인으로 인식하여 존재하지 않는 도메인이 되어버린다. 레코드 입력 시 마지막에 . 붙인 FQDN 사용한다.


DNS work flow


how-route-53-routes-traffic

ref: https://aws.amazon.com/ko/route53/what-is-dns/


1. Enter the domain on web browser

2. Find the IP address of the domain from local - ISP DNS resolver

3. ISP DNS resolver requests the IP address to DNS root name server.

   DNS root server replies the TLD (Top Level Domain) server.

4. Try the domain to TLD server. (ex. .com, .kr, .jp, .net...)

   TLD server replies the name server of the domain.

5. Request to the name server

6. Name server response with IP address of the domain

7. DNS resolver response with the IP address to browser

8. Browser request to the webserver with IP address, port, and URL

9. Web server responses to the end user

'System Engineering > Network' 카테고리의 다른 글

About https  (0) 2018.06.11
HAProxy – 오픈 소스 로드 밸런서  (0) 2018.05.24
포트 미러링  (0) 2018.05.24
Difference between each layer  (0) 2018.05.16
CCNA note  (0) 2017.03.20

Router logging trap


Level

 Level name

Router messages 

 0

Emergencies 

System shutting down due to missing fan tray

 1

 Alerts

 Temperature limit exceeded

 2

 Critical

Memory allocation failure

 3

 Errors

 Errors Interface Up/Down messages

 4

Warnings 

Configuration file written to server, via SNMP request 

 5

Notifications 

Line Protocol Up/Down 

 6

Information 

Access-List violation logging 

 7

Debugging 

Debug messages 


Media Access Control (MAC) 하위 계층 (802.3)

 -물리적 케이블 상에서의 데이터 전송 방법 정의

 -물리적 어드레싱, 네트워크 토폴로지, Line discipline, 에러검출, frame 순차 전송, 선택적 흐름제어 등의 기능 정의

 -Burned In Address

 -CRC: 송신부에서 만들어져 수신부에서 손상여부 검사


Logical Link Control (LLC) 하위 계층 (802.2)

 -protocol 종류 논리적 식별

 -데이터 캡슐화

 -SAP(Service Access Point) 프레임

 -SNAP(SubNetwork Access Protocol) 프레임


Datalink layer device

 -L2 switching > H/W based bridging

  ASIC (Application Specific Integrated Circuits) > 특수 H/W

 -Filtering: 수신 장비가 프레임과 동일한 세그먼트에 있는 경우, 다른 세그먼트로 가는 것을 막음

 -Forwarding: 수신 장비가 다른 세그먼트에 있을 경우, 해당 프레임을 적절한 세그먼트로 전달

 -Flooding: 수신 어드레스가 브리지에 알려져있지 않은 경우, 브리지는 수신된 곳을 제외한 모든 세그먼트로 해당 프레임 전달


Network layer

 -동일 broadcast domain에 연결되어 있지 않은 장비들 사이에서의 트래픽 전송 방법 정의

 -Logical address

 -Network route to destination

 -Distinguish the network of address to find a route

 -Host is a specific device or port

 -4 octets for address


Router operation on Network layer

 -network address

 -interface: use the interfeace for reach to the network

 -metric: represents the cost or distance from network(hop, delay, bandwidth etc...)

 -divides collision domain and broadcast domain from each segments

 -does not forward L2 broadcast/multicast frame

 -routing algorithm

 -take off the L2 header from frame and forward the pachket with L3 destination address

 -map the L3 logical address to specific network device

 -adapting QoS on special network frame

 -can connect each VLAN in switching

'System Engineering > Network' 카테고리의 다른 글

About https  (0) 2018.06.11
HAProxy – 오픈 소스 로드 밸런서  (0) 2018.05.24
포트 미러링  (0) 2018.05.24
Difference between each layer  (0) 2018.05.16
What is DNS?  (0) 2018.05.02

+ Recent posts