I remember I saw this behavior before. Mostly important thing is to find 
out if the enc/dec goes well. I was having this problem that triggers 
kernel to send out the icmp.

------------
Banyan He
Blog: http://www.rootong.com
Email: ban...@rootong.com

On 4/10/2013 5:27 PM, yihect wrote:
>    
>      Hi, all:
>
>          I'm playing with Gre Tunnel programming in centos 6.
>          
>          I wrote my program in these steps:
>          a, open /dev/net/tun  device and ioctl with TUNSETIFF, get fd to tun 
> device, say "tun0";
>          b, create one socket and use it to set tun0's  ip address, namyly 
> SIOCSIFADDR and SIOCSIFDSTADDR; and then turn it up;
>          c, create one raw socket to send things which got from the tun0 
> device to other machine, and to receive packages which should be feeded into 
> the tun0 device;
>
>          Finally, I ran the program in two machines, say MA and MB, 
> synchronously, and set route info in MA and MB too. The last environment is 
> like this:
>
>      10.0.3.1/24     192.168.0.31/24    192.168.0.124/24    10.0.4.1/24
>           ---------- MA -------------------------------------------  MB 
> ----------
>               tun0          eth0                                    eth0      
>     tun0
>
>           When I ping MB in MA, and tcpdump eth0 in MA, I get:
>
> 15:06:39.712390 IP 192.168.0.31 > 192.168.0.124: GREv0, length 88: IP 
> 10.0.3.1 > 10.0.4.1: ICMP echo request, id 28797, seq 1, length 64
> 15:06:39.713232 IP 192.168.0.124 > 192.168.0.31: ICMP 192.168.0.124 protocol 
> 47 port 2048 unreachable, length 116
> 15:06:39.713667 IP 192.168.0.124 > 192.168.0.31: GREv0, length 88: IP 
> 10.0.4.1 > 10.0.3.1: ICMP echo reply, id 28797, seq 1, length 64
> 15:06:39.713754 IP 192.168.0.31 > 192.168.0.124: ICMP 192.168.0.31 protocol 
> 47 port 2048 unreachable, length 116
>
>           The 1st and 3rd lines is easy to understand, but what about  the 
> 2nd and 4th lines??? Is the raw package been sent up into gre protocol while 
> caught by my program??
>
>           I have seen ICMP_PORT_UNREACH  stuff been placed in ip_gre.c kernel 
> code, but say it is "Impossible event". So, what's wrong,  have I missed 
> something in my program? Any suggestions are appreciated, thanks.
>
>   
>
>
> _______________________________________________
> CentOS mailing list
> CentOS@centos.org
> http://lists.centos.org/mailman/listinfo/centos

_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos

Reply via email to