У меня есть сервер Ubuntu 14.04 с одним NIC. MAC-адрес на этом NIC присвоен (шлюзом) один IP (X.X.X.100) в одной подсети (X.X.X.0/24), при этом шлюз находится в той же подсети (X.X.X.1) и диапазон IP от совершенно другой подсети (Y.Y.Y.0/28).
Я настроил сервер и с X.X.X.100 и с Y.Y.Y.1 в том же интерфейсе (eth0), и сервер может связаться и связаться остальной частью Интернета
У меня есть некоторые виртуальные машины, которые используют IP-адреса от второй подсети. Они могут связаться с хостом на обоих его IP-адресах, но ничем ином. Я предполагаю, что они должны использовать второй IP-адрес Y.Y.Y.1 хоста в качестве шлюза, но как я настраиваю хост так, чтобы все запросы к или от подсети Y.Y.Y.0/28 были направлены через шлюз X.X.X.1?
Насколько я знаю, я не могу просто развернуть сетевую маску, поскольку это могло привести к неспособности связаться с другими серверами в сети.
Вот сервер /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address X.X.X.100
netmask 255.255.255.0
gateway X.X.X.1
dns-nameservers 8.8.8.8 8.8.4.4
iface eth0 inet static
address Y.Y.Y.1
netmask 255.255.255.240
В /etc/sysctl.conf
Я включил эту строку:
net.ipv4.ip_forward=1
VMs используют Y.Y.Y.n (где n> 1) как IP-адрес и Y.Y.Y.1 как шлюз.
Я думаю, что VMs не может найти MAC-адрес шлюза ISP X.X.X.1:
$ arp -an
? (Y.Y.Y.1) at c8:60:00:5e:bd:e0 [ether] on eth0
? (X.X.X.1) at <incomplete> on eth0
Однако странно они иногда могут...
$ arp -an
? (X.X.X.1) at c8:60:00:5e:bd:e0 [ether] on eth0
? (Y.Y.Y.1) at cc:e1:7f:07:e0:af [ether] on eth0
Когда это происходит, все на самом деле работает! Я могу получить доступ к Интернету от VMs и получить доступ к ним из Интернета с помощью их адреса Y.Y.Y.n. Но это не работает все время - это "забывает" MAC-адрес Y.Y.Y.1 и становится недоступным.
Я на самом деле удивлен, что это перечисляет Y.Y.Y.1 в списке arp вообще - я думал, что это было только для устройств в той же подсети. Моя цель состояла в том, чтобы сделать их просто использовать хост в качестве адреса шлюза (Y.Y.Y.1) вместо этого и избежать проблемы путем разрешения хосту всей коммуникации на X.X.X.0/24.
Действительно ли моя конфигурация является разумной?
Кто-либо еще использует эту конфигурацию?
Чем возможные причины могли там быть для странного "забвения"?