Яка максимальна кількість IP-адрес, які можна призначити даному комп'ютеру?


13

Мені справді потрібно знати це для сервера Linux, але оскільки це стосується і клієнтських ОС, я зрозумів, що тут слід ставити питання замість помилки сервера.

Відповіді:


16

Відповідно до відповідей на це повідомлення до списку розсилки linux-net ,

  • В один момент ядро ​​Linux мало обмеження 255 псевдонімів на фізичний інтерфейсний пристрій.
  • Що стосується ядра Linux версії 2.2, то немає (практичного) обмеження, у другому відповіді наводиться особистий досвід з псевдонімом понад 5000 адрес на одній картці Ethernet.

Звичайно, прив'язка великої кількості псевдонімів до одного пристрою пред'явить вимоги до пам'яті та може мати наслідки для продуктивності, тому цілком можливо, що ваше обладнання може обмежити кількість псевдонімів, які ви можете додати, навіть якщо саме ядро ​​цього не робить.


Для цього не потрібно створювати псевдоніми; ip addr addможе прив’язати адреси до одного пристрою.
Ігнасіо Васкес-Абрамс

3
Так, і це робиться шляхом вилучення додаткових адрес на одному пристрої. Незалежно від того, називається псевдонім ( eth0:0) чи ні, він все ще псевдонім. Зрозуміло, автори ip(8)сторінки man вирішують не використовувати термін "псевдонім", оскільки він розглядає всі адреси як рівні, майже весь решта світу погоджується з тим, що присвоєння декількох адрес одному інтерфейсу називається "Псевдонім IP".
Дейв Шерохман

1
У якийсь момент у мене виникла потреба присвоїти багато IPv6 адрес одному хосту, і як тільки я досяг близько 4000 адрес, відкриття сусіда зламалось. Точна кількість адрес, які знадобилися, щоб розбити відкриття сусіда, різнилася між експериментами, але завжди було близько 4000.
kasperd


3

Максимум - 4 294 967 294 IP-адреси (якщо ви говорите про IPV4, у вас достатньо оперативної пам’яті, і ми витягуємо одну для широкомовної адреси та одну для мережевої адреси).


0

Ядро Linux має функцію під назвою AnyIP, яка дозволяє відповідати за суміжний блок IPv4 або IPv6 адрес через ваш інтерфейс для зворотного зв’язку Linux за дуже невеликі витрати в DRAM / CPU.

Наприклад, припустимо, що я хочу, щоб моя машина Linux відповідала за будь-яку адресу в 10.7.0.0/16:

  • У системі Linux додайте локальний маршрут: ip -4 route add local 10.7.0.0/16 dev lo
  • Попросіть ваших мережевих інженерів рекламувати маршрут на 10.7.0.0/16, вказуючи на адресу eth0 машини, з якою ви це зробили.

Вітаємо, тепер ви відповідаєте за величезну кількість адрес (понад 65 000 у цьому прикладі), і ваше споживання оперативної пам’яті практично нічого з цього вправи. Щодо масштабованості, це рішення набагато краще, ніж додавання окремих псевдонімів інтерфейсу на eth0 для всіх IP-адрес, на які ви хочете відповісти.

Немає обмежень на кількість адрес, за які можна відповісти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.