우클릭방지

글 목록

레이블이 네트워크인 게시물을 표시합니다. 모든 게시물 표시
레이블이 네트워크인 게시물을 표시합니다. 모든 게시물 표시

2017년 9월 21일 목요일

GRE(Generic Routing Encapsulation) 터널링

GRE 터널링에 대해서 알아본다.

GRE 터널링은 시스코에서 만든 기술이다.
IP 를 캡슐화 하여 종단간의 통신을 가능하게 해주는 것이다.

GRE 터널링은 유니캐스트는 물론이고 멀티캐스트/브로드캐스트 패킷들을 모두 지원한다. 따라서 좀더 이상적인 VPN(Virtual Private Network) 환경을 만들 수 있다.

다음 구성도를 보면서 GRE 터널에 대한 이해를 높혀보자.

일단, 제일 위에 위치한 상단 라우터에서 각 지점의 PC가 사용하는 네트워크 대역의 라우팅 정책이 없다고 가정하자.

A지점과 B 지점의 사용자 PC 간에 통신이 불가한 상황이다.

이러한 경우 GRE 터널링을 이용하면 상단의 라우터에서 별도의 라우팅 정책 없이도 지점간 PC의 통신이 가능하게 된다.

GRE 터널은 "IP Encapsulation" 이다. 즉 IP 헤더를 캡슐화 하여 A지점과 B지점 라우터의 IP로 감싼 후 통신을 한다.
당연히 A지점, B지점의 라우터가 GRE 터널링을 지원해야 해야 가능하다.

GRE 동작에 대한 이해를 높히기 위해 다음을 참고하자.
일단 네트워크 대역이 아래와 같다고 한다.


위와 같이 4개의 네트워크 대역이 존재한다.
상단 라우터에는 별도의 라우팅 테이블이 추가적으로 설정되어 있지 않기 때문에 A지점과, B지점의 네트워크 대역을 알지 못한다. 
(상단 라우터는 192.168.100.0/24, 192.168.200.0/24 를 모름)
그렇기에 당연히 지점간 PC 통신이 불가하다. 




GRE 터널링 기술을 각 지점 라우터에서 사용하면 지점간 PC들의 통신이 원활히 이루어 지게 되는데 아래 그림을 통해 패킷의 모양이 어찌 변하는지를 잘 살펴보도록 하자.


A지점의 192.168.100.1 사용자가 B 지점의 192.168.200.1 로 통신을 시도하게 되면..
  1. A지점과 A지점 라우터 사이
    • 출발지 IP : 192.168.100.1
    • 목적지 IP : 192.168.200.1
  2. A 지점 라우터와 상단 라우터 사이 (GRE 터널 적용 지점)
    • 원래의 IP 정보 (192.168.100.1 -> 192.168.200.1) 를 캡슐화하여 GRE 터널로 감싸게 된다. 
    • GRE 터널후 출발지 IP : 172.16.1.254
    • GRE 터널후 목적지 IP : 172.16.2.254
    • 172.16.1.254 와 172.16.2.254 의 IP 는 상단 라우터가 알고 있는 대역이므로 정상적으로 처리 가능함.
  3. 상단 라우터와 B 지점 라우터 사이 (GRE 터널 적용 지점)
    • 전 단계와 마찬가지로 IP 정보 및 GRE 터널 정보 유지
  4. B 지점 라우터와 B 지점 사이
    • GRE 터널에 의해 캡슐화 하여 감쌌던 실제 IP 정보를 푼 후 B지점으로 전달
    • 출발지 IP : 192.168.100.1
    • 목적지 IP : 192.168.200.1
위와 같이 패킷 플로우가 전달되기 때문에 각 지점간 PC 들의 통신이 원활이 이루어 지게 된다. 

GRE는 IP 헤더를 GRE 터널 정보로 캡슐화(Encapsulation) 하여 전달하는 형태의 터널링이다. 
다음은 내부적으로 테스트 했던 샘플 패킷이다. (위 IP 정보와는 다름)


붉은색으로 감싼 부분이 GRE 에 의해 캡슐화된 패킷 정보이다. 
참고하면 좋겠다.


GRE 를 정리하면 다음으로 요약 할 수 있다. 
  • 시스코에서 개발한 터널링 기술
  • 이반 터널링 기술의 목적과 같이 통신이 불가한 환경을 VPN 환경과 같이 구현
  • IP 캡슐화를 이용하지만 별도의 암호화 기술을 이용하지 않음
  • 때문에 속도는 빠르나, 보안성에는 취약함. (데이터가 그대로 노출됨)

끝~

2017년 7월 5일 수요일

[네트워크]IP 충돌 과정 이해하기

통상 집에서 사용하는 컴퓨터는 KT,SK,LG등과 같은 ISP 업체로부터 IP를 자동으로 할당 받아 사용하기 때문에 크게 신경 쓸 필요가 없겠지만, 회사등에서 업무적으로 컴퓨터를 사용하는 경우라면, IP 설정에 신경을 써야 한다.

자신이 설정한 IP가 중요한 서버에서 사용중인 IP 라면 서비스가 다운될 수 있고, 이로 인한 피해는 서버의 역할에 따라 아주 클수도 있기 때문이다.

그렇다면, 우리 컴퓨터는 어떻게 IP가 사용중인지 아닌지 알 수 있을까?
이제부터 궁금증을 조금 해소해보도록 하자

컴퓨터에 우리가 사용하고자 하는 IP를 설정하고 케이블을 연결하면, 컴퓨터는 다음과 같은 동작을 하기 시작한다.


  1. 음.. 내가 설정한 IP가 xxx.xxx.xxx.xxx 인데.. 과연 사용해도 되는지 알아볼까?
  2. 내가 사용하려는 IP는 192.168.204.162 인데... 혹시 누가 사용하고 있나요?
    (ARP Request #1)

  3. 아무도 대답이 없네.. 다시 한번....
    내가 사용하려는 IP 는 192.168.204.162 입니다. 이거 사용하는 사람 있나요?
    (ARP Request #2)

  4. 한번 더 물어보자...
    나 192.168.204.162 써도 될까요?
    (ARP Request #3)

  5. 아무도 사용하는 사람이 없구만... 그럼 이제부터 이 IP를 사용해야겠다.
    저는 이제부터 192.168.204.162를 사용합니다. 다들 기억해 주세요~
    (Gratuitous ARP)


* Gratuitous ARP를 같은 서브넷에 연결된 호스트들이 받게 되면.. 각자 자신의 ARP 테이블에 해당 IP와 MAC 주소를 기록하게 된다.



테스트는 Windows 7 운영체제의 컴퓨터를 사용했다.

컴퓨터에서 수동으로 설정한 IP를 사용하기 위해서는 설정한 IP가 다른 호스트에서 사용중인지 여부를 검사하는 과정을 우리는 볼수 없지만.. 위와 같은 절차로 수행이 된다.

다시 정리해 보면..


  1. 설정한 IP를 사용해도 되는지 여부를 체크한다. (ARP Request)
  2. 초당 1회씩 총 3회 물어보고 문제가 없다면 자기가 사용하려는 IP를 같은 네트워크 세그먼트에 알린다. (Gratuitous ARP)


그럼, IP 충돌일 경우.. 그러니까 수동으로 설정한 IP를 다른곳에서 사용하고 있는 경우는 어떨까?

다음과 같다. 

  1. IP 192.168.204.163 을 내가 사용해도 되나요?
    (ARP Request)

  2. 안되요~ 192.168.204.163은 제가(삼성_F5:69:02) 사용합니다.
    (ARP Reply)

  3. 에구.. 알겠어요~.. 미안합니다.


IP가 충돌하게 되면 각자 위와 같은 경고 메시지는 본 기억이 있을것이다.
IP가 충돌되었는지 여부를 확인하는 과정을 자세히 들여다 볼 기회가 없었던 분들께 이번 포스팅 내용이 도움이 되길 바란다.