Рубрики
device \ устройства \ железо

orangepi cm4 / uart7 / uart9 / test

links:

https://drive.google.com/drive/folders/1lbEI5JdLWwI6y9VoGM0nioFDhzF79QSu
http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-2W.html

work


#Конфиг env boot:
root@orangepicm4:~# cat /boot/orangepiEnv.txt 
verbosity=1
bootlogo=false
extraargs=cma=128M
overlay_prefix=rk356x
rootdev=UUID=a0f8ca89-7eb7-4a1e-947a-2341637b4782
rootfstype=ext4
overlays=uart7-m2 uart9-m2
console=serial


#скрипт 1
root@orangepicm4:~# cat uart9.txt
#!/bin/bash
#

xxx=0

while :
do
        echo -n -e "\nHello UART9! ${xxx}"
        echo -n -e "\nHello UART9! ${xxx} \r" > /dev/ttyS9
        #sleep 1
        let xxx++
done

#скрипт 2
root@orangepicm4:~# cat uart7.txt
#!/bin/bash
#

xxx=0

while :
do
        echo -n -e "\nHello UART7! ${xxx}"
        echo -n -e "\nHello UART7! ${xxx} \r" > /dev/ttyS7
        #sleep 1
        let xxx++
done



# Настройка UART7 (например, 115200 бод, 8 бит, без контроля чётности, 1 стоп-бит)
sudo stty -F /dev/ttyS7 115200 cs8 -parenb -cstopb

# Настройка UART9 (такие же параметры)
sudo stty -F /dev/ttyS9 115200 cs8 -parenb -cstopb

Проверить настройки можно так:
stty -F /dev/ttyS7 -a
stty -F /dev/ttyS9 -a
echo "Hello UART!" > /dev/ttyS7
echo "Hello UART!" > /dev/ttyS9


mincom -D /dev/ttyS7 -b 115200
mincom -D /dev/ttyS9 -b 115200


screen /dev/ttyS7 115200
screen /dev/ttyS9 115200


echo "Hello UART!" > /dev/ttyS7
echo "Hello UART!" > /dev/ttyS9
Рубрики
device \ устройства \ железо

orangepi cm4 / i2c / rtc / ds1338 / ds1307 / hwclock

Проверяем а если часы:
dmesg | grep rtc


Проверяем какие модули загружены:
lsmod 

Проверяем что у нас на шине i2c (у нас часы имеют адрес 68)
i2cdetect -y 1

Пробуем прочитать регистры:
i2cget -y 1 0x68 0x00
for reg in {0..6}; do      echo "Регистр 0x0$reg: $(i2cget -y 1 0x68 0x0$reg)";  done

Пробуем изменить вывод на 24 часа:
i2cset -y 1 0x68 0x02 0x12

Добавляем часы в систему что бы можно было с ними взаимодействовать
modprobe rtc-ds1307
echo "ds1307 0x68" > /sys/class/i2c-adapter/i2c-1/new_device
dmesg | grep rtc
hwclock -s -f /dev/rtc1

# Запись системного времени в RTC
hwclock --systohc
hwclock --systohc -f /dev/rtc1

# Чтение времени из RTC
hwclock -v 
hwclock -v -f /dev/rtc1

Для автоматического включения модуля ядра rtc-ds1307:
echo "rtc-ds1307" >> /etc/modules


python script:

apt install python3-smbus2 


cat > clock.py << "EOF"
from smbus2 import SMBus
import time

I2C_BUS = 1      # номер шины (0 или 1)
DEV_ADDR = 0x68  # адрес DES3338 на шине

with SMBus(I2C_BUS) as bus:
    # Чтение 7 байт (секунды, минуты, часы...)
    data = bus.read_i2c_block_data(DEV_ADDR, 0x00, 7)
    print(f"Время: {data[2]}:{data[1]}:{data[0]}")
EOF


python clock.py 


Рубрики
device \ устройства \ железо

nano kvm lite

link:

https://github.com/sipeed/NanoKVM
https://github.com/sipeed/NanoKVM/releases
https://www.ozon.ru/search/?text=nano+kvm+lite&from_global=true

default password:

Логин: admin 
Пароль: admin
Рубрики
device \ устройства \ железо

M5Stack Stick PLUS 2

Ссылки:

https://t.me/hobbysupport
https://www.ozon.ru/product/m5stack-stick-plus-2-s-graficheskim-programmirovaniem-1726849635/
https://www.youtube.com/watch?v=1cDBE4qjKOk
https://docs.m5stack.com/en/uiflow/m5burner/intro
https://docs.m5stack.com/en/core/M5StickC%20PLUS2
http://bruce.computer/
Рубрики
device \ устройства \ железо

Релейки бубубуб конфиг

Основные команды:

show run - показать текущий конфиг
configure - режим конфигурирования
write mem - сохранить настройки

Пример конфига:

config-file-header
switch000001
v5.1.0.18 / ?
CLI v1.0
@
!
unit-type-control-start
unit-type unit 1 network te uplink none
unit-type-control-end
!
no spanning-tree
port jumbo-frame
vlan database
vlan 25-28,35-38
exit
voice vlan oui-table add 0001e3 Siemens_AG_phone________
voice vlan oui-table add 00036b Cisco_phone_____________
voice vlan oui-table add 00096e Avaya___________________
voice vlan oui-table add 000fe2 H3C_Aolynk______________
voice vlan oui-table add 0060b9 Philips_and_NEC_AG_phone
voice vlan oui-table add 00d01e Pingtel_phone___________
voice vlan oui-table add 00e075 Polycom/Veritel_phone___
voice vlan oui-table add 00e0bb 3Com_phone______________
ip ssh server                                         
ip telnet server                                      
!                                                     
interface vlan 1                                      
 ip address 10.12.127.200 255.255.255.0               
 no ip address dhcp                                   
!                                                     
interface TengigabitEthernet1                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet2                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet3                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet5                         
 switchport mode trunk                                
!                                                     
exit                                                  
console# 

Vlan

vlan database
vlan 25-28,35-38

JAMBO PACKET

port jumbo-frame

NO STP

no spanning-tree

TRANK

                             
interface TengigabitEthernet1                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet2                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet3                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet5                         
 switchport mode trunk                                
!                                                     

STATIC IP CONTROL

interface vlan 1                                      
 ip address 10.12.127.200 255.255.255.0               
 no ip address dhcp                                   
!                      


Рубрики
device \ устройства \ железо

eltex

eltex база знаний:

https://docs.eltex-co.ru/display/EKB/Eltex+Knowledge+Base

eltex

общие команды:
logout - Быстрый выход из сессии интерфейса командной строки  config, global-viewconfig
do  - Выполнение команды глобального режима CLI (command_sequence) без выхода из режима конфигурирования    config
root - Выход на верхний уровень режима конфигурирования  config
end  - Выход из любого уровня режима конфигурирования в глобальный режим  config
quit - Выход из сессии интерфейса командной строки  global-view 


В глобальном режиме интерфейса командной строки доступны команды просмотра оперативного состояния системы (show-команды), 
команды управления компонентами системы (например, reload, hw-module), 
запуска различных диагностических тестов и работы с образами операционной системы.
Для уменьшения объема отображаемых данных в ответ за запросы пользователя и облегчения поиска необходимой информации можно воспользоваться фильтрацией. 
Для фильтрации вывода команд нужно добавить в конец командной строки символ "|" и использовать одну из опций фильтрации:
formal — модификация выводов "show running-config" и "show candidate-config" из древовидного в линейный
begin — выводить всё после строки, содержащей заданный шаблон
include — выводить все строки, содержащие заданный шаблон
exclude — выводить все строки, не содержащие заданный шаблон
count — произвести подсчёт количества строк в выводе команды.


без конфигуре  global-view :
rootshell - попасть в linux shell :)
show interfaces description - показать статус интерфейсов
show running-config - показать конфигурацию устройства
show candidate-config - Вывести кандидат-конфигурацию устройства.
configure - Перейти из глобального режима CLI в режим конфигурирования.

в configure:
commit - Применить кандидат-конфигурацию(применить изменения, внесенные во время сеанса редактирования).
abort - Отменить изменения в кандидат конфигурации и выйти из режим конфигурирования. 
         При выполнении этой команды кандидат-конфигурация становится идентичной текущей (стартовой) конфигурации.

Тип интерфейса:
Физические интерфейсы:
Обозначение физического интерфейса включает в себя его тип и идентификатор.
Идентификатор имеет вид //, где:
 - номер устройства в кластере устройств;
 - номер модуля в составе устройства;
 - порядковый номер интерфейса данного типа в модуле.

Интерфейсы 10Гбит/с Ethernet tengigabitethernet //  tengigabitethernet 0/0/10  te 0/0/10
Интерфейсы 40Гбит/с Ethernet  fourtygigabitethernet //  fourtygigabitethernet 0/0/2  fo 0/0/2
Интерфейсы 100Гбит/с Ethernet  hundredgigabitethernet //  hundredgigabitethernet 0/0/3  hu 0/0/3
Физические интерфейсы всегда присутствуют в системе.

Группы агрегации каналов  bundle-ether   bundle-ether 8
Группы агрегации каналов в системе можно создавать и удалять.


Сабинтерфейсы
bundle-ether .
tengigabitethernet //.
fourtygigabitethernet //.
hundredgigabitethernet //.
Сабинтерфейсы в системе можно создавать и удалять.


Интерфейсы локальной петли  loopback   loopback 100
Интерфейсы локальной петли в системе можно создавать и удалять.

Интерфейсы управления  mgmt //
Интерфейсы out-of-band управления - это выделенные ethernetинтерфейсы для доступа и управления маршрутизатором. 
В качестве  могут выступать 'fmc0' и 'fmc1', в зависимости от аппаратной конфигурации.
'mgmt 0/fmc0/1' - для ME5100
'mgmt 0/fmc0/0' и 'mgmt 0/fmc0/1' для FMC0 в маршрутизаторе ME5000
'mgmt 0/fmc1/0' и 'mgmt 0/fmc1/1' для FMC1 в маршрутизаторе ME5000
Интерфейсы управления всегда присутствуют в системе.
IMPORTANT
Интерфейсы  управления  не предназначены для передачи транзитного трафика (не участвуют в работе dataplane) и жестко прикреплены к VRF 'mgmt-intf'.

change-privilege  Данной командой осуществляется переход на соответствующий уровень привилегий.
change-privilege { p1 | p2 | … | p15 } [ PASSWORD ]
change-privilege p15 mypassword


clear alarm - Данная команда очищает активные аварии в системе.
clear alarm {all | ID }
all — очищаются все активные аварии
ID — очищается авария с указанным идентификатором.
clear alarm 300

clear arp - Данная команда удаляет записи из ARP-таблицы.
address IPv4 — очищается запись при совпадении IPv4-адреса
interface IF — очищаются записи на указанном интерфейсе
vrf VRF — указание VRF, из которого будет браться ARP-таблица
clear arp vrf test 10.0.0.200

clear bgp  - Данная команда изменяет состояние BGP-сессии и счётчиков.
clear bgp {{ vrf ARGS | neighbor ARGS} {counters | flap-statistics |soft ARGS}}
vrf VRF — указание VRF, в котором будет выполнятся действие
neighbor {all | ipv4 | ipv6 | IPv4 | IPv6 } — сброс BGP-сессии: всех, всех ipv4/ipv6 unicast или конкретного адреса соседа
counters — очистка счётчиков BGP-сообщений
flap-statistics — очистка счётчиков flap-statistics
soft in|out — реконфигурация маршрутов(in — восстановить свои маршруты, out — отправить соседу свои маршруты).
clear bgp neighbor 10.0.0.10

clear configuration backups - Удаление бэкап-конфигруации.
clear configuration backups [ String ] - String — указание имени backup-файла.
clear configuration backups



clear crash-info all - Удаление логов crash-info.
clear crash-info { all | String }

clear domain-cache - Сброс кэша доменных имён.
clear domain-cache { String }
clear domain-cache eltex-co.ru

clear flow monitor - Сброс статистики потоков. 

clear ipv6 neighbors - Данная команда удаляет записи из NDP-таблицы.
clear ipv6 neighbors address 2005:1::1

clear logging - Данная команда очищает файлы системных логов
persistent — указание на очистку лог-файлов, хранящихся в постоянной памяти
system — указание на очистку control-plane лог-файлов
file WORD — указание имени persistent-логов
clear logging persistent file BGP_LOG

clear mpls - Данная команда сбрасывает состояния LDP-сессий и RSVP-сессий и меток.
clear mpls ldp neighbor all

clear ospfv2 - Данная команда сбрасывает состояния OSPFv2-соседств.
clear ospfv2 statistics
clear ospfv3 - Данная команда сбрасывает состояния OSPFv3-соседств.
clear ospfv3 statistics

clear pim - Данная команда сбрасывает состояния PIM-соседств и очищает топологию.
clear pim counters

clear qos counters - Команда сбрасывает счётчики срабатывания политик QoS.
clear qos counters interface te 0/0/2

dir - Данная команда выводит список файлов со смонтированного USB-носителя.
delete - Данная команда удаляет файл на смонтированном USB-носителе

show system - Выведет текущие общие состояние 
show system resources cpu - Данной командой осуществляется просмотр информации о текущем использовании  процессора устройства.
show system resources cpu

show version - покажет текущую версию

backup to tftp://192.168.16.113/backup_directory/ - Команда создает элемент резервирования конфигурации и переходит в режим настройки этого элемента. 

fan lower-speed 60 - Данной командой устанавливается минимальная скорость вращения вентиляторов системы охлаждения устройства, в процентах.

flow rate - Команда позволяет ограничить полосу пропускания для заданного типа трафика, перехватываемого на процессор.
configure
system punt rate-limit
flow ip-ttl rate 100
commit


broadcast-client - Данной командой включается режим приёма широковещательных сообщений NTP-серверов, при этом устройство работает в качестве NTP-клиента. 
ntp vrf mgmt-intf
broadcast-client

clock read-calendar - Данная команда синхронизирует значение программных часов системы со значением аппаратных часов.
clock read-calendar

clock update-calendar - Данная команда записывает в аппаратные часы устройства значение программных часов.
clock update-calendar

ntp vrf Команда включает протокол ntp в заданном vrf и переходит в режим его конфигурирования
ntp vrf mgmt-intf
Интервала времени между отправкой сообщений NTP-серверу
maxpoll - Данная команда устанавливает максимальное значение интервала времени между отправкой сообщений NTP-серверу.
Использование отрицательной формы команды устанавливает значение по умолчанию (10, что соответствует 1024 секундам).
minpoll - Данная команда устанавливает минимальное значение интервала времени между отправкой сообщений NTP-серверу.
Использование отрицательной формы команды устанавливает значение по умолчанию (6, что соответствует 64 секундам).
ntp vrf default
server ipv4 192.168.16.36
maxpoll 15
minpoll 3

peer ipv4 - Данная команда используется для установления партнерских отношений между NTP-серверами и перехода в командный режим config-ntp-vrf-peer-ipv4.
ntp vrf default
peer ipv4 192.168.16.36

prefer - Данная команда отмечает текущий NTP-сервер как предпочтительный.
ntp vrf default
server ipv4 192.168.16.36
prefer

show clock - Данная команда выводит текущее время и дату.

tcp - Данная команда устанавливает режим работы по протоколу TCP для текущего удаленного сервера журналирования и задает номер используемого порта.
logging host 10.7.32.4 vrf default
tcp 513

udp - Данная команда устанавливает режим работы по протоколу UDP для текущего удаленного сервера журналирования и задает номер используемого порта.
logging host 10.7.32.4 vrf default
udp 513

ip mtu - Данная команда позволяет установить в конфигурации правило для задания IPv4/IPv6 Maximum Transmission Unit (MTU).
interface tengigabitethernet 0/0/1
ip mtu 6000

mtu - Данная команда позволяет установить в конфигурации правило для задания Layer 2 Maximum Transmission Unit (L2 MTU).
interface tengigabitethernet 0/0/1
mtu 1700

shutdown - Данная команда позволяет создать в конфигурации правило для административного выключения интерфейса и перевода его в состояние administratively down.
interface tengigabitethernet 0/0/1.100
shutdown

speed - Данная команда позволяет задать режим скорости на Ethernet-интерфейсе.
        Отрицательная форма команды возвращает значение по умолчанию (auto).
speed { 10 | 100 | 100G | 10G | 1G | 40G | 25G |auto }
no speed
interface tengigabitethernet 0/0/1
speed 1G



vrf Данная команда позволяет создать в конфигурации экземпляр VRF и перейти в режим его  конфигурации (config-vrf).
vrf test

vrf - Данная команда относит интерфейс к указанной Virtual Routing & Forwarding сущности (VRF).
interface tengigabitethernet 0/0/1
vrf TEST


description - Данная команда позволяет задать в конфигурации описание для текущего VRF 
vrf test
description test


maximum prefix - Данная команда позволяет ограничить максимальное количество маршрутов в данном VRF.
vrf test
maximum prefix 100


rd - Данная команда позволяет задать в конфигурации Route Distinguisher для данного VRF.
vrf test
rd 10.0.0.1:200

show vrf - Данная команда отображает информацию по активным VRF.
show vrf test

vpn-id - Данная команда задает в конфигурации VRF определенный VPN ID, как описано в RFC 2685.
vrf test
vpn-id 100:100

Часто используемые настройки:

Пример задать имя, время, баннер:
configure
hostname NEW-HOSTNAME
clock set 12:00:00 nov 8 2023
banner exec @ hell0 @
commit

Создание пользователя:
configure
username stepan privilege 1 password password
enable password level 15 godemode
privilege exec 1 show running-config
exec 1 configure
commit

Конфигурация ip адреса для интерфейса:
interface GigabitEthernet 1/0/20
ip address 10.10.10.20/24

Конфигурация ip адреса для vlan:
interface vlan 1
ip address 150.20.137.40/24 


Создание vlan для интерфейса:
configure 
vlan database
vlan 20 name test
interface GigabitEthernet 1/0/1
switchport access vlan 20 
commit

Создание/удаления trank vlan:
configure
interface GiggabitEhernet 1/0/1
switchport mode trunk 
switchport trunk allowed vlan 10 - если не указать то затрет все vlan и оставит 10
switchport trunk allowed vlan add 10
switchport trunk allowed vlan add 12
switchport trunk allowed vlan add 20-50
switchport trunk allowed vlan remove 10 - для удаления vlan 10
switchport trunk allowed vlan all - разрешает все вланы
commit


Создание voice vlan:
voice vlan oui-table add a8f94b ( первые три байта телефона который мы в войс отправляем)
voice vlan id 10
voice vlan state oui-enable
lldp med network-policy 1 voice vlan 10 vlan-type tagged up 4 
interface gigabitethernet 1/0/1
switchport mode general
voice vlan enable
lldp med enable network-policy
lldp med network-policy add 1 
switchport general allowed vlan add 20 untagged
switchport general pvid 20


Создание STP:
spanning-tree 
spanning-tree mode rstp (включен по умолчанию)
spanning-tree priority {0-61440}
interface GigabitEthernet 1/0/1
spannig-tree cost {1-200000000} - стоимость
spanning-tree disable - выключить rstp
spanning-tree bpdu filtering
spanning-tree bpduguard enable


Защита вланов rapid-pvst:
spanning-tree 
spanning-tree mode rapid-pvst (в cisco по умолчанию включено)
vlan 10-20
interface gigabitethentet 1/0/1
switchport mode trunk
switchport trunk allowed vlan add 10-20



Конфигурация VRRP:
interface vlan 100
ip address 172.16.2.2/24 ( на другом устройстве указываем 172.16.2.3 )
vrrp 100 ip 172.16.2.1
vrrp 100 priority 1 
vrrp 100 preempt
no vrrp 100 shutdown - отключить

Настройка dhcp server:
ip dhcp server
ip dhcp pool network Test
address low 10.0.1.100 high 10.0.1.150 255.255.255.0
default-route 10.0.1.1
dns-server 10.0.1.1
ip dhcp exluded-address 10.0.1.120 - исключить адрес
exit
interface vlan 10
ip address 10.0.1.1/24
interface GigaEthernet 1/0/11
switchport access vlan 10


Настройка OSPF:
interface vlan 1
ip address 192.168.1.10/24
exit
router ospf 1 - здесь указываем роутер id 
router-id 192.168.1.10
network 192.168.1.10 area 0.0.0.0
redistribute connected subnets


Настройка do1x:
dot1x system-auth-control
aaa authentication dot1x default radius none
radius-server host 10.0.1.2 key eltex
interface gigabitethernet1/0/1
switchport access vlan 500
switchport mode access
dot1x host-mode multi-sessions
dot1x port-control auto
dot1x reauthentication
dot1x timeout tx-period 30


Шторм контроль:
errdisable recovery cause storm-control
interface gigabitethernet1/0/3
storm-control broadcat level 15 trap shutdown
storm-control unicast pps 12500 trap shutdown 
storm-control multicast kbps 20480 trap shutdown 

Борьба с петлями:
loopback-detection enable
loopback-detection mode {src-mac-addr|base-mac-addr|multicast-mac-addr|broadcast-mac-addr}
loopback-detection interval {1-60}
interface gigabitethernet 1/0/1
loopback-detection enable - включаем собстенно
errdisable recovery cause loopback-detection - обратно включаем если петля 


Включение защиты порта:
interface GigabitEthernet 1/0/1
port security mode max-address - ограничиваем кол-во адресов
port security max 10
port security discadr trap 100


Включение защиты dhcp-snooping:
ip dhcp snooping
ip dhcp snooping vlan 10
interface gigabiteyhernet 1/0/1
ip dhcp snooping trust

Включение IP secure Guard:
ip dhcp snooping
ip dhcp snooping vlan 1 - для влана
ip source guard
interface gigabitethernet 0/1 для интерфейса
ip source guard



Настройка статической маршрутизации:


Настройка статической маршрутизации:
Статическая маршрутизация — это механизм, при помощи которого в системе можно вручную создавать, удалять и модифицировать IP-маршруты. 
Статические маршруты могут быть заданы как в глобальной таблице маршрутизации, так и внутри VRF.

action Задание действия для пакетов для данного маршрута при маршрутизации трафика.
Отрицательная форма команды устанавливает значение по умолчанию (forward).
action { discard | forward | local | reject}
no action
discard — отбросить пакеты, редистрибуция разрешена
forward — отправить пакеты по маршруту
local — отбросить пакеты, редистрибуция запрещена
reject — не инсталлировать маршрут
router static 
address-family ipv4 unicast
destination 40.10.0.0/16 40.10.0.1
interface tengigabitethernet 0/0/7
action reject

destination - Создание статического маршрута в конфигурации семейства AFI/SAFI.
Отрицательная форма команды удаляет заданный статический маршрут.
[no] destination { IPv4_pref | IPv6_pref } { IPv4_nhop | IPv6_nhop }
IPv4_pref (X.X.X.X/N) — IPv4 префикс маршрута
IPv6_pref (X:X:X:X::X/N) — IPv6 префикс маршрута
IPv4_nhop (X.X.X.X) — IPv4 адрес следующего узла (nexthop) для маршрута
IPv6_nhop (X:X:X:X::X) — IPv6 адрес следующего узла (nexthop) для маршрута
router static
address-family ipv4 unicast
destination 40.10.0.0/16 40.10.0.1

interface - Команда принудительно задает интерфейс, через который будет направлен трафик по данному статическому маршруту,
и производит переход в режим настройки дополнительных параметров статического маршрута.
Отрицательная форма команды удаляет данный интерфейс из текущего маршрута.
router static
address-family ipv4 unicast
destination 40.10.0.0/16 40.10.0.1
interface tengigabitethernet 0/0/7

router static - Включение поддержки статической маршрутизации и переход в режим настройки статических маршрутов. 

tag - Задание тега маршрута. Данный тег является внутренним параметром маршрута, который может быть использован в дальнейшем, например, в правилах редистрибуции.
router static
address-family ipv4 unicast
destination 40.10.0.0/16 40.10.0.1
tag 3


OSPF


Настройка динамической маршрутизации OSPF
Существует три версии протокола OSPF:
v1 — в данный момент практически нигде не используется
v2 — используется для обмена маршрутной информацией протокола IPv4
v3 — используется для обмена маршрутной информацией протокола IPv6

address-prefix - Данная команда позволяет отфильтровать OSPFv2 IP LFA FRR маршруты в правиле lfa filter по префиксу, для которого будет рассчитываться альтернативный маршрут.
router ospfv2 PROCESS_NAME
lfa filter FILTER
address-prefix 10.0.0.0/8

advertise-max-metric - Команда устанавливает максимальную метрику для non-stub линков на период вермени, заданный командой time-to-advertise
router ospfv2 PROCESS_NAME
advertise-max-metric


area - Данная команда создает в конфигурации устройства определенную зону OSPFv2 и позволяет перейти в режим настройки конфигурации этой зоны. 
В режиме конфигурации зоны возможно, в первую очередь, непосредственно конфигурировать интерфейсы, которые будут участвовать в процессе маршрутизации OSPFv2.
[no] area AREA

router ospfv2 PROCESS_NAME
area 0.0.0.0


area-aggregate -  Данная команда позволяет создать в конфигурации правило для суммарного маршрута с LSA Type 3 или LSA Type 7.
[no] area-aggregate { nssa-external-lsa | summary-lsa } IPv4_PREFIX_FORMAT


area-id - Команда задает номер области (Area ID) для маршрута, анонсируемого командой host.
no area-id - Отрицательная форма команды удаляет настройку.
router ospfv2 PROCESS_NAME
host 10.10.10.10
area-id 10.0.0.0

as-br disable - Данная команда выключает в данном OSPFv2-процессе функционал Autonomous System Border Router (ASBR).
router ospfv2 PROCESS_NAME
as-br disable

authentication-key - Данная команда создает в конфигурации ключ аутентификации OSPF сессий на указанном интерфейсе.
router ospfv2 PROCESS_NAME
area 0.0.0.0
interface tengigabitethernet 0/0/1
authentication-key test

authentication-type - Команда задает тип шифрования, используемый при аутентификации. 
router ospfv2 PROCESS_NAME
area 0.0.0.0
interface tengigabitethernet 0/0/1
authentication-type md5

auto-cost reference-bandwidth - Команда задает референсное (максимальное) значение пропускной способности (bandwidth), 
относительно которого будет высчитываться стоимость интерфейса. 
Стоимость интерфейса с референсным значением будет равна единице.
router ospfv2 PROCESS_NAME
auto-cost reference-bandwidth 1000000

bandwidth - Команда задает значение пропускной способности (bandwidth) на интерфейсе, которое будет использовано 
при подсчете стоимости (cost) данного интерфейса относительно референсного значения.
router ospfv2 PROCESS_NAME
area 0.0.0.0
interface tengigabitethernet 0/0/1
bandwidth 100000

dead-interval - Данная команда позволяет задать в конфигурации значение OSPF Dead Interval.
router ospfv2 PROCESS_NAME
area 0.0.0.0
interface tengigabitethernet 0/0/1
dead-interval 10

disable - Данная команда запрещает добавление отфильтрованных OSPFv2 IP LFA FRR маршрутов при использовании фильтра lfa filter. 
router ospfv2 PROCESS_NAME
lfa filter FILTER
disable

dscp - Команда указывает значение DSCP для исходящих сообщений OSPF протокола.
router ospfv2 1
area 0.0.0.0
interface twentyfivegigabitethernet 0/0/2
dscp 32

effect - Команда указывает значение DSCP для исходящих сообщений OSPF протокола.
router ospfv2 PROCESS_NAME
area 0.0.0.0
area-aggregate summary-lsa 10.0.0.0/8
effect advertise-matching

external-lsa-refresh-interval - Команда задает интервал между обновлениями external LSA, принадлежащих маршрутизатору. 
router ospfv2 PROCESS_NAME
external-lsa-refresh-interval 60

Настройка LACP / LAG

Рассмотрим настройку LACP-группы в режиме active.
В режиме active порты коммутатора являются инициаторами согласования по протоколу LACP. 
На встречной стороне порт должен быть настроен как в режиме active, так и в режиме passive.

Необходимо выполнить следующее:
1) Включаем работу LAG глобально на коммутаторе:
configure terminal
set port-channel enable

2) Активируем группу, в которую будем включать интерфейсы:
interface port-channel 2
no shutdown
exit

3) Перейти в режим конфигурирования порта:
interface GigabitEthernet0/2

4) Настроить LACP-группу:
channel-group 2 mode active , где 2 – номер группы
active – добавить порт в LACP-группу в режиме active.


для роутера:
lacp
  interface bundle-ether 1
  exit
  interface tengigabitethernet 0/0/3
    bundle id 1
    bundle mode active
  exit
  interface tengigabitethernet 0/0/7
    bundle id 1
    bundle mode active
  exit
exit

Пример конфига свитча с lacp

! Configuration version 3.9.7.31R
hostname R2

interface bundle-ether 1
  bfd address-family ipv4 fast-detect
  bfd address-family ipv4 local-address 10.0.0.5
  bfd address-family ipv4 neighbor 10.0.0.6
  bfd rx-interval 25
  bfd tx-interval 25
  description to_SW2
  ipv4 address 10.0.10.1/24
exit
interface bundle-ether 1.135
  encapsulation outer-vid 135
exit
interface hundredgigabitethernet 0/0/1
exit
interface hundredgigabitethernet 0/0/2
exit
interface hundredgigabitethernet 0/0/3
exit
interface hundredgigabitethernet 0/0/4
exit
interface mgmt 0/fmc0/1
  ipv4 address 172.31.0.21/24
  vrf mgmt-intf
exit
interface tengigabitethernet 0/0/1
  description "Client enp1s0f1np0"
  load-interval 20
exit
interface tengigabitethernet 0/0/2
  load-interval 20
exit
interface tengigabitethernet 0/0/3
  description "SW2 ten1/0/1"
  load-interval 20
exit
interface tengigabitethernet 0/0/4
  load-interval 20
exit
interface tengigabitethernet 0/0/5
  load-interval 20
exit
interface tengigabitethernet 0/0/6
  load-interval 20
exit
interface tengigabitethernet 0/0/7
  description "SW2 ten1/0/7"
  load-interval 20
exit
interface tengigabitethernet 0/0/8
  load-interval 20
exit
interface tengigabitethernet 0/0/9
  load-interval 20
exit
interface tengigabitethernet 0/0/10
  load-interval 20
exit
interface tengigabitethernet 0/0/11
  load-interval 20
exit
interface tengigabitethernet 0/0/12
  load-interval 20
exit
interface tengigabitethernet 0/0/13
  load-interval 20
exit
interface tengigabitethernet 0/0/14
  load-interval 20
exit
interface tengigabitethernet 0/0/15
  load-interval 20
exit
interface tengigabitethernet 0/0/16
  load-interval 20
exit
interface tengigabitethernet 0/0/17
  load-interval 20
exit
interface tengigabitethernet 0/0/18
  load-interval 20
exit
interface tengigabitethernet 0/0/19
  load-interval 20
exit
interface tengigabitethernet 0/0/20
  load-interval 20
exit
interface tengigabitethernet 0/0/21
exit
interface tengigabitethernet 0/0/22
exit
interface tengigabitethernet 0/0/23
exit
interface tengigabitethernet 0/0/24
exit
interface tengigabitethernet 0/0/25
exit
interface tengigabitethernet 0/0/26
exit
interface tengigabitethernet 0/0/27
exit
interface tengigabitethernet 0/0/28
exit
interface tengigabitethernet 0/0/29
exit
interface tengigabitethernet 0/0/30
exit
interface tengigabitethernet 0/0/31
exit
interface tengigabitethernet 0/0/32
exit

vrf mgmt-intf
  rd 0:0
exit

lacp
  interface bundle-ether 1
  exit
  interface tengigabitethernet 0/0/3
    bundle id 1
    bundle mode active
  exit
  interface tengigabitethernet 0/0/7
    bundle id 1
    bundle mode active
  exit
exit

load-balancing hash-fields mac-dst
load-balancing hash-fields mac-src
load-balancing hash-fields port-dst
load-balancing hash-fields port-src
load-balancing lag shift 3

logging console debug

router static
  vrf mgmt-intf
    address-family ipv4 unicast
      destination 172.30.0.0/20 172.31.0.1
      exit
    exit
  exit
exit

ssh server vrf mgmt-intf
exit

telnet server vrf mgmt-intf
exit

user admin
  password encrypted $6$хеш
  privilege p15
exit


ospf (ME5200S+MES5324)

схема: r1 -> sw1 -> sw2 -> r2



r1 

router ospfv2 1
  area 0.0.0.0
    interface loopback 1
      mtu-ignore
      passive
    exit
    interface tengigabitethernet 0/0/1
      mtu-ignore
      network point-to-point
      passive
    exit
    interface tengigabitethernet 0/0/4
      metric 10
      mtu-ignore
      network point-to-point
    exit
  exit
  redistribution connected 1
  exit
  redistribution connected CONNECT-OSPF-20
    metric-type ospf-type1-external
    metric-value 300
    priority 20
  exit
  router-id 1.1.1.1
exit






sw1
router ospf 1
 network 10.0.50.1 area 0.0.0.0
 network 10.0.100.2 area 0.0.0.0
 router-id 1.1.1.2
 redistribute connected metric-type type-2 subnets
exit
!
interface ip 10.0.50.1
 ip ospf network point-to-point
exit
!
interface ip 10.0.100.2
 ip ospf network point-to-point
exit                      




sw2
router ospf 1
 network 10.0.10.2 area 0.0.0.0
 network 10.0.50.2 area 0.0.0.0
 router-id 1.1.1.3
 redistribute connected metric-type type-2 subnets
exit
!
interface ip 10.0.10.2
 ip ospf network point-to-point                       
exit
!
interface ip 10.0.50.2
 ip ospf network point-to-point
exit



r2 
router ospfv2 1
  area 0.0.0.0
    interface bundle-ether 1
      mtu-ignore
      network point-to-point
    exit
    interface loopback 1
      mtu-ignore
    exit
    interface tengigabitethernet 0/0/1
      mtu-ignore
      network point-to-point
    exit
  exit
  redistribution connected subnets
  exit
  redistribution local subnets
  exit
  router-id 1.1.1.4



OSPF

Существует 5 типов пакетов протокола OSPF, которые позволяют устанавливать соседство и выполнять обновление маршрутной информации:
Type 1 — Hello. Обнаруживает соседей и поддерживает соседские отношения.
Type 2 — Database Description. Описывает содержимое базы данных состояния канала маршрутизатора.
Type 3 — Link State Request (LSR). Запрос на получение базы данных состояния канала.
Type 4 — Link State Update (LSU). Обновление базы данных состояния канала (передача LSA соседним маршрутизаторам).
Type 5 — Link State Acknowledgment (LSAck). Подтверждение получения обновления.

Каждый пакет Link State Update, генерируемый маршрутизатором, содержит один или несколько LSA. Существует 5 различных типов LSA:
Type 1 — Router-LSA. 
Генерируется каждым маршрутизатором для каждой области, которой он принадлежит. 
Он описывает состояние интерфейсов маршрутизатора, подключенных к этой области.
Type 2 — Network-LSA. 
Генерируется назначенным маршрутизатором (DR). 
Он описывает набор маршрутизаторов, подключенных к определенной сети.
Рассылается только в области, содержащей эту сеть.
Type 3 или 4 — Summary-LSA. 
Описывают маршруты между областями.
Type 3 Summary-LSA генерируются ABR и описывают маршруты между ABR и внутренними маршрутизаторами локальной области. 
Они рассылаются через магистраль другим ABR. 
Type 4 Summary-LSA описывают маршруты к ASBR.
Type 5 - AS-external-LSA. 
Генерируются ASBR и описывают маршруты к пунктам назначения за пределами автономной системы.
Маршрут по умолчанию для автономной системы также описывается AS-external-LSA



Команды для диогностики ospf
MES5324:
общая инфа:
show ip ospf
соседи:
show ip ospf neighbor
обмен:
show ip ospf database

ME5200
общая инфа:
show ospfv2
соседи:
show ospfv2 neighbors
обмен:
show ospfv2 database

lacp MES5324 + MES5324:

Настройки sw1 
interface tengigabitethernet1/0/2
 channel-group 5 mode auto
exit
!
interface tengigabitethernet1/0/3                     
 channel-group 5 mode auto
exit
!
interface tengigabitethernet1/0/5
 channel-group 5 mode auto
exit
!
interface tengigabitethernet1/0/6
 channel-group 5 mode auto
exit
!
interface Port-channel5
 ip address 10.0.50.1 255.255.255.0
exit 

Настройки sw2   
interface tengigabitethernet1/0/2
 channel-group 5 mode auto
exit
!
interface tengigabitethernet1/0/3
 channel-group 5 mode auto
exit                                                  
!
interface tengigabitethernet1/0/5
 channel-group 5 mode auto
exit
!
interface tengigabitethernet1/0/6
 channel-group 5 mode auto
exit
!
interface Port-channel5
 ip address 10.0.50.2 255.255.255.0
exit

lacp MES5324 + ME5200S:

Настройка MES5324:
interface tengigabitethernet1/0/1
 channel-group 2 mode auto
exit
!
interface tengigabitethernet1/0/7
 channel-group 2 mode auto
exit
!
interface Port-channel2                               
 ip address 10.0.10.2 255.255.255.0
exit

Настройка ME5200S:
lacp
  interface bundle-ether 1
  exit
  interface tengigabitethernet 0/0/3
    bundle id 1
    bundle mode active
  exit
  interface tengigabitethernet 0/0/7
    bundle id 1
    bundle mode active
  exit
exit
!
interface bundle-ether 1
  ipv4 address 10.0.10.1/24
exit

тесты кабеля

Показать интерфейсы:
show interfaces status

Тест медного кабеля:
test cable-diagnostics tdr interface gi0/1
Показать длину медного кабеля:
show cable-diagnostics cable-length


Показать оптические интерфейсы:
show fiber-ports optical-transceiver
show fiber-ports optical-transceiver interface TengigabitEthernet1/0/7
show fiber-ports optical-transceiver detailed interface TengigabitEthernet1/0/7

Зеркало трафика:

monitor session 1 destination interface gi1/0/3 - куда перенаправить трафик
monitor session 1 source interface gi1/0/2 both - откуда откуда перенаправить  трафик

mpls

mpls label = 32 bit

layer2 Header | MPLS Header | IP Packet

      MPLS Header:32 Bits (4 Bytes)
The label Value |    Exp       |          S              | TTL
      20 bits   | 3 bits       | 1 bits                  | 8 bits 
1 -  1 048 576  | 8 значений   |  два значения 0 или 1   | 0-255


Стак S
Первый пришёл последний вышел FILO
Fist IN / Fist OUT
0 - еще будет mpls label
1 - все последний mpls label



LSR - LABEL SWITCH ROUTER
Ingress LSR (imposition) - получает IP пакет, пушит в него MPLS Label(stack)
                           Следовательно вылетает из него MPLS пакет

Egress LSR (disposition) - получает MPLS пакет, удаляет из него лейбл.
                           Следовательно вылетает из него уже IP пакет.

Ingress/Egress LSR - находятся по краям (edge)mpls сети.
                     Часто их называют PE(provider edge) устройствами

Intermediate LSR - получает MPLS пакет, производит операции над ним и отправляет MPLS трафик дальше.
                   Часто называются P (Provider) устройствами 


ip  ->   LSR -> ip   = IP FORWARDING
mpls -> LSR -> mpls  = INTERMEDIA LSR (P - provider)
mpls -> LSR -> ip    = EGRESS LSR
ip -> LSR -> mpls    = INGRESS LSR

CE ->> PE --> MPLS(P) <-- PE <--CE

CE - Costome Edge (оборудование которое ничего не знает про MPLS)
PE - Provider Edge ( на границе сети ) (Оборудование которое как то взаимодействует с MPLS, например ip -> mpls)
P - Provider Router ( внутри сети) (оборудование общающееся исключительно через MPLS)

imposition - добавление метки mpls
desposition - убирание метки mpls

LABEL SWITCH PATH (LSP). FEC
LSP - это простой список из LSR которые коммутируют MPLS пакет через всю MPLS сеть, либо через часть MPLS сети
Forwarding Equivalence Class (FEC) - группа пакетов которые коммутируются по одному и тому же пути и обслуживают одинаково
Все пакеты принадлежавшие одному FEC будут иметь один и тот же лейбл.
При этом пакеты с одним и тем же лейблом не всегда принадлежат к одному FEC, например, в случае если их mpls EXP отличаются.
Ingress LSR принимает решения о том, к каким FEC принадлежат приходящие в него пакеты.

LFIB - база меток mpls (Label Forwarding instance(information)Base
Содержит ipv4/ipv6 prefix, VPN prefix, TE tunnel, l2 forwarding entry, local label, remote label
85 17 eth1
11 22 eth2
13 33 eth3

Local Label - метка, которую локальный LSR назначил на префикс
Remote Label - метка, которую LSR получил от соседнего LSR

Протоколы получения лейблов:
1. Static ( возможность есть, но никогда так не делай! )
2. LDP ( сам все сделал, сам настроил )
3. RSGP-TE ( можно явно задать хождение трафика ) / Trafic Engineering
4. BGP
5. SR - mpls 
   SRv6 
   (модное под капотом OSPF/ISIS)



LDP = LABEL DISTRIBUTION PROTOCOL
назначает лейблы на все префиксы в таблице маршрутизации и передает соседям label binding
Prefix+label=binding
Labal binding передается соседям автоматически без каких то дополнительных запросов
SWAP - замена лейбла на другой
PUSH - был ip пакет ушел mpls
POP - был mpls ушел ip 



Включение mpls на cisco
mpls ldp router-id lo0
mpls ip

int gi 0/0
mpls ip

show mpls forwarding-table
show ip route


Включение mpls на eltex ME5200S
mpls
  forwarding
    interface loopback 1
    interface tengigabitethernet 0/0/4
  exit
  ldp
    discovery interface tengigabitethernet 0/0/4
    exit
    neighbor 10.50.50.4 - сосед
    exit
  exit
  router-id 10.50.50.1 - наш ип на loopback
  transport-address 10.50.50.1 - наш ип на loopback
exit



show mpls ldp forwarding - покажет метки
show mpls ldp bindings local - покажет распределение меток локально
show mpls ldp bindings remote - покажет распределение меток удаленных
show mpls ldp bindings mldp - покажет распределение меток

GRE пример конфигурации

Маршрутизатора A:
interface tunnel-ip 1
  ipv4 address 10.0.1.1/30
  tunnel destination 192.168.55.5
  tunnel encapsulation gre
  tunnel source 192.168.55.21
exit
interface tengigabitethernet 0/0/11.10043
  encapsulation outer-vid 100 inner-vid 43
  ipv4 address 192.168.43.1/24
exit
router static
  address-family ipv4 unicast
    destination 192.168.41.0/24 10.0.1.2
    exit
  exit
exit


Маршрутизатор Б:
interface tunnel-ip 1
  ipv4 address 10.0.1.2/30
  tunnel destination 192.168.55.21
  tunnel encapsulation gre
  tunnel source 192.168.55.5
exit
interface tengigabitethernet 0/1/5.10041
  encapsulation outer-vid 100 inner-vid 41
  ipv4 address 192.168.41.1/24
exit
router static
  address-family ipv4 unicast
    destination 192.168.43.0/24 10.0.1.1
    exit
  exit
exit



Пример 1-2:

router 1
interface tunnel-ip 1
  ipv4 address 10.99.99.1/30
  tunnel destination 10.50.50.4
  tunnel encapsulation gre
  tunnel source 10.50.50.1
exit

router 2
interface tunnel-ip 1
  ipv4 address 10.99.99.2/30
  tunnel destination 10.50.50.1
  tunnel encapsulation gre
  tunnel source 10.50.50.4
exit




ECMP

По умолчанию в OSPF - 5.
Чтобы заработал ECMP, необходимо прописать дополнительно:
router equal-cost
exit

Пример конфигурации IP SLA:

https://docs.eltex-co.ru/pages/viewpage.action?pageId=303825161&src=contextnavpagetreemode

vlan

MES5324:

interface tengigabitethernet1/0/1
 switchport mode general
 switchport general allowed vlan add 1002 tagged
 switchport forbidden default-vlan
exit

interface tengigabitethernet1/0/2
 spanning-tree disable                                
 spanning-tree bpdu filtering
 switchport mode general
 switchport general allowed vlan add 1002 tagged
 switchport forbidden default-vlan
exit

interface Port-channel2
 switchport mode general
 switchport general allowed vlan add 1002 tagged
 switchport forbidden default-vlan
exit


ME5200:
interface bundle-ether 1.1002
  encapsulation outer-vid 1002
  ipv4 address 10.75.75.2/24
exit

interface tengigabitethernet 0/0/4.1002
  encapsulation outer-vid 1002
  ipv4 address 10.75.75.1/24
exit

ESR VRRP кластер

sh run cluster
sh run bridges 100
bridge 100
  vlan 1
  ip firewall disable !!! ПОтотм включим как убедимся что заработало
  ip фввкуыы 192.168.100.1/24
unit 1 
 ip address 192.168.100.2/24
unit 2
  vrpp forse-up
  vrrp id 100
  vrrp 192.168.100.100/24
  vrrp group 1
  vrrp preempt disable
  vrrp timers garp refrash 1
  vrrp
  enable
exit 


Проверка
show cluster status
show cluster sync status


Интерфесы на первом юните нумеруется 1/0/1 а на втором 2/0/1
sh run int gi 1/0/1 - покажет первый  юнит
sh run int gi 2/0/1 - покажет второй юнит



bridge 20
 vlan 20
 security-zone trusted
 ip address 172.16.1.2/24 unit 1
 ip address 172.16.1.3/24 unit 2
 vrrp id 20
 vrrp ip 172.16.1.1/24
 vrrp group 1
 vrrp timers garp refrash 1
 vrrp
 enable
exit

object-group network sync_dst
  ip address-range 192.168.100.2 unit 1
  ip address-range 192.168.100.1 unit 2
exit
object-group network sync_src
  ip address-range 192.168.100.1 uni1
  ip address-range 192.168.100.2 unit2
exit

по поводу фаервола:
sh run failovers
ip failover
  local-address object-group sync_src
  remote-address object-group sync_dst
  vrrp-group 1
exit

ip firewall failover
  sync-type unicast
  port 9999
enable
exit


ip dhcp-server failover
  mode active-standby
  enable
exit

crypro-sync
  enable
exit


Проверка доступных сервисов:
show higj-availability state


Включение фаервола:
Проверяем сессии:
show ip firewall sessions inside-source-address 192.168.100.1

Рубрики
Mikrotik

mikrotik WebFig / web

Ссылки:

https://help.mikrotik.com/docs/spaces/ROS/pages/328131/WebFig

Настройка:

!!! Укажи правильный ip для вашего микротика
!!! также вы можете изменить порт для вебинтерфеса IP-> services-> www-ssl
!!! так же рекомендуется выключить IP -> services ->www

Генерация и установка ssl сертификата:
certificate add name=local-cert common-name=local-cert key-usage=key-cert-sign,crl-sign 
certificate sign local-cert 
certificate add name=webfig common-name=192.168.88.1
certificate sign webfig 

Включение веб сервера с генерированным сертификатом:
ip service
set www-ssl certificate=webfig disabled=no


Рубрики
device \ устройства \ железо

lx2160

сборка ядра

Переходим в каталог в котором будем собирать ядро:
cd /opt

Ставим не обходимые пакеты для сборки в систему:
apt install git make gcc linux-libc-dev pkg-config libncurses-dev flex bison  libssl-dev libelf-dev dwarves rsync bc fakeroot build-essential  xz-utils  libncurses5-dev

Скачиваем патчи солидрана:
git clone https://github.com/SolidRun/lx2160a_build.git

Скачиваем ядро:
git clone --depth 1 https://github.com/nxp-qoriq/linux -b LSDK-21.08

Переходим в каталог ядра:
cd linux

Производим слияние конфигов:
cp ../lx2160a_build/configs/linux/lx2k_additions.config arch/arm64/configs/
./scripts/kconfig/merge_config.sh arch/arm64/configs/defconfig arch/arm64/configs/lsdk.config arch/arm64/configs/lx2k_additions.config 

Нужно как то себя обозначить для дальнейшего использования git:
  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"
  
Применяем патчи:
git am  ../lx2160a_build/patches/linux-LSDK-21.08/*.patch

Получаем настройки текущего ядра:
Достаточно любой из команд, но ничего страшного если выполните по рядку
zcat /proc/config.gz > .config
make oldconfig

На этом этапе можно добавить batman_adv в конфиг
vim .config
найти строку CONFIG_BATMAN_ADV ( используй / для поиска)
и привести ее к виду 
CONFIG_BATMAN_ADV=m
CONFIG_BONDING=m

Теперь производим сборку и установку
make -j$(nproc)
make modules_install
make install 

Если требуется можно сохранить старое ядро
mv /boot/Image /boot/Image.original
mv /boot/Image.gz /boot/Image.gz.original

Вот так мы установим новое ядро:
cp arch/arm64/boot/Image.gz arch/arm64/boot/Image /boot/

скрипт для поднятия сети


cat > /usr/local/sbin/cx-lx2-network.sh << "EOF"
#!/bin/bash
# Script to bring up high speed network interfaces ont the SolidRun LX2160A
# Clearfog / Honeycomb
for n in 9 7 10 8
 do /usr/bin/ls-addni dpmac.$n
done
exit 0

EOF



cat > /etc/systemd/system/ls-addni.service << "EOF"
[Unit]
DefaultDependencies=no
Description=Bring up high-speed network interfaces
Before=network-pre.target
Wants=network-pre.target

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/cx-lx2-network.sh
TimeoutSec=0
RemainAfterExit=yes

[Install]
RequiredBy=network.target
EOF

chmod +x /usr/local/sbin/cx-lx2-network.sh
systemctl daemon-reload
systemctl enable ls-addni.service

sysctl.conf

net.ipv4.ip_forward=1
net.ipv4.tcp_max_tw_buckets = 65536
#net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_max_syn_backlog = 131072
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 8
#net.ipv4.tcp_rmem = 16384 174760 349520
#net.ipv4.tcp_wmem = 16384 131072 262144
net.ipv4.tcp_mem = 262144 524288 1048576
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_low_latency = 1
#net.ipv4.tcp_syncookies = 0


net.core.rmem_max = 134217728 
net.core.wmem_max = 134217728 
#net.ipv4.tcp_rmem = 4096 87380 67108864
#net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_rmem = 16384 174760 67108864
net.ipv4.tcp_wmem = 16384 131072  67108864


sysctl -w net.ipv4.tcp_window_scaling=1
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216

BATMAN-ADV

apt install -y  git libnl-3-dev libnl-genl-3-dev libnl-genl-3-dev make  pkg-config gcc

Установка нового модуля batman-adv
cd /opt/
git clone https://github.com/open-mesh-mirror/batman-adv.git
cd batman-adv
git checkout v2024.2
sed -i '/export/s/=n/=y/' Makefile
make -j`nproc`
make install
echo "batman-adv" | tee -a /etc/modules


Сборка и установка программы управления batman_adv
cd /opt/
git clone https://github.com/open-mesh-mirror/batctl.git
cd batctl/
git checkout v2024.2
make -j`nproc`
make install

solidrun 2160

https://solidrun.atlassian.net/wiki/spaces/developer/pages/197494288/HoneyComb+LX2+ClearFog+CX+LX2+Quick+Start+Guide
https://github.com/SolidRun/lx2160a_build
https://solid-run-images.sos-de-fra-1.exo.io/LX2k/lx2160a_build/20240731-2a7ab21/lx2160acex7_2000_700_3200_8_5_2-2a7ab21.img.xz


1. Включаем загрузку с сд карты (off  on  on  on  off)
2. Прерываем загрузку нажатием любой кнопки
3. Записываем в mmc образ
load mmc 0:1 0xa4000000 ubuntu-core.img
mmc dev 1
mmc write 0xa4000000 0 0xd2000
4. Загружаемся в новь созданный образ
boot
5. Логинемся
root/root
6. Меняем разметку на диске mmc
fdisk /dev/mmcblk1
жмем p - показать размер текущей системы
жмем d - удалить раздел
жмем n - создадим раздел
!!! внимание нужно отступить  131072
вводим 131072
после всех операций с разделами для сохранения жмем w
7. Увеличиваем фс
 resize2fs /dev/mmcblk1p1
8. Выключаем устройство и переключаем перемычки на загрузку mmc
(off  on  on  off  off)

9. ssh root
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
systemctl restart sshd


10. dhcp
cat > /etc/network/interfaces.d/eth2 << "EOF"  
auto eth2
iface eth2 inet dhcp
EOF

Рубрики
Raspberry Pi

i2c

Команда i2cdetect

Показать доступные адаптеры 
i2cdetect -l 
i2c-0   i2c             2180000.i2c                             I2C adapter
i2c-1   i2c             21b0000.i2c                             I2C adapter



Вывод команды i2cdetect -y 0

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- 18 19 -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: 30 -- -- -- -- 35 -- -- 38 -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- 51 -- -- UU UU -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 

--: Указывает, что по этому адресу на I2C-шине не было обнаружено устройства.
UU: Указывает, что устройство по этому адресу используется ядром (или драйвером) и недоступно для работы через i2c-tools
число (например, 18, 19, 30): Указывает на обнаруженное устройство по этому адресу.

Здесь показаны устройства, обнаруженные на шине 0 I2C. 
Они находятся по следующим адресам:
0x18
0x19
0x30
0x35
0x38
0x51

Адреса 0x54 и 0x55 помечены как UU, что означает, 
что эти устройства уже используются ядром, 
скорее всего драйвером.



Проверьте загруженные модули ядра:
Используйте команду lsmod, чтобы увидеть, какие модули ядра загружены, и попробуйте найти тот, который использует адреса 0x54 и 0x55.

Выключите соответствующие модули:
Если возможно, выгрузите модули ядра, которые используют эти устройства. 

Например:
rmmod имя_модуля

Вернуть модуль ядра: 
modprobe имя_модуля

Команда i2cset

Команда i2cset используется для записи данных в регистр устройства на I2C-шине.
i2cset -y 0 0x54 0x00 0x12 0x34 0x56 0x78 0x9a i
-y: Отключает интерактивный запрос подтверждения (позволяет выполнять команду без подтверждения).
0: Номер I2C-шины (обычно 0 или 1).
0x54: Адрес I2C-устройства.
0x00: Адрес регистра, в который будут записаны данные.
0x12 0x34 0x56 0x78 0x9a: Данные, которые будут записаны в регистр.
i: Указывает, что данные должны быть записаны как последовательность байтов (I2C block write).

Команда i2cget

Команда i2cget используется для чтения данных из регистра устройства на I2C-шине.

i2cget -y 0 0x54 0x00 i 5
-y: Отключает интерактивный запрос подтверждения.
0: Номер I2C-шины.
0x54: Адрес I2C-устройства.
0x00: Адрес регистра, из которого будут прочитаны данные.
i: Указывает, что чтение будет выполнено как последовательность байтов (I2C block read).
5: Количество байтов для чтения.

Стирание данных

i2cset -y 0 0x54 0x00 0x00 0x00 0x00 0x00 0x00 i
i2cset -y 0 0x54 0x05 0x00 0x00 0x00 0x00 0x00 i


Стирание большого объёма данных баш скрипт
-------------------------------
#!/bin/bash

DEVICE_ADDRESS=0x54
START_REGISTER=0x00
BLOCK_SIZE=16  # размер блока данных для стирания за раз

# Цикл для записи нулей по всем регистрам
for ((i=0; i<256; i+=BLOCK_SIZE)); do
  i2cset -y 0 $DEVICE_ADDRESS $((START_REGISTER + i)) $(printf '0x00%.0s' $(seq 1 $BLOCK_SIZE)) i
done
-------------------------------

Частный случай записи в eprom

# выгрузили модуль ядра
 rmmod at24


#конвертация ASCII-кодов
echo -n "bs04" | od -An -t x1
# ASCII-кодов
printf "x62x73x30x34" | echo -e $(cat -)

# пример записи в bs04
#i2cset -y 0 0x54 0x00 0x62 0x73 0x30 0x34 i

#через звездочку удалять не стоит  может будущем аукнутся 
rm /var/lib/nexuscli/access_token
rm /var/lib/nexuscli/device_id
rm /var/lib/nexuscli/refresh_token

#вот так можно прочитать 
i2cget -y 0 0x54 0x00  i 6

#загрузили модуль ядра
modprobe at24


Рубрики
Raspberry Pi

Linux Driver for USB WiFi / Realtek / RTL8811CU / RTL8821CU / RTL8821CUH / RTL8731AU / Access Point / RaspAP / 80211

Ссылки:

https://habr.com/ru/sandbox/131693/ полезная статья по драйверу
https://github.com/morrownr/8821cu-20210916 
https://github.com/fastoe/RTL8811CU_for_Raspbian
https://github.com/brektrou/rtl8821CU
https://github.com/gglluukk/rtl8188eus
https://github.com/Mange/rtl8192eu-linux-driver
https://github.com/aircrack-ng/rtl8812au
https://github.com/Mange/rtl8192eu-linux-driver
https://github.com/clnhub/rtl8192eu-linux


rpi
https://ru.wikipedia.org/wiki/Raspberry_Pi
https://forums.raspberrypi.com/viewtopic.php?t=344895
https://github.com/liushm/rtl8821CU
https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-03-15/2024-03-15-raspios-bookworm-arm64-lite.img.xz
https://github.com/FancyPixel/rtl8821cu
https://github.com/morrownr/8821cu-20210916

AP 
https://habr.com/ru/articles/761852/
https://raspap.com/
https://docs.raspap.com/

Для raspbery pi получаем самые последние сорцы ядра:

apt install -y bc git dkms build-essential raspberrypi-kernel-headers
wget https://raw.githubusercontent.com/RPi-Distro/rpi-source/master/rpi-source -O /usr/local/bin/rpi-source 
chmod +x /usr/local/bin/rpi-source && /usr/local/bin/rpi-source -q --tag-update
rpi-source

Сборка драйвера:

!!! kernel linux < 6
!!! прочтите инструкции в файле README.md
!!! cat README.md
Ставим необходимы пакеты:
apt-get install dkms
dkms status
git clone https://github.com/brektrou/rtl8821CU.git
cd rtl8821CU
Выполняем установку
./dkms-install.sh
dkms status

Удаление драйвера установленного через DKMS

Проверяем что там у нас установлено используем команду "dkms status ":
dkms status 
rtl8821cu, 5.12.0.4: added
rtl8821CU, 5.4.1: added
Удаляем ( rtl8821cu/5.12.0.4):
dkms uninstall rtl8821cu/5.12.0.4
dkms remove rtl8821cu/5.12.0.4 --all

8821cu-20210916 RPI 3B+

https://github.com/morrownr/8821cu-20210916?tab=readme-ov-file

Ставим пакеты для сборки:
apt install -y bc git dkms build-essential raspberrypi-kernel-headers
wget https://raw.githubusercontent.com/RPi-Distro/rpi-source/master/rpi-source -O /usr/local/bin/rpi-source 
chmod +x /usr/local/bin/rpi-source && /usr/local/bin/rpi-source -q --tag-update

Качаем драйверы:
cd /opt
git clone https://github.com/morrownr/8821cu-20210916

Устанавливаем драйвер
!!! В Makefile уже установлена авто определения драйвера.
cd 8821cu-20210916/
make -j4
./dkms-make.sh 
./install-driver.sh 

AP

https://habr.com/ru/articles/761852/
https://raspap.com/

sudo apt-get update
sudo apt-get full-upgrade
sudo reboot
curl -sL https://install.raspap.com | bash


Username: admin
Password: secret

Рубрики
device \ устройства \ железо

intel / amd / nvidia / хронология

инфа тут:

https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%BE%D0%B2_Intel
https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%BE%D0%B2_AMD

Хронология intel:

1971, 15 ноября: 4004
1972, 4-й квартал: 4040
1972, 1 апреля: 8008
1974, 1 апреля: 8080
1976, март: 8085
1978, 8 июня: 8086
1979, 1 июня: 8088
1981, 1 января: iAPX 432
1982, 80186, 80188
1982, 1 февраля: 80286
1985, 17 октября: 80386DX
1988, 5 апреля: i960 aka 80960
1988, 16 июня: 80386SX
1989, 16 января: 80376
1989, 27 февраля: i860 aka 80860
1989, 10 апреля: 80486DX
1990, 15 октября: 80386SL
1991, 22 апреля: 80486SX
1992, 3 марта: 80486DX2
1992, 9 ноября: 80486SL
1993, 22 марта: Pentium
1994, 7 марта: 80486DX4
1994, август: Intel386 EX
1995, 1 ноября: Pentium Pro
1997, 8 января: Pentium MMX
1997, 7 мая: Pentium II
1998, 15 апреля: Celeron (Pentium II-based)
1998, 29 июня: Pentium II Xeon
1999, 26 февраля: Pentium III
1999, 25 октября: Pentium III Xeon
2000, 23 августа: XScale
2000, 20 ноября: Pentium 4
2001: Itanium
2001, 21 мая: Xeon
2002, июль: Itanium 2
2003, март: Pentium M
2003, март: Celeron M
2003, сентябрь: Pentium 4EE
2004, весна: EM64T
2005, 2 квартал: Pentium D
2006: Pentium Dual-Core
2006, 27 июля: Core 2 Duo
2006, осень: Core 2 Extreme
2007, январь: Core 2 Quad
2008, 1 квартал: Core 2 обновление линейки
2008, 2 квартал: Centrino Atom
2008, 3 квартал: Core i7
2009, 4 квартал: Core i5
2010, 1 квартал: Core i3
2011, 2 квартал: Celeron/Pentium Sandy Bridge (2-е поколение)
2011, 3 квартал: Сore i3, i5, i7, i7 — Extreme Edition Sandy Bridge
2012, 1 квартал: 22 нм, Core i3, i5, i7 — Ivy Bridge
2013, 2 квартал: 22 нм, Core i3, i5, i7 — Haswell
2014, 3 квартал: 14 нм, Core M, i3, i5, i7 — Broadwell
2015, 3 квартал: 14 нм, Core M, i3, i5, i7 — Skylake
2017, 1 квартал: 14 нм, Celeron, Pentium G, Core i3, i5, i7 — Kaby Lake (7-е поколение)
2017, 4 квартал: 14 нм, Core i3, i5, i7 — Coffee Lake, i9 Skylake.
2018, конец: 14 нм — Cooper Lake[3]
2018, 4 квартал: 14 нм — i3, i5, i7, i9 Coffee Lake Refresh (8-е поколение)
2018, конец: 14 нм — Cannon Lake
2019, 3 квартал: 14 нм - Comet Lake
2020, конец: 14 нм — Ice Lake (10-е поколение)
2021: 14 нм — Tiger Lake (11-е поколение)
2021, конец: 10 нм — Alder Lake (12-е поколение)
2022, 3 квартал: 10 нм — Raptor Lake (13-е поколение)
2023, 3 квартал: 10 нм — Raptor Lake Refresh (14-е поколение)

Хронология amd:

Процессоры AMD:
1975: AMD Am9080 (аналог Intel 8080).
1982: Am286 (аналог Intel 80286).
1991: Am386 (аналог Intel 80386).
1993: Am486 (аналог Intel 80486).
1996: K5 (первый собственный дизайн AMD).
1997: K6 (конкурент Intel Pentium).
1999: Athlon (первый 7-го поколения, конкуренция с Pentium III).
2003: Opteron и Athlon 64 (первые 64-битные процессоры для серверов и настольных ПК)​
2006: Athlon 64 X2 (первый двухъядерный процессор AMD).
2007: Phenom (первые процессоры с четырьмя ядрами, конкуренция с Intel Core 2 Quad).
2011: Bulldozer (архитектура для настольных ПК и серверов).
2017: Ryzen (первое поколение, основано на архитектуре Zen, конкуренция с Intel Core 7-го поколения)​
2020: Ryzen 5000 (на основе Zen 3, 7 нм).
2022: Ryzen 7000 (архитектура Zen 4, 5 нм).

Видеокарты:

AMD Radeon:
2000: Radeon DDR
2002: Radeon 9700 Pro
2006: Radeon X1900 XT
2010: Radeon HD 5000 Series (первые карты с поддержкой DirectX 11)
2011: Radeon HD 7970 (первый GPU на 28-нм техпроцессе)
2013: Radeon R9 290X (архитектура GCN 2.0)
2016: Radeon RX 400 Series (14-нм процесс, Polaris)
2019: Radeon RX 5700 XT (архитектура RDNA)
2020: Radeon RX 6000 Series (RDNA 2, поддержка аппаратного трассировки лучей)
2022: Radeon RX 7000 Series (RDNA 3)

NVIDIA GeForce:
1999: GeForce 256 (первая графическая карта NVIDIA с T&L)
2004: GeForce 6 Series (поддержка Shader Model 3.0)
2010: GeForce GTX 400 Series (архитектура Fermi)
2016: GeForce GTX 10 Series (архитектура Pascal)
2018: GeForce RTX 20 Series (первые с трассировкой лучей в реальном времени, архитектура Turing)
2020: GeForce RTX 30 Series (Ampere, увеличенная производительность)
2022: GeForce RTX 40 Series (Ada Lovelace, улучшения трассировки лучей и DLSS)

Видеокарты Intel
2010: Intel HD Graphics — начальная серия встроенных GPU для процессоров Core.
2012: Intel Iris Graphics — улучшенная встроенная графика для премиальных процессоров.
2013: Intel Iris Pro Graphics — первые iGPU с выделенной памятью (eDRAM).
2020: Intel Xe Graphics — новая архитектура, представленная как интегрированная и дискретная графика.
2022: Intel Arc Alchemist — первые дискретные видеокарты для настольных ПК и ноутбуков, ориентированные на массовый рынок.
Процессоры Intel
Год   Модель          Частота (MHz)   Кол-во ядер/потоков     Доп. информация
1971  Intel 4004      740 kHz         1 ядро                  Первый коммерческий процессор.
1978  Intel 8086      5-10            1 ядро                  Первый x86.
1993  Pentium         60-66           1                       Ввел поддержку суперскалярного исполнения.
2006  Core 2 Duo      1866-3166       2 ядра                  Революция в производительности.
2017  Core i9-7900X	3300-4200       10 ядер/20 потоков      HEDT-платформа Skylake-X.
2021  Core i9-12900K	3200-5200       16 ядер/24 потока       Архитектура Alder Lake, гибридные ядра.

Процессоры AMD
Год   Модель          Частота (MHz)   Кол-во ядер/потоков     Доп. информация
1999  Athlon          500-700         1 ядро                  Первый с частотой выше 1 GHz.
2011  FX-8150         3600-4200       8 ядер                  Архитектура Bulldozer.
2017  Ryzen 7 1800X   3600-4000	      8 ядер/16 потоков	      Дебют архитектуры Zen.
2020  Ryzen 9 5950X   3400-4900       16 ядер/32 потока	      Zen 3, флагманский чип.
2022  Ryzen 9 7950X   4500-5700       16 ядер/32 потока       Zen 4, 5-нм процесс.

Видеокарты NVIDIA
Год   Модель          Частота GPU (MHz)  Память (ГБ)     Частота памяти (MHz)    Архитектура
1999  GeForce 256     120                32MB            166                     Первый GPU.
2016  GTX 1080        1607-1733          8               10000                   Pascal
2018  RTX 2080 Ti     1350-1545	         11              14000                   Turing, Ray tracing.
2020  RTX 3080        1440-1710	         10              19000	                Ampere
2022  RTX 4090        2235-2520	         24              21000	                Ada Lovelace

Видеокарты AMD
Год    Модель            Частота GPU (MHz)       Память (ГБ)     Частота памяти (MHz)    Архитектура
2000   Radeon DDR        166                     32MB            366                     DirectX 7
2002   Radeon 9700 Pro   325                     128MB           620                     R300 
2013   Radeon R9 290X	  1000                    4              5000                    GCN 2.0
2019   RX 5700 XT	  1605-1905               8              14000                   RDNA
2020   RX 6900 XT	  1825-2250               16             16000                   RDNA 2
2022   RX 7900 XTX	  2300-2500               24             20000                   RDNA 3

Рубрики
Mikrotik

mikrotik / winbox packet sniffer / wireshark

https://www.wireshark.org/

0. Первым делом открываем Wireshark, выбираем интерфейс, на котором хотим “сниффить”  
и устанавливаем следующий фильтр:

udp port 37008

1. А теперь самое интересное – подключаемся к MikroTik’у через WinBox, переходим в раздел Tools далее Packet Sniffer и настраиваем Streaming


Полезное для wireshark:

Включить отображение Packet Datagram
Edit -> Preference -> Layout
Выбрать вторую и в панелях выставить:
Pane 1: Packet list
Pane 2: Packet Details
Pane 3: Packet Diagram

Не забудьте включить Show Field Value в окошке Packet Datagram для отображения данных из пакета на картинке справа:)

Рубрики
device \ устройства \ железо

rtsp / tenda / trassir / activcam / cam

Для камер ActiveCam:

rtsp://ip_адрес:554/streaming/video0 - основной поток
rtsp://ip_адрес:554/streaming/video1 - второй поток


Для камер Trassir:
основной поток: rtsp://[логин]:[пароль]:[IP-адрес]:[rtsp-порт]/live/main
дополнительный: rtsp://[логин]:[пароль]:[IP-адрес]:[rtsp-порт]/live/sub

Для камер Hikvision:


rtsp://admin:12345@192.0.0.64:554/Streaming/Channels/101

rtsp - тип используемого протокола
admin - имя учетной записи по умолчанию (лучше изменить)
12345 - пароль используемой учетной записи (ваш пароль к устройству)
192.0.0.64 - IP-адрес камеры (укажите свой)
554 RTSP порт камеры по умолчанию (может быть изменен в настройках)
101 - первая камера, первый поток
201 - вторая камера, первый поток
102 - первая камера, второй поток
1301 - 13-я камера, первый поток и т.д.
Адреса для устаревших моделей:
rtsp://admin:12345@192.0.0.64:554/h264/ch01/main/av_stream - основной поток
rtsp://admin:12345@192.0.0.64:554/h264/ch01/sub/av_stream - второй поток


tenda rtsp

https://www.tendacn.com/faq/3692.html

Для камер CP3/CP6/CP7, но может отличаться в зависимости от прошивки. 

URL-адрес RTSP, максимальное разрешение 2560x1440p 15 кадров в секунду:
rtsp://admin:admin123456@xxx.xxx.xxx.xxx:8554/profile0

URL-адрес RTSP, максимальное разрешение 640x360p 15 кадров в секунду:
rtsp://admin:admin123456@xxx.xxx.xxx.xxx:8554/profile1



рабочая ссылка (CP3):
rtsp://admin:admin123456@ip_address_cam:8554/profile1

для новой (RP3):
# 
rtsp://admin:admin123456@192.168.XX.XX:554/ch=1?subtype=0


# ONVIF

Рубрики
Cisco

cisco 3725 / gns3 / команды cisco

Пример настройки для gns3:

https://docs.gns3.com/docs/using-gns3/beginners/switching-and-gns3/

Пример создания пользователя:

enabled - включили привилегированный режим
config t - вошли в глобальную настройку
enable password 123456 - задали пароль на enable
service password-encryption - включили шифрование паролей
enable secret 123456 - задали пароль
Line ? - покажет все доступные терминалы
Line console 0 - выберем консоль console 0
login local - включим использование локальной базы паролей
username ? - посмотреть все доступные параметры для username
username admin privileg 15 secret pass_Word!@ - создать пользователя, задать пароль и привилегии

Настройка статического IP


interface Vlan1 - выбираем Vlan1 для настройки
ip address 192.168.0.1 255.255.255.0 - добавляем адрес
no shutdown - включаем и убеждаемся

Доступ поп ssh



hostname test.dom - задаем имя хоста
ip domain name test.dom - задаем имя хоста и домена
crypto key generate rsa - генерируем ключ
Line ? - покажет все доступные терминалы
Line vty 0 4 - выберем виртуальный терминал vty 0 4
? - можем посмотреть все доступные команды
transporent input ? - посмотрим все доступные режимы (telnet,ssh)
transporent input ssh - выберем ssh
login local - выберем использование локальной базы паролей
logging synchronous - активируем автоматическое поднятие строки после ответа системы на проделанные изменения
exec-timeout 60 0 - указываем время "тайм аута  timeout" до автоматического закрытия SSH сессии в 60 минут

vlans


Vlan1
en - входим в привилегированный режим
show run - смотрим конфигурацию
config t - входим в режим глобальной настройки
vlan 200 - создадим vlan 200
? - смотрим доступные команды
name Name_vlan - задать имя для vlan 2
exit - выйдем из настройки vlan 200


cisco добавляем интерфейс в vlan 200
en - входим в привилегированный режим
show run - смотрим конфигурацю
config t - входим в режим глобальной настройки
interface fastEthernet 0/1 - выбираем интерфейс 0/1
switchport mode access - выбираем режим работы access
switchport access vlan 200 - добавляем в vlan 200
exit - выходим из настройки interface fastEthernet 0/1
interface fastEthernet 0/2 - выбираем интерфейс 0/2
switchport mode access - выбираем режим работы access
switchport access vlan 200 - добавляем в vlan 200



cisco trunk
en - входим в привилегированный режим
show run - смотрим конфигурацию
config t - входим в режим глобальной настройки
interface gigabitEthernet  0/1 - выбираем gigabitEthernet 0/1
switchport mode trunk - включаем режим trunk
switchport trunk allowed vlan 200,300 -  разрешаем vlan 200 и 300
exit - выйти из настройки interface gigabitEthernet  0/1
Внимание! Если вы хотите в транковый порт добавить ещё один влан, то вам необходимо использовать следующий синтаксис команды:
switchport trunk allowed vlan add 105

Управление несколькими интерфейсами:
interface range fastEthernet 1/0 - 15 
no shutdown
switch mode trunk

Команда do позволяет выполнять команды из configure termianl


do show running-config
do show switchport
do show interfaces
do show ip protocols
do show ip route
do show ip arp

Поиск неисправностей

--------------------------------------
на маршрутизаторах:
enable - входим в привилегированный режим 
show running-config - показать конфигурацию cisco
show ip interface brief - покажет состояние интерфейсов
show mac-address-table - показать таблицу mac-адресов (полезно при поиски устройств не получивших IP адрес, линк есть)
sh mac address-table vlan [номер влана] / sh mac address-table interface [giX/Y]  - маки на конкретном логическом или физическом интерфейсе
sh int description  - дескрипшены на портах
sh int switchport | begin [номер порта/название интерфейса] ("begin" - сообщаем, с какой строки необходимо начать выводить инфу в консоль/с какого интерфейса) 
sh ip int brief  - сводная инфа по всем интерфейсам (название интерфейса, какой назначен ip-адрес, статус "up|administratively down", протокол "up|down")
show vlan - показать vlan'ы и какие порты к ним подключены
show interface ethernet status - посмотреть состояние всех портов
sh int eth1/0/1 det - посмотреть детальную информацию по отдельному порту
show ip route - покажет все доступные маршруты
ping 192.168.0.1 - программа пинг позволяет определить доступность хоста
telnet 192.168.0.2 80 - программа telnet позволяет подключится на любой tcp порт. 
debug ip icmp - (!!! аккуратно можно положить сеть) программа debug позволяет отследить что происходит на устройстве  
no debug all - отключить программу deubg 
--------------------------------------
на клиенте:
ping 192.168.0.1 - программа пинг позволяет определить доступность хоста
 
arp -a - если пк находится в одной сети, и видит в таблице мак адрес хоста другого пк (например веб сервера), 
         но не может подключится. Проблема скорее всего в firewall
 
tracert 192.168.0.1 - программа traceroute позволяет удивить маршрут следования пакета (windows)
traceroute 192.168.0.1 - программа traceroute позволяет удивить маршрут следования пакета (*nix)
 
nslookup - программа позволяет подключится к dns серверу и запросить у него name/ip тип ALL/A/MX/SRV/NS (server=8.8.8.8, set q=MX)
nslookup -type=all ya.ru  8.8.8.8 - показать все A,MX,PTR,NS и т.д.
nslookup -type=mx ya.ru  8.8.8.8 -  показать записи MX (почта) домена ya.ru
nslookup -type=ptr 8.8.8.8  8.8.8.8 - показать имя сервера которому принадлежит 8.8.8.8
 
telnet 192.168.0.2 80 - программа telnet позволяет подключится на любой tcp порт. 


Рубрики
openwrt

openwrt sdk

Ссылки:

https://downloads.openwrt.org/releases/  - тут ищем sdk 
https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem - тут смотрим какие пакеты нужно установить для сборки
https://openwrt.org/docs/guide-developer/toolchain/using_the_sdk - инструкция по использованию sdk

Ставим необходимые пакеты debian/ubuntu:

sudo apt install build-essential clang flex bison g++ gawk gcc-multilib g++-multilib 
gettext git libncurses5-dev libssl-dev python3-distutils rsync unzip zlib1g-dev 
file wget

openwrt git сборка

0. Устанавливаем пакеты для сборки:
apt install build-essential git gcc make bc fakeroot dpkg-dev libncurses5-dev libssl-dev

1. Скачиваем openwrt
git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt
git pull
 
2. Выбираем бранч 
git branch -a
git tag
git checkout v21.02.2
 
3. Обновляем бранч
./scripts/feeds update -a
./scripts/feeds install -a
 
4 Приступаем к сборке 
!!! make defconfig будет произведено основное конфигурирование системы сборки, включая проверку зависимостей и условий для окружения сборки и т.п.
!!! будет проводится проверка для зависимостей. Установите отсутствующие компоненты и запустите снова.
!!! выберите вашу платформу перед использованием defconfig
настраиваем платформу (Target System, Subtarget, Target Profile) и сохраняем конфигурацию в файл .config:
make menuconfig 

5. применяем стандартные параметры для профиля:
make defconfig

6. модифицируем набор пакетов и сохраняем конфигурацию (в файл .config):
make menuconfig

7. Сохраняем свои изменения конфигурации в файл mydiffconfig на будущее:
scripts/diffconfig.sh >mydiffconfig 

8. Выполняем make либо make V=w либо make V=s:
# make -j $(nproc) defconfig download clean world
# make -j $(nproc) kernel_menuconfig
# make -j $(nproc)
make -j4 V=s

Пример сборки sdk для ls1046afrwy:

!!! ЛУЧШЕ ИСПОЛЬЗОВАТЬ СБОРКУ OPENWRT GIT
0. Скачиваем/распаковываем sdk
cd /opt
wget https://downloads.openwrt.org/releases/22.03.3/targets/layerscape/armv8_64b/openwrt-sdk-22.03.3-layerscape-armv8_64b_gcc-11.2.0_musl.Linux-x86_64.tar.xz
tar -xfv openwrt-sdk-22.03.3-layerscape-armv8_64b_gcc-11.2.0_musl.Linux-x86_64.tar.xz

1. Обновляем и устанавливаем feeds:
cd openwrt-sdk-22.03.3-layerscape-armv8_64b_gcc-11.2.0_musl.Linux-x86_64
./scripts/feeds update -a
./scripts/feeds install -a 


2. Производим первоначальную настройку  выбираем нужные пакеты
make defconfig
make menuconfig


3. Производим сборку
make -j4 V=s

Рубрики
device \ устройства \ железо

tplink cli / snmp / scripts

https://www.tp-link.com/us/configuration-guides/configuring_routing/?configurationId=18207#using_the_cli_5_4
https://www.tp-link.com/us/configuration-guides/configuring_routing/?configurationId=18207#using_the_cli_2_2
https://www.tp-link.com/us/support/faq/2122/
https://www.tp-link.com/us/configuration-guides/configuring_routing/?configurationId=18207#using_the_cli_5_4
https://www.tp-link.com/us/support/faq/2123/#:~:text=TP%2DLink%20Smart%20switches%20do,48.1%2C%20and%20click%20Apply.
https://www.tp-link.com/us/support/faq/2122/
https://www.tp-link.com/us/support/faq/2122/

https://www.tp-link.com/us/support/faq/291/
https://www.tp-link.com/us/support/faq/2122/

cli




enable
configure

interface ten-gigabitEthernet 1/0/1
  no switchport
  ip address 192.168.88.101 255.255.255.0
  no ipv6 enable


ip route 0.0.0.0 0.0.0.0 192.168.88.1

copy running-config startup-config

show running-config
show startup-config


snmp

https://www.tp-link.com/us/configuration-guides/q_a_supported_public_mibs_for_tp-link_switches/?configurationId=2963#
https://www.tp-link.com/us/configuration-guides/configuring_snmp_rmon/?configurationId=18105
https://www.tp-link.com/us/configuration-guides/configuring_snmp_rmon/?configurationId=18105#_idTextAnchor013
http://efsol-it.blogspot.com/2014/05/cisco-snmp.html


enable
configure

snmp-server view
show snmp-server view
snmp-server community nms-monitor read-write View
show snmp-server community

end
copy running-config startup-config
Рубрики
Mikrotik

mikrotik очистка логов

/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=1000

Рубрики
Cisco

trex / cisco / генератор трафика / dpdk

Ссылки:

https://habr.com/ru/post/306060/
https://github.com/cisco-system-traffic-generator/trex-stateless-gui
https://github.com/cisco-system-traffic-generator/trex-core
https://trex-tgn.cisco.com/trex/release/
https://trex-tgn.cisco.com/trex/doc/trex_manual.html#_download_and_installation
https://askubuntu.com/questions/1239829/modulenotfounderror-no-module-named-distutils-util
https://trex-tgn.cisco.com/trex/doc/trex_vm_manual.html
http://core.dpdk.org/doc/quick-start/
Cisco TRex on Ubuntu Server 18.04
https://www.mail-archive.com/users@dpdk.org/msg04798.html # решение ошибки "eth_i40e_dev_init(): Failed to init adminq: -66" https://github.com/s5uishida/install_trex?ysclid=mc0h3m8kju972217675

Установка:

 
apt update
apt install lshw vim wget git make gcc linux-libc-dev linux-headers-amd64 pkg-config libncurses-dev flex bison  libssl-dev libelf-dev dwarves rsync bc fakeroot build-essential  xz-utils  libncurses5-dev lz4  debianutils 

apt install python3 python3-distutils python3-apt
update-alternatives --install /usr/bin/python python /usr/bin/python3 1

apt install dpdk

Настраиваем локаль:
vim /etc/locale.gen
-------------------
en_US.UTF-8           <---------- найти и раскоментить
------------------

Перечитать local:
locale-gen
На этом все, теперь у вас должна появится local en_US.UTF-8



cd /opt
wget https://trex-tgn.cisco.com/trex/release/v2.99.tar.gz
wget --no-check-certificate  https://trex-tgn.cisco.com/trex/release/v3.00.tar.gz 
tar -xpvf v2.99.tar.gz
cd v2.99
cd ko/src
make  
make install

Каталоги trex:

/              t-rex-64/dpdk_set_ports/stl-sim
/astf          test astf
/stl           Stateless native (py) profiles
/stl/hlt       Stateless HLT profiles
/ko            Kernel modules for DPDK
/external_libs Python external libs used by server/clients
/exp           Golden PCAP file for unit-tests
/cfg           Examples of config files
/cap2          Stateful profiles
/avl           Stateful profiles - SFR profile
/automation    Python client/server code for both Stateful and Stateless
/automation/regression Regression for Stateless and Stateful
/automation/config Regression setups config files
/automation/trex_control_plane/interactive/trex Stateless lib and Console
/automation/trex_control_plane/interactive/trex/stl Stateless lib
/automation/trex_control_plane/interactive/trex/examples/stl Stateless examples

Команды:

cd /opt/v2.99

0. Смотрим соответствие сетевой шины 
lshw -c network -businfo

1. Показывает информацию об интерфейсах
./dpdk_setup_ports.py -s

2. Чтобы создать конфигурационный файл по умолчанию (пример)
./dpdk_setup_ports.py -c 02:00.0 02:00.1 -o /etc/trex_cfg.yaml

3. Чтобы потом вернуть интерфейс обратно из под управления DPDK пригодится команда:
./dpdk_nic_bind.py -b  

4. Пример
!!! Настройки интерфейса берутся из фала конфигурации /etc/trex_cfg.yaml 
./t-rex-64 -f cap2/dns.yaml -c 4 -m 1 -d 100 -l 1000
-c — число ядер процессора.
-m — множитель cps каждого шаблона пакетов.
-d — время теста.
-l — частота (в Hz) latency пакетов, много параметров считается без их учета

5. Пример
./t-rex-64 -f cap2/dns.yaml -c 4 -m 9000 -d 100 -l 1000 -p
./t-rex-64 -i -c 6 --astf

6. Пример
./t-rex-64 -f cap2/http_simple.yaml -c 4  -l 1000 -d 100000 -m 30  --learn-mode 1
./t-rex-64 -i -c 6 --astf

7.
./bp-sim-64-debug --ut
./run_regression --func

Инфа по выводу:

Cpu Utilization — среднее значение нагрузки на CPU передающими тредами. Для налучшей производительности рекомендуется держать меньше 80%.
Total-Tx — суммарная скорость на передающем интерфейсе (в данном случае port 0)
Total-Rx — суммарная скорость на принимающем интерфейсе (в данном случае port 1)
Total-PPS — packets per second число пакетов на интерфейсах
Total-CPS — connections per second по сути этот параметр означает число запуска шаблонов, которые указаны в конфигурационном файле в секунду.

Expected-PPS — Ожидаемое число пакетов в секунду, в теории стремится к cps*число пакетов шаблона.
Expected-CPS — cps указанный в yaml файле теста.
Expected-BPS — суммарный трафик, объем шаблона * cps.

Active-flows — число внутренних потоков t-rex. По сути этот параметр является числом сессий, за которыми следит t-rex. например, 
               если вы запустите тест с pcap длительность сессии в котором равна 30 сек, то это показатель должен стремится к 30*Expected-CPS
Nat_time_out — должно быть ноль, число потоков, за которыми тирекс по каким-то причинам не смог уследить, обычно происходит если пакеты где-то дропают.
Nat_no_fid — должно быть ноль, обычно происходит при слишом больших таймаутах внутри тестируемого оборудования.
Total_nat_active: активное число потоков, должно быть низким при низком rtt.
Total_nat_open: общее число потоков, может отличаться пр однонаправленном (uni-directional) шаблоне.

grub порядок загрузки

grep menuentry /boot/grub/grub.cfg 
vim  /etc/default/grub
------------------------
GRUB_DEFAULT="Advanced options for Debian GNU/Linux>Debian GNU/Linux, with Linux 5.10.162"
------------------------
update-grub

Установка trex на 09.01.2023 debian 11

0. Устанавливаем доп по
apt install python python3-distutils python3-apt python3-pyelftools
update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1


1. Скачиваем дистрибутив trex
cd opt
wget --no-check-certificate --no-cache https://trex-tgn.cisco.com/trex/release/latest
tar -xzvf latest


2. Устанавливаем модуль ядра
cd /opt/v3.00/ko/src
make  
make install

3. Создаем конфиг
./dpdk_setup_ports.py -s - смотрим что там у нас за интерфейсы 
cd /opt/v3.0 - переходим в каталог trex
./dpdk_setup_ports.py -  выполнив без параметров будет создан конфиг (тоесть: "cp cfg/simple_cfg.yaml /etc/trex_cfg.yaml")
./dpdk_setup_ports.py -c 02:00.0 02:00.1 -o /etc/trex_cfg.yaml - перенастраиваем конфиг (где 02:00.0 и 02:00.1 сетевые карты)



4. Проверяем проверяем успешность добавления интерфейсов
/opt/v3.0 
./dpdk_setup_ports.py -s

5. Дополнительно
Запуск в режиме сервера astf и stl
./t-rex-64 -i --astf
./t-rex-64 -i --stl
./t-rex-64 -i -c 6 --astf
./trex_daemon_server start
консоль TRex (Выполняет роль клиента для подключения к серверу trex и генерации трафика)
./trex-console
./trex-console -s 192.168.55.61

6. Запуск теста в trex
start -f astf/http_simple.py -m 1
start -f astf/udp_sip.py -d 5000  -m 500000 -l 5
start -f astf/sfr_full.py -m 50 -l 50
start -f astf/video_stream.py  -m 25
-d - время теста
-m - множитель пакетов
-l - запускать потоки с задержкой

Ошибка trex-console (FileNotFoundError: [Errno 2] No such file or directory: b'liblibc.a')

cd /usr/lib/x86_64-linux-gnu/
ln -s -f libc.a liblibc.a

DUT - клиент через который гоним трафик

DUT - device under test
16.0.0.0/8 - сеть клиентов trex
48.0.0.0/8 - сеть клиентов trex

apt install openvswitch-switch 
apt install netsniff-ng netdiag  iptraf bmon iftop glances
ovs-vsctl add-br ovsbr0
ovs-vsctl add-port enp1s0f0 ovsbr0
ovs-vsctl add-port ovsbr0 enp1s0f0
ovs-vsctl add-port ovsbr0 enp1s0f1
ovs-vsctl add-port ovsbr0 enp1s0f2
ovs-vsctl add-port ovsbr0 enp1s0f3

vim /etc/network/interfaces
---------------------------
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
#source-directory /etc/network/interfaces.d

auto enp5s0
iface enp5s0 inet dhcp


auto enp1s0f0
iface enp1s0f0 inet manual


auto enp1s0f1
iface enp1s0f1 inet manual

auto enp1s0f2
iface enp1s0f2 inet manual


auto enp1s0f3
iface enp1s0f3 inet manual

auto ovsbr0
iface ovsbr0 inet static
             address 10.0.0.2/24
             up ip route add 16.0.0.0/8 via 10.0.0.1
             down ip route del 16.0.0.0/8
auto ovsbr0:0
iface ovsbr0:0 inet static
             address 10.0.1.2/24
             up ip route add 48.0.0.0/8 via 10.0.1.1
             down ip route del 48.0.0.0/8
---------------------------


ovs-appctl dpctl/show -s  - показать статистику
ifpps - показать статистику в реальном времени
ovs-appctl fdb/stats-clear - очистить статистику

trex server no mirror

vim /etc/trex_cfg.yaml 
----------------------
### Config file generated by dpdk_setup_ports.py ###

- version: 2
  interfaces: ['02:00.0', '02:00.1']
  port_info:
      - ip: 10.0.0.1
        default_gw: 10.0.0.2
      - ip: 10.0.1.1
        default_gw: 10.0.1.2

  platform:
      master_thread_id: 0
      latency_thread_id: 1
      dual_if:
        - socket: 0
          threads: [2,3,4,5,6,7]
----------------------

Tuning

ulimit -n 30000

net.ipv4.tcp_max_tw_buckets = 65536
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_max_syn_backlog = 131072
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 8
net.ipv4.tcp_rmem = 16384 174760 349520
net.ipv4.tcp_wmem = 16384 131072 262144
net.ipv4.tcp_mem = 262144 524288 1048576
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_low_latency = 1
net.ipv4.tcp_syncookies = 0
net.netfilter.nf_conntrack_max = 1048576

Может пригодится:

sudo ip netns show
sudo ip netns exec trex-a-0-1 ifconfig

trex>portattr -a
trex>portattr --mul on
trex>portattr --prom on
trex>service
trex(service)>l3 -p 1 --src 1.1.1.2 --dst 1.1.1.3
trex(service)>ping -p 1 -d 1.1.1.3

Ошибка "eth_i40e_dev_init(): Failed to init adminq: -66" на "Intel 13th Gen Core i7-13700K" debian 11

0. Редактируем 
vim /etc/default/grub
---------------------
GRUB_CMDLINE_LINUX="iommu=pt, intel_iommu=on"
---------------------
1. Применяем изменения для grub
update-grub
2. Перезагружаемся
reboot

trex_port0+mikrotik+sw+mikrotik+trex_port1


mikrotik 1
---------------------
/ip address
add address=192.168.100.101/24 interface=bonding1 network=192.168.100.0
add address=10.12.136.1/24 interface=sfp-sfpplus1 network=10.12.136.0

/ip route
add disabled=no distance=1 dst-address=48.0.0.0/8 gateway=10.12.136.5 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10
add disabled=no distance=1 dst-address=16.0.0.0/8 gateway=192.168.100.100 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10
add disabled=no dst-address=0.0.0.0/0 gateway=192.168.100.100 routing-table=main suppress-hw-offload=no
add disabled=no dst-address=10.12.135.0/24 gateway=192.168.100.100 routing-table=main suppress-hw-offload=no


------------------------



mikrotik 2
---------------------
/ip address
add address=192.168.100.100/24 interface=bonding1 network=192.168.100.0
add address=10.12.135.1/24 interface=sfp-sfpplus1 network=10.12.135.0

/ip route
add disabled=no distance=1 dst-address=10.12.136.0/24 gateway=192.168.100.101 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.100.101 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10
add disabled=no distance=1 dst-address=48.0.0.0/8 gateway=192.168.100.101 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10
add disabled=no distance=1 dst-address=16.0.0.0/8 gateway=10.12.135.5 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10


------------------------


trex
-------------------------
cat /etc/trex_cfg.yaml
### Config file generated by dpdk_setup_ports.py ###

- version: 2
  interfaces: ['02:00.0', '02:00.1']
  port_info:
      - ip: 10.12.135.5
        default_gw: 10.12.135.1
      - ip: 10.12.136.5
        default_gw: 10.12.136.1

  platform:
      master_thread_id: 0
      latency_thread_id: 1
      dual_if:
        - socket: 0
          threads: [2,3,4,5,6,7]
-------------------------



Решение косяков:

./trex-console
arp
ping -p 0 10.12.135.1
ping -p 0 10.12.136.1
ping -p 1 10.12.135.1
ping -p 1 10.12.136.1

FAILED быть не должно

error module 'collections' has no attribute 'Hashable'

версия trex 3.04 debian 12
ядро Linux 5.15.148 
Python 3.12.2



https://stackoverflow.com/questions/72659999/chatterbot-module-error-attributeerror-module-collections-has-no-attribute

Начиная с Python3.3, Hashable был перенесен в модуль Collections.abc, 
поэтому в качестве обходного пути вы можете принудительно обеспечить совместимость, добавив следующие строки вверху после других import-ов:

Временное решение:
vim /opt/v3.04/./dpdk_setup_ports.py
------------------------------------
#много всего
import subprocess
import platform
import stat
import time
import shutil
import signal
import glob
# вот после импортов сюда
import collections.abc
collections.Hashable = collections.abc.Hashable
#  много всего 
------------------------------------

UP20250220 / Ставим Trex с git / debian 12

apt update 
apt install -y build-essential cmake python3-dev libnuma-dev zlib1g-dev libpcap-dev linux-headers-$(uname -r) git
apt install -y meson ninja-build


Качаем trex
git clone --recursive https://github.com/cisco-system-traffic-generator/trex-core.git
cd trex-core

Cisco T-Rex использует DPDK (Data Plane Development Kit) соберём его:
cd linux_dpdk
./b configure
./b build

После сборки DPDK возвращаемся в корень репозитория и компилируем сам T-Rex:
cd ..
./b configure
./b build

dump

./trex-console
capture monitor start --tx 0 1  --rx 0 1

Рубрики
openwrt

openwrt / upgrade all package / update / upgrade / обновление


opkg update
opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade

Рубрики
openwrt

openwrt / imagebuilder

Ссылка:

Image Builder:
Это предварительно скомпилированная среда, используемая для создания пользовательских образов прошивок без необходимости компиляции ядра и пакетов.

https://openwrt.org/docs/guide-user/additional-software/imagebuilder
https://openwrt.org/ru/docs/guide-user/additional-software/imagebuilder

https://openwrt.org/toh/start - поиск устройства

https://downloads.openwrt.org/releases/ - релиз

Готовим систему:

Debian/Ubuntu
sudo apt-get update
sudo apt-get install build-essential libncurses5-dev libncursesw5-dev zlib1g-dev gawk git gettext libssl-dev xsltproc wget unzip python

CentOS/RHEL
yum install subversion git gawk gettext ncurses-devel zlib-devel openssl-devel libxslt wget
yum group install "Development Tools"

Fedora 27+
dnf install @c-development @development-tools @development-libs zlib-static which

Готовим образ openwrt:

0. Скачиваем openwrt-imagebuilder под наше устройство:
cd /opt
wget https://downloads.openwrt.org/releases/21.02.3/targets/ipq40xx/mikrotik/openwrt-imagebuilder-21.02.3-ipq40xx-mikrotik.Linux-x86_64.tar.xz
1. Распакуйте архив с Image Builder и перейдите в его директорию.
tar -pxf openwrt-imagebuilder-21.02.3-ipq40xx-mikrotik.Linux-x86_64.tar.xz
cd openwrt-imagebuilder-21.02.3-ipq40xx-mikrotik.Linux-x86_64

Настраиваем образ openwrt:

!!! make image команда создаст образ для устройства по умолчанию со стандартными (необходимыми) пакетами. 
!!! PROFILE - определяет целевой профиль для сборки
!!! PACKAGES - список пакетов, добавляемых (исключаемых) в образ
!!! FILES - каталог с пользовательскими файлами для добавления
!!! BIN_DIR - Пользовательская директория для создаваемого образа
!!! EXTRA_IMAGE_NAME - Пользовательское имя для создаваемого образа
!!! DISABLED_SERVICES - Какие службы в /etc/init.d/ будут отключены по умолчанию
!!! make image PROFILE=XXX PACKAGES="pkg1 pkg2 -pkg3 -pkg4" FILES=files/
!!! make clean - Для удаления всех временных файлов сборки и сгенерированных образов воспользуйтесь командой:

0.  Смотрим список целевых профилей.
make info

1. если требуется перенастроить файлы то создаем директорию files
!!! В этот каталог добавляем свои файлы
!!! По умолчанию фалы будут помещены в корень на целевой системе
!!! Требуется создавать структуру каталогов.
mkdir files
mkdir files/etc

2. Определившись с профилем, пакетами, файлами, выполняем сборку
!!! (-) - минус перед пакетом предполагает его удаление в конечной сборке
make image PROFILE=XXX PACKAGES="pkg1 pkg2 -pkg3 -pkg4" FILES=files/

Где же файлы:

После завершения команды make сгенерированные образы сохраняются в каталоге bin /device-architecture , как если бы вы их компилировали.
Созданный образ можно найти в подкаталоге ./bin/targets//genericили загляните внутрь. 
/build_dir/для файлов *-squashfs-sysupgrade.bin и *-squashfs-factory.bin
(например /build_dir/target-mips_24kc_musl/linux-ar71xx_tiny/tmp/openwrt-18.06.2-ar71xx-tiny-tl-wr740n-v6-squashfs-factory.bin)

Пример:

make info
make image PROFILE=fsl_ls1046a-frwy-sdboot PACKAGES="block-mount kmod-fs-ext4 kmod-usb-storage e2fsprogs kmod-usb-ohci kmod-usb-uhci fdisk -layerscape-fman -tfa-ls1046a-frwy-sdboot"