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

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

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

решение1

В качестве альтернативы использованию 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-адресом/сетью.

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

подсказки по маршрутизации здесь:OSPF: Миграция Quagga в BIRD

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

решение2

На текущем ядре 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

решение3

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

#ifconfig lo:1 10.0.0.1/8
#ifconfig lo:1
lo:1 Ссылка encap:Локальная петля  
          inet addr:10.0.0.1 Маска:255.0.0.0
          UP LOOPBACK ВЫПОЛНЯЕТСЯ MTU:65536 Метрика:1
#пинг -с 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

решение4

Да, но это не значит, что это хорошая идея. Если вы используете 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

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

Связанный контент