Продам новые свитчи
-
Зараз на сторінці 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 и выясняя что и для чего. остального и в инете полно.
-
Від Amigo
Продам GEPON ОЛТи BDCOM
1. BDCOM P3310B (Вживаний) - 6000 грн.
2. BDCOM P3310C (Вживаний) - 7500 грн.
3. BDCOM P3310C (Вживаний без вух) - 7000 грн.
4. BDCOM P3608-2TE (Вживаний) - 20000 грн.
5. BDCOM P3608-2TE (Вживаний) - 19000 грн.
-
Від grapefruit
Доброго вечора, спільното!
Можливо хтось стикався з завданням,коли потрібно на OLT BDCOM GP3600 по oid визначити час розреєстрування ону. В неті нічого знайти не вдалося, через MIB браузер тоже ніц.
Якщо підкажете буде дуже вдячний, або хоч підкажіть де шукати.
Всім гарного вечора)
Рекомендованные сообщения
Правила раздела Торговля.
Для удобства был создан раздел оборудования на сайте.