title: Pinging between two tap devices on the same machine
body: <p>I have two virtual TAP interfaces tap0 and tap1 on my machine. They have IPs 10.0.0.1 and 10.0.0.2 respectively. They are both connected to each other using socat. Both have netmasks 255.255.255.0 (and hence are on the same subnet). With this setup, I try pinging 10.0.0.2 through tap0 and vice versa. This doesn't seem to work for some reason. Although tcpdump shows ARP packets from tap0 reaching tap1, there are no ARP replies and hence no ICMP requests and hence no ICMP replies. Using a TUN device instead of a TAP device bypasses the ARP request/response cycle, but now the ICMP requests show up at tap1 with no ICMP response coming back.</p>
  
  <p>I have tried a couple of things like enabling ip_forward ( echo 1 > /proc/sys/net/ipv4/ip_forward) and disabling reverse path filtering ( echo 0 > /proc/sys/net/ipv4/conf/tap0/rp_filter and echo 0 > /proc/sys/net/ipv4/conf/tap1/rp_filter ). </p>
  
  <p>Here are the commands to reproduce my problem :</p>
  
  <pre><code>sudo socat TUN:10.0.0.1/24,tun-type=tap TUN:10.0.0.2/24,tun-type=tap
  sudo ifconfig tap0 10.0.0.1 netmask 255.255.255.0
  sudo ifconfig tap1 10.0.0.2 netmask 255.255.255.0
  ping -Itap0 10.0.0.2
  tcpdump -Itap0 -n
  tcpdump -Itap1 -n
  </code></pre>