Назад | Перейти на главную страницу

гостевая маршрутизация kvm с двумя шлюзами по умолчанию

У меня гость kvm с двумя виртуальными сетевыми адаптерами.

  1. Сетевая карта с внутренним IP III.III.III.III (eth0)
  2. Сетевая карта с внешним IP EEE.EEE.EEE.EEE(eth1)

Я использую macvtap. У хоста есть свой внешний IP. Я могу пинговать оба сетевых адаптера с хоста, но я не могу пинговать EEE.EEE.EEE.EEE снаружи. Я сделал tcpdump на обоих NIC. Я вижу запросы ICMP на eth1, но похоже, что ответы отправляются с использованием «неправильного» внутреннего интерфейса eth0.

# tcpdump -i eth1 icmp -n

14:57:30.398789 IP XXX.XXX.XXX.XXX > EEE.EEE.EEE.EEE: ICMP echo request, id 1408, seq 6, length 64
14:57:31.398546 IP XXX.XXX.XXX.XXX > EEE.EEE.EEE.EEE: ICMP echo request, id 1408, seq 7, length 64
14:57:32.398547 IP XXX.XXX.XXX.XXX > EEE.EEE.EEE.EEE: ICMP echo request, id 1408, seq 8, length 64
14:57:33.398550 IP XXX.XXX.XXX.XXX > EEE.EEE.EEE.EEE: ICMP echo request, id 1408, seq 9, length 64

# tcpdump -i eth0 icmp -n

14:57:40.398610 IP EEE.EEE.EEE.EEE > XXX.XXX.XXX.XXX: ICMP echo reply, id 1408, seq 16, length 64
14:57:41.398562 IP EEE.EEE.EEE.EEE > XXX.XXX.XXX.XXX: ICMP echo reply, id 1408, seq 17, length 64
14:57:42.398562 IP EEE.EEE.EEE.EEE > XXX.XXX.XXX.XXX: ICMP echo reply, id 1408, seq 18, length 64
14:57:43.398588 IP EEE.EEE.EEE.EEE > XXX.XXX.XXX.XXX: ICMP echo reply, id 1408, seq 19, length 64

У меня 2 маршрута по умолчанию. Одна настройка libvirt / kvm для гостевой внутренней сети с NAT, а другая настройка для eth1.

# route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         ###.###.###.### 0.0.0.0         UG    0      0        0 eth1
0.0.0.0         192.168.122.1   0.0.0.0         UG    0      0        0 eth0
###.###.###.### 0.0.0.0         255.255.255.255 UH    0      0        0 eth1
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

Я не могу пинговать EEE.EEE.EEE.EEE извне из-за NAT запросы отправляются на IP, а ответы приходят с другого? Наличие двух маршрутов по умолчанию, вероятно, не лучшая идея, я должен удалить лишний NAT. Однако я не понимаю, почему пакеты ответов ICMP не отправляются на интерфейс, получающий запросы. Это «фича» (своего рода балансировщик нагрузки)? Можно ли этого избежать?