В прошлой публикации мы рассмотрели как получать информацию о VLAN по протоколу SNMP. Теперь пришло время научиться создавать VLAN'ы, используя этот протокол.
Предположим, мы хотим создать VLAN с VID=500 и именем newvlan, где 25-28 порты настроены как tagged, а 1-24 - как untagged.
По уже известному алгоритму преобразуем двоичные последовательности используемых портов в их шестнадцатеричное представление. При этом мы помним, что нам нужна последовательности member ports и untagged ports. Из условия задачи очевидно, что в диапазон member ports будут входить все порты (1-28).
0b11111111 11111111 11111111 11110000 - 0xFFFFFFF0 (members)
0b11111111 11111111 11111111 00000000 - 0xFFFFFF00 (untagged)
Также нам понадобится задать статус записи. Используем в данном случае createAndGo (4).
Теперь укажем в нашем запросе необходимые параметры dot1qVlanStaticName (1), dot1qVlanStaticEgressPorts (2), dot1qVlanStaticUntaggedPorts (4) и dot1qVlanStaticRowStatus (5):
Error in packet.
Reason: commitFailed
Failed object: SNMPv2-SMI::mib-2.17.7.1.4.3.1.4.500
Oops! Что-то пошло не так! Поскольку нам говорят об ошибке в dot1qVlanStaticUntaggedPorts (4) то сразу заподозрим что-то неладное в настройках untagged портов. Проверим уже существующие VLAN на коммутаторе при помощи команды show vlan:
VID : 1 VLAN Name : default
...
Current Untagged Ports : 1-28
Оказывается порты уже настроены как untagged в другом VLAN, а наш коммутатор (DES-3028) не позволяет настраивать сразу несколько портов как untagged. Что ж, удалим лишние порты, оставив только 1-й порт, через который подключен коммутатор. Для этого выполним config vlan default delete 2-28. Теперь требуется пересчитать hex-значение для member и untagged ports:
0b01111111 11111111 11111111 11110000 - 0x7FFFFFF0 (members)
0b01111111 11111111 11111111 00000000 - 0x7FFFFF00 (untagged)
SNMPv2-SMI::mib-2.17.7.1.4.3.1.1.500 = STRING: "newvlan"
SNMPv2-SMI::mib-2.17.7.1.4.3.1.2.500 = Hex-STRING: 7F FF FF F0 00 00 00 00
SNMPv2-SMI::mib-2.17.7.1.4.3.1.4.500 = Hex-STRING: 7F FF FF 00 00 00 00 00
SNMPv2-SMI::mib-2.17.7.1.4.3.1.5.500 = INTEGER: 4
Посмотрим на коммутаторе что получилось:
VID : 500 VLAN Name : newvlan
VLAN Type : Static Advertisement : Disabled
Member Ports : 2-28
Static Ports : 2-28
Current Tagged Ports : 25-28
Current Untagged Ports : 2-24
Static Tagged Ports : 25-28
Static Untagged Ports : 2-24
Forbidden Ports :
Вывод: В ходе выполнения задачи мы обнаружили, что ее нельзя выполнить дословно, т.к. порт 1 уже используется для другого VLAN. Поэтому мы переделали запрос так, чтобы исключить порт №1 из запроса и создали VLAN, который не включает в себя этот порт. Результат достигнут.
Note: Обратите внимание, что все параметры необходимо указывать в одном запросе. Последовательное выполнение четырех команд snmpset не приведет к такому же результату. Это особенность реализации функционала.
Предположим, мы хотим создать VLAN с VID=500 и именем newvlan, где 25-28 порты настроены как tagged, а 1-24 - как untagged.
По уже известному алгоритму преобразуем двоичные последовательности используемых портов в их шестнадцатеричное представление. При этом мы помним, что нам нужна последовательности member ports и untagged ports. Из условия задачи очевидно, что в диапазон member ports будут входить все порты (1-28).
0b11111111 11111111 11111111 11110000 - 0xFFFFFFF0 (members)
0b11111111 11111111 11111111 00000000 - 0xFFFFFF00 (untagged)
Также нам понадобится задать статус записи. Используем в данном случае createAndGo (4).
Теперь укажем в нашем запросе необходимые параметры dot1qVlanStaticName (1), dot1qVlanStaticEgressPorts (2), dot1qVlanStaticUntaggedPorts (4) и dot1qVlanStaticRowStatus (5):
snmpset -v2c -c private 10.90.90.90 .1.3.6.1.2.1.17.7.1.4.3.1.1.500 s newvlan .1.3.6.1.2.1.17.7.1.4.3.1.2.500 x fffffff000000000 .1.3.6.1.2.1.17.7.1.4.3.1.4.500 x ffffff0000000000 .1.3.6.1.2.1.17.7.1.4.3.1.5.500 i 4
Error in packet.
Reason: commitFailed
Failed object: SNMPv2-SMI::mib-2.17.7.1.4.3.1.4.500
Oops! Что-то пошло не так! Поскольку нам говорят об ошибке в dot1qVlanStaticUntaggedPorts (4) то сразу заподозрим что-то неладное в настройках untagged портов. Проверим уже существующие VLAN на коммутаторе при помощи команды show vlan:
VID : 1 VLAN Name : default
...
Current Untagged Ports : 1-28
Оказывается порты уже настроены как untagged в другом VLAN, а наш коммутатор (DES-3028) не позволяет настраивать сразу несколько портов как untagged. Что ж, удалим лишние порты, оставив только 1-й порт, через который подключен коммутатор. Для этого выполним config vlan default delete 2-28. Теперь требуется пересчитать hex-значение для member и untagged ports:
0b01111111 11111111 11111111 11110000 - 0x7FFFFFF0 (members)
0b01111111 11111111 11111111 00000000 - 0x7FFFFF00 (untagged)
snmpset -v2c -c private 10.90.90.90 .1.3.6.1.2.1.17.7.1.4.3.1.1.500 s newvlan .1.3.6.1.2.1.17.7.1.4.3.1.2.500 x 7ffffff000000000 .1.3.6.1.2.1.17.7.1.4.3.1.4.500 x 7fffff0000000000 .1.3.6.1.2.1.17.7.1.4.3.1.5.500 i 4
SNMPv2-SMI::mib-2.17.7.1.4.3.1.1.500 = STRING: "newvlan"
SNMPv2-SMI::mib-2.17.7.1.4.3.1.2.500 = Hex-STRING: 7F FF FF F0 00 00 00 00
SNMPv2-SMI::mib-2.17.7.1.4.3.1.4.500 = Hex-STRING: 7F FF FF 00 00 00 00 00
SNMPv2-SMI::mib-2.17.7.1.4.3.1.5.500 = INTEGER: 4
Посмотрим на коммутаторе что получилось:
VID : 500 VLAN Name : newvlan
VLAN Type : Static Advertisement : Disabled
Member Ports : 2-28
Static Ports : 2-28
Current Tagged Ports : 25-28
Current Untagged Ports : 2-24
Static Tagged Ports : 25-28
Static Untagged Ports : 2-24
Forbidden Ports :
Вывод: В ходе выполнения задачи мы обнаружили, что ее нельзя выполнить дословно, т.к. порт 1 уже используется для другого VLAN. Поэтому мы переделали запрос так, чтобы исключить порт №1 из запроса и создали VLAN, который не включает в себя этот порт. Результат достигнут.
Note: Обратите внимание, что все параметры необходимо указывать в одном запросе. Последовательное выполнение четырех команд snmpset не приведет к такому же результату. Это особенность реализации функционала.
Комментариев нет:
Отправить комментарий