
У меня есть сервер Ubuntu 12.04 с 4 интерфейсами ethernet, 2 из которых подключаются к ненастраиваемым сетевым устройствам на eth5 и eth6. Каждое устройство может быть доступно только на 192.168.100.1 через telnet. Я считаю, что NAT может предоставить мне способ доступа к обоим устройствам. Другие решения приветствуются.
Я хотел бы сделать что-то вроде этого: telnet 192.168.1.100
и транслировать его в 192.168.100.1 на eth5. Аналогично я хотел бы telnet 192.168.1.101
транслировать его в 192.168.100.1 на eth6. Таким образом, у меня есть своего рода псевдоним IP, который использует определенные интерфейсы Ethernet. Без такого решения у меня, очевидно, будет конфликт IP.
Большинство руководств по NAT, которые я вижу, связаны с общим доступом к интернет-подключению. Я пытаюсь сделать что-то гораздо более простое, но, по-видимому, недокументированное.
Какие-нибудь советы?
решение1
НАТ (илитрансляция сетевых адресов) обрабатывает все «внутренние» IP-адреса как один «внешний» IP-адрес (маскировка IP-адресов), чтобы разрешить нескольким локальным устройствам подключаться к одному и тому же внешнему соединению (например, на маршрутизаторе Wi-Fi, подключенном к кабельному модему, включен NAT (и, возможно, DHCP), чтобы разрешить устройствам подключаться к Интернету через один IP-адрес, назначенный вам вашим интернет-провайдером).
То, о чем вы просите (насколько я могу судить), этоIP-псевдонимы, это позволяет вам иметь один физический интерфейс (например eth0
, ) и «назначать ему» несколько IP-адресов.
Например, предположим, что у вас есть /etc/sysconfig/network-scripts/eth0
файл конфигурации, содержащий следующее:
DEVICE=eth0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes
NAME="192.168.1.100 (eth0)"
BOOTPROTO=none
USERCTL=no
Этот файл конфигурации назначит IP 192.168.1.100
устройству eth0
. Таким образом, с другой машины вы можете выполнить ping 192.168.1.100, и он попадет на устройство eth0 вашей машины. Если вы eth0
также хотите «видеть» трафик из 10.0.0.0
сети, не добавляя маршрутизатор или iptables/PF в микс, вы можете назначить IP-псевдоним интерфейсу, eth0
выполнив следующие действия:
создайте файл устройства, к которому вы хотите добавить псевдоним, в нашем случае это eth0
файл конфигурации, но добавьте :X
(где X
— номер псевдонима, который вы хотите назначить), например: /etc/sysconfig/network-scripts/eth0:1
. Этот файл будет содержать информацию о псевдониме, которую вы хотите добавить, например:
DEVICE=eth0:1
IPADDR=10.0.0.100
NETMASK=255.255.255.0
NETWORK=10.0.0.0
BROADCAST=10.0.0.255
ONBOOT=yes
NAME="10.0.0.100 (eth0:1)"
BOOTPROTO=none
USERCTL=no
Добавление этого файла конфигурации позволит вам взаимодействовать с обоими устройствами 192.168.1.100
через 10.0.0.100
физическое eth0
устройство.
С другой стороны, если вы хотите, чтобы трафик с одного физического интерфейса перенаправлялся на другой физический интерфейс, вам придется рассмотреть возможность использования iptables
этого метода.
Однако, исходя из вашего вопроса, вы спрашиваете об отправке трафика с 2 разных IP-адресов ( 192.168.1.100
и 192.168.1.101
) на 2 отдельных сетевых карты ( eth5
и eth6
), которые, по-видимому, используют один и тот же IP-адрес ( 192.168.100.1
). Я не уверен, как настроены ваши eth5
и eth6
в настоящее время, но если они связаны, чтобы «использовать» один и тот же IP-адрес, то вы, возможно, не сможете добиться желаемого с помощью IP-алиасинга и вместо этого должны проверить iptables.
Надеюсь, это внесет ясность.