使用两台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
可看到gre header和外层IP header,test ok!
注:
1)直接tcpdump -i eth0,结果如下:
2)直接tcpdump -i gre1,捕捉到的包没有GRE header等信息,是个纯粹的ICMP包。
4. 其它