Network

DNS

DNS(Domain Name System)은 호스트 네임을 IP 주소로 변환해 주는 디렉터리 서비스이다.

DNS 취약점

중간자 공격(man-in-the-middle attack) :
DNS 상에서 공격자는 호스트로부터의 질의를 가로채어 가짜 응답을 리턴한다.

DNS 중독(poisoning) :
공격자는 DNS 서버로 가짜 응답을 보내어, 그 서버가 자신의 캐시에 가짜 레코드를 받아들이도록 속임수를 쓴다.

P2P

P2P 구조는 항상 켜져 있는 기반구조 서버에 최소한으로 의존한다.P2P 파일 분배에서 각 피어는 수신한 파일의 임의의 부분을 다른 피어들에게 재분배할 수 있어서 서버의 분배 프로세스를 도울 수 있다.

포워딩

포워딩(전달)은 패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력 링크로 이동시켜야 한다. 라우터가 입력 링크 인터페이스에서 적당한 출력 링크 인터페이스로 데이터그램을 전송하는 내부적인 동작을 말한다.

라우팅

송신자가 수신자에게 패킷을 전송할 때 네트워크 계층은 패킷 경로를 결정해야 한다. 이러한 경로를 계산하는 알고리즘을 라우팅 알고리즘(routing algorithm)이라 한다. 네트워크 전반에 걸쳐 출발지에서 목적지까지 데이터그램의 종단간의 경로를 결정하는 것을 뜻한다.

RIP, 인트라-AS 라우팅

출발지 라우터에서 목적지 서브넷까지의 최단 경로를 지나는 서브넷의 숫자를 나타내는 홉(hop)이라는 용어를 사용한다. 이웃하는 라우터들이 서로 거리 벡터를 주고받는다.

OSPF(Open Shortest Path First)

OSPF에서 라우터는 AS에서 인접한 라우터만이 아니라 다른 모든 라우터에게 라우팅 정보를 브로드캐스트한다. 라우팅 테이블의 변경 사실이나 네트워크 내의 어떤 변화를 감지한 호스트는 즉시 그 정보를 네트워크 내의 다른 모든 호스트들에게 알림으로써 모두 같은 라우팅 정보를 가질 수 있도록 한다. 라우팅 테이블 전체를 보내는 RIP와 달리, OSPF는 오직 변경된 부분만을 보낸다.

웹 서버가 클라이언트 식별에 사용되는 정보를 클라이언트에 저장하기 위해 가장 널리 사용되는 방법이다.

서버에서 발행하거나 스크립트에 의해 저장된다(Response Header의 Set-Cookie 이용 / JavaScript의 Document.cookie에 접근 가능).

쿠키를 발행한 사이트에서만 읽을 수 있으며, 각 호스트마다 최대 20개까지 사용 가능하다.

Session

어떤 일이 시작되는 시점부터 끝날 때 까지를 의미하며, 네트워크에서는 두 대의 시스템 간의 활성화된 접속을 말한다.

Session Token

Session을 인증하기 위한 정보로, 인증에 관련된 정보는 서버와 클라이언트 양쪽에 저장되어야 한다. 일반적으로 웹 서버에 지원하는 해쉬 값이 Token으로 사용된다.

SDN(Software-Defined Networking)

학교나 연구소는 새로운 네트워크 프로토콜을 개발하고 테스트하고 싶어 한다. 그런데 테스트하기 위해 별도의 네트워크 환경을 구축하려면 비용이 많이 들고, 운영 중인 네트워크 환경에서 새로운 프로토콜을 테스트하면 장애를 유발하는 등 운영에 영향을 미칠 가능성이 있다. 이로 인해 하나의 물리 네트워크 환경에서 다수의 가상 네트워크 환경을 구축할 수 있는 방법을 연구하기 시작했고, 그 결과 SDN이라는 개념이 등장했다.

네트워크 장비가 포함된 인프라 계층은 단순히 패킷을 전달하는 역할만 하고, SDN 제어 소프트웨어를 프로그래밍하여 패킷의 흐름을 제어하므로 하나의 네트워크 인프라에서 다양한 네트워크 환경을 구축할 수 있다.

즉, SDN에서는 패킷이 발생했을 때 네트워크 장비는 패킷을 어디로 전달할지 SDN 제어 소프트웨어에게 물어보고, 그 결과를 반영하여 패킷을 전송하는 경로와 방식을 결정한다.

OpenFlow

OpenFlow는 SDN을 구현하기 위해 처음으로 제정된 표준 인터페이스이다. OpenFlow 스위치, OpenFlow 컨트롤러로 구성되며, 흐름(flow) 정보를 제어하여 패킷의 전달 경로 및 방식을 결정한다. 흐름(flow)은 “특정 시간 동안 네트워크상의 지정된 관찰 지점을 지나가는 패킷의 집합”이라고 정의된다. 간단히 이야기하면 흐름이란 패킷의 출발지와 목적지 정보 등을 가진 데이터라고 할 수 있다.

OpenFlow 스위치 내부에는 패킷 전달 경로와 방식에 대한 정보를 가지고 있는 FlowTable이라는 것이 존재한다. 패킷이 발생하면 제일 먼저 FlowTable이 해당 패킷에 대한 정보를 가지고 있는지 확인한다. 패킷에 대한 정보가 존재하면 그에 맞춰 패킷을 처리하고, 정보가 존재하지 않으면 해당 패킷에 대한 정보 제어를 OpenFlow 컨트롤러에 요청한다.

스위치로부터 제어 정보를 요청 받은 OpenFlow 컨트롤러는 내부에 존재하는 패킷 제어 정보를 확인하고, 해당 결과를 OpenFlow 스위치에 전달한다. OpenFlow 컨트롤러 내의 패킷 제어 정보는 외부의 프로그램에서 API를 통해 입력할 수 있다.

OpenFlow 스위치는 컨트롤러로부터 전달 받은 제어 정보를 FlowTable에 저장하고, 이후 동일한 패킷이 발생하면 FlowTable에 있는 정보를 활용하여 패킷을 전달한다.

results matching ""

    No results matching ""