Есть в природе такие замечательные управляемые коммутаторы, как DLink-3010G. Удобны они тем, что можно их ставить на дома/подъезды и осуществлять привязку IP-MAC-PORT.

Ниже пойдет речь о том, как можно делать это через SNMP - чтобы не "прописывать" в коммутатор нового абонента каждый раз, когда таковой появляется в сети, а возложить эти функции на биллинг. Вообще говоря, на сайте www.dlink.ru есть довольно подробная информация о том, как общаться с dlink-овскими коммутаторами через SNMP, но для 3010G приведенные SNMP-OID у меня лично не работают.

В результате проведенных исследований были вычислены правильные цифры.

Сначала о том, как посмотреть некоторые значения конфигурации.

snmpwalk -v 1 -O n -c community_string ip snmp

Здесь community_string - SNMP Community String для чтения (обычно, public).
ip - IP-адрес коммутатора snmp - OID (ниже по списку)

OID - блокировка неизвестных хостов:
1.3.6.1.4.1.171.12.23.4.2.1.5 - тип блокировки
1.3.6.1.4.1.171.12.23.4.2.1.4 - порт, на котором произошло блокирование
1.3.6.1.4.1.171.12.23.4.2.1.3 - имя VLAN для списка заблокированных адресов
1.3.6.1.4.1.171.12.23.4.2.1.2 - список заблокированных MAC-адресов
1.3.6.1.4.1.171.12.23.4.2.1.1 - port-binding по VID

OID - список известных хостов:
1.3.6.1.4.1.171.12.23.4.1.1.1 - IP-адрес хоста
1.3.6.1.4.1.171.12.23.4.1.1.2 - MAC-адрес хоста
1.3.6.1.4.1.171.12.23.4.1.1.3 - Статус хоста
1.3.6.1.4.1.171.12.23.4.1.1.4 - Порты, на которые "прописан" хост

Теперь о том, как изменять параметры конфигурации.

Удаление из блок-листа

snmpset -v2c -c community_string ip 1.3.6.1.4.1.171.12.23.4.2.1.5.1.x.x.x.x.x.x i 3
где x.x.x.x.x.x - MAC-адрес в десятичной системе

"Прописывание" хоста - поэтапно:

1. IP-адрес:
snmpset -v2c -c community_string ip 1.3.6.1.4.1.171.12.23.4.1.1.3.x.x.x.x i 4
где x.x.x.x - IP-адрес хоста в десятичной системе

2. Порт:
snmpset -v2c -c community_string ip 1.3.6.1.4.1.171.12.23.4.1.1.4.x.x.x.x x 80000000
где x.x.x.x - IP-адрес в десятичной системе
80000000 -> Порт 1 8 -> 1000 (двоичный код) -> 1000 1 = порт 1 000 = порт 2 порт 4

3. MAC-адрес:
snmpset -v2c -c community_string ip 1.3.6.1.4.1.171.12.23.4.1.1.4.x.x.x.x x aabbccddeeff
где x.x.x.x - IP-адрес в десятичной системе
где aabbccddeeff - MAC-адрес

Удаление из списка "прописанных":

snmpset -v2c -c community_string ip 1.3.6.1.4.1.171.12.23.4.1.1.3.x.x.x.x i 6

где x.x.x.x - IP-адрес в десятичной системе