URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 5913
[ Назад ]

Исходное сообщение
"Заменить на сетевухе MAC адрес!!!"

Отправлено Walker , 06-Мрт-01 15:11 
Можно ли такое сделать и с помощью чего ??

Содержание

Сообщения в этом обсуждении
"RE: Заменить на сетевухе MAC адрес!!!"
Отправлено Dron , 06-Мрт-01 15:20 
На большинстве сетевух можно.
Если скажешь какая сетевуха конкретно тебя интересует, я скажу что нужно доработать с ядре.
Надо добавить пару функций в ioctl, и ты из любой программы сможешь менять мак.

"RE: Заменить на сетевухе MAC адрес!!!"
Отправлено ivo , 07-Мрт-01 15:43 
man ifconfig
ifconfig eth0 down
ifconfig eth0 hw ether 00:01:02:03:04:...
ifconfig eth0 up
что-то типа этого

"RE: Заменить на сетевухе MAC адрес!!!"
Отправлено Dron , 11-Мрт-01 15:53 
Я подумал что в вопросе явно что-то не описано!
Какая система?
Откуда ты хочешь менять мак адреса?
с консоли?
или программным способом?

кстати во FreeBSD у ifconfig параметра hw нет, есть lladdr...

глубинно происходит ioctl - SIOCSIFLLADDR,
Только он далеко не всеми сетевухами поддерживается.


"RE: Заменить на сетевухе MAC адрес!!!"
Отправлено Lamerchaynik , 12-Мрт-01 22:09 
Выставил я lladdr 12:34:56:78:90:12 - скушал, но сетка перестала работать ;). down, up - заработала сетка, ifconfig показывает 12:34:56:78:90:12, но когда пингую с другой машины и смотрю кэш arp, то вижу её родной мак, а не этот новый. Что это значит, моя сетевуха не поддерживает смену мак-адреса? Или надо в ядре что-то крутить и перекомпилить? (ioctl - как имненно? Допустим у меня он называется de0, tulip)

"RE: Заменить на сетевухе MAC адрес!!!"
Отправлено Dron , 13-Мрт-01 16:32 
Ну во первых ARP записи живут долго... У меня около 20 минут... то есть если ты на одной тачке поменял мак, то с другой тачки пакеты ходить не будут, надо сперва прибить ARP запись... или с изменившейся тачки разослать всем что нибудь...

Теперь по поводу драйвера...
Хм... помоему это не должно работать...
ifconfig не каких варнингов не выдает?
типа того:
ioctl (set lladdr)
?


"RE: Заменить на сетевухе MAC адрес!!!"
Отправлено Lamerchaynik , 14-Мрт-01 14:19 
Время жизни кэша arp я учёл, там всё в норме.
...дык и не работает фактически :)
и ворнингов нет никаких, тихо показывает себе новый мак-адрес, фактически продолжая использовать старый. Пинг сам себя с последующей проверкой кэша arp это подтверждает. Так и что делать с этим ioctl, сделайте одолжение, объясните чайнику, желательно степ-бай-степ :) (ката у меня de0: DEC 21142 [10-100Mb/s] ), может ещё кому пригодится.

"RE: Заменить на сетевухе MAC адрес!!!"
Отправлено Dron , 14-Мрт-01 14:31 
Ну надо в pci/if_de.c добавить парочку ioctl

Вот подробнее...

находишь функцию tulup_ioctl,
Там идет switch по cmd...

Находишь там такое место:

                default: {
                    tulip_init(sc);
                    break;
                }

И перед этим добавляешь:

        case SIOCSIFLLADDR:
                /* Set HW addr for adapter! */
                memcpy (sc->tulup_enaddr, ifr->ifr_addr.sa_data, 6);
                tulup_init (sc);

                break;

        case SIOCGIFLLADDR:
                /* Get HW addr for adapter! */
                ifr->ifr_addr.sa_len = 6;
                ifr->ifr_addr.sa_family = AF_LINK;
                memcpy (ifr->ifr_addr.sa_data, sc->tulup_enaddr, 6);

                break;

Вот, и тогда сможешь менять и получать эзернет адреса, только не гарантирую что изменения будут отражаться в ifconfig...

PS: только щас все табы порежуться... :( ну разберешься... :)