- 论坛徽章:
- 0
|
系统是2.6.32内核。
我拉起的tun设备,应用层服务分装好数据包后写入tun设备,在由tun设备把数据包转发出去。
启动系统的转发功能 echo '1' > /proc/sys/net/ipv4/ip_forward
现在问题是写入tun设备的数据包是正常,并通过tcpdump能在tun设备上抓包我要发的数据包。
tcpdump -i tun0 -nv
4.0.0.1 > 10.10.200.4: ICMP echo request, id 1536, seq 61187, length 40
01:05:52.781275 In ethertype IPv4 (0x0800), length 76: (tos 0x0, ttl 64, id 24141, offset 0, flags [none], proto ICMP (1), length 60)
但是在真实网口上抓不到要发送的数据包。
我以为是数据包在网口处被丢掉了,特意在出口处NF_INET_POST_ROUTING挂了钩子,优先级最高,在钩子函数里打日志,发现没有原ip是4.0.0.1的数据包过来。
所以有可能是数据包压根就没有转到真实网口。
不知道是哪里设置不对,望各位大侠赐教。 |
|