I have some simulator software running on linux (linux_host) in which is another linux (linux_sim) is running. The simulator uses libpcap to access the ethernet to provide network simulation on linux_sim. The network is brought up on linux_host and linux_sim OK. I can reach any host in LAN from linux_sim (it uses dhcp for example to setup IP).
The problem is that packets sent from linux_sim do not reach linux_host, however they travel in the opposite direction OK. The latter I can prove with wireshark running on linux_host: if I ping linux_sim on linux_host - I see ICMP requests and replies (from linux_sim) which do not reach linux_host, if I ping vice-versa - I see only ICMP requests (from linux_sim).
The following depicts roughly the architecture I have:
LAN | linux_host-----[eth0] | libpcap | simulator | linux_sim
linux_host and linux_sim have different MAC addresses, IP's and from LAN look like independent linux hosts.
I tried on three different linux machines with the same result (with Debian,CentOS and Gentoo).
So, what can you recommend to check/tune/configure in this situation? As I suppose an unusual routing/filtering configuration is required for the linux_host in this case.
The broadcast traffic do reach from linux_sim to linux_host since I see that IP address is resolved with ARP (request broadcasts are replied) OK as the ping starts.