6

Я пытаюсь зарезервировать IP-адрес для моего настольного ПК в DIR-825, и когда я ввожу все данные и нажимаю кнопку Сохранить, он говорит мне, что MAC-адрес недействителен.

Мой MAC-адрес выглядит примерно так 1C:BD:B9:xx:xx:xx .

неверный MAC-адрес

Я могу добавлять и сохранять другие MAC-адреса с других моих сетевых устройств, но не с этого. Поэтому я попытался изменить формат, включив в него тире вместо точек с запятой, но он по-прежнему считался недействительным. Затем я заметил, что у большинства других моих вещей есть MAC-адрес, который начинается с 00, поэтому я попытался изменить 01 на 00, и это было принято.

Да, MAC-адрес был принят, и это было очень мило, но, конечно, это неправильный MAC-адрес. Почему он примет адрес, если он начинается с 00, а не если он начинается с 01?

(Интересно: первые 3 байта, включая оскорбительную часть, принадлежат D-link)

Я дважды прошил FW, с 2.01EU до 2.01EU, а затем обновил до 2.06EU, но это не решило проблему, и маршрутизатор все еще запоминает старые настройки, даже если они не представлены в интерфейсе.

После перепрошивки маршрутизатора с произвольным FW веб-интерфейс выглядит пустым, но маршрутизатор работает так, как если бы он все еще имел ту же конфигурацию, хотя в инструкциях говорилось, что процедура перепрошивки сотрет мои настройки и данные.

Даже когда я восстановил заводские настройки, он все равно запомнил настройки.

Заводские установки

В итоге я выполнил «процедуру 30/30/30», в которой вы удерживали кнопку RESET в течение 30 секунд, одновременно выключая и снова включая питание. Это вызывает "Система обновления прошивки". Я выбираю свой файл FW и отправляю его на роутер для перепрошивки.

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

  1. Почему это происходит, почему он не принимает MAC-адрес? Есть ли объяснение этому?

  2. Как заставить его принять проклятый адрес?

Обновить:

Предполагается, что для этой проблемы нужен хак, когда вы перезаписываете функцию check_mac одним из следующих кодов на стороне клиента.

Code 1:
javascript:alert(check_mac=function (){return true;});

Code 2:
javascript:(function(){ window['check_mac'] = function() { return true; } })();

Я попробовал оба из них, но это не сработало. Как вы выполняете этот код в любом случае? Достаточно ли просто набрать его и нажать Enter из браузера?

Источник:

Я спросил об этом D-Link, и мне прислали бета-версию FW 2.08EU, бета 4, я думаю. И они даже не выпустили официальную финальную версию 2.06EU, насколько мне известно. Этот предлагается через сам маршрутизатор, но его нельзя загрузить с любого из многих локализованных веб-сайтов D-Link или с их глобального корпоративного веб-сайта. И все же они работают на 2.08?? Не имеет смысла ...

Вот выдержка из исходного кода для функции резервирования MAC.

function save_reserved(){
    var index = 0;
    var ip = get_by_id("lan_ipaddr").value;
    var mask = get_by_id("lan_netmask").value;
    var reserved_name = get_by_id("reserved_name").value;
    var reserved_ip = get_by_id("reserved_ip").value;
    var reserved_mac = get_by_id("reserved_mac").value;
    var start_ip = get_by_id("dhcpd_start").value;
    var end_ip = get_by_id("dhcpd_end").value;

    var ip_addr_msg = replace_msg(all_ip_addr_msg,_ipaddr);
    var Res_ip_addr_msg = replace_msg(all_ip_addr_msg,"Reservation IP");
    var start_ip_addr_msg = replace_msg(all_ip_addr_msg,"Start IP address");
    var end_ip_addr_msg = replace_msg(all_ip_addr_msg,"End IP address");

    var temp_ip_obj = new addr_obj(ip.split("."), ip_addr_msg, false, false);
    var temp_mask_obj = new addr_obj(mask.split("."), subnet_mask_msg, false, false);
    var temp_res_ip_obj = new addr_obj(reserved_ip.split("."), Res_ip_addr_msg, false, false);
    var start_obj = new addr_obj(start_ip.split("."), start_ip_addr_msg, false, false);
    var end_obj = new addr_obj(end_ip.split("."), end_ip_addr_msg, false, false);

    if(reserved_name == ""){
        alert(GW_INET_ACL_NAME_INVALID);
        return false;
    }else if(!check_LAN_ip(temp_ip_obj.addr, temp_res_ip_obj.addr, TEXT033)){
        return false;
    }else if(!check_address(temp_res_ip_obj, temp_mask_obj, temp_ip_obj)){
        return false;
    }else if (!check_domain(temp_res_ip_obj, temp_mask_obj, temp_ip_obj)){
        alert(TEXT033+" " + reserved_ip + " "+GW_DHCP_SERVER_RESERVED_IP_IN_POOL_INVALID_a);

        return false;
    }else if (!check_mac(reserved_mac)){
        alert(KR3);
        return false;
    }

    if (check_resip_order(temp_res_ip_obj,start_obj, end_obj)){
            alert(TEXT033+" " + reserved_ip + " "+GW_DHCP_SERVER_RESERVED_IP_IN_POOL_INVALID_a);
            return false;
        }
    //check same ip/mac start   
        var index = parseInt(get_by_id("edit").value);
        var edit_tmp = get_by_id("edit").value;
        for(m = 1; m < DataArray.length; m++){
                        if (m==index){
                 continue;
                }else{
                if(get_by_id("reserved_name").value.length > 0){
                    if((get_by_id("reserved_name").value == DataArray[m].Name)){
                        alert(sp_name+" ("+ get_by_id("reserved_name").value +") "+sp_alreadyused); 
                        return false;
                    }
                }
                if(reserved_ip.length > 0){
                    if((reserved_ip == DataArray[m].IP)){
                    alert(TEXT033+" ("+ reserved_ip +") "+sp_alreadyused);  
                        return false;
                    }
                }
                if(reserved_mac.length > 0){
                    if((reserved_mac == DataArray[m].MAC)){
                        alert(GW_DHCP_SERVER_RESERVED_MAC_UNIQUENESS_INVALID_a+" "+ reserved_mac +" "+GW_DHCP_SERVER_RESERVED_MAC_UNIQUENESS_INVALID_b);
                        return false;
                    }
                }

    }
        }
    //check same ip/mac end

    update_DataArray();

    var is_enable = "";
    if(get_by_id("edit").value == "-1"){     //add
        var i = get_by_id("max_row").value;
        var tb1 = get_by_id("table1"); 
        var oTr = tb1.insertRow(-1);
        var oTd1 = oTr.insertCell(-1);
        var oTd2 = oTr.insertCell(-1);
        var oTd3 = oTr.insertCell(-1);
        var oTd4 = oTr.insertCell(-1);
        var oTd5 = oTr.insertCell(-1);
        var oTd6 = oTr.insertCell(-1);

        if(parseInt(DataArray[i].Enable)){
            is_enable = "checked";
        }else{
            is_enable = "";
        }
        oTd1.innerHTML = "<center><input type=checkbox id=r_enable" + i + " name=r_enable" + i + " onClick='set_reserved_enable(" + i + ")' " + is_enable + "></center>"
        oTd2.innerHTML = "<center>" + DataArray[i].Name +"</center>"
        oTd3.innerHTML = "<center>" + DataArray[i].MAC +"</center>"
        oTd4.innerHTML = "<center>" + DataArray[i].IP +"</center>"
        oTd5.innerHTML = '<center><a href=javascript:edit_row('+ i +')\><img src=edit.jpg border=0 alt='+_edit+'></a></center>';
        oTd6.innerHTML = '<center><a href=javascript:del_row('+ i +')\><img src=delete.jpg  border=0 alt='+_delete+'></a></center>';
    }else{                                      //update        
        var i = parseInt(get_by_id("edit").value);
        if(parseInt(DataArray[i].Enable)){
            is_enable = "checked";
        }else{
            is_enable = "";
        }
        get_by_id("table1").rows[i].cells[0].innerHTML = "<center><input type=checkbox id=r_enable" + i + " name=r_enable" + i + " onClick='set_reserved_enable(" + i + ")' " + is_enable + "></center>"
        get_by_id("table1").rows[i].cells[1].innerHTML = "<center>" + DataArray[i].Name +"</center>"
        get_by_id("table1").rows[i].cells[2].innerHTML = "<center>" + DataArray[i].MAC +"</center>"
        get_by_id("table1").rows[i].cells[3].innerHTML = "<center>" + DataArray[i].IP +"</center>"
        get_by_id("table1").rows[i].cells[4].innerHTML = '<center><a href=javascript:edit_row('+ i +')\><img src=edit.jpg border=0 alt='+_edit+'></a></center>';
        get_by_id("table1").rows[i].cells[5].innerHTML = '<center><a href=javascript:del_row('+ i +')\><img src=delete.jpg  border=0 alt='+_delete+'></a></center>';
    }
    clear_reserved();
}

5 ответов5

4

У меня есть другое решение: если вы не хотите устанавливать бета-версию прошивки на DIR-825, у меня есть решение для вас. Я сделал это на моем DIR-825 rev. B Модель для ЕС с установленной версией прошивки: 2.01EU, пт, 22 мая 2009 г.

  1. Откройте Google Chrome
  2. Войдите в DIR-825 как администратор.
  3. Зайдите в настройки сети.
  4. Нажмите Резервировать и измените Имя компьютера, если необходимо.
  5. Нажмите F12, и откроется подсказка в Chrome.
  6. На вкладке «Консоль» (которая открывается по умолчанию) вставьте следующее и нажмите клавишу ВВОД на клавиатуре:

    check_mac = функция check_mac (mac) {var error = true; ошибка возврата; };

  7. Теперь снова нажмите F12.

  8. На сайте «Настройки сети» нажмите кнопку «Сохранить», и вы уже зарезервировали свое устройство.

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

1

Задача решена! Я его прошил 2.08EU beta 4. Это решило проблему, с которой у меня были определенные MAC-адреса как "недействительные". Однако это не решило первоначальную проблему, а также породило и другие проблемы. На данный момент я не удивлен этим фактом, поскольку уже более 2 лет использую это устройство вместе с другими устройствами D-Link.

Это всегда так, я решил решить небольшую проблему и в итоге тратить свои вечера и выходные на перепрошивку и вообще взламывать устройство, чтобы все заработало. В течение долгого времени все шло гладко, но в последнее время этот роутер особенно сильно работал. Как будто у него есть собственный разум. Это бесконечный лабиринт.

Так что вот решение MAC "недействительным" вопросом.

  1. Загрузите 2.08EU beta 4 от D-Link (примечание 1, примечание 2).

  2. Распакуйте двоичный файл (примечание 2).

  3. Подключите компьютер (примечание 2).

  4. Установите на компьютере статический IP-адрес (примечание 3).

  5. Откройте веб-браузер.

  6. Перейдите к маршрутизатору и выполните процедуру 30/30/30 (примечание 4).

  7. Перейти к компьютеру и перейти к 192.168.0.1 в браузере. Вы увидите страницу «Система обновления прошивки d-link». Выберите новый бинарный файл (примечание 5).

  8. Нажмите кнопку «Отправить» один раз и подождите не менее 5 минут (примечание 6).

  9. Теперь откройте новую вкладку в браузере или откройте новое окно браузера и перейдите к 192.168.0.1, и вы должны увидеть обычный веб-интерфейс.

Я сделал несколько замечаний по поводу этих шагов. Вам не нужно читать их, если вы знаете, что делаете.

ЗАМЕЧАНИЕ СТАРТ

Замечание 1. Имя файла:DIR825B1_FW208EUb04_beta.zip . Этот файл еще не публично доступен. Так что позвоните им или напишите им и попросите об этом. Обратите внимание, что этот файл предназначен только для европейских версий DIR-825 с версией H1 HW.

Примечание 2: При необходимости перенесите файл на компьютер, который вы планируете использовать для операции перепрошивки. Если у вас есть работающее подключение к Интернету на этом компьютере, вы можете загрузить файл непосредственно на этот компьютер, на первом этапе. Если нет, то вам придется загрузить файл с компьютера, имеющего доступ к Интернету, а затем каким-то образом перенести файл на второй компьютер, который вы будете использовать для операции перепрошивки. Обратите внимание, что компьютер, который вы используете для перепрошивки, должен иметь проводное соединение! Нет беспроводной связи! Вот почему я говорю вам это. Вы можете поделиться папкой со вторым компьютером и передать файл таким образом, или вы можете просто использовать USB-накопитель или другой носитель.

Замечание 3: Используйте 192.168.0.100 для IP-адреса (или любого другого значения, разрешенного диапазоном IP-адресов в ваших настройках), установите маску подсети на 255.255.255.0 и шлюз по умолчанию на 192.168.0.1 (или любой другой IP-адрес маршрутизатора).

Замечание 4: Вы будете знать, что находитесь в правильном режиме по мигающему оранжевому индикатору питания. Это просто для того, чтобы убедиться, что ВСЕ старые настройки типа барахла и т.д. ПОЛНОСТЬЮ удалены из памяти. Потому что, как я уже объяснял однажды, это устройство запоминает настройки, которые оно имело до этого, даже после предположительно выполнения "заводского сброса". Поэтому нажатие на "Восстановить заводские настройки" в веб-интерфейсе не поможет, равно как и однократное нажатие кнопки "СБРОС" на устройстве. Он неисправен по своей конструкции, это просто уловки, на самом деле он ничего не делает, например, если между внешним интерфейсом (интерфейсом) и внутренним интерфейсом (машиной) нет реальной связи. Все, что он делает, это удаляет пароль (в случае, если вы забыли свой) и удаляет ваши настройки для просмотра (но на самом деле они все еще запрограммированы в устройстве). Так что вам лучше сделать процедуру 30/30/30 на самом деле.

Замечание 5: имя файла должно быть DIR825B1_FW208EUb04_beta.bin .

Устройство будет мигать с новым FW и полностью перепрограммировано с настройками по умолчанию. Обратите внимание, что вы не добьетесь этого, если решите пройти через обычный веб-интерфейс маршрутизатора! Вы будете знать, что операция была выполнена успешно, так как индикатор питания будет гореть синим вместе с другими индикаторами.

Замечание 6. При выполнении операций такого типа здравый смысл не обновлять страницу, которую вы просматривали ранее.

ЗАМЕЧАНИЕ КОНЕЦ

Я думаю, что этот FW был выпущен в апреле 2012 года. Это то, что дата была назначена в любом случае. И я только что обнаружил, что не могу установить год на 2013! Годы меню только идет с 2002 по 2012 год. Это очень забавная "проблема". Спасибо D-Link! Приятный сюрприз на новый год.

лет меню

Это небольшая проблема на самом деле. Но приятно иметь возможность установить правильную дату и время, особенно если вы хотите проверить свои журналы, или даже больше, если вы отправляете журналы на сервер syslog или что-то в этом роде.

Но есть еще одна, более сложная проблема с этим FW. Смена пароля для WIFI невозможна. Я изменяю пароль и нажимаю кнопку сохранения, появляется 15-секундное диалоговое окно ожидания, притворяющееся сохраняющимся, и при повторном входе в систему я вижу по длине пароля, что изменения не были применены!

Здесь ниже вы увидите поле пароля для диапазона 2,4 ГГц.

изменить пароль для Wi-Fi на 2,4 ГГц

Пароль по умолчанию длиной 64 цифры. Я не люблю вводить пароль так долго. Поэтому мне нравится сокращать пароль по умолчанию с 64 до 16 цифр. И вот как это должно выглядеть.

изменить пароль для Wi-Fi на 2,4 ГГц с 16-значный пароль

Вы можете видеть, что длина пароля здесь короче. Но когда я нажимаю кнопку «Сохранить», а затем снова захожу и захожу на ту же страницу, поле снова показывает 64 цифры. Что объясняет, почему я не могу подключиться к своему недавно сохраненному паролю. Потому что это не было действительно спасено вообще.

Я попытался использовать мой старый 16-значный пароль здесь. Но это не имеет значения, даже если я использую пароль по умолчанию из 64 цифр, я все равно не могу сократить его до 16 цифр или изменить его на любой произвольный пароль. Я могу изменить его и нажать кнопку «Сохранить», но он возвращается к тому, что был раньше. Так что я действительно не изменяю это.

Так вот решение для этого.

  1. Перейдите в раздел "Настройка", "Параметры беспроводной сети" и нажмите кнопку "Мастер настройки беспроводной сети".

  2. Выберите "Назначить сетевой ключ вручную" и нажмите "Далее".

  3. Введите свой пароль для диапазона 2,4 и 5 ГГц соответственно и нажмите Далее.

  4. Запишите новый пароль и нажмите "Сохранить".

Вот как это должно выглядеть:

мастер настройки беспроводной сети

Это единственная страница / диалог, где вы можете изменить свой пароль для WIFI. Но вам не нужно устанавливать его вручную. Вы можете позволить маршрутизатору сгенерировать пароль, выбрав «Автоматически назначать сетевой ключ для диапазона 2,4 ГГц и 5 ГГц» на втором шаге выше. Но тогда вам придется запомнить (если можете) или записать все 64 цифры, и вам нужно будет ввести это для каждого клиента WIFI.

За исключением этой неисправности и отсутствия 2013 года в настройках, этот FW кажется стабильным. Я буду использовать это в течение некоторого времени и посмотрю, как это работает. Я установил дату на 31 декабря 2012 года. Я посмотрю, что будет после этого. Будет ли это вернуться к 2002 году? Как какая-то ошибка Y2K или что-то? Удивительно, как они забыли добавить опцию на 2013 год, когда работали с этим FW в 2012 году, который был предыдущим, а не каким-то отдаленным годом несколько десятилетий назад.

0

Введите в командной строке ipconfig -all (перейдите к началу поиска cmd и нажмите ввод). Из данного списка, скопируйте физические адреса и вставить их в фильтрующей коробке макинтоша, замените тир с двоеточием :

0

Почему он примет адрес, если он начинается с 00, а не если он начинается с 01?

Поскольку адреса имеют нечетное число в этой позиции, зарезервированы для многоадресной рассылки. Как говорится в сообщении об ошибке, 01 недействителен. Ваш компьютер не должен иметь такой MAC-адрес.

Из Википедии:

Если младший значащий бит старшего значащего октета адреса установлен в 0 (ноль), кадр предназначен для достижения только одного принимающего сетевого адаптера. [5] Этот тип передачи называется одноадресной. Кадр одноадресной передачи передается на все узлы в домене коллизий, который обычно заканчивается на ближайшем сетевом коммутаторе или маршрутизаторе. Только узел с совпадающим аппаратным MAC-адресом примет кадр; сетевые кадры с несоответствующими MAC-адресами игнорируются, если только устройство не находится в случайном режиме.

Если младший значащий бит старшего значащего адресного октета установлен в 1, кадр все равно будет отправлен только один раз; тем не менее, сетевые адаптеры примут решение принять его на основе критериев, отличных от соответствующего MAC-адреса: например, на основе настраиваемого списка принятых MAC-адресов многоадресной рассылки. Это называется многоадресной адресацией.

Я знаю, что есть некоторые запутанные вещи, касающиеся наименьшего значения по сравнению с наиболее значимыми битами, но если вы берете следующий адрес:

01:23:45:67:89:AB

Это относится к пункту в первой позиции: 01. Этот элемент должен быть четным, или его адрес зарезервирован для многоадресного использования и недействителен.

Обычно MAC-адрес устройства встроен в аппаратное обеспечение. Однако некоторые устройства, специальное программное обеспечение или служебные программы драйверов могут позволить вам изменить этот адрес. Если вы сами установите этот MAC-адрес на своем компьютере, вам следует изменить MAC-адрес вашего компьютера на другой действительный. Если ваш компьютер / сетевая карта поступили таким образом, обратитесь к продавцу, потому что это дефект, и если у вас есть какие-либо гарантии, они должны починить или заменить сетевую карту. Я бы сделал это, даже если вы найдете легкий обходной путь, потому что дефект здесь, вероятно, свидетельствует о других проблемах.

-1

Я столкнулся с аналогичной проблемой с моей моделью DIR-816, поэтому я удалил двоеточия между ними и добавил MAC-адрес, и это сработало.

Например, вместо ввода 44:94:fc:96:36:7f я ввел 4494fc96367f .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .