У меня есть хост 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
показал, что исходящие соединения осуществлялись через внутреннюю сеть.