{"id":559,"date":"2014-12-12T15:48:29","date_gmt":"2014-12-12T13:48:29","guid":{"rendered":"https:\/\/s3lf.de\/blog\/?p=559"},"modified":"2014-12-12T15:51:19","modified_gmt":"2014-12-12T13:51:19","slug":"the-mac-address-can-not-be-the-multicast-address-fix-for-cisco-routers-wag160n","status":"publish","type":"post","link":"https:\/\/s3lf.de\/blog\/2014\/the-mac-address-can-not-be-the-multicast-address-fix-for-cisco-routers-wag160n\/","title":{"rendered":"&#8222;The MAC address can not be the multicast address&#8220; fix for Cisco routers WAG160N"},"content":{"rendered":"<p>We have one (a bit old) Linksys \/ Cisco ADSL router of the type WAG160N. Recently we decided to set up MAC\u00a0filtering (in addition to a WPA password of course). We only allow access to the WiFi after we know which MAC the person&#8217;s device has. The reason is that we have only a very narrow connection speed and want to be able to see if anybody is (unintentionally) using to much bandwidth &#8211; due\u00a0example by automatic updates.<\/p>\n<p>All was fine for some days until we tried to add another MAC address to the filter and got the message &#8222;The MAC address can not be the multicast address&#8220;. It was an address starting with &#8222;5C: &#8230;&#8220; which does not seem to be a multicast address at all according to Wikipedia.<\/p>\n<p><a href=\"https:\/\/s3lf.de\/blog\/wp-content\/uploads\/2014\/12\/bug.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-565\" src=\"https:\/\/s3lf.de\/blog\/wp-content\/uploads\/2014\/12\/bug-300x226.png\" alt=\"bug\" width=\"300\" height=\"226\" srcset=\"https:\/\/s3lf.de\/blog\/wp-content\/uploads\/2014\/12\/bug-300x226.png 300w, https:\/\/s3lf.de\/blog\/wp-content\/uploads\/2014\/12\/bug-624x470.png 624w, https:\/\/s3lf.de\/blog\/wp-content\/uploads\/2014\/12\/bug.png 961w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>I digged into the webinterface and found that there is a JavaScript function <code>isMacMulticast<\/code><\/p>\n<p><code><br \/>\nfunction isMacMulticast(mac)<br \/>\n{<br \/>\nvar mac1=mac.toUpperCase();<br \/>\nvar byte=parseInt(mac1.substr(0,2));<br \/>\nif((byte&amp;0x1)==0x1)\/\/if lowest bit of first byte is 1, then it is multicast address.<br \/>\nreturn true;<br \/>\nelse<br \/>\nreturn false;<br \/>\n}<br \/>\n<\/code><\/p>\n<p>While I think it shouldn&#8217;t it does return &#8222;true&#8220; for the mac address starting with 5C &#8211; but the lowest bit of the hexadecimal value 5C is not 1! The should have used<\/p>\n<p><code> byte=parseInt(\"0x\" + mac1.substr(0,2));<br \/>\n<\/code><\/p>\n<p>Quickly I found a workaround for this problem.<\/p>\n<p>Just open your browser&#8217;s developer&#8217;s console and enter<\/p>\n<p><code><br \/>\nisMacMulticast = function(e) { return false; }<br \/>\n<\/code><\/p>\n<p>After this you can save the settings. There is no router-side validation at all.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We have one (a bit old) Linksys \/ Cisco ADSL router of the type WAG160N. Recently we decided to set up MAC\u00a0filtering (in addition to a WPA password of course). We only allow access to the WiFi after we know which MAC the person&#8217;s device has. The reason is that we have only a very [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-559","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/posts\/559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/comments?post=559"}],"version-history":[{"count":4,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/posts\/559\/revisions"}],"predecessor-version":[{"id":566,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/posts\/559\/revisions\/566"}],"wp:attachment":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/media?parent=559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/categories?post=559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/tags?post=559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}