Linux bridging for KVM
Check that the kernel is set to enable IP forwarding:
sysctl -a | grep forwarding
You can enable with:
sudo sysctl net.ipv4.conf.all.forwarding=1
sudo sysctl net.ipv6.conf.all.forwarding=1
There may also be an issue with ARP proxying. Check with:
sysctl -a | grep proxy_arp
And set with the command:
sudo sysctl net.ipv4.conf.eth0.proxy_arp=1
You can put the keys and values in a file under /etc/sysctl.d
to have the values reset on reboot.
Testing from another device on the router's subnet may help determine the problem.
- Pinging the virtual machine may provide useful diagnostics.
- Checking if you can ARP for the virtual machine will indicate if you can find the MAC address for the server. Use "arp -a" after pinging it to see if the MAC address is successfully found.
- Traceroute may indicate where the problem starts.
Testing with tcpdump
on the eth0
interface may also indicate where the connection is failing.
- Repeated
arp
requests without a valid response indicates a reachability issue. - Missing
echo
orecho reply
traffic may indicate which side has an issue. - Traceroute responses to the router or addresses behind it may provide additional information.