摘自本文:http://backreference.org/2010/03/26/tuntap-interface-tutorial/ 作者创建了一个tun接口
# openvpn --mktun --dev tun2
# ip link set tun2 up
# ip addr add 10.0.0.1/24 dev tun2
然后他对 10.0.0.2 进行了 ICMP ping
# ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
From 10.0.0.1 icmp_seq=2 Destination Host Unreachable
From 10.0.0.1 icmp_seq=3 Destination Host Unreachable
...
并且他使用tshark或tcpdump在接口tun2上捕获数据包,他可以捕获如下数据包:
0.000000 10.0.0.1 -> 10.0.0.2 ICMP Echo (ping) request
0.999374 10.0.0.1 -> 10.0.0.2 ICMP Echo (ping) request
1.999055 10.0.0.1 -> 10.0.0.2 ICMP Echo (ping) request
我按照同样的步骤操作,但是无法像他一样捕获数据包,也没有得到结果Destination Host Unreachable
。我认为问题是由于本地路由造成的,在他的测试中,系统似乎将10.0.0.1
子网 10.0.0.0/24 视为默认网关,但在我的测试中并非如此。
那么我怎样才能获得与作者相同的结果?
顺便说一句,在我的计算机上:
tun2 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.0.0.1 P-t-P:10.0.0.1 Mask:255.255.255.0
UP POINTOPOINT NOARP MULTICAST MTU:1500 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:420 (420.0 b) TX bytes:0 (0.0 b)
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun2
192.168.1.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan0
0.0.0.0
我不明白网关的含义 ,所以我添加了一条路线:
route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.1
并得到
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
10.0.0.0 10.0.0.1 255.255.255.0 UG 0 0 0 tun2
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun2
192.168.1.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan0
但它还是不起作用。我真的不明白为什么。