Всё, что вы хотели знать о МАС адресе

    Всем известно, что это шесть байт, обычно отображаемых в шестнадцатеричном формате, присвоены сетевой карте на заводе, и на первый взгляд случайны. Некоторые знают, что первые три байта адреса – это идентификатор производителя, а остальные три байта им назначаются. Известно также, что можно поставить себе произвольный адрес. Многие слышали и про "рандомные адреса" в Wi-Fi.


    Разберемся, что это такое.


    МАС адрес (media access control address) – уникальный идентификатор, назначенный сетевому адаптеру, применяется в сетях стандартов IEEE 802, в основном Ethernet, Wi-Fi и Bluetooth. Официально он называется «идентификатором типа EUI-48». Из названия очевидно, что адрес имеет длину в 48 бит, т.е. 6 байт. Общепринятого стандарта на написание адреса нет (в противоположность IPv4 адресу, где октеты всегда разделяют точками).Обычно он записывается как шесть шестнадцатеричных чисел, разделенных двоеточием: 00:AB:CD:EF:11:22, хотя некоторые производители оборудования предпочитают запись вида 00-AB-CD-EF-11-22 и даже 00ab.cdef.1122.


    Исторически адреса прошивались в ПЗУ чипсета сетевой карты без возможности их модификации без флеш-программатора, но в настоящее время адрес может быть изменен программно, из операционной системы. Задать вручную МАС адрес сетевой карте можно в Linux и MacOS (всегда), Windows (почти всегда, если позволит драйвер), Android (только рутованный); с iOS (без рута) подобный трюк невозможен.


    Структура адреса


    Адрес состоит из части идентификатора производителя, OUI, и идентификатора, присваиваемого производителем. Назначением идентификаторов OUI (Organizationally Unique Identifier) занимается организация IEEE. На самом деле его длина может быть не только 3 байта (24 бита), а 28 или 36 бит, из которых формируются блоки (MAC Address Block, МА) адресов типов Large (MA-L), Medium (MA-M) и Small (MA-S) соответственно. Размер выдаваемого блока, в таком случае, составит 24, 20, 12 бит или 16 млн, 1 млн, 4 тыс. штук адресов. В настоящий момент распределено порядка 38 тысяч блоков, их можно посмотреть многочисленными онлайн-инструментами, например у IEEE или Wireshark.


    Кому принадлежат адреса


    Несложная обработка публично доступной базы данных выгрузки IEEE даёт довольно много информации. Например, некоторые организации забрали себе много OUI блоков. Вот наши герои:


    Вендор Число блоков/записей Число адресов, млн.
    Cisco Systems Inc 888 14208
    Apple 772 12352
    Samsung 636 10144
    Huawei Technologies Co.Ltd 606 9696
    Intel Corporation 375 5776
    ARRIS Group Inc. 319 5104
    Nokia Corporation 241 3856
    Private 232 2704
    Texas Instruments 212 3392
    zte corporation 198 3168
    IEEE Registration Authority 194 3072
    Hewlett Packard 149 2384
    Hon Hai Precision 136 2176
    TP-LINK 134 2144
    Dell Inc. 123 1968
    Juniper Networks 110 1760
    Sagemcom Broadband SAS 97 1552
    Fiberhome Telecommunication Technologies Co. LTD 97 1552
    Xiaomi Communications Co Ltd 88 1408
    Guangdong Oppo Mobile Telecommunications Corp.Ltd 82 1312

    У Google их всего 40, и это не удивительно: они сами производят не так много сетевых устройств.


    Блоки МА не предоставляются бесплатно, их можно приобрести за разумные деньги (без абонентской платы) за $3000, $1800 или $755 соответственно. Интересно, что за дополнительные деньги (в год) можно приобрести «сокрытие» публичной информации о выделенном блоке. Таких сейчас, как видно выше, 232.


    Когда закончатся МАС-адреса


    Мы все порядком устали от не прекращающихся уже лет 10 историй о том, что «IPv4 адреса вот-вот кончатся». Да, новые блоки IPv4 получить уже непросто. При этом известно, что IP адреса распределены крайне неравномерно; существуют гигантские и мало использованные блоки, принадлежащие крупным корпорациям и государственным учреждением США, впрочем, без особой надежды на их перераспределение в пользу нуждающихся. Распространение NAT, CG-NAT и IPv6 сделало проблему нехватки публичных адресов не такой острой.


    В МАС адресе 48 бит, из которых «полезными» можно считать 46 (почему? читай дальше), что даёт 246 или 1014 адресов, что в 214 раз больше IPv4 адресного пространства.
    В настоящий момент распределено примерно полтриллиона адресов, или лишь 0.73% от всего объёма. До исчерпания MAC адресов ещё очень, очень далеко.


    Случайность бит


    Можно предположить, что OUI распределены случайно, а вендор затем также случайно назначает адреса индивидуальным сетевым устройствам. Так ли это? Посмотрим на распределение бит в имеющихся в моём распоряжении базах МАС адресов 802.11-устройств, собранных работающими системами авторизации в беспроводных сетях WNAM. Адреса принадлежат реальным устройствам, подключавшихся к Wi-Fi на протяжении нескольких лет в трех странах. В дополнение идет маленькая база 802.3-устройств проводной ЛВС.


    Разобьем каждый МАС-адрес (шесть байт) каждой из выборок на биты побайтово, и посмотрим на частоту появления бита «1» в каждой из 48 позиций. Если бит выставлен совершенно произвольным образом, то вероятность получить «1» должна быть 50%.


    Выборка Wi-Fi №1 (РФ) Выборка Wi-Fi №2 (Беларусь) Выборка Wi-Fi №3 (Узбекистан) Выборка LAN (РФ)
    Число записей в базе 5929000 1274000 366000 1000
    Номер бита: % бит "1" % бит "1" % бит "1" % бит "1"
    1 48.6% 49.2% 50.7% 28.7%
    2 44.8% 49.1% 47.7% 30.7%
    3 46.7% 48.3% 46.8% 35.8%
    4 48.0% 48.6% 49.8% 37.1%
    5 45.7% 46.9% 47.0% 32.3%
    6 46.6% 46.7% 47.8% 27.1%
    7 0.3% 0.3% 0.2% 0.7%
    8 0.0% 0.0% 0.0% 0.0%
    9 48.1% 50.6% 49.4% 38.1%
    10 49.1% 50.2% 47.4% 42.7%
    11 50.8% 50.0% 50.6% 42.9%
    12 49.0% 48.4% 48.2% 53.7%
    13 47.6% 47.0% 46.3% 48.5%
    14 47.5% 47.4% 51.7% 46.8%
    15 48.3% 47.5% 48.7% 46.1%
    16 50.6% 50.4% 51.2% 45.3%
    17 49.4% 50.4% 54.3% 38.2%
    18 49.8% 50.5% 51.5% 51.9%
    19 51.6% 53.3% 53.9% 42.6%
    20 46.6% 46.1% 45.5% 48.4%
    21 51.7% 52.9% 47.7% 48.9%
    22 49.2% 49.6% 41.6% 49.8%
    23 51.2% 50.9% 47.0% 41.9%
    24 49.5% 50.2% 50.1% 47.5%
    25 47.1% 47.3% 47.7% 44.2%
    26 48.6% 48.6% 49.2% 43.9%
    27 49.8% 49.0% 49.7% 48.9%
    28 49.3% 49.3% 49.7% 55.1%
    29 49.5% 49.4% 49.8% 49.8%
    30 49.8% 49.8% 49.7% 52.1%
    31 49.5% 49.7% 49.6% 46.6%
    32 49.4% 49.7% 49.5% 47.5%
    33 49.4% 49.8% 49.7% 48.3%
    34 49.7% 50.0% 49.6% 44.9%
    35 49.9% 50.0% 50.0% 50.6%
    36 49.9% 49.9% 49.8% 49.1%
    37 49.8% 50.0% 49.9% 51.4%
    38 50.0% 50.0% 49.8% 51.8%
    39 49.9% 50.0% 49.9% 55.7%
    40 50.0% 50.0% 50.0% 49.5%
    41 49.9% 50.0% 49.9% 52.2%
    42 50.0% 50.0% 50.0% 53.9%
    43 50.1% 50.0% 50.3% 56.1%
    44 50.1% 50.0% 50.1% 45.8%
    45 50.0% 50.0% 50.1% 50.1%
    46 50.0% 50.0% 50.1% 49.5%
    47 49.2% 49.4% 49.7% 45.2%
    48 49.9% 50.1% 50.7% 54.6%

    Откуда такая несправедливость в 7 и 8 битах? Там почти всегда нули.


    Действительно, стандарт определяет эти биты как специальные (Википедия):


    Восьмой (с начала) бит первого байта МАС адреса называется Unicast/Multicast битом и определяет, какого типа кадр (фрейм) передается с этим адресом, обычный (0) или широковещательный (1) (мультикаст или броадкаст). Для обычного, unicast взаимодействия сетевого адаптера, этот бит выставлен в «0» во всех пакетах, им отправляемых.


    Седьмой (с начала) бит первого байта МАС адреса называется U/L (Universal/Local) битом и определяет, является ли адрес глобально уникальным (0), или локально уникальным (1). По умолчанию, все «прошитые изготовителем» адреса глобально уникальны, поэтому подавляющее число собранных МАС адресов содержат седьмой бит выставленным в «0». В таблице присвоенных идентификаторов OUI только порядка 130 записей имеет U/L бит «1», и по всей видимости это блоки МАС адресов для специальных нужд.


    С шестого по первый биты первого байта, биты второго и третьего байта в OUI идентификаторах, и тем более биты в 4-6 байтах адреса, назначаемые производителем, распределены более-менее равномерно.


    Таким образом, в реальном МАС-адресе сетевого адаптера биты фактически равноценны и не несут технологического смысла, за исключением двух служебных бит старшего байта.


    Распространенность


    Интересно, какие производители беспроводного оборудования наиболее популярны? Объединим поиск по базе OUI с данными выборки №1.


    Вендор Доля устройств, %
    Apple 26,09
    Samsung 19,79
    Huawei Technologies Co. Ltd 7,80
    Xiaomi Communications Co Ltd 6,83
    Sony Mobile Communications Inc 3,29
    LG Electronics (Mobile Communications) 2,76
    ASUSTek COMPUTER INC. 2,58
    TCT mobile ltd 2,13
    zte corporation 2,00
    не найден в базе IEEE 1,92
    Lenovo Mobile Communication Technology Ltd. 1,71
    HTC Corporation 1,68
    Murata Manufactuaring 1,31
    InPro Comm 1,26
    Microsoft Corporation 1,11
    Shenzhen TINNO Mobile Technology Corp. 1,02
    Motorola (Wuhan) Mobility Technologies Communication Co. Ltd. 0,93
    Nokia Corporation 0,88
    Shanghai Wind Technologies Co. Ltd 0,74
    Lenovo Mobile Communication (Wuhan) Company Limited 0,71

    Практика показывает, что чем зажиточнее контингент абонентов беспроводной сети в данном месте, тем больше доля устройств Apple.


    Уникальность


    Уникальны ли МАС адреса? В теории да, поскольку каждый из производителей устройств (владельцев блока МА) обязан обеспечивать уникальный адрес для каждого из выпускаемых им сетевых адаптеров. Однако некоторые производители чипов, а именно:


    • 00:0A:F5 Airgo Networks, Inc. (сейчас Qualcomm)
    • 00:08:22 InPro Comm (сейчас MediaTek)

    выставляют последние три байта МАС адреса в случайное число, по всей видимости, после каждой перезагрузки устройства. Таких адресов в моей выборке №1 нашлось 82 тысячи.


    Поставить себе чужой, не уникальный адрес можно, конечно, путем целенаправленной его установки «как у соседа», определив его сниффером, или выбрав наугад. Также возможно случайно поставить себе не уникальный адрес, выполнив, например, восстановление бэкапа конфигурации какого-нибудь маршрутизатора вроде Mikrotik или OpenWrt.


    Что будет, если в сети будет присутствовать два устройства с одним МАС адресом? Все зависит от логики сетевого оборудования (проводного роутера, контроллера беспроводной сети). Скорее всего, оба устройства или не будут работать, или будут работать с перебоями. С точки зрения стандартов IEEE, защиту от подделки МАС адресов предлагается решать при помощи, например, MACsec или 802.1Х.


    Что, если поставить себе МАС с выставленным в «1» седьмым или восьмым битом, т.е. local или multicast-адрес? Скорее всего, ваша сеть на это не обратит внимания, но формально такой адрес не будет соответствует стандарту, и лучше так не делать.


    Как работает рандомизация


    Мы знаем, что с целью предотвратить отслеживание перемещения людей путем сканирования эфира и сбора МАС-операционные системы смартфонов уже несколько лет применяют технологию рандомизации. Теоретически, при сканировании эфира в поиске известных сетей смартфон отправляет пакет (группу пакетов) типа 802.11 probe request с МАС-адресом в качестве источника:



    Включенная рандомизация позволяет указывать не «прошитый», а какой-то другой адрес источника пакета, меняющийся при каждом цикле сканирования, во времени или ещё как-то. Работает ли это? Посмотрим на статистику собранных МАС-адресов из эфира так называемым «Wi-Fi Радаром»:


    Вся выборка Выборка только с нулевым 7м битом
    Число записей в базе 3920000 305000
    Номер бита: % бит "1" % бит "1"
    1 66.1% 43.3%
    2 66.5% 43.4%
    3 31.7% 43.8%
    4 66.6% 46.4%
    5 66.7% 45.7%
    6 31.9% 46.4%
    7 92.2% 0.0%
    8 0.0% 0.0%
    9 67.2% 47.5%
    10 32.3% 45.6%
    11 66.9% 45.3%
    12 32.3% 46.8%
    13 32.6% 50.1%
    14 33.0% 56.1%
    15 32.5% 45.0%
    16 67.2% 48.3%
    17 33.2% 56.9%
    18 33.3% 56.8%
    19 33.3% 56.3%
    20 66.8% 43.2%
    21 67.0% 46.4%
    22 32.6% 50.1%
    23 32.9% 51.2%
    24 67.6% 52.2%
    25 49.8% 47.8%
    26 50.0% 50.0%
    27 50.0% 50.2%
    28 50.0% 49.8%
    29 50.0% 49.4%
    30 50.0% 50.0%
    31 50.0% 49.7%
    32 50.0% 49.9%
    33 50.0% 49.7%
    34 50.0% 49.6%
    35 50.0% 50.1%
    36 50.0% 49.5%
    37 50.0% 49.9%
    38 50.0% 49.8%
    39 50.0% 49.9%
    40 50.0% 50.1%
    41 50.0% 50.2%
    42 50.0% 50.2%
    43 50.0% 50.1%
    44 50.0% 50.1%
    45 50.0% 50.0%
    46 50.0% 49.8%
    47 50.0% 49.8%
    48 50.1% 50.9%

    Картина совсем другая.


    8й бит первого байта МАС адреса по-прежнему соответствует Unicast-природе SRC-адреса в probe request пакете.


    7й бит в 92.2% случаев установлен в Local, т.е. с достаточной долей уверенности можно считать, что именно столько собранных адресов относится к рандомизированным, а менее 8% — к реальным. При этом распределение бит в OUI для таких реальных адресов примерно совпадает с данными предыдущей таблицы.


    Какому производителю, по OUI, принадлежат рандомизированные адреса (т.е. с 7м битом в «1»)?


    Производитель по OUI Доля среди всех адресов
    не найден в базе IEEE 62.45%
    Google Inc. 37.54%
    остальные 0.01%

    При этом все рандомизированные адреса, отнесенные к Google, принадлежат одному OUI c префиксом DA:A1:19. Что это за префикс? Давайте посмотрим в исходники Android.


    private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");

    Стоковый андроид в поиске беспроводных сетей использует специальный, зарегистрированный OUI, один из немногих с установленным седьмым битом.


    Вычислить реальный МАС из рандомного


    Посмотрим там же:


    private static final long VALID_LONG_MASK = (1L << 48) - 1;
    private static final long LOCALLY_ASSIGNED_MASK = MacAddress.fromString("2:0:0:0:0:0").mAddr;
    private static final long MULTICAST_MASK = MacAddress.fromString("1:0:0:0:0:0").mAddr;
    
    public static @NonNull MacAddress createRandomUnicastAddress(MacAddress base, Random r) {
            long addr;
            if (base == null) {
                addr = r.nextLong() & VALID_LONG_MASK;
            } else {
                addr = (base.mAddr & OUI_MASK) | (NIC_MASK & r.nextLong());
            }
            addr |= LOCALLY_ASSIGNED_MASK;
            addr &= ~MULTICAST_MASK;
            MacAddress mac = new MacAddress(addr);
            if (mac.equals(DEFAULT_MAC_ADDRESS)) {
                return createRandomUnicastAddress(base, r);
            }
            return mac;
        }
    

    Адрес целиком, либо его младшие три байта, это чистый Random.nextLong(). «Патентованное восстановление реального МАС» — надувательство. С большой долей уверенности можно ожидать, что производители Android-телефонов применяют и другие, не зарегистрированные OUI. Исходников iOS у нас нет, но скорее всего там применен схожий алгоритм.


    Вышесказанное не отменяет работу других механизмов деанонимизации Wi-Fi абонентов, основанных на анализе других полей probe request фрейма, или корреляции относительной частоты посылаемых устройством запросов. Однако достоверно отследить абонента внешними средствами крайне проблематично. Собираемые данные больше подойдут для анализа средней/пиковой нагрузки по местоположению и времени, на основе больших чисел, без привязки к конкретным устройствам и людям. Точные данные есть только у тех, кто "внутри", у самих производителей мобильных ОС, у установленных приложений.


    Что может быть опасного в том, что кто-то другой узнает МАС-адрес вашего устройства? Для проводных и беспроводных сетей можно организовать атаку "отказ в обслуживании". Для беспроводного устройства, к тому же, с некоторой вероятностью можно зафиксировать момент появления в месте, где установлен сенсор. Подменой адреса можно попробовать "представиться" вашим устройством, что может сработать, только если не применяется дополнительных средств защиты (авторизация и/или шифрование). 99.9% людей здесь не о чем волноваться.


    МАС-адрес сложнее, чем кажется, но проще, чем мог бы быть.

    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 68

      +2
      И не забываем о малом, но возможном варианте получить коллизию на свитче.
      Который берет 2 байта влан, 6 байт от mac и в сумме пакует их в 6 байт.
      Поэтому 2 разных mac могут оказаться одним и тем же. Но редко.
        +2
        А можете подробнее расписать этот случай? В каком случае свич применяет такую «запаковку»?
        +1
        вот не всегда
        0
        «Патентованное восстановление реального МАС» — надувательство.

        А разве кто-то заявлял о патентах?
        Так, только маркетологи для красного словца…
          0
          Исторически адреса прошивались в ПЗУ чипсета сетевой карты без возможности их модификации без флеш-программатора, но в настоящее время адрес может быть изменен программно, из операционной системы.


          Кхм.
          Исторически, где-то во второй половине 90х своими руками и прилагавшейся утилиткой под дос менял мак на еще isa'шной сетевухе, как бы не соврать — еще с двумя, BNC+TP разъемами.
          По причине случившейся коллизии мак-адресов в сетке.
            +6
            Та утилитка (если сетевуха была из NE2000) как раз перепрошивала его в EEPROM :)
              0

              Более того, старенькие сетевые карты (3com) и некоторые на чипсете Realtek вполне официально используются в качестве программаторов (см. Flashrom)

              0
              Вот тоже менял и сетевуха тоже была комбинированная.
              0
              Спасибо за статью, интересно было почитать. Для меня стало новостью, что можно купить себе собственный блок MAC-адресов всего за $755)
                +2
                Только смысла в нем нет никакого, если вы не собираетесь производить свои устройства.
                Здесь интереснее другие вопросы, например, насколько «законно» (соответствует разным политикам IEEE) изменять MAC контроллера, который произвел не ты на свой купленный, например в конечном устройстве.

                А вообще, вопрос в цене и связях. Вот отменили на CA/B Forum SSL для IP адресов (и доменов .local), но 1.1.1.1 его имеет.
                +3

                Давным давно я работал в поддержке интернет провайдера. Запомнился пользователь, у которого интернет то работал, то нет. Оказалось, что у него mac адрес был полностью забит нулями, у кого-то другого в сети, судя по всему, тоже. Надиктовал ему от балды новый mac и всё починилось.

                  +1
                  Подобное сплошь и рядом творится. Был клиент, который получал IP-адреса от DHCP и потом руками их прописывал как статику (зачем?!). Само собой, когда какой-то компьютер долго не использовался (трое суток), аренда отменялась и IP мог быть выдан кому угодно (в том числе, клиенту другой компании). Потом тот компьютер в первой организации включали и в сети начинались коллизии. Сошлись на том, что сдали в аренду клиенту целую подсеть, ибо уж очень он хотел прописывать статику.
                    +2
                    клиент, который получал IP-адреса от DHCP и потом руками их прописывал как статику (зачем?!)

                    Ну, например, клиент/его сисадмин не умел правильно настраивать nat/firewall/что-то ещё при получении адреса по dhcp.
                      +1
                      «Статика по DHCP» — реальный юзкейс. Криворукие админы провайдера настраивают DHCP сервер так, что адрес не всегда отдается или просто сеть хреновая по физике. И у клиента периодически (но регулярно) нет коннекта, винда в панике — клиент психует. Но если прописать статику, то ничего не отваливается, или отваливается, но клиент не замечает. Все спокойны — все хорошо.
                        0
                        Это не всегда отвечает решаемым задачам. В том случае, о котором я говорил, клиенту нужен был прямой выход в интернет на каждом компьютере со своим собственным IP, но платить за аренду подсети по началу клиент был не готов :)
                      +2

                      Однажды пришла нам партия телефонов Avaya в количестве 150 штук с одинаковыми МАС ( примерно по 5-10 штук совпадали). Ставить мы их начали не сразу, а по мере требования и в разных вланах. Но вот руководство решило собрать все ip телефоны в один влан… То то же мы поразвлекались.

                        +1
                        И на корпусе тоже были нанесены одинаковые MAC?

                        Потому что, если да — то это один разговор (подделка? рефаб?), если нет — другой (кто-то не очень прямыми руками ковырял софт/обновлял).
                          0
                          На проблемных телефонах МАС не совпадал с наклейкой на корпусе. ТП AVAYA выслала необходимый софт для изменения МАС-адресов.
                          0
                          Был баг, описан у Avaya, при обновлении определенной модели на определенную прошивку он в сбрасывал MAC адрес на определенный. У нас так полегло порядка 30 телефонов. Причем все были в одном стеке свитчей.
                          0
                          Старые D-Link 620 под старой OpenWRT выдают мак '11:22:33:44:55:66', если не вмешаться руками. Забавно на это смотреть, если подключение PPPoE у провайдера =)))
                          +5
                          Вспоминается байка о том как в Microsoft разбили молотком сетевую карточку, чтоб гарантировать уникальность GUID-а.
                            0

                            шикарная история

                            0
                            Адрес целиком, либо его младшие три байта, это чистый Random.nextLong(). «Патентованное восстановление реального МАС» — надувательство.

                            Смотря какой рэндом. Если это псевдо-случайный генератор, то последовательность вполне восстанавливается. Например, следующий вывод Math.random() в браузере можно вычислить по трём предыдущим. Один человек так даже онлайн-лотереи выигрывал.

                              0
                              Это SecureRandom(). Некоторое описание реализации здесь.
                              –1
                              C iOS7 уже не получить MAC адрес
                                +1

                                Есть неточность утверждение в статье что в сети не должно присутствовать идентичных mac адресов. В современных сетях это встречается очень часто, единственное условие — адреса должны быть уникальными в пределах одного L2 домена АКА vlan. В общем случае mac может и повторяется постоянно

                                  +2
                                  Подменой адреса можно попробовать "представиться" вашим устройством, что может сработать, только если не применяется дополнительных средств защиты (авторизация и/или шифрование). 99.9% людей здесь не о чем волноваться.

                                  В современном мире это далеко уже не так. Многие публичные сервисы привязывают MAC устройства к номеру телефона — этого требует закон об обязательной идентификации абонентов, причём не только в России.


                                  Ну а дальше дело техники: сканируем эфир, подменяем MAC и делаем безобразия от чужого имени. А товарищ майор разбираться потом уже не будет. А самое безобидное, чего можно добиться подменой MAC — это подключение к чужому оплаченному Wi-Fi в метро.

                                    +3
                                    Не пользуйтесь вайфаем в метро, да и вообще в публичных местах, пока повсеместно не внедрят Hotspot 2.0.

                                    Все гостевые сервисы должны привязывать МАС к номеру телефона. Однако тот закон не регулирует механику передачу привязки товарищу майору. На практике интеграция авторизации с СОРМ реализована только у крупных операторов.
                                      +3
                                      Не пользуйтесь публичный Wi-Fi даже после внедрения Hotspot 2.0.
                                      Кстати, в Android 10 есть возможность использования случайного MAC в каждой новой сети:
                                      ibb.co/BnzHfsK
                                    +1
                                    Восьмой (с начала) бит первого байта МАС адреса называется Unicast/Multicast битом и определяет,

                                    Как вы биты считаете?
                                    Википедия говорит о двух младших битах первого байта.
                                    На картинке (с википедии) как-бы тоже b0 и b1.
                                      0

                                      Little-endian vs big-endian ?

                                        +2
                                        Little-endian vs big-endian — это про то, как два (или более) соседних байта byte0 byte1 формируют целое число: byte0 + byte1*256 или же byte1 + byte0*256.
                                        Когда разговор идет об одном единственном байте, никаких Little-endian vs big-endian нет, так как мы не можем прочитать байт частично, мы всегда читаем его целиком.
                                          +2
                                          Но в сети физическая передача-то последовательная. Так что тоже возможны два порядка. И в Ethernet первым идет именно младший бит. Поэтому он и выбран под признак Unicast/Multicast, чтобы коммутатору (или получателю) не пришлось весь байт собирать, а прямо по первому биту адреса назначения, который тоже первый в заголовке, можно было определить, в какую таблицу смотреть.
                                            +2
                                            Это все правильно, но в статье речь идет о представлении MAC адреса в памяти PC.
                                            Это представление как-то там соответствует последовательным битикам на канальном уровне,
                                            пикам на осциллографе, whatever.
                                            Но я не знаю, как, и знать не хочу в данный момент, ибо мы все равно в конечном счете обсуждаем представление в памяти PC.

                                            Итого.
                                            В статье на ВИКИ говорится, что младшие биты b0 и b1 зарезервированы под U/M и G/L.
                                            Окей, топикстартер приводит картинки из ВИКИ с битами b0 и b1, но почему-то называет их старшими (7 и 8 с начала).
                                            Мне это не понятно, об этом и вопрос.
                                              0
                                              Вообще-то топикстартер называет их не старшими, а «восьмой (с начала)» и «седьмой (с начала)». Я это воспринял как «последний и предпоследний», что вообще-то неверно, ибо единственное место, где у бит в байте есть порядок — это сеть, и там они первый и второй. О чем и написал. А написал как комментарий к фразе «так как мы не можем прочитать байт частично, мы всегда читаем его целиком», которая тоже неверна (не всегда), т.к. в проводе байт именно передается и читается по битам.
                                                0
                                                Моя фраза «так как мы не можем прочитать байт частично, мы всегда читаем его целиком»
                                                относилась к проблеме «Little-endian vs big-endian» в памяти PC.

                                                Вопрос последовательности передачи битиков каждого байта на канальном уровне — это уже не «Little-endian vs big-endian» в памяти PC, а какая-то другая проблема.

                                                Уверен, что у нее есть свое имя в среде инженеров, но это совершенно отдельный вопрос от программирования.
                                                Программисты не знают, что там на канальном уровне.

                                                Вообще, если подумать, раз network byte order нужен для того, чтобы сравнивать получаемые по сети числа по первым байтам (первым — значит старшим), то тогда логично предположить, что в каждом байте старшие биты тоже идут первыми на канальном уровне.
                                                Тогда можно сравнивать вообще по первыи битам.

                                                Отсюда, возможно, идет путаница у ТС.
                                                  0
                                                  Другая, да. Тем не менее это ситуация, когда байт читается не весь сразу, и порядок битов существует.

                                                  А в памяти — да, там байт неделим, разумеется.
                                                    +1
                                                    Сорри, я уже десять раз исправил коммент.
                                                    Таки пишут, что в Ethernet byte order — BE, а bit order — LE.
                                                    www.linuxjournal.com/article/6788
                                        +3
                                        Давайте разберемся.

                                        Для начала, Little endian/Big endian имеет отношение только к порядку байт и только при их сетевой передаче, причем тогда, когда передаются числа типа short и long. Не наш случай. МАС адрес-просто последовательность из 6 идущих подряд байт, без всяких трюков по их перестановке.

                                        Биты в байте (в его двоичном представлении) принято именовать справа налево, от младших бит к старшим потому, что младшие биты отвечают за меньшие, в алгебраическом смысле, числа. Считать же биты можно как угодно, и поскольку мы находимся в регионе, где в письме и чтении принят порядок слева направо, я считаю биты в байтах с первого слева. Тем более такой способ разумен, когда в контексте статьи обсуждаем последовательности из 48 бит, идущих подряд с первого по шестой байт слева направо.
                                          +2
                                          А когда числа десятичные записываете, младшая цифра с какой стороны?
                                            0
                                            Младшая справа, первая слева.
                                            +3
                                            Я вас понял :)

                                            Право-лево — это все вкусовщина. Я видел как справо-налево, так и слева-направо.
                                            Важно именно то, какая степень двойки будет стоять при данном бите при переводе в число.

                                            Вобщем, лучше бы вы называли биты как на картинке из вики, меньше было бы путаницы.
                                            Ибо никаких оснований у вашей перенумеровки бит, кроме вкусовщины, нет :)
                                              0
                                              Возможно, но тогда бы обе мои таблицы распределения единиц выглядели (сверху вниз) бы как последовательности 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 и так далее, что сорвало бы крышу у большинства читателей.
                                                +1
                                                Ну, если бы вы в таблице еще биты передвинули, то биты оказались бы в том порядке, в каком они идут на канальном уровне.
                                                То есть, b0 и b1 были бы первыми.
                                                И это имело бы дополнительный дидактический смысл.
                                          +4

                                          вспомнилась та маленькая радость, когда провайдер прописывал МАС адрес сетевой карты (чтобы покупали на каждый комп отдельное подключение), а у роутера была функция клонирования МАС адреса.

                                            +1
                                            А ещё были ситуации, что некоторые из подобных роутеров при начальном включении слали пакет с оригинальным MAC-адресом, а потом клонированным. Что ловилось провайдером, и если он блокировал не на MAC-адреса, а на количество устройств, то роутер блокировался и пользователь долго чесал репу, что же не так.
                                              0
                                              А ещё какой-то из Длинков при запуске выдавал все маки локалки провайдеру, что приводило к бану порта у провайдера.
                                            0

                                            Тут, видимо, все знают, но для меня было новостью, что MAC меняется в операционке, но не в самой сетевой карте. Был случай, когда я через некий софт по винду сменил mac на сетевой карте, и он был для меня удобочитаем. После я пытался включить комп по WOL, но не выходило. Потом оказалось, что он включается, но по своему заводскому MAC, а не по тому, который я ему присвоил.
                                            Ну или это как-то по другому работает.

                                              0

                                              Ну, все логично. Не вижу поводов для удивления )

                                                +1
                                                Ну может там энергонезависимая память для мака и драйвер может туда писать…
                                                  0

                                                  А почему она должна быть энергонезависимой? Она же постоянно под питанием. Даже при выключенной системе.

                                              +1

                                              Спасибо, интересно. Подскажите, а если устройство на свалку что с mac адресом?

                                                +1

                                                оно никуда не освобождается )

                                                0

                                                Были встроенные материнки, которые в сети не работали без прописывания руками мака (был маленький, причину не выяснил)
                                                А вот потом встречалось такое — комп, подключенные через второй порт ip-телефона переставал (непостоянно!) работать с сервером smtp (25порт), остальное работало без сбоев. И вылечилась сменой мака компа. Повторяющихся маков не было при этом.

                                                  +2
                                                  По поводу одинаковых MAC-адресов: поимели много веселья, когда два виртуалочных хоста решили своим виртуалкам раздавать одинаковые адреса (как я понимаю, префикс там генерируется при установке, а дальше просто счётчик). Так что, тема с виртуалками (особенно с бекапом-рестором и клонированием) может хорошо помочь в понимании проблем работы сети с одинаковыми адресами.
                                                    0
                                                    Тоже ожидал, в статье обо всем что я хотел знать, прочитать информацию о MAC и виртуалках.
                                                      +1
                                                      Здесь все о очень просто. Если у вас две сетевые карты имеют одинаковый МАС адрес в одном сетевом сегменте (влане), то с точки зрения коммутатора, который этот сегмент (VLAN) обслуживает, будет наблюдаться эффект «mac flapping». По сути это «прыгание» адреса между портами. Что с этим будет коммутатор делать-зависит от вендора. В большинстве случаев — просто обновлять свою таблицу коммутации. Можно настроить блокировку, вот например.
                                                        +1
                                                        Ну прочитайте как генерируется GUID в Vmware и как он потом используется с точки зрения SCSI команд на СХД.
                                                      +4
                                                      Что будет, если в сети будет присутствовать два устройства с одним МАС адресом? Все зависит от логики сетевого оборудования (проводного роутера, контроллера беспроводной сети). Скорее всего, оба устройства или не будут работать, или будут работать с перебоями.

                                                      Построили у нас новую проходную. И поставили на ней 2 турникета и 4 терминала для бесконтактных пропусков. И заметили, что 2 терминала что-то барахлят — чсто не срабатывают с первого раза.

                                                      Я пять (пять, Карл!) часов пытался найти причину пропажи связи. Два терминала работают относительно стабильно (в пределах разумного, т.к. сетевухи у них какие-то крайне убогие на полудуплексных 10 Mbit/s и дпускают частые потери пинга), а две показывают странную картину — несколько секунд пингуются, потом примерно такое же время не пингуются совсем, потом снова пингуются.

                                                      Я проверил все кабели и коннекторы. Я втыкивал их в другой свитч. Я плясал с бубном по жопе.
                                                      Апофеозом стала ситуация, когда я подключил 2 терминала к одному свитчу, два к другому, свитчи соединил между собой и к каждому подключил ноут. На ноутах на четырех CLI шли пинги. Вернее, на одном пинговались три терминала из четырех и на втором три из четырех, но не пингуемые при этом не совпадали. А я тупо смотрел на эту картину и охреневал…

                                                      В конце-концов я собрал всё, как было, пошел к себе и тупо проарпил сеть (ну надо же хоть что-то делать). И… глаз зацепился за два одинаковых MAC с разными IP. И это были IP этих двух терминалов.

                                                      Вообще-то, я человек культурный и по телефону на поставщиков матом не ругаюсь. Но в данном случае решил сделать исключение. Пять часов! Пять!!!
                                                        +4

                                                        1:1 наша картина — безопасники жаловались на плохо работающий "считыватель", поставщик хлопал глазами, подключал всё к своему ноуту напрямую — работает идеально, возвращал в "общую" сеть — глюки. Отправил к моим сетевикам, те стали валить на "тупые 10-имегабитные интерфейсы", а причина арпилась с первой же попытки. Теперь если кто-то включает что-то новое (особенно "пришедшее с али"), и начинаются чудеса, сразу отправляю искать дублирующиеся/дефектные (00-00-00-00-00-00 и прочие 11-22-33-44-55-66) MAC-адреса.

                                                          0
                                                          Считыватель, случайно, не BioLink FingerPass? :D
                                                            +1

                                                            Нет, это был не BioLink, но "российский" считыватель карточек Mifare, но сути это не меняет — производители массово выпускаемой мелочёвки (управляемые по сети/WiFi релюшки, IP-камеры, датчики движения и т.п.) за уникальностью MAC-адресов следят не особо строго.

                                                              0
                                                              Ну так у нас тоже были проблемы со считывателем Mifare. Забавно было бы, если того же бренда :)

                                                              И не только производители мелочевки этим грешат.
                                                              У нас есть (или были) бездисковый терминал и принтер с одним и тем же MAC, что несколько странно.
                                                              Производитель принтера и сетевухи были почти разные. Принтер HP, а сетевуха в терминале — 3COM. Возможно, пул MAC-адресов после слияния перешел от 3COM к HP и они особо не разбирались, что там уже утилизировано.
                                                        +1
                                                        Уникальны ли МАС адреса? В теории да, поскольку каждый из производителей устройств (владельцев блока МА) обязан обеспечивать уникальный адрес для каждого из выпускаемых им сетевых адаптеров. Однако некоторые производители чипов, а именно:

                                                        Это не совсем так. Уже было несколько случаев, когда вендор прошивал одинаковые маки в сетевухи.
                                                        От этого случались проблемы в виртуализации, связанные с генерацией GUID
                                                          0
                                                          В МАС адресе 48 бит, из которых «полезными» можно считать 46… что даёт 2^46

                                                          В не по трём октетом производителя считать нужно?
                                                          Если с бюрократией, то адресов не так уж и много…
                                                            0
                                                            Бывают EEPROM, в которые на заводе, в read-only область прошивают гарантированно уникальный МАС адрес. Интерфейс I2C или SPI. Например 24AA02E48. Паяем такую на плату и при старте вычитываем и используем MAC. Бонусом получаем немного EEPROM памяти общего назначения.
                                                              0
                                                              Интересно, а много ли случаев, когда один вендор использует в MAC-адресе OUI другого вендора? Например, Cisco в некоторых случаях использует MAC-адреса Citrix при отправке STP BPDUs из vPC на коммутаторах Nexus:
                                                              www.cisco.com/c/en/us/support/docs/switches/nexus-7000-series-switches/211494-Use-of-Source-MAC-Address-Field-in-Spann.html#anc12

                                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                              Самое читаемое