Генерация IAID на основе MAC-адреса:IAID обычно создается из MAC-адреса интерфейса. В большинстве случаев IAID — это 4-байтовое число, полученное из MAC-адреса. Например, для интерфейса с MAC-адресом 00:11:22:33:44:55 IAID может быть 0x00112233.
автоматически получить IAID, основанный на MAC-адресе
Код: Выделить всё
ip link show <интерфейс> | awk '/ether/ {print $2}'
Стандартная формула для вычисления IAID из MAC-адреса:
Вставьте ff:fe посередине MAC-адреса (между первым и вторым байтом, или между третьим и четвертым байтом):
MAC: 00:e0:4c:68:4c:2b Преобразование в EUI-64:
00:e0:
4c:68:ff:fe:
4c:
2b
Инвертируйте 7-й бит первого байта (Universal/Local bit). В данном случае первый байт 00 (в двоичной форме 00000000), 7-й бит — это бит с порядковым номером 1 (отсчет с нуля), т.е. он равен 0 — значит ничего менять не нужно.
В результате, получаем 8 байтов: 00:e0:4c:68:ff:fe:4c:2b.
Для IAID обычно берут последние 4 байта. В случае с GUA (Global Unicast Address), IAID — это последние 4 байта (в данном случае 4c:2b), или иногда используют первые 4 байта.
Конкретный пример:
MAC: 00:e0:4c:68:4c:2b
IAID: можно взять как последние 4 байта: 68:4c:2b или первые 4 байта после преобразования, в зависимости от практики.
Итоговая формула (примитивная):
В большинстве случаев, IAID — это последние 4 байта MAC-адреса, либо полученные по формуле EUI-64.
Вариант для автоматического расчёта:
Код: Выделить всё
echo -n 00:e0:4c:68:4c:2b | awk -F: '{print $4$5$6}'
Чтобы перевести шестнадцатеричное значение в десятичное
Код: Выделить всё
hex_value="1a2b"
dec_value=$((16#$hex_value))
echo "$dec_value"