在Ubuntu上创建并测试GRE tunnel

时间:2024-03-21 12:19:10

 

使用两台Ubuntu虚拟机进行GRE tunnel测试,则两台虚拟机位于同一网段,但并不影响观察测试结果。

 

测试环境:

在一台PC上同时运行两个Ubuntu虚拟机:

ubuntu-gnome-16.04-desktop-amd64,IP为192.168.0.105,暂且称其host A

ubuntu 14.04,IP为192.168.0.104,暂且称其host B

 

1. host A 配置

1.1 加载GRE

sudo modprobe ip_gre

 

1.2 gre tunnel配置

sudo ip tunnel add gre1 mode gre remote 192.168.0.105 local 192.168.0.104 ttl 255

sudo ip link set gre1 up

sudo ip addr add 10.10.10.2 peer 10.10.10.1 dev gre1

 

2. host B配置

2.1 加载GRE

sudo modprobe ip_gre

2.2 GRE tunnel配置

sudo ip tunnel add gre1 mode gre remote 192.168.0.104 local 192.168.0.105 ttl 255

sudo ip link set gre1 up

sudo ip addr add 10.10.10.1 peer 10.10.10.2 dev gre1

 

3. ping测试

3.1 host A

ping 10.10.10.1

 

3.2 抓包

在host B抓包,并保存为cap文件,方便用wireshark分析。

sudo tcpdump -i eth0 -w ./test1.cap

3.3 分析

用wireshark打开test1.cap

在Ubuntu上创建并测试GRE tunnel

 

在Ubuntu上创建并测试GRE tunnel

可看到gre header和外层IP header,test ok!

 

注:

1)直接tcpdump -i eth0,结果如下:

在Ubuntu上创建并测试GRE tunnel

2)直接tcpdump -i gre1,捕捉到的包没有GRE header等信息,是个纯粹的ICMP包。

在Ubuntu上创建并测试GRE tunnel

 

4. 其它

1)参考:http://www.ttlsa.com/linux/create-a-gre-tunnel-linux/