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

У гостя KVM неверный исходящий IP-адрес

У меня есть хост KVM с мостом, настроенным на eth0, у которого есть общедоступный IP:

auto br0
iface br0 inet static
  address xx.xx.aa.111
  netmask 255.255.255.0
  network xx.xx.aa.0
  broadcast xx.xx.aa.255
  gateway xx.xx.aa.1
  bridge_ports eth0
  bridge_stp on
  bridge_maxwait 0
  bridge_fd 0

На этом хосте есть гость с собственным публичным IP-адресом:

auto eth0
iface eth0 inet static
  address xx.xx.bb.246
  netmask 255.255.255.0
  network xx.xx.bb.0
  broadcast xx.xx.bb.255
  gateway xx.xx.bb.1

Однако при подключении гостя с xx.xx.bb.246 через ssh на другой хост, auth.log показывает xx.xx.aa.111 вместо того xx.xx.bb.246. Это мешает передаче зоны BIND9 и уведомляет, потому что другие серверы разрешают соединения только от xx.xx.bb.246 (гость) а не от xx.xx.aa.111 (ведущий), согласно syslog.

ip route show хоста:

xx.xx.aa.0/24 dev br0  proto kernel  scope link  src xx.xx.aa.111 
default via xx.xx.aa.1 dev br0 

и для гостя:

xx.xx.bb.0/24 dev eth0  proto kernel  scope link  src xx.xx.bb.246 
default via xx.xx.bb.1 dev eth0

Есть у кого-нибудь идеи, как решить эту проблему?

Ах, глупая штучка, которая заставляла меня часами заниматься. На гостевой системе было два интерфейса: внутренний и внешний. traceroute показал, что исходящие соединения осуществлялись через внутреннюю сеть.