Можно ли поставить реальный IP на устройство с обратной связью?

9

Можно ли поставить реальный IP-адрес (не в диапазоне 127.xxx) на устройство с обратной связью?

Питер Смит
источник
Ну конечно; естественно.
Ипор Сирсер
3
... опасность, конечно, в том, что вы забыли, что этот IP-адрес есть, и тогда у вас возникают головокружительные проблемы с сетью, поскольку пакеты не отправляются на ожидаемый публичный IP-адрес ...
thrig

Ответы:

5

Ничто не запрещает это делать.

# ifconfig lo: 1 10.0.0.1/8 
# ifconfig lo: 1
lo: 1 Link encap: Local Loopback  
          адрес в сети: 10.0.0.1 маска: 255.0.0.0
          UP LOOPBACK RUNNING MTU: 65536 Метрика: 1
# ping -c 1 10.0.0.1    
PING 10.0.0.1 (10.0.0.1) 56 (84) байт данных.
64 байта из 10.0.0.1: icmp_seq = 1 ttl = 64 время = 0,025 мс

--- 10.0.0.1 пинг статистика ---
1 переданный пакет, 1 полученный, потеря пакета 0%, время 0 мс
rtt мин / ср / макс / мдев = 0,025 / 0,025 / 0,025 / 0,000 мс

Обновить:

Чтобы этот адрес сохранялся после перезагрузки в Ubuntu 16.04, вы можете изменить свой /etc/network/interfacesфайл с помощью следующих ethtoolкоманд:

auto lo lo:1

iface lo inet loopback

iface lo:1 inet static
  address 10.0.0.1
  network 10.0.0.0
  netmask 255.0.0.0
jlliagre
источник
Это сохраняется после перезагрузки?
Питер Смит
1
Нет. Лучше указать точную ОС / дистрибутив, который вы используете, чтобы получить надежный ответ, и, возможно, задать новый вопрос или проверить, если он еще не был дан ответ.
Jlliagre
Ubuntu 16.04 LTS
Питер Смит
Ответ обновлен.
Jlliagre
5

В качестве альтернативы использованию lo:0вы также можете использовать dummyинтерфейсы в Linux, например:

ifconfig dummy0 10.0.0.1/32
ifconfig dummy1 10.1.1.1/24

Помимо других ответов:

  • Я не рекомендую менять обычный / официальный адрес петлевого интерфейса, так как от этого зависит множество функций;
  • однако вы можете создать / создать несколько петлевых / фиктивных интерфейсов - от интерфейсов lo: 0 до lo: 255 или dummyX;
  • необходимо учитывать, что от lo: 0 до lo: 255 - псевдонимы, а dummyX - полные интерфейсы;
  • кроме того, одной из обычных тактик в Linux для создания виртуальных IP-адресов через BGP или OSPF является назначение их для петлевых / фиктивных интерфейсов и прокладывание путей к ним через маршрутизацию;
  • опять же, у некоторых демонов возникают проблемы с объявлением адресов в псевдонимах (например, quagga), поэтому в этих случаях рекомендуется использовать интерфейсы dummyX;
  • Я хотел бы подчеркнуть, что без маршрутизации в инфраструктуре такие адреса известны только / могут использоваться на рассматриваемом сервере;
  • назначение частного / общедоступного адреса интерфейсу обратной связи без надлежащей маршрутизации может быть низкой мерой вычислительной стоимости для временного включения черного списка связи с IP-адресом / сетью.

Для получения дополнительной информации см., Например, руководство по настройке anycast BIND, выполненное с помощью Quagga / BIRD.

подсказки маршрутизации здесь: OSPF: Миграция Quagga в ПТИЦУ

PS Linux по умолчанию создает только dummy0 и dummy1 и должен быть проинструктирован для создания большего количества фиктивных интерфейсов.

Руи Ф Рибейро
источник
1
Я абсолютно собираюсь использовать это с (статической) маршрутизацией. Есть ли реальная разница между фиктивными и петлевыми интерфейсами?
Питер Смит
@PeterSmit присваивает випам петлю, имея дело с псевдонимами интерфейса, в то время как фиктивные являются полноценными интерфейсами сами по себе. были проблемы с использованием псевдонимов интерфейса с quagga ... и я не рекомендую менять lo. Также часто бывает, что вы можете / должны связать правила fw с реальным интерфейсом, а не с псевдонимом.
Руи Ф Рибейро
3

На текущем ядре Linux с ipутилитой это довольно просто:

ip addr add 10.0.1.8 dev lo

Это может быть полезно, когда у вас есть служба, которая связывает порт с интерфейсом, и вы хотите запустить другую программу на том же порту и в сети. Я использую его, чтобы включить bindи dnsmasqсосуществовать на одном сервере.

Если вы используете /etc/network/interfacesдля настройки интерфейсов, обновите loраздел, чтобы включить:

up ip addr add 10.0.1.8 dev lo
BillThor
источник
Спасибо. Будет ли эта перезагрузка продолжаться?
Питер Смит
1
@PeterSmit Маловероятно.
Кусалананда
1

Да, но это не значит, что это хорошая идея. Если вы используете IP, который когда-либо будет доступен вашей системе, любые данные, которые он пытается отправить туда, будут перенаправлены вместо этого в локальную систему, что может вызвать всевозможные странные проблемы с сетью. В частности, это означает, что вы не можете безопасно использовать что-либо за пределами следующих диапазонов:

127.0.0.0/8
192.0.2.0/24
198.51.100.0/24
203.0.113.0/24
240.0.0.0/4

С возможным исключением любого из следующего зависит от того, как настроены ваши другие сетевые интерфейсы:

10.0.0.0/8
192.168.0.0/16
172.16.0.0/12
169.254.0.0/16

Это тот случай, когда RFC 1925 , раздел 2, пункт 3 применяется.

Остин Хеммелгарн
источник
На самом деле, есть больше диапазонов. В моем случае это было бы в диапазоне 100.64.0.0/10 (Carrier Grade NAT)
Питер Смит
1
Их может быть больше, но большинство из них не используются широко в клиентских системах (я думаю, что диапазон CGN, вероятно, подходит этому), или они имеют плохо определенные применения, которые многие люди могут не понять (например, 198.18.0.0/15, используемые для бенчмаркинг), и я хотел не говорить что-то, что может быть небезопасным, на самом деле было безопасно.
Остин Хеммельгарн