Возможно ли задать мак адресс для соедиения с конкретным шлюзом. По идее мак берется по результатам работы арп запроса. А мне нужно задать мак изначально для конкретного шлюза.
Как задать MAC адрес для шлюза
таблицу arp можно править руками, кажись
arp -s address hw_addrВозможно ли задать мак адресс для соедиения с конкретным шлюзом
да.
hw class address
Set the hardware address of this interface, if the device driver supports this operation. The keyword must be followed by the name of the
hardware class and the printable ASCII equivalent of the hardware address. Hardware classes currently supported include ether (Ethernet),
ax25 (AMPR AX.25), ARCnet and netrom (AMPR NET/ROM).
выставляет нужный MAC при поднятии данного интерфейса.
Я нашел ответ ))
1. Создал файл б/д привязки IP к MAC (например /etc/ethers.local)
Пример строк из файла:
192.168.0.11 00:0c:6e:3f:cd:e5 #kasa2
192.168.0.12 00:0d:88:82:da:a2 #mobil
и т. д.
2. Написал скрипт такого содержания: (например /etc/static.arp):
#!/bin/sh
# обнуляем всю таблицу arp
arp -ad > null
# к каждому компу в локальной сети привязываем несуществующий (нулевой)
# MAC адрес
I=1
while [ $I -le 254 ]
do
arp -s 192.168.0.${I} 0:0:0:0:0:0
I=`expr $I + 1`
done
# к реально существующему компу в сети из базы данных в файле
# /etc/ethers.local привязываем
# правильный MAC адрес
arp -f /etc/ethers.local
3. Делаем этот файл исполняемым и прописываем в файл /etc/rc.local такую
строчку:
/etc/static.arp
Еще желательно, чтобы привязки имен юзерских хостов к ip-адресам были
прописаны в /etc/hosts (это ускорит их поиск). Теперь сервер не будет
рассылать широковещательные запросы о локальных MAC адресах, т. к. все они
статически жестко привязаны к ip-адресам. Этим убивается два зайца: не
рассылаются широковещательные запросы, что экономит траффик и время
на ответ сервера, и не позволяет пользователю менять свой ip-адрес,
т. к. сервер все равно пакет будет отправлять на жестко привязанный
MAC адрес.