在linux系统上,我已经建立了自己的隧道协议,我通过非标准化但经过验证的媒介中继数据包。我所做的是使用iptables和NFQUEUE捕获数据包,在我的媒体上传递它们,在另一端我使用原始套接字重新注入它们。进入隧道的数据包与出来的数据包完全相同,经过验证。 问题是如果ping的目的地与隧道端点相同,则这对ICMP Ping(Echo Request)不起作用。 如果目的地与隧道端点不同,则ping数据包将被重新路由并在接收方处到达,并且ping应答将返回给发送方。 有谁知道发生了什么事。是不是可以将原始icmp发送给自己?如果没有,任何人都知道我应该做什么呢?
我拥有的是:
R1 ---- T1 ----- T2 ------ R2
R1 ping R2。
R1,R2,路由器1和路由器2 T1,T2,隧道点1和2.(R1和T1位于同一路由器上,R2和T2位于同一路由器上)。 此设置无效。
这确实有效:
R1 ---- T1 ----- T2 ------ R2 ----- R3
R1 ping R3,这可行。
有什么想法吗?
/安迪