GRE Tunnel (Generic Routing Enapsulartion)

GRE는 라우팅이 불가능한 패킷을 라우팅 가능한 패킷의 내부에 넣어서 전송할 때 사용하는 터널링 프로토콜이다. 

GRE Tunnel을 실습해 보았습니다.

 

Tunnel은 기존의 IP헤더에 새로운 헤더를 붙여서 사용하게 됩니다.(캡슐화)

IP 헤더 Protocol GRE 헤더
Source IP Destination IP IP GRE Source IP GRE Destination IP
host A IP host B IP   10.0.0.1 10.0.0.2

host A는 VirtualBox로 실행된 리눅스 가상머신 이고, host B는 라즈베리 파이로 진행하였고, IP와 MAC주소는 따로 공개하지 않고 설명을 진행 하겠습니다.

 

sudo modprobe ip_gre
lsmod | grep gre

 

sudo moprobe ip_gre 명령어는 GRE를 사용하기 위해 ip_gre 모듈을 로드하고, 로드가 잘 되었는지

lomod | grep gre 명령어로 확인합니다. 이 명령어는 처음 연결을 진행하는 컴퓨터에서만 진행하면 됩니다.(host A)

host A 설정

sudo ip tunnel add gre3 mode gre remote Host B IP local Host A IP ttl 255

sudo ip link set gre3 up

sudo ip addr add 10.0.0.1/24 dev gre3

host A의 리눅스 터미널

sudo ip tunnel add gre3 mode gre remote Host B IP loacl Host A IP ttl 255

연결할 주소인 Host B IP, 출발 주소 인 Host A IP 를 입력하고, ttl 255로 설정합니다. 

 

sudo ip link set gre3 up 명령어로 gre3 interface를 활성화 시킨 후, sudo ip addr add 10.0.0.1/24 dev gre3 입력하여 gre3 interface에 10.0.0.1 ip를 할당합니다.(터널 외부 IP 할당)

 

ip route show 명령어로 route를 확인해보면 빨간색 박스와 같이 할당된 것을 확인 할 수 있습니다.

host B 설정

host B 또한 host A와 같이 명령어를 입력하여 세팅합니다.

 

sudo ip tunnel add gre3 mode gre remote Host A IP local Host B IP ttl 255

sudo ip link set gre3 up

sudo ip addr add 10.0.0.2/24 dev gre3

 

ping test

host A(10.0.0.1)에서 host B(10.0.0.2)로 핑테스트를 해보면 연결이 잘 된 것을 확인 할 수 있습니다.

조금 더 자세하게 확인하기 위하여 Wireshark 분석 툴을 가지고 확인 해보았습니다.

 

host A -> host B

host A에서 host B로 ping test를 하는 Protocol인 ICMP이며, host A,B 의 MAC주소를 확인 할 수 있습니다.

 

host A -> host B

host A,B 의 IP주소와 Protocol이 Generic Routing Enapsulation인 것을 확인 할 수 있습니다.

 

host A -> host B

추가로 Tunnel을 사용하는 의미를 가지는 IP Protocol 이 있는 것을 확인 할 수 있습니다.

 

host A -> host B

host A,B 의 GRE Tunnel ip주소를 확인 할 수 있습니다.

 

host B -> host A

host B에서 host A 의 ICMP를 응답한 결과도 분석해보면 위에서 설명한듯이 host A, B의 MAC주소, IP주소 Generic Routing Encapsulation, 터널 IP 주소를 확인 할 수 있었습니다.



GRE Tunnel을 실습, 분석해보았고, 터널링을 이용하면 더 나아가 VPN 환경을 구축할 수 있습니다.


참고 바로가기

'Network > GRE Tunnel' 카테고리의 다른 글

GRE Tunnel + IPSec  (0) 2022.07.30

+ Recent posts