네트워크 프로그래밍 : TCP/IP 개론

TCP/IP 가 나타난 이유는 컴퓨터간 통신을 위해서 이다. 통신을 얘기할때 빠지지 않는것이 통신의 역사인데 - 언어, 북, 연기, 전화.. 이런식으로 발전을 해왔다. 여기에서 발전을 하게된 계기는 새로운 도구의 발견(혹은 발명)이 결정적인 역할을 하고 있음을 알 수 있다. TCP/IP 는 가장최근에 발명된 컴퓨터와 컴퓨터간의 지역네트워크(LAN) 혹은 광...

도커 네트워크

컨테이너들은 같은 노드에 있는 컨테이너들, 다른 노드에 있는 컨테이너들과 통신을 해야 한다. 이렇게 하기 위해서는 컨테이너를 위한 네트워크를 구성해야 한다. 이 문서에서는 다양한 네트워크 구성들을 살펴볼 것이다. VirtualBox로 아래와 같은 테스트 환경을 만들었다. 1. 호스트 운영체제 즉, 개인 테스크탑 운영체제의 IP는 192.168.56.1 이...

Container 기반 가상화 시스템에서의 Service Discovery

컨테이너(Container)를 기반 가상화 시스템이라고 해서 가상머신(Virtual machine) 기반 가상화 시스템과 다를 점은 없다. 컨테이너 가상화를 위한 네트워크, 스토리지 가상화 기술은 가상머신 가상화에서 이미 완성됐다. 단지 머신을 가상화 하느냐 하지 않느냐의 차이만 있을 뿐이다. 그러므로 컨테이너 기반 가상화 시스템을 만든다고 하면, 기존에 ...

PowerDNS

컨테이너 기반의 PaaS에서는 다양한 서비스들이 네트워크로 연결된다. 이들 서비스를 연결해서 완성된 애플리케이션으로 만들기 위해서는 각 서비스들이 서로를 discovery 할 수 있어야 한다. 가장 쉬운 방법은 서비스에 도메인 이름을 붙여주는 것이다. 예를 들어 워드프레스 애플리케이션을 실행한다고 가정해 보자. 워드프레스를 실행하기 위해서는 PHP+Apac...

Docker OpenvSwitch Plugin

리눅스 브릿지는 딱 브릿지만의 역할을 한다. 도커에서 기본으로 지원하는 네트워크 로 간단하게 사용 할 수 있다는 장점이 있는 반면, 할 수 있는게 별로 없다는 단점도 있다. SaaS나 PaaS 인프라를 구축 할경우 QoS(네트워크 자원 제한), ACL, SPAN 룰, 네트워크 격리 등이 필요한데, 할 수가 없다. 결국 OVS를 이용해야 한다. 도커 1.11...

Dnsmasq로 Service Discovery System 만들기

Dnsmasq는 작은 규모의 네트워크에서 DNS, , 네트워크 부트 등을 서비스하기 위해서 사용하는 소프트웨어다. 가볍고 설정이 간단하기 때문에 데스크탑 가상화 소프트웨어, 핫스팟(hotspots), 스마트폰 등에 널리 사용하고 있다. 또한 가볍고 분산하기가 쉬워서 네트워크 가상화나 같은 산업 영역에서도 사용하고 있다. DHCP의 서브시스템인 DHCPv4,...

OpenVSwithc에서의 QoS Policing

멀티테넌트를 지원하는 컨테이너 기반의 SaaS 환경을 만들고 있다. 하나의 컨테이너 인스턴스에 여러 개의 SaaS 컨테이너가 네트워크 자원을 공유두고 경쟁을 한다. 따라서 SaaS 별로 트래픽을 제어 할 필요가 있다. 의 QoS Policing를 이용해서 트래픽 대역폭을 제어하는 방법을 살펴보려 한다.VirtualBox로 VM을 하나 만들어서 여기에 doc...

Docker 레퍼런스 네트워크

도커를 이용한 데이터 센터 구축이 목표다. 아마도 클라우드 인프라를 구축하는데, 가장 큰 어려움은 네트워크 구성일 것이다. 네트워크 구성을 집중적으로 살펴보려고 한다. 최종목표는 와 같은 네트워크 인프라를 구축하는 거다.을 기반으로 테스트 환경을 만들어 보기로 했다.제대로 테스트하려면 두 개 이상의 물리적인 호스트와 스위치가 필요하다. 지금은 이런 여력이 ...

IP 자세히 보기

IP 자세히 보기 미완성 IP를 헤더 차원에서 좀 더 깊이 정리해 보려한다.이 문서를 읽기전에 아래의 문서들을 먼저 읽어두면 도움이 될 것이다. IP 는 인터넷으로 연결된 호스트들간에 데이터 교환을 지원하기 위해서 만들어진 프로토콜이다. IP는 인터넷 환경에서 host 간 데이타 그램의 교환을 목적으로 하므로 host-to-host 프로토콜이라...

Linux IP forwarding

IP Forwarding은 routing와 같은 말이다. 리눅스 운영체제에서 말하는 IP 포워딩은 커널 기반의 라우팅 포워딩을 의미한다. 라우터는 여러 개의 네트워크 인터페이스를 가지고 있다. 라우터는 하나의 인터페이스로 들어온 패킷을 읽어서 일치하는 서브넷을 가지는 다른 네트워크 인터페이스를 패킷을 포워딩(forwarding)하는 일을 한다. 리눅스 시스...