1 2 |
opkg update opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade |
1 2 |
opkg update opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade |
Ссылка:
1 2 3 4 5 6 7 8 9 |
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/ - релиз |
Готовим систему:
1 2 3 4 5 6 7 8 9 10 |
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:
1 2 3 4 5 6 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
!!! 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/ |
scripts bash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
cat hosts.txt.ssh ------------------ 192.168.1.1 192.168.1.2 192.168.1.3 ------------------ cat resolv.conf ---------------- nameserver 192.168.1.1 ---------------- #Копируем настройки DNS #scp resolv.conf for i in `cat hosts.txt.ssh`; do scp resolv.conf ${i}:/etc/resolv.conf; done #Устанавливаем python for ansible for i in `cat hosts.txt.ssh`; do ssh $i opkg update ; done for i in `cat hosts.txt.ssh`; do ssh $i opkg install python3-light python3-multiprocessing python3-distutils openssh-sftp-server python3-logging; done #Ставим snmpd for i in `cat hosts.txt.ssh`; do ssh $i opkg install snmpd; done #MAC # parse MAC for i in `cat hosts.txt | tail -n 39 | grep -v "#"`; do ssh $i ip a | grep ether | awk '{print $2}' && echo ; done # parse MAC print host for i in `cat hosts.txt | tail -n 39 | grep -v "#"`; do ssh $i uci get system.@system[0].hostname && ip a | grep ether | awk '{print $2}' && echo ; done ##parse mac for i in `cat hosts.txt | tail -n 39 | grep -v "#"`; do ssh $i fdddd="`uci get system.@system[0].hostname`" && echo $fdddd && ip a | grep ether | awk '{print $2}' && echo ; done # parse mod # awk '{cmd="YOUCOMMAND" $1; system(cmd)}' # cmd="uci get system.@system[0].hostname" #for i in `cat hosts.txt | tail -n 39 | grep -v "#"`; do ssh $i ip a | grep ether | awk '{cmd="uci get system.@system[0].hostname" print $2; system(cmd)}' && echo ; done #scp file batman for i in `cat hosts.txt | tail -n 39 | grep -v "#"`; do scp bat-hosts root@$i:/etc/bat-hosts; done # generation ip for i in `seq 1 36`; do echo 192.168.1.${i} ; done |
Настройка сетевого имени openwrt:
1 2 3 4 5 |
# change hostname openwrt # uci set system.@system[0].hostname=openwrt-20 uci commit system echo newhostname > /proc/sys/kernel/hostname reboot |
Openwrt /etc/config/snmpd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
config agent option agentaddress 'UDP:161,UDP6:161' config agentx option agentxsocket '/var/run/agentx.sock' config com2sec 'public' option secname 'ro' option source 'default' option community 'vasian' config com2sec 'private' option secname 'rw' option source 'localhost' option community 'private' config com2sec6 'public6' option secname 'ro' option source 'default' option community 'public' config com2sec6 'private6' option secname 'rw' option source 'localhost' option community 'private' config group 'public_v1' option group 'public' option version 'v1' option secname 'ro' config group 'public_v2c' option group 'public' option version 'v2c' option secname 'ro' config group 'public_usm' option group 'public' option version 'usm' option secname 'ro' config group 'private_v1' option group 'private' option version 'v1' option secname 'rw' config group 'private_v2c' option group 'private' option version 'v2c' option secname 'rw' config group 'private_usm' option group 'private' option version 'usm' option secname 'rw' config view 'all' option viewname 'all' option type 'included' option oid '.1' config access 'public_access' option group 'public' option context 'none' option version 'any' option level 'noauth' option prefix 'exact' option read 'all' option write 'none' option notify 'none' config access 'private_access' option group 'private' option context 'none' option version 'any' option level 'noauth' option prefix 'exact' option read 'all' option write 'all' option notify 'all' config system option sysLocation 'office' option sysContact 'bofh@example.com' config exec option name 'filedescriptors' option prog '/bin/cat' option args '/proc/sys/fs/file-nr' config engineid option engineidtype '3' option engineidnic 'eth0' config snmpd 'general' option enabled '1' |
Debian /etc/snmp/snmpd.conf
1 2 3 4 5 6 7 8 |
sysServices 72 master agentx agentaddress udp:161 view systemonly included .1.3.6.1.2.1.1 view systemonly included .1.3.6.1.2.1.25.1 rocommunity vasian 192.168.0.0/16 createUser snmpreadonly SHA "SecUREDpass" AES "StRongPASS" rouser snmpreadonly |
_test_ansible.yml
1 2 3 4 5 6 7 8 9 |
--- - name: My TEST Playbook hosts: all # become: yes tasks: - name: Ping test ping: ... |
copy-file-bat-hosts-to-server.yaml
1 2 3 4 5 6 7 8 9 10 11 12 |
--- - hosts: all #become: yes #gather_facts: false vars: destin_file_cli: /etc/bat-hosts source_file_cli: ./bat-hosts tasks: - name: Copy file bat-hosts to Servers copy: src={{ source_file_cli }} dest={{ destin_file_cli }} mode=0664 owner=root group=root backup=yes ... |
copy-file-snmpd-to-server.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
--- - hosts: all # become: yes gather_facts: false vars: destin_file: /etc/config/snmpd source_file: ./snmpd.txt tasks: - name: Copy file snmpd to Servers copy: src={{ source_file }} dest={{ destin_file }} mode=0664 owner=root group=root backup=yes - name: restart snmpd shell: /etc/init.d/snmpd restart ... |
rm-copy-file-resolv-to-server.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
--- - hosts: all # become: yes gather_facts: false vars: destin_file: /etc/resolv.conf source_file: ./resolv.conf tasks: - name: remove file resolv.conf file: path: /etc/resolv.conf state: absent - name: Copy file resolv.conf to Servers copy: src={{ source_file }} dest={{ destin_file }} mode=0664 owner=root group=root backup=yes ... |
Ссылки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
https://openwrt.org/toh/mikrotik/common https://openwrt.org/toh/mikrotik/common#saving_mikrotik_routerboard_license_key_using_winbox_and_windows https://openwrt.org/toh/mikrotik/common#saving_mikrotik_routerboard_license_key_without_using_winbox https://downloads.openwrt.org/releases/22.03.0-rc1/targets/ipq40xx/mikrotik/ https://downloads.openwrt.org/releases/22.03.0-rc3/targets/ipq40xx/mikrotik/ https://openwrt.org/ru/toh/mikrotik/common https://wiki.archlinux.org/title/Preboot_Execution_Environment_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) https://github.com/klukonin/Mikrotik-researcher-tools https://habr.com/ru/post/315960/ https://wiki.archlinux.org/title/Network_configuration_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)/Wireless_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC_%D1%81_%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0%D0%BC%D0%B8_%D0%B8_%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0%D0%BC%D0%B8 https://wiki.archlinux.org/title/Network_configuration_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)/Wireless_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) https://wiki.archlinux.org/title/Wpa_supplicant https://wiki.archlinux.org/title/Network_configuration_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)/Wireless_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) http://linux-wless.passys.nl/ https://wireless.wiki.kernel.org/en/users/drivers https://en.wikipedia.org/wiki/Wi-Fi https://wiki.mikrotik.com/wiki/Manual:Interface/Wireless |
Сохранение файла с лицензией MikroTik RouterOS
1 2 3 4 |
0. Подключаемся на микротик и выполняем в терминале: /system license output /file print 1. Любым доступным способом забираем файл лицензии с микротика |
mikrotik подготовка
1 2 3 4 5 |
0. Подключаемся к микротику и открываем его терминал 1. Выполняем следующие /system routerboard settings set boot-device=try-ethernet-once-then-nand 2. Выключаем микротик /system shutdown |
dnsmasq подготовка DHCP+TFTP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
0. Устанавливаем dnsmasq и останавливаем его демон apt install dnsmasq systemctl stop dnsmasq && systemctl disable dnsmasq 2. скачиваем прошивки !!! initramfs нужна для загрузки по tftp (эта прошивка загружается в оперативную память и ничего не ломает) !!! sysupgrade установка прошивки (заменяет прошивку микротика) cd /srv/tftp wget https://downloads.openwrt.org/releases/22.03.0-rc1/targets/ipq40xx/mikrotik/openwrt-22.03.0-rc1-ipq40xx-mikrotik-mikrotik_lhgg-60ad-initramfs-kernel.bin wget https://downloads.openwrt.org/releases/22.03.0-rc1/targets/ipq40xx/mikrotik/openwrt-22.03.0-rc1-ipq40xx-mikrotik-mikrotik_lhgg-60ad-squashfs-sysupgrade.bin 3. Запускаем tftp dnsmasq -i enp0s20f0u2 --dhcp-range=192.168.88.64,192.168.88.128 --dhcp-boot=openwrt-22.03.0-rc1-ipq40xx-mikrotik-mikrotik_lhgg-60ad-initramfs-kernel.bin --enable-tftp --tftp-root=/srv/tftp/ -d -u nobody -p0 -K --log-dhcp --bootp-dynamic --dhcp-host=DC:2C:6E:68:AF:B9 4. На микротике: 0) вытаскиваем питание 1) Зажимаем кнопку reset 2) Включаем питание 3) Ждем 3 сек и отпускаем кнопку reset |
Установка постоянной прошивки на openwrt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
0. Любым способом копируем на openwrt прошивку wget: cd /tmp wget https://downloads.openwrt.org/releases/22.03.0-rc1/targets/ipq40xx/mikrotik/openwrt-22.03.0-rc1-ipq40xx-mikrotik-mikrotik_lhgg-60ad-squashfs-sysupgrade.bin ssh openwrt: ssh root@192.168.1.1 cd /tmp scp user@192.168.1.10:/home/user/file.bin . ssh: scp sysupgrade.bin root@192.168.1.1:/tmp 1. устанавливаем прошивку /sbin/sysupgrade sysupgrade.bin |
Примеры конфигов hostapd \ wpa_supplicant
1 2 3 4 5 6 7 8 9 |
cd /etc wget https://raw.githubusercontent.com/klukonin/Mikrotik-researcher-tools/master/files/etc/wpa_supplicant.conf wget https://raw.githubusercontent.com/klukonin/Mikrotik-researcher-tools/master/files/etc/hostapd.conf Клиент Client: wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B Точка доступа AP: hostapd -B /etc/hostapd.conf |
openwrt regenerate configuration wifi / сброс wifi
1 2 |
rm -f /etc/config/wireless wifi config |
ip / ifconfig
1 2 3 4 5 |
ifconfig wlan0 192.168.2.1 # Set an IP ifconfig wlan0 down ifconfig wlan0 up ip link set wlan0 up |
iwconfig
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
!!! iwlist - команда устарела и рекомендуется использовать iw вместо ее Сканировать wifi и вывести имена сетей: iwlist wlan0 scan | grep ESSID Сканирование сети: iwlist <wlan_interface> scan Получить инфу по wlan0: iwconfig wlan0 Если вы можете получить IP для проводного интерфейса, но не можете для беспроводного, попробуйте отключить энергосберегающие функции вашей беспроводной карты: iwconfig wlan0 power off Ели вы получаете timeout ошибку из-за waiting for carrier проблемы, возможно вам понадобится установить канал в auto для конкретного устройства: iwconfig wlan0 channel auto iwconfig wlan0 - получение состояния соединения iwlist wlan0 scan - сканирование доступных точек доступа iwconfig wlan0 mode ad-hoc - установка режима работы ad-hoc iwconfig wlan0 essid ваш_essid - подключение к открытой сети iwconfig wlan0 essid ваш_essid freq 2432M - подключение к открытой сети с указанием канала iwconfig wlan0 essid ваш_essid key ваш_ключ - подключение к сети с WEP шифрованием шестнадцатеричным ключом iwconfig wlan0 essid ваш_essid key s:ваш_ключ - подключение к сети с WEP шифрованием ASCII-ключом iwconfig wlan0 power on - включение режима энергосбережения |
iw / iwinfo / iwlist
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
!!! iwlist - команда устарела и рекомендуется использовать iw вместо ее Сканирование сети: iw dev <wlan_interface> scan iw dev wlan0 link - получение состояния соединения iw dev wlan0 scan - сканирование доступных точек доступа iw dev wlan0 set type ibss - установка режима работы ad-hoc iw dev wlan0 connect ваш_essid - подключение к открытой сети iw dev wlan0 connect ваш_essid 2432 - подключение к открытой сети с указанием канала iw dev wlan0 connect ваш_essid key 0:ваш_ключ - подключение к сети с WEP шифрованием шестнадцатеричным ключом iw dev wlan0 set power_save on - включение режима энергосбережения iw phy phy0 interface add moni0 type monitor iw dev iw dev wlan0 link iw dev wlan0 scan iw phy0 info iw wlan0 info iw reg get iwinfo |
Подключение к сети wi-fi с помощью iw:
1 2 3 4 5 |
iw dev wlan0 del iw phy phy0 interface add wlan0 type ibss ifconfig wlan0 up iw dev wlan0 scan iw dev wlan0 ibss join AdHocNetworkName 2412 |
rfkill
1 2 3 4 5 6 7 8 |
Во многих ноутбуках присутствует аппаратный переключатель (или кнопка) питания беспроводной карты, однако она может быть также заблокирована и ядром. Используйте rfkill, чтобы посмотреть текущий статус: rfkill list Если карта заблокирована аппаратно (hard blocked), используйте переключатель (кнопку), чтобы разблокировать её. Если же карта заблокирована не аппаратно, a программно (soft blocked), используйте следующую команду: rfkill unblock wifi |
hostapd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
Пример простой 1 802.11b/g/n with WPA2-PSK and CCMP: vim /etc/hostapd/hostapd.conf ----------------------------- # the interface used by the AP interface=wlan0 # "g" simply means 2.4GHz band hw_mode=g # the channel to use channel=10 # limit the frequencies used to those allowed in the country ieee80211d=1 # the country code country_code=FR # 802.11n support ieee80211n=1 # QoS support, also required for full speed on 802.11n/ac/ax wmm_enabled=1 # the name of the AP ssid=somename # 1=wpa, 2=wep, 3=both auth_algs=1 # WPA2 only wpa=2 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP wpa_passphrase=somepassword ----------------------------- Пример простой 2 802.11a/n/ac with WPA2-PSK and CCMP: /etc/hostapd/hostapd.conf ------------------------- interface=wlan0 # "a" simply means 5GHz hw_mode=a # the channel to use, 0 means the AP will search for the channel with the least interferences (ACS) channel=0 ieee80211d=1 country_code=FR ieee80211n=1 # 802.11ac support ieee80211ac=1 wmm_enabled=1 ssid=somename auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP wpa_passphrase=somepassword ------------------------- Пример простой 3 802.11b/g/n triple AP: /etc/hostapd/hostapd.conf ------------------------- interface=wlan0 hw_mode=g channel=10 ieee80211d=1 country_code=FR ieee80211n=1 wmm_enabled=1 # First AP ssid=test1 auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP wpa_passphrase=somepassword # Second AP # the name of the new interface hostapd will create to handle this AP bss=wlan1 ssid=test2 auth_algs=1 wpa=1 wpa_key_mgmt=WPA-PSK wpa_passphrase=someotherpassword # Third AP # the name of the new interface hostapd will create to handle this AP bss=wlan2 ssid=test3 # since there is no encryption defined, none will be used ------------------------- |
wpa_supplicant / wpa_cli
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Запуск wpa_supplicant: wpa_supplicant -Dnl80211 -iwlan0 -C/var/run -u & wpa_cli -p/var/run Пример минимальной настройки: wpa_cli add_network set_network 0 ssid "MYSSID" set_network 0 key_mgmt NONE enable_network 0 Пример: wpa_cli add_network set_network 0 ssid "name of AP" set_network 0 key_mgmt WPA-PSK set_network 0 pairwise TKIP set_network 0 psk "key" enable_network 0 Пример для закрытой WPA2 сети: wpa_cli add_network set_network 0 ssid "name of AP" set_network 0 key_mgmt WPA-PSK set_network 0 pairwise CCMP set_network 0 psk "key" enable_network 0 |
wpa_supplicant.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
cat /etc/wpa_supplicant.conf ---------------------------- ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel # # home network; allow all valid ciphers network={ ssid="home" scan_ssid=1 key_mgmt=WPA-PSK psk="very secret passphrase" } ---------------------------- !!! Первая строка необходима, без ctrl_interface программа даже не запустится. !!! GROUP=wheel нужно для того, чтобы запускать из под обычного пользователя в графическом интерфейсе wpa_gui. !!! Поэтому рекомендуется менять на рутовый GROUP=0 !!! Каждой сети в файле настроек должен соответствовать блок network {} !!! ap_scan=0 #драйвер сканирует точку доступа !!! ap_scan=1 #wpa_supplicant сканирует точку доступа, используется по-умолчанию !!! ap_scan=2 #как 0, но еще учитывает политики безопасности и SSID, работает с ndiswrapper !!! bssid — The Basic Service Set Identifier (BSSID), физический адрес точки доступа. !!! key_mgmt — Протоколы аутентификации. !!! pairwise — Для WPA2 укажите CCMP, а для WPA — TKIP. !!! proto — WPA/WPA2. !!! psk — Хэш пароля PreShared Key. !!! ca_cert — Абсолютный путь к CA-сертификату в формате PEM или DER, необходим для возможности подтверждения сертификата сервера. !!! ca_path — Абсолютный путь к директории, где хранятся файлы CA-сертификатов (в формате PEM), которые вы хотите добавить в список доверенных. !!! client_cert — Абсолютный путь к клиентскому сертификату в формате PEM или DER. !!! eap — Разделенный пробелами список поддерживаемых методов EAP: MD5, MSCHAPV2, OTP, GTC, TLS, PEAP, или TTLS. !!! identity — Идентификации EAP, например имя пользователя. !!! password — Пароль EAP. Рекомендованный конфиг WPA-PSK: cat /etc/wpa_supplicant.conf ---------------------------- ctrl_interface_group=0 ap_scan=1 ctrl_interface=/var/run/wpa_supplicant network={ proto=WPA2 pairwise=CCMP key_mgmt=WPA-PSK priority=5 ssid="MYSSID" bssid=44:b0:51:dc:ba:f8 psk=ce55977186ae1df2dffeb571acee8dacd92f49edddbdef53623132e3c24567ae } ---------------------------- Рекомендованный конфиг WPA-EAP: cat /etc/wpa_supplicant.conf ---------------------------- network = { ssid="Company WPA2 EAP" key_mgmt=WPA-EAP pairwise=TKIP group=TKIP eap=PEAP identity="username@domain" password="your_passphrase" ca_cert="/etc/cert/ca.pem" phase1="peapver=0" phase2="MSCHAPV2" } ---------------------------- Рекомендованный конфиг WPA2 TLS: cat /etc/wpa_supplicant.conf ---------------------------- network = { ssid="Company WPA2 TLS" key_mgmt=WPA-EAP pairwise=CCMP group=CCMP eap=TLS ca_cert="/etc/cert/ca.pem" private_key="/etc/cert/privkey.p12" private_key_passwd="your_passphrase PKCS#12" } ---------------------------- |
openwrt wi-fi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
type string yes (autodetected) The type is determined on firstboot during the initial radio device detection - it is usually not required to change it. Used values are broadcom on brcm47xx, or mac80211 for all other platforms band string no (driver default) Specifies the band, possible values are 2g for 2.4 GHz, 5g for 5 GHz, 6g for 6 GHz and 60g for 60 GHz. (NEW since 21.02.2, replaces hwmode) htmode string no (driver default) Specifies the high throughput mode, used to control 802.11n (HT), 802.11ac (VHT) and 802.11ax (HE). The channel width used for these depends on this configuration. See this section for details. Possible values are: HT20, HT40-, HT40+, HT40, or VHT20, VHT40, VHT80, VHT160, NOHT disables 11n and 11ac, HE20, HE40, HE80, HE160 txpower integer no (driver default) Specifies the maximum desired transmission power in dBm. The actual txpower used depends on regulatory requirements. vim /etc/config/wireless ------------------------ config wifi-device 'radio0' option type 'mac80211' option channel '2' option hwmode '60g' option path 'pci0000:00/0000:00:00.0' option htmode 'HT20' option country 'US' config wifi-iface option device 'radio0' option network 'lan' option mode 'ap' option ssid 'OpenWrt' option encryption 'none' config wifi-iface option device 'radio0' option mode 'ap' option ssid 'My-WiFi-Home' option network 'lan' option encryption 'psk2' option key 'WiFipassword' option ieee80211w '0' option wps_pushbutton '1' ------------------------ |
Пример wi-fi wpa_supplicant настройки в debian:
1 2 3 4 5 6 |
vim /etc/network/interfaces --------------------------- auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf --------------------------- |
wifi логи:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Следим за логами: logread -f Отслеживать сообщения ядра: dmesg -w Проверьте сообщения ядра на предмет загрузки прошивки: dmesg | grep firmware Если там нет интересующей вас информации, проверьте сообщения подробного вывода, относящиеся к определённому вами ранее модулю (например iwlwifi) dmesg | grep iwlwifi modinfo iwlwifi В ситуации, когда вы не можете определить ошибку, запустите wpa_supllicant напрямую с ключом -dd: wpa_supplicant -Dnl80211 -iwlan0 -C/var/run/wpa_supplicant/ -c/etc/wpa_supplicant/wpa_supplicant.conf -dd Если вы используете какую-то утилиту для управления сетью, то же самое можно сделать с помощью systemd: journalctl -f journalctl -xb Проверка состояния драйвера: lspci -k Наблюдаем за событиями wi-fi: iw event iw event -f iw event -t |
openwrt /etc/config/network
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
config interface 'loopback' option device 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config device option name 'br-lan' option type 'bridge' list ports 'eth0' config device option name 'eth0' option macaddr 'dc:2c:6e:68:af:b9' config interface 'lan' option device 'br-lan' option proto 'static' option ip6assign '60' list ipaddr '192.168.1.1/24' list ipaddr '192.168.127.70/24' option gateway '192.168.1.10' list dns '192.168.1.1' list dns '192.168.16.254' |
Файлы firmware для wil6210 для запуска wifi lhgg-60ad
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
!!! https://forum.openwrt.org/t/support-for-mikrotik-wap-60g/30752/95 !!! https://forum.openwrt.org/t/support-for-mikrotik-wap-60g/30752/7 !!! https://github.com/openwrt/openwrt/pull/2417 !!! https://forum.openwrt.org/t/solved-archer-c7-v2-wireless-died-daemon-notice-hostapd-handle-probe-req-send-failed/65837 !!! https://forum.openwrt.org/t/support-for-mikrotik-rb3011uias-rm/4064/399?page=20 !!! из ссылок выше мы узнаем что: !!! драйвер wil6210.fw в openwrt как заглушка !!! luci не работает с 60Ghz (не проверял, может и работает на новых прошивках) !!! ошибка никуда не исчезнет (wil6210 0000:01:00.0: Direct firmware load for wil6210_sparrow_plus.fw failed with error -2) Описание: https://github.com/IMDEANetworksWNG/Mikrotik-researcher-tools Старые прошивки на котором запустилось 60Ghz (!!! внимание на прошивку надо ставить\докидывать файл wil6210, см описание ниже): https://github.com/IMDEANetworksWNG/Mikrotik-researcher-tools/releases Новые прошивки openwrt 22.03.0-rc3 на котором запустилось 60Ghz (!!! внимание на прошивку надо ставить\докидывать файл wil6210, см описание ниже): https://downloads.openwrt.org/releases/22.03.0-rc3/targets/ipq40xx/mikrotik/ Файл hosapd: https://raw.githubusercontent.com/IMDEANetworksWNG/Mikrotik-researcher-tools/main/files/etc/hostapd.conf Файл wpa_supplicant.conf: https://github.com/IMDEANetworksWNG/Mikrotik-researcher-tools/blob/main/files/etc/wpa_supplicant.conf 0. Скачиваем и распаковываем https://download.mikrotik.com/routeros/6.40.9/all_packages-arm-6.40.9.zip 1. Распаковываем all_packages-arm-6.40.9.zip unzip all_packages-arm-6.40.9.zip 2. Переходим в каталог all_packages-arm-6.40.9 cd all_packages-arm-6.40.9 3. Распаковываем бинарник wireless-6.40.9-arm.npk binwalk -e wireless-6.40.9-arm.npk 4. Переходим _wireless-6.40.9-arm.npk.extracted/squashfs-root/lib/firmware/ cd _wireless-6.40.9-arm.npk.extracted/squashfs-root/lib/firmware/ 5. Интересует файл wil6210-d0.fw 6. Достовляем его на openwrt с заменой файла wil6210.fw scp wil6210-d0.fw root@192.168.1.1:/lib/firmware/wil6210.fw 7. На одном устройстве подымаем клиента STA wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B 8. На втором устройстве подымаем сервер AP hostapd -B /etc/hostapd.conf |
Пример hostapd.conf без шифрования lhgg-60ad
1 2 3 4 5 6 7 8 9 10 11 12 |
ctrl_interface=/var/run/hostapd interface=wlan0 driver=nl80211 logger_syslog=-1 logger_syslog_level=2 logger_stdout=-1 logger_stdout_level=2 ssid=Mikrotik country_code=DE hw_mode=ad channel=2 beacon_int=100 |
Пример wpa_supplicant.conf без шифрования lhgg-60ad
1 2 3 4 |
network={ ssid="Mikrotik" key_mgmt=NONE } |
Cсылки:
1 2 3 4 5 6 |
https://openwrt.org/docs/guide-user/services/vpn/wireguard/server https://openwrt.org/docs/guide-user/services/vpn/wireguard/client https://wiki.shulepov.com/software/openwrt/wireguard https://github.com/IgorKha/wireguard-mikrotik https://habr.com/ru/post/594877/ https://interface31.ru/tech_it/2022/04/nastroyka-wireguard-vpn-na-routerah-mikrotik.html |
Server wireguard openwrt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
0. Редактируем firewall vim /etc/config/firewall ------------------------ config zone option name wan list network 'wan' option input ACCEPT ------------------------ 1. Редактируем интерфейсы vim /etc/config/network ----------------------- config interface 'loopback' option device 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config interface 'wan' option device 'eth0' option proto 'dhcp' ----------------------- 2. Устанавливаем пакеты: opkg update opkg install wireguard-tools opkg install luci-i18n-wireguard-ru opkg install luci-i18n-base-ru reboot 3. Создаем каталог и генерируем ключи для сервера и клиента wg: cd /root && mkdir wgkeys && cd wgkeys wg genkey | tee wgserver.key | wg pubkey > wgserver.pub wg genkey | tee wgclient.key | wg pubkey > wgclient.pub wg genpsk > wgclient.psk 4. Загружаем переменные (Вставляем в консоль переменные): WG_IF="vpn" WG_PORT="51820" WG_ADDR="192.168.9.1/24" WG_ADDR6="fdf1:e8a1:8d3f:9::1/64" WG_KEY="$(cat wgserver.key)" WG_PSK="$(cat wgclient.psk)" WG_PUB="$(cat wgclient.pub)" 5. Настраиваем firewall # Configure firewall uci rename firewall.@zone[0]="lan" uci rename firewall.@zone[1]="wan" uci del_list firewall.lan.network="${WG_IF}" uci add_list firewall.lan.network="${WG_IF}" uci -q delete firewall.wg uci set firewall.wg="rule" uci set firewall.wg.name="Allow-WireGuard" uci set firewall.wg.src="wan" uci set firewall.wg.dest_port="${WG_PORT}" uci set firewall.wg.proto="udp" uci set firewall.wg.target="ACCEPT" uci commit firewall /etc/init.d/firewall restart 6. Настраиваем интерфейс wg: # Configure network uci -q delete network.${WG_IF} uci set network.${WG_IF}="interface" uci set network.${WG_IF}.proto="wireguard" uci set network.${WG_IF}.private_key="${WG_KEY}" uci set network.${WG_IF}.listen_port="${WG_PORT}" uci add_list network.${WG_IF}.addresses="${WG_ADDR}" uci add_list network.${WG_IF}.addresses="${WG_ADDR6}" # Add VPN peers uci -q delete network.wgclient uci set network.wgclient="wireguard_${WG_IF}" uci set network.wgclient.public_key="${WG_PUB}" uci set network.wgclient.preshared_key="${WG_PSK}" uci add_list network.wgclient.allowed_ips="${WG_ADDR%.*}.2/32" uci add_list network.wgclient.allowed_ips="${WG_ADDR6%:*}:2/128" uci commit network /etc/init.d/network restart 7. загрузим ключи на клиент: |
Client wireguard openwrt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
0. Редактируем firewall vim /etc/config/firewall ------------------------ config zone option name wan list network 'wan' option input ACCEPT ------------------------ 1. Редактируем интерфейсы vim /etc/config/network ----------------------- config interface 'loopback' option device 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config interface 'wan' option device 'eth0' option proto 'dhcp' ----------------------- 2. Загружаем переменные (Вставляем в консоль переменные): # Configuration parameters WG_IF="vpn" WG_SERV="IP_ADDRESS_SERVER_WG" WG_PORT="51820" WG_ADDR="192.168.9.2/24" WG_ADDR6="fdf1:e8a1:8d3f:9::2/64" WG_KEY="$(cat wgclient.key)" WG_PSK="$(cat wgclient.psk)" WG_PUB="$(cat wgserver.pub)" 3. Переходим в каталог с ключами: /root/wgkeys 4. Настраиваем firewall для wg0: # Configure firewall uci rename firewall.@zone[0]="lan" uci rename firewall.@zone[1]="wan" uci del_list firewall.wan.network="${WG_IF}" uci add_list firewall.wan.network="${WG_IF}" uci commit firewall /etc/init.d/firewall restart 5. Настраиваем интерфейс wg0: # Configure network uci -q delete network.${WG_IF} uci set network.${WG_IF}="interface" uci set network.${WG_IF}.proto="wireguard" uci set network.${WG_IF}.private_key="${WG_KEY}" uci add_list network.${WG_IF}.addresses="${WG_ADDR}" uci add_list network.${WG_IF}.addresses="${WG_ADDR6}" # Add VPN peers uci -q delete network.wgserver uci set network.wgserver="wireguard_${WG_IF}" uci set network.wgserver.public_key="${WG_PUB}" uci set network.wgserver.preshared_key="${WG_PSK}" uci set network.wgserver.endpoint_host="${WG_SERV}" uci set network.wgserver.endpoint_port="${WG_PORT}" uci set network.wgserver.route_allowed_ips="1" uci set network.wgserver.persistent_keepalive="25" uci add_list network.wgserver.allowed_ips="0.0.0.0/0" uci add_list network.wgserver.allowed_ips="::/0" uci commit network /etc/init.d/network restart |
Troubleshooting:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Restart services /etc/init.d/log restart; /etc/init.d/network restart; sleep 10 # Log and status logread -e vpn; netstat -l -n -p | grep -e "^udp\s.*\s-$" # Runtime configuration pgrep -f -a wg; wg show; wg showconf vpn ip address show; ip route show table all ip rule show; iptables-save -c ip -6 rule show; ip6tables-save -c # Persistent configuration uci show network; uci show firewall; crontab -l |
Ссылки:
1 2 3 4 5 6 7 8 |
https://github.com/mwarning/zerotier-openwrt/wiki https://my.zerotier.com/ https://www.zerotier.com/ https://support.elsist.biz/ru/%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D0%B8/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-zerotier-%D0%BD%D0%B0-%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80-wl-r220l-wlink/ https://www.zerotier.com/download/ https://support.paperspace.com/hc/en-us/articles/115000973693-How-to-Create-a-VPN-tunnel-with-ZeroTier-Linux- |
Установка zerotier:
1 2 |
opkg update opkg install zerotier |
Показать текущие настройки zerotier:
1 2 3 |
uci show zerotier cat /etc/config/zerotier zerotier-cli info |
Добавить в сеть zerotier:
1 2 3 4 |
uci set zerotier.openwrt_network=zerotier uci add_list zerotier.openwrt_network.join='YOU_ID_ZEROTIRE' uci set zerotier.openwrt_network.enabled='1' uci commit zerotier |
debian install
1 2 |
curl -s https://install.zerotier.com | sudo bash sudo zerotier-cli join <network_id> |
Ссылки
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
https://openwrt.org/docs/guide-user/network/wifi/mesh/batman https://openwrt.org/docs/guide-user/installation/openwrt_x86 https://openwrt.org/docs/guide-user/base-system/basic-networking https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem https://openwrt.org/ru/doc/howto/build#%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F https://downloads.openwrt.org/ https://chef.libremesh.org/ http://downloads.libremesh.org/ https://libremesh.org/ https://libremesh.org/development.html https://github.com/binnes/WiFiMeshRaspberryPi/blob/master/part1/ROUTE.md https://librecmc.org/ https://librerouter.org/ https://librerouter.org/libre-design https://github.com/open-mesh-mirror/batctl https://trex-tgn.cisco.com/ https://www.open-mesh.org/doc/batman-adv/Tweaking.html https://openwrt.su/sborka/maskirovka-svoej-sborki-openwrt-pod-ofitsialnyj-repozitarij https://4pda.to/forum/index.php?showtopic=911457&st=1180#entry83632397 https://openwrt.org/docs/guide-user/network/wifi/mesh/batman |
openwrt сборка
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
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 |
Установка на VM x86-x64
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
0. К виртуальной машине подключаем два диска, второй диск будем использовать как хранилище, туда мы загрузим прошивку. Для того что бы не запутается в дисках, создаем диски разного размера 10Гб и 20Гб 1. Загружаемся с LiveCD (например https://www.system-rescue.org/) 2. монтируем второй диск и загружаем на него прошивку (https://downloads.openwrt.org/) https://downloads.openwrt.org/releases/21.02.2/targets/x86/64/openwrt-21.02.2-x86-64-generic-ext4-combined-efi.img.gz 3. Переходим в каталог куда мы загрузили прошивку и распаковываем gunzip openwrt-*.img.gz 4. Определяем диск куда будем заливать прошивку lsblk fdisk -l 5. Заливаем прошивку dd if=openwrt-21.02.0-x86-64-generic-ext4-combined.img bs=1M of=/dev/sdX |
openwrt
1 2 3 4 5 6 7 8 9 10 |
opkg update opkg install mc opkg install luci opkg install luci-i18n-base-ru opkg install tcpdump opkg install pciutils opkg install lsblk opkg install speedtest-netperf opkg install netperf opkg install ip-full |
batman bmx7:
1 2 3 |
opkg install bmx7 bmx7-uci-config opkg install kmod-batman-adv opkg install batctl |
uci изменить имя хоста:
1 2 3 |
uci set system.@system[0].hostname=newhostname uci commit system echo newhostname > /proc/sys/kernel/hostname |
uci настройки сети:
1 2 3 4 5 6 7 |
uci show network - показать настройки сети uci show wireless - показать настройки wifi uci set network.lan.ipaddr='10.0.0.2' - задать ip адрес "10.0.0.2" для интерфейса lan uci set network.lan.netmask='255.255.255.0' - задать маску "255.255.255.0" для интерфейса lan uci commit network service network restart |
uci пример сетевых параметров:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
network.loopback=interface network.loopback.ifname='lo' network.loopback.proto='static' network.loopback.ipaddr='127.0.0.1' network.loopback.netmask='255.0.0.0' network.globals=globals network.globals.ula_prefix='fd27:70fa:5c1d::/48' network.lan=interface network.lan.type='bridge' network.lan.ifname='eth0.1' network.lan.proto='static' network.lan.netmask='255.255.255.0' network.lan.ip6assign='60' network.lan.ipaddr='192.168.1.1' network.wan=interface network.wan.ifname='eth0.2' network.wan.proto='dhcp' network.wan6=interface network.wan6.ifname='eth0.2' network.wan6.proto='dhcpv6' network.@switch[0]=switch network.@switch[0].name='switch0' network.@switch[0].reset='1' network.@switch[0].enable_vlan='1' network.@switch_vlan[0]=switch_vlan network.@switch_vlan[0].device='switch0' network.@switch_vlan[0].vlan='1' network.@switch_vlan[0].ports='1 2 3 4 5t' network.@switch_vlan[1]=switch_vlan network.@switch_vlan[1].device='switch0' network.@switch_vlan[1].vlan='2' network.@switch_vlan[1].ports='0 5t' |
Русификация:
1 2 3 |
В поиске набираем base-ru opkg install luci-i18n-base-ru opkg install luci-i18n-firewall-ru |
batctl
1 2 3 4 5 6 7 8 9 10 11 12 |
Показать добавленные интерфейсы в bat0: batctl if Создать bat0 и добавить интерфейс enp1s0 в bat0: batctl if add enp1s0 Показать MAC интерфейса bat0: batctl n batctl originators Проверить доступность MAC_ADDRESS: batctl traceroute MAC_ADDRESS |
batmand
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
batmand -b -c -d 1 - подключится к запущенному bat0 и показать информацию Убить batmand: killall batmand pkill batmand systemctl stop batmand.service Тестирование работы: batmand -b -c -d 1 -b запуск соединения в пакетном режиме По умолчанию отладочная информация обновляется через определенный промежуток времени, поэтому, если вы используете "-b", она будет выполняться один раз, а затем остановится. В данном случае это означает однократный запуск debug level 1. Обратите внимание, что-b можно использовать только с-c и уровнями отладки 1 и 2. Примеры запуска batmand: batmand -o 500 -r 3 -d 3 -p 192.168.1.1 eth1 -o интервал инициатора в мс Узел передает широковещательные сообщения (мы называем их originator message или OGM), чтобы сообщить соседним узлам о своем существовании. Интервал инициатора-это время ожидания после отправки одного сообщения и перед отправкой следующего. Значение по умолчанию-1000 мс (1 секунда). В мобильной сети может потребоваться очень быстрое обнаружение сетевых изменений, поэтому вам нужно отправлять сообщения очень часто, например, использовать значение 500 мс. В статической сети вы можете сэкономить пропускную способность, используя более высокое значение. Эта опция доступна только в режиме демона. -r класс маршрутизации Класс маршрутизации может быть установлен в четыре значения - он включает "модус поиска в Интернете". Демон выберет интернет-шлюз на основе определенных критериев (если не указано "- p").: 0 - установить no default route (по умолчанию) 1 - используйте быстрое соединение 2 - используйте стабильное соединение 3 - используйте быстрое коммутационное соединение XX - используйте соединение с поздним переключением Уровень 1 B. A. T. M. A. N пытается найти наилучшее доступное соединение, наблюдая за пропускной способностью восходящих линий и качеством связи. Уровень 2 B. A. T. M. A. N сравнивает качество связи интернет-узла и выбирает тот, который имеет лучшее соединение. Уровень 3 B. A. T. M. A. N сравнивает качество связи интернет-узла и выбирает тот, у которого лучшее соединение, но переключается на другой шлюз, как только найдено лучшее соединение. Уровень XX B. A. T. M. A. N сравнивает качество связи интернет-узла и выбирает узел с лучшим качеством связи, но переключается на другой шлюз, как только этот шлюз имеет значение TQ, которое на xx лучше, чем выбранный в данный момент шлюз. XX это число от 3 до 256 -d уровень отладки Уровень отладки может быть установлен в пять значений. 0 - отладка выключена (по умолчанию) 1 - список соседей 2 - список шлюзов 3 - наблюдайте за батмандом 4 - наблюдайте за батмандом (очень многословным). 5 - отладка памяти / использование процессора -p предпочтительный шлюз Установите интернет-шлюз самостоятельно. Если предпочтительный шлюз не найден, выбор шлюза будет использовать текущий класс маршрутизации для выбора шлюза. -g класс шлюза Класс шлюза используется для указания другим узлам сети доступной пропускной способности Интернета. Просто введите любое число (необязательно с последующим "kbit" или "mbit"), и демон угадает ваш соответствующий класс шлюза. Используйте"/", чтобы разделить скорость спуска и загрузки. Вы можете опустить скорость загрузки, и batmand возьмет на себя загрузку. 5000 5000кбит 5мбит 5 мбит/1024 5mbit/1024kbit 5 мбит/1 мбит -s сервер визуализации Поскольку база данных топологии не вычисляется протоколом, было реализовано дополнительное решение для создания графов топологии, демоны vis server. B. A. T. M. A. N. могут отправлять свое локальное представление о своих односкачковых соседях на сервер vis. Он собирает информацию и предоставляет данные в формате, аналогичном выходу топологической информации OLSR. Поэтому существующие решения для построения топологических графиков, разработанные для OLSR, могут быть использованы для визуализации сетчатых облаков с использованием B. A. T. M. A. N. --policy-routing-scriptотключает функцию маршрутизации политики batmand - все изменения маршрутизации отправляются сценарию Этот параметр отключает функцию маршрутизации политики batmand - все изменения маршрутизации отправляются сценарию, который может использовать эту информацию или нет. Разработчики микропрограммного обеспечения и пакетов могут использовать эту опцию для тесной интеграции batmand в свои собственные политики маршрутизации. Эта опция доступна только в режиме демона. |
Kernel enable
1 2 |
CONFIG_IP_ADVANCED_ROUTER CONFIG_IP_MULTIPLE_TABLES |
debian /etc/network/interfaces
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto enp5s0 iface enp5s0 inet dhcp auto enp1s0 iface enp1s0 inet static address 10.50.50.50/24 post-up batctl if add enp1s0 post-up batctl if add enp5s0 auto bat0 iface bat0 inet static address 172.25.0.3/24 |
openwrt /etc/config/batmand
1 2 3 |
config batmand general option interface 'eth1 eth4' option routing_class '3' |
openwrt /etc/config/network
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
config interface 'loopback' option device 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config globals 'globals' option ula_prefix 'fd8a:d1c1:22a8::/48' config device option name 'br-lan' option type 'bridge' list ports 'eth0' config interface 'lan' option device 'br-lan' option proto 'static' option ipaddr '192.168.1.1' option netmask '255.255.255.0' option ip6assign '60' config interface 'eth5' option device 'eth5' option proto 'static' option ipaddr '192.168.200.1' option netmask '255.255.255.0' config interface 'eth4' option device 'eth4' option proto 'static' option ipaddr '10.150.150.20' option netmask '255.255.255.0' config interface 'wan' option device 'eth1' option proto 'dhcp' config interface 'wan6' option device 'eth1' option proto 'dhcpv6' config interface 'eth6' option proto 'static' option netmask '255.255.255.0' option ipaddr '10.0.7.1' option device 'eth6' config interface 'bat0' option proto 'batadv' option routing_algo 'BATMAN_IV' option aggregated_ogms '1' option ap_isolation '0' option bonding '0' option fragmentation '1' option gw_mode 'off' #option gw_mode 'server' #option gw_mode 'client' #gw_bandwidth '10000/2000' # speed server #gw_sel_class '5000' # speed client option log_level '0' option orig_interval '1000' option bridge_loop_avoidance '1' option distributed_arp_table '1' option multicast_mode '1' option multicast_fanout '16' option network_coding '0' option hop_penalty '30' option isolation_mark '0x00000000/0x00000000' config interface 'bat0_hardif_mesh0' option proto 'batadv_hardif' option master 'bat0' option mtu '1536' config interface 'bat0_hardif_eth0' option proto 'batadv_hardif' option master 'bat0' option mtu '1536' option hop_penalty '15' option throughput_override '100mbit' # TQ / penalty / fix 5 hop option device 'eth0' config interface 'bat0_hardif_eth1' option proto 'batadv_hardif' option master 'bat0' option mtu '1536' option hop_penalty '15' option throughput_override '100mbit' option device 'eth1' config interface 'bat0_hardif_eth2' option proto 'batadv_hardif' option master 'bat0' option mtu '1536' option hop_penalty '15' option throughput_override '100mbit' option device 'eth2' config interface 'bat0_hardif_eth3' option proto 'batadv_hardif' option master 'bat0' option mtu '1536' option hop_penalty '15' option throughput_override '100mbit' option device 'eth3' config interface 'bat0_hardif_eth4' option proto 'batadv_hardif' option master 'bat0' option mtu '1536' option hop_penalty '15' option throughput_override '100mbit' option device 'eth4' config interface 'bat0_hardif_eth5' option proto 'batadv_hardif' option master 'bat0' option mtu '1536' option hop_penalty '15' option throughput_override '100mbit' option device 'eth5' config interface 'bat0_hardif_eth6' option proto 'batadv_hardif' option master 'bat0' option mtu '1536' option hop_penalty '15' option throughput_override '100mbit' option device 'eth6' config interface 'bat0_hardif_eth7' option proto 'batadv_hardif' option master 'bat0' option mtu '1536' option hop_penalty '15' option throughput_override '100mbit' option device 'eth7' |
systemd \ systemctl enable batmand \ error
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Добавить в файл строки"/lib/systemd/system/batmand.service": ----------------------------------------------------------- [Install] WantedBy=multi-user.target ----------------------------------------------------------- Пример /lib/systemd/system/batmand.service: ------------------------------------------ [Unit] Description=Layer3 multi-hop ad-hoc mesh daemon After=network.target [Service] EnvironmentFile=/etc/default/batmand ExecStart=/usr/sbin/batmand --no-detach $DAEMON_OPTS [Install] WantedBy=multi-user.target ----------------------------------------- Запускаем: systemd enable batmand systemct start batmand |
openwrt upgrade all package:
1 2 |
opkg update opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade |
batctl traceroute script:
1 |
for i in ` arp | awk '{print $4}' | grep -v type | tr '\n' ' '` ; do batctl tr $i ; done |
openwrt upgrade
1 2 3 |
cd /tmp wget https://downloads.openwrt.org/releases/22.03.0-rc1/targets/x86/64/openwrt-22.03.0-rc1-x86-64-generic-ext4-combined.img.gz sysupgrade openwrt-22.03.0-rc1-x86-64-generic-ext4-combined.img.gz |