Имеем серию (ну пару тысяч экземпляров) сетевых устройств. Чтобы сетевое устройство могло корректно существовать, ему необходим уникальный MAC адрес. Предположим, что наши устройства существуют в своем мирке, встречаясь только друг с другом, а не с внешним большим и злым миром. Значит нам необязательно назначать им адекватные, зарегестрированные в общемировых реестрах MAC адреса. Собственно назначение каких-либо адекватных MAC-ов сопряжено с кучей неприятностей на практике, не будем их касаться, попробуем для каждого устройства динамически (т.е. устройство само это делает) генерировать адекватный, с достаточной степенью уникальный MAC-адрес.
Что есть такого уникального в серии из кучи одинаковых железяк? А шут его знает. :) Но тем не менее, sshd умудряется генерировать для каждой из этих плат уникальные RSA и DSA ключи. Вот! Вот она уникальность! Как ей воспользоваться? Легко:
md5sum /etc/ssh_rsa_host_key | cut -f1 -d" " | tail -c 11 | sed -e :a -e 's/\([0-z]\{2\}\)\([0-z]\{2\}\)/\1:\2/;ta'
Ну принцип понятен (тут еще кое-что надо добавить, чтобы заработало). :)
Попроще, на awk:
md5sum /etc/ssh_rsa_host_key | cut -f1 -d" " | tail -c 10 | awk '{ split($1,M,""); printf("address 00:"); for (j=1; j<=7; j+=2) printf("%s%s:",M[j],M[j+1]); printf("%s%s",M[8],M[9]); }' > /etc/net/ifaces/eth0/iplink
Вместо /etc/ssh_rsa_host_key можно использовать что угодно другое, уникальное.
На мысль натолкнул один патентик, где осуществлялась генерация уникальных MAC адресов для wi-fi устройств.
Pipewire 1.6.0
месяц назад
Комментариев нет:
Отправить комментарий