Вот моя несколько озадачивающая проблема маршрутизации.
Вот описание в словах. У меня есть ноутбук окон (синий), на котором я выполняю (оранжевый) VMware Workstation. VMware Workstation имеет единственную Ubuntu 14.04 (Зеленый) VM. Это имеет единственный NIC, который является интерфейсом VMWare NAT. VMware имеет интерфейс в сети, как замечено из окон (ipconfig вывод). (Зеленый) VM VMware имеет IP 192.168.115.10/24. Окна взаимодействуют через интерфейс (шлюз) 192.168.115.1.
В Зеленом VM у меня есть красный VM (KVM). Это имеет IP-адрес 10.0.0.2.
Вот являются вещи той работой.
Из Windows:
От Зеленого VM (192.168.115.10) следующая работа.
От Красного VM (10.0.0.2) следующая работа.
То, что не работает, является этим:
На Зеленом VM (192.168.115.10), я включил передачу IP.
cat /proc/sys/net/ipv4/ip_forward
1
На машине Windows у меня есть запись таблицы маршрутизации, которая читает:
Active Routes: Network Destination Netmask Gateway
Interface Metric
0.0.0.0 0.0.0.0 10.40.2.1 10.40.2.192 10
0.0.0.0 0.0.0.0 10.40.2.1 10.40.2.186 25
10.0.0.0 255.255.255.0 192.168.115.10 192.168.115.1 21 [...]
Я также сделал это.
На Зеленом VM, и Красном VM, одновременно выполненном tcpdump.
tcpdump-n-vvv-i eth0 icmp
И в то время как это работает, из Windows выполнитесь:
ping 10.0.0.2
На Зеленом VM (192.168.115.10), я вижу
21:48:45.985686 IP (tos 0x0, ttl 128, id 9541, offset 0, flags [none], proto ICMP (1), length 60)
192.168.115.1 > 10.0.0.2: ICMP echo request, id 1, seq 145, length 40 21:48:50.987085 IP (tos 0x0, ttl 128, id 9543, offset 0, flags [none], proto ICMP (1), length 60)
192.168.115.1 > 10.0.0.2: ICMP echo request, id 1, seq 146, length 40
На Красном VM (10.0.0.2) я ничего не вижу.
С другой стороны, если я работал, ping на 192.168.115.10 (проверьте с помощью ping-запросов 10.0.0.2), я вижу следующее в tcpdump.
На Зеленом VM (192.168.115.10), я вижу следование интерфейса br100, тот с IP 10.0.0.1 и шлюз к вложенному VM.
tcpdump -n icmp -vvvv -i br100
tcpdump: listening on br100, link-type EN10MB (Ethernet), capture size 65535 bytes
22:16:35.310287 IP (tos 0x0, ttl 64, id 43787, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.1 > 10.0.0.2: ICMP echo request, id 30901, seq 1, length 64
22:16:35.310678 IP (tos 0x0, ttl 64, id 26368, offset 0, flags [none], proto ICMP (1), length 84)
10.0.0.2 > 10.0.0.1: ICMP echo reply, id 30901, seq 1, length 64
На Красном VM (10.0.0.2) я вижу
tcpdump -vvv -n icmp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
02:16:14.710411 IP (tos 0x0, ttl 64, id 42447, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.0.1 > 10.0.0.2: ICMP echo request, id 30888, seq 1, length 64
02:16:14.710690 IP (tos 0x0, ttl 64, id 21880, offset 0, flags [none], proto ICMP (1), length 84)
10.0.0.2 > 10.0.0.1: ICMP echo reply, id 30888, seq 1, length 64
Так, по некоторым причинам, при проверке с помощью ping-запросов из Windows, пакеты достигают 192.168.115.10 (Зеленый VM) и не добираются 10.0.0.2 (Красный VM).
Я не уверен, что еще искать в iptables, или возможно где-нибудь.