- 
Сейчас на странице 0 пользователейНет пользователей, просматривающих эту страницу. 
- 
Похожие публикации- 
			
			Автор: legenda vols
 Всем привет, заезженная тема но приходиться искать по всем уголкам интернета - А именно OID и как их использовать.
 Начнём.
 для новичков.
 bash
 set_olt_oids() {
 # Общие для EPON (BDCOM)
 if [[ "$1" =~ ^(P3310|P3310B|P3310C|P3608|P3608B|P3316|P3600-16E|P3608-2TE|P3616-2TE|IEP3310)$ ]]; then
 OID_GET_MAC="1.3.6.1.4.1.3320.101.10.4.1.1"
 OID_VENDOR_ONU="1.3.6.1.4.1.3320.101.10.1.1.1"
 OID_MODEL_ONU="1.3.6.1.4.1.3320.101.10.1.1.2"
 OID_TEMP_ONU="1.3.6.1.4.1.3320.101.10.5.1.2"
 OID_AUNT_ONU_STATUS="SNMPv2-SMI::enterprises.3320.101.10.1.1.26"
 OID_UPTIME_ONU="1.3.6.1.4.1.3320.101.10.1.1.80"
 OID_DIST="1.3.6.1.4.1.3320.101.10.1.1.27"
 OID_IF_MAC10="1.3.6.1.4.1.3320.101.11.1.1.3"
 OID_IFindexmac10="1.3.6.1.4.1.3320.101.11.1.1.1"
 LASTREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.9"
 LASTDEREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.10"
 LASTDEREG_REASON="1.3.6.1.4.1.3320.101.11.1.1.11"
 OID_ONU_ETH="1.3.6.1.4.1.3320.101.12.1.1.8"
 OID_PORT_INDEX="1.3.6.1.4.1.3320.101.107.1.1" # oid возвращает все индексы ПОН портов, работает не везде
 OID_GEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.12"
 OID_FEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.14"
 OID_REBOOT_ONU="1.3.6.1.4.1.3320.101.10.1.1.29" # snmpset -v2c -c RW IP OID.onuIndex i 0 reboot
 OID_DEL_ONU="SNMPv2-SMI::enterprises.3320.101.11.1.1.2" #.$portID.$mac10" i 0 #mac decimal onu
 fi
 # Общие для GPON
 if [[ "$1" =~ ^(GP3600-08|GP3600-16B|GP3600-08B)$ ]]; then
 ETH_STATUS="1.3.6.1.2.1.2.2.1.8" # статус порта 1 портовая ону
 ETH_STATUS4="1.3.6.1.4.1.3320.10.4.1.1.4" # статус портов 4х портовая ону
 OID_VENDOR_ONU="1.3.6.1.4.1.3320.10.3.1.1.2"
 OID_ADMIN_STATUS="1.3.6.1.4.1.3320.10.4.1.1.3"
 OID_DOWN_REASON="1.3.6.1.4.1.3320.10.3.1.1.35"
 OID_DIST="1.3.6.1.4.1.3320.10.3.1.1.33"
 OID_MODEL_ONU="1.3.6.1.4.1.3320.10.3.1.1.9"
 OID_VENDOR_ONU="1.3.6.1.4.1.3320.10.3.1.1.2"
 OID_REBOOT_ONU="1.3.6.1.4.1.3320.10.3.2.1.4" #snmpset -v2c -c RW IP OID.onuIndex i 1 reboot
 
 fi
 # Уникальные параметры для моделей
 case "$1" in
 # EPON модели
 P3310 | P3310B)
 OID_RX_ONU="1.3.6.1.4.1.3320.101.10.5.1.6"
 OID_RX_OLT="1.3.6.1.4.1.3320.9.183.1.1.5"
 OID_PORT_LIST="1.3.6.1.4.1.3320.101.107.1.1"
 ;;
 IEP3310)
 OID_RX_ONU="1.3.6.1.4.1.3320.101.10.5.1.5"
 OID_RX_OLT="1.3.6.1.4.1.3320.9.183.1.1.5"
 OID_TX_ONU="1.3.6.1.4.1.3320.101.10.5.1.6"
 ;;
 P3608 | P3608B | P3310C | P3316 | P3600-16E | P3608-2TE | P3616-2TE)
 OID_RX_ONU="1.3.6.1.4.1.3320.101.10.5.1.5"
 OID_RX_OLT="1.3.6.1.4.1.3320.101.108.1.3"
 OID_TX_ONU="1.3.6.1.4.1.3320.101.10.5.1.6"
 OID_PORT_LIST="1.3.6.1.4.1.3320.101.107.1.1"
 ;;
 # GPON модели
 GP3600-08 | GP3600-16B | GP3600-08B | P3600-08E)
 OID_RX_ONU="1.3.6.1.4.1.3320.10.3.4.1.2"
 OID_RX_OLT="1.3.6.1.4.1.3320.10.2.3.1.3"
 OID_TX_ONU="1.3.6.1.4.1.3320.10.3.4.1.3"
 OID_GET_MAC="1.3.6.1.4.1.3320.10.3.1.1.4"
 ;;
 *)
 echo -e "\e[1;91mНеизвестный режим OLT: $1\e[0m"
 return 1
 ;;
 esac
 return 0
 }
 что бы было понятно в дальнейшем что за переменные
 snmp1="snmpwalk -v2c -c паблик стринг"
 snmp2="snmpwalk -v2c -Ouqv -c паблик стринг"
 snmp3="snmpget -v2c -c паблик стринг"
 snmp3q="snmpget -v2c -Ouqv -c паблик стринг"
 snmp4="snmpget -v2c -Ouqv -c приват стринг"
 snmp5="snmpset -v2c -c приват стринг"
 
 EPON GEPON
 1- OID_GET_MAC="1.3.6.1.4.1.3320.101.10.4.1.1" на бдкомах епон
 = SNMPv2-SMI::enterprises.3320.101.10.4.1.1.96 = Hex-STRING: A0 94 6A 97 CC 50
 snmp_response=$($snmp3 "$IP" "$OID_GET_MAC.$1" 2>/dev/null | awk -F'Hex-STRING: ' '{print tolower($2)}' | tr -d ' ')
 onu_mac=$(echo "$snmp_response" | sed 's/\(..\)/\1:/g;s/:$//') #Переводим в человеческий вид
 mac10=$(echo "$snmp_response" | awk '{ # Переводим в mac10 дада способов есть миллиард.
 for (i=1; i<=length; i+=2) {
 printf "%d", strtonum("0x" substr($0, i, 2))
 if (i + 2 <= length) printf "."
 }
 print ""
 }')
 
 лучший способ сделать функцию для форматирования снмп запросов в зависимости от типов STRING / HEX-STRING / COUNTER32 и тд тп.
 
 ifID=$($snmp1 "$IP" "$OID_IF_MAC10" 2>/dev/null | awk -v mac="$mac10" '$0 ~ mac {split($1, arr, "."); print arr[length(arr)-6]; exit}')
 
 
 2 - OID_VENDOR_ONU="1.3.6.1.4.1.3320.101.10.1.1.1"
 тут без лишних слов возвращает вендор онушек
 SNMPv2-SMI::enterprises.3320.101.10.1.1.1.97 = STRING: "XPON" если укажем параметр -Oqv или -Ouqv получим просто "XPON" и надо будет лишь сделать | tr -d ' " ' что бы удалить лапки.
 
 3 - OID_MODEL_ONU="1.3.6.1.4.1.3320.101.10.1.1.2" аналогично вендорам, получаем модель.
 
 4- OID_TEMP_ONU="1.3.6.1.4.1.3320.101.10.5.1.2" - температура ону делим на / 256
 SNMPv2-SMI::enterprises.3320.101.10.5.1.2.17 = INTEGER: 7027
 temp_onu=$($snmp3q $IP 1.3.6.1.4.1.3320.101.10.5.1.2.$INDEX | awk '{printf "%.2f", $1/265}' 2>/dev/null)
 
 5 - OID_AUNT_ONU_STATUS="1.3.6.1.4.1.3320.101.10.1.1.26"
 SNMPv2-SMI::enterprises.3320.101.10.1.1.26.276 = INTEGER: 3
 
 onuAunt_type=$($snmp3q $IP "$OID_AUNT_ONU_STATUS.$INDEX" 2>/dev/null)
 case "$onuAunt_type" in
 0) onuAunt_type_txt="authenticated" ;;
 1) onuAunt_type_txt="registered" ;;
 2) onuAunt_type_txt="deregistered" ;;
 3) onuAunt_type_txt="auto_config" ;;
 4) onuAunt_type_txt="lost" ;;
 *) onuAunt_type_txt="unknown" ;;
 esac
 
 6 - OID_UPTIME_ONU="1.3.6.1.4.1.3320.101.10.1.1.80" uptime
 SNMPv2-SMI::enterprises.3320.101.10.1.1.80.207 = INTEGER: 290907
 timetick
 | awk '{h=int($1/3600); m=int(($1%3600)/60); s=$1%60; printf "AliveTime: %dч %dмин %dсек\n", h, m, s}')${reset}"
 
 7 - OID_DIST="1.3.6.1.4.1.3320.101.10.1.1.27"
 SNMPv2-SMI::enterprises.3320.101.10.1.1.27.149 = INTEGER: 1600
 на епоне в метрах на гпоне делим на 10
 
 8 - OID_IF_MAC10="1.3.6.1.4.1.3320.101.11.1.1.3"
 SNMPv2-SMI::enterprises.3320.101.11.1.1.3.14.60.21.18.8.130.175 = Hex-STRING: 3C 15 12 08 82 AF
 SNMPv2-SMI::enterprises.3320.101.11.1.1.3 .14-PORTINDEX 60.21.18.8.130.175 - MAC10 = Hex-STRING: MAC HEX
 
 9- OID_IFindexmac10="1.3.6.1.4.1.3320.101.11.1.1.1"
 SNMPv2-SMI::enterprises.3320.101.11.1.1.1.125.60.21.18.6.227.186 = INTEGER: 125
 SNMPv2-SMI::enterprises.3320.101.11.1.1.1.125.60.21.18.6.247.136 = INTEGER: 125
 возвращает PORT INDEX и можно грепнуть по mac10 найти индекс и можно грепнуть через мак10
 
 10 - LASTREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.9"
 дату отдаёт в хексе. надо декодировать это дело.
 вызов snmp + IP + oid + PORTINDEX + MAC10
 date_hex=$($snmp1 $IP "$LASTREG_DATE.$IF_INDEX.$mac10" 2>/dev/null | awk -F': ' '{print $2}' | tr -d ' ')
 if [[ -n "$date_hex" ]]; then
 # Преобразуем дату из hex в числовое представление
 data=($(echo "$date_hex" | sed 's/../0x& /g'))
 local year=$((data[0] * 256 + data[1]))
 local month=${data[2]}
 local day=${data[3]}
 local hour=${data[4]}
 local minute=${data[5]}
 local second=${data[6]}
 
 
 local formatted_date=$(printf "%04d-%02d-%02d %02d:%02d:%02d" "$year" "$month" "$day" "$hour" "$minute" "$second")
 
 
 10 - LASTDEREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.10"
 аналогично 9му оиду.
 
 11 - LASTDEREG_REASON="1.3.6.1.4.1.3320.101.11.1.1.11"
 DEREG_STATUS=$($snmp3 $IP "$LASTDEREG_REASON.$IF_INDEX.$mac10" -Oqv 2>/dev/null)
 case "$DEREG_STATUS" in
 2) dereg_status_text="normal";;
 3) dereg_status_text="mpcp-down";;
 4) dereg_status_text="oam-down";;
 5) dereg_status_text="firmware-download";;
 6) dereg_status_text="illegal-mac";;
 7) dereg_status_text="llid-admin-down";;
 😎 dereg_status_text="wire-down";;
 9) dereg_status_text="power-off";;
 255) dereg_status_text="unknown";;
 0) dereg_status_text="Нет данных.";;
 *) dereg_status_text="not found";;
 esac
 
 есть прикол если онушка autoconfig статус 3 / authenticated статус 0
 там инвертируються 7 и 8 может и от моделей ону зависеть....
 7) dereg_status_text="llid-admin-down";;
 😎 dereg_status_text="wire-down";;
 это уже тестами )
 
 
 12 - OID_ONU_ETH="1.3.6.1.4.1.3320.101.12.1.1.8" статус езернет ничего не обычного кроме того что может верно отдать данные с 2-3го раза )
 2 down 1 up
 там же есть прикол с authenticated autoconfig инвертируется...
 local PORT_COUNT=$($snmp2 "$IP" "$OID_ONU_ETH.$INDEX" | wc -l)
 local ETH_STATUS=$($snmp2 "$IP" "$OID_ONU_ETH.$INDEX.$port" 2>/dev/null)
 [[ "$ETH_STATUS" =~ ^[0-9]+$ ]] || continue # Проверяем, что ETH_STATUS - это число
 if [[ "$onuAunt_type" == "0" ]]; then
 STATUS_COLOR=$( [[ "$ETH_STATUS" -eq 2 ]] && echo "UP" || echo "DOWN" )
 else
 STATUS_COLOR=$( [[ "$ETH_STATUS" -eq 1 ]] && echo "UP" || echo "DOWN" )
 fi
 
 13 - OID_PORT_INDEX="1.3.6.1.4.1.3320.101.107.1.1" # oid возвращает все индексы ПОН портов, работает не везде.
 14 - OID_GEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.12" гигабит езернет порты на онушках (кол-во)
 15 - OID_FEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.14" ФастЕзернет 100мбит аналогично.
 INTEGER
 
 16 - OID_REBOOT_ONU="1.3.6.1.4.1.3320.101.10.1.1.29" # snmpset -v2c -c RW IP OID.onuIndex i 0 reboot REBOOT ONU epon snmp
 $snmp5 "$IP" "$OID_REBOOT_ONU.$INDEX" i 0 >/dev/null 2>&1
 
 17 - delete onu epon удалить ону бдком снмп
 OID_DEL_ONU="SNMPv2-SMI::enterprises.3320.101.11.1.1.2"
 $snmp5 "$IP" "$OID_DEL_ONU.$ifID.$mac10" i 0 > /dev/null 2>&1 oid.PORTINDEX.mac10 i 0
 остальные есть выше там думаю всё понятно.
 
 SIGNAL LEVELS в зависимости от моделей плат и олтов расписаны
 все везде одинаково
 $snmp2 "$IP" "$OID_RX_OLT.$INDEX" 2>/dev/null | awk '{print $NF / 10}') результат делим на 10.
 
 epon пакеты, ошибки по портам на онушке.
 broadcasts=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.16.$INDEX.$port" 2>/dev/null)
 multicasts=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.17.$INDEX.$port" 2>/dev/null)
 unicasts=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.18.$INDEX.$port" 2>/dev/null)
 pause=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.19.$INDEX.$port" 2>/dev/null)
 fcserrs=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.20.$INDEX.$port" 2>/dev/null )
 oversize=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.13.$INDEX.$port" 2>/dev/null)
 jabber=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.14.$INDEX.$port" 2>/dev/null)
 
 мне бы такое помогло.. а не искать на тонне форумов и сайтов и неделю тыкая snmpwalk и выясняя что и для чего. остального и в инете полно.
 
- 
			
			Автор: olapchuk
 Вечір добрий
 потрібно підсказка чи це взагалі можливо зробити через snmp в ціско
 як влан створити, видалити і переімінувати розібрався через snmp, якщо комусь цікаво тут написано https://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/45080-vlans.html, якщо треба приклади скину
 але проблема в наступному, в ціско всі знають є таке штука яка interface vlan **id**
 тут потрібно саме це створити через snmp і задати пару параментрів, його взагалі можна створити через snmp!?
 interface Vlan3**
 no shutdown
 ip address 192.168.***.***/27
 подякував якщо хто тикне куди дивитись
 
- 
			
			Автор: Georgianairlink
 нужен OID, чтобы увидеть это с помощью snmp
 interface TGigaEthernet0/1 description test switchport trunk vlan-allowed 352,362,365,509,514-515,518,528,565-566,590 switchport trunk vlan-allowed add 720-723,1543-1546,2021,2201,2208,2378,2441 switchport trunk vlan-untagged 1 switchport mode trunk
 
- 
			
			Автор: apels1n
 Доброго времени суток. Столкнулись с проблемой, userside не тушит линк на портах у fd1208s, версия прошивки: V1.6.0_230223 (Thu, 23 Feb 2023 10:26:48 +0800). Если у кого есть список актуальных миб для неё, поделитесь пожалуйста. И подскажите как их импортировать в userside
 
- 
			
			Автор: volkras
 Доброго дня.
 
 Розробляю систему моніторинга. Хто може діліться конкретними ОІД. Потрібно найти наступні OIDS:
 1. Absenttime -- Час скільки лежить онушка (Alive Time вже найшов)
 2. LastDeregReason -- Остання причина падіння онушки.
 
 Також Якщо є додаткові mibs прохання поділитися.
 
 
- 
			
			

 
	 
	
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас