вторник, 23 июня 2015 г.

Twrt triolan rt5350 - make zyxel or openwrt router tWRT-121

По чистой случайности попали мне в руки вот такие платы:


По чипу (RT5350) , памяти и флешке - а также ethernet портам WAN и LAN, стало ясно
что это WIFI устройсво, специфически запитанное по POE.


Найдя на плате нераспаянный USB и UART (ближе к LAN порту) - запитытываем девайс +5V от USB блока питания. (или от  UART токже +5V)

Распиновка на фото : красный +5, черный - земля, зеленый и белый RX и TX


Можно также запитать от любого
инжектора по схеме  Passive PoE :

1 Tx+ Tx+ 1
2 Tx− Tx− 2
3 Rx+ Rx+ 3
4 V+ — 4
5 V+ — 5
6 Rx− Rx− 6
7 V− — 7
8 V− — 8

Устройсво не имеет веб-интерфейса, на WAN порту настроен DHCP клиент, а на LAN
порту DHCP сервер с сетью 192.168.1.0/24. Можно попробовать подключится к 192.168.1.1
по ssh, но со стандартными паролями не попасть.

Что ж,  ломать прошивку пока не будем, тем более нужного функционала там скорее всего нет. А Вот залить альтернативную прошивку можно. Подключившись к устройству по UARТ
(57600 8N1), видим довольно удобный загрузчик U-Boot, который позволяет сменить прошивку через tftp.




Вывод UART:
------------------------------------------------------------------------------------------------
U-Boot 1.1.3 (Jul  5 2012 - 13:54:27)

Board: Ralink APSoC DRAM:  32 MB
relocate_code Pointer at: 81fb4000
spi_wait_nsec: 42 
spi device id: c2 20 16 c2 20 (2016c220)
find flash: MX25L3205D
raspi_read: from:30000 len:1000 
.*** Warning - bad CRC, using default environment

============================================ 
Ralink UBoot Version: 3.6.0.0
-------------------------------------------- 
ASIC 5350_MP (Port5<->None)
DRAM_CONF_FROM: Boot-Strapping 
DRAM_TYPE: SDRAM 
DRAM_SIZE: 256 Mbits
DRAM_WIDTH: 16 bits
DRAM_TOTAL_WIDTH: 16 bits
TOTAL_MEMORY_SIZE: 32 MBytes
Flash component: SPI Flash
Date:Jul  5 2012  Time:13:54:27
============================================ 
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:128, ways:4, linesz:32 ,total:16384 

 ##### The CPU freq = 360 MHZ #### 
 estimate memory size =32 Mbytes

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

В теории нам подойдет прошивка от любого устройства, реализованого на soc RT5350,
Но на практике, не всем прошивкам хватает 4Mb SPI flash,  они либо не грузятся, либо не сохраняют настройки после перезагрузки.

На этом чипе очень распостранен 3G роутер Hame-a15. Например здесь, предлагают воспользоватся прошивкой от Zyxel

http://mysku.ru/blog/aliexpress/26886.html

Сама прошивка здесь:
http://zyxel.ua/sites/default/download/Keenetic_4G_II/firmware/KEENETIC_4G_II_v2.04%5BAAKW.1%5DC6.zip

Можно собрать самому прошивку OpenWrt
http://tuxotronic.org/wiki/openwrt/rt5350/build-firmware

Ища инфe по сборке прошивки для RT5350, я наткнулся на обзоры популярного китайского роутера NEXX 1520 на том же чипе.

http://habrahabr.ru/post/238713/

Данное устройсво идентично по функционалу нашему, исключая POE.



Используем готовую прошивку от него. Ищем версию 4Mb и качаем 2 файла.

https://downloads.openwrt.org/chaos_calmer/15.05-rc1/ramips/rt305x/openwrt-15.05-rc1-ramips-rt305x-wt1520-4M-initramfs-uImage.bin

https://downloads.openwrt.org/chaos_calmer/15.05-rc1/ramips/rt305x/openwrt-15.05-rc1-ramips-rt305x-wt1520-4M-squashfs-sysupgrade.bin

Прошивка обладает богатым функционалом, и веб интерфейсом LUCI

Кстати флешку SPI можно заменить на 8Mb и больше. В таком случае есть версии прошивок для 8Мб.

Очень вероятно, что RAM 32Mb можно успешно заменить на 64Mb, достаточно заменить микросхему на совместимую SDRAM.

Замена флеша на 8Мб
http://cyber-place.ru/showpost.php?p=3157&postcount=25

Итак прошиваем роутер.

1) Для прошивки нам понадобится tftp server. Инструкция по установке

http://debuggertools.blogspot.com/2014/12/we-need-tftp-server.html

2) Выкладываем оба файла в папку тфтп.

3) Дергаем UART +5V или USB питание - и жмем 2 для прошивки по тфтп
------------------------------------------------------------------------------------------------
Please choose the operation: 
   1: Load system code to SDRAM via TFTP. 
   2: Load system code then write to Flash via TFTP. 
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial. 
   9: Load Boot Loader code then write to Flash via TFTP. 

You choosed 2
2: System Load Linux Kernel then write to Flash via TFTP. 
 Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)
------------------------------------------------------------------------------------------------
4) Роутер подключаем LAN(!) портом к компьютеру, с запущеным тфтп, указываем
ip устройсва и сервера, а также имя первого файла
openwrt-15.05-rc1-ramips-rt305x-wt1520-4M-initramfs-uImage.bin

5) После прошивки и загрузки увидим консоль OpenWrt:

-----------------------------------------------------------------
BusyBox v1.23.2 (2015-04-24 13:19:02 CEST) built-in shell (ash)
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 CHAOS CALMER (15.05-rc1, r45695)
 -----------------------------------------------------
  * 1 1/2 oz Gin            Shake with a glassful
  * 1/4 oz Triple Sec       of broken ice and pour
  * 3/4 oz Lime Juice       unstrained into a goblet.
  * 1 1/2 oz Orange Juice
  * 1 tsp. Grenadine Syrup
 -----------------------------------------------------

6) Роутер уже может работать, но еще не "видит" флешку.

root@OpenWrt:/# df -h
Filesystem                Size      Used Available Use% Mounted on
tmpfs                    14.2M     52.0K     14.1M   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev

7) Для прошивки второй части прошивки - я поднял веб сервер apache, DHCP, выложил файл и переключил роутер WAN портом.

На роутере делаем

root@OpenWrt:/ cd /tmp

root@OpenWrt:/tmp# wget http://10.10.10.1/openwrt-15.05-rc1-ramips-rt305x-wt1520
-4M-squashfs-sysupgrade.bin

прошиваем

root@OpenWrt:/tmp# mtd write openwrt-15.05-rc1-ramips-rt305x-wt1520-4M-squashfs-
sysupgrade.bin firmware
Unlocking firmware ...
Writing from openwrt-15.05-rc1-ramips-rt305x-wt1520-4M-squashfs-sysupgrade.bin to firmware ... [w]

8) Теперь у нас есть место для настроек и установки софта
--------------------------------------------------------
root@OpenWrt:/# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                   14.2M     48.0K     14.1M   0% /
/dev/root                 2.3M      2.3M         0 100% /rom
tmpfs                    14.2M     36.0K     14.1M   0% /tmp
tmpfs                    14.2M     48.0K     14.1M   0% /tmp/root
overlayfs:/tmp/root      14.2M     48.0K     14.1M   0% /
tmpfs                   512.0K         0    512.0K   0% /dev
-----------------
9) Отключаем UART , заходим телнетом, и меняем пароль passwd, как нам подсказывает консоль

 === IMPORTANT ============================
  Use 'passwd' to set your login password
  this will disable telnet and enable SSH
 ------------------------------------------

Телнет после єтого отключается - и можно управлять по SSH


четверг, 7 мая 2015 г.

Linux router NAT and port forward


1) Включить форвардинг
echo 1 > /proc/sys/net/ipv4/ip_forward

2) В файл  /etc/sysctl.conf  добавляем  строку:

net.ipv4.ip_forward = 1

3) Включить НАТ (ppp0) внешний интерфейс

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

4) Обычная схема

iptables -t nat -A POSTROUTING -o eth0  -j MASQUERADE

----------------------------------------------------------------------------------------------------------
Усложненный скрипт:


#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin

#
# Чистим предыдущие правила
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

# Принимаем лупбэк
iptables -A INPUT -i lo -j ACCEPT


# Разрешаем запросы изнутри, но не снаружи 

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешаем весь иходящий траф
iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT


# Непосредственно включение ната
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# Запрещаем траф снаружи внутрь
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
iptables -A FORWARD -i eth0 -o ppp0 -j REJECT
# Активация роутинга
echo 1 > /proc/sys/net/ipv4/ip_forward

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

"проброс" порта за роутер
iptables -t nat -A PREROUTING -d 12.34.56.78 -p tcp --destination-port 80 -j DNAT --to-destination 192.168.0.3

четверг, 23 апреля 2015 г.

Linux, network, debian, admin tools set

apt-get install vim mc sudo vlan  -y

Для компиляции астера

apt-get install gcc g++ make libncurses5-dev libmysqlclient-dev libxml2 libxml2-dev libtiff5 libtiff5-dev openssl libssl-dev bison   libaudiofile-dev curl sox libspandsp-dev subversion libsqlite3-dev mpg123 uuid-dev libjansson-dev

Для фрисвича
        apt-get install -o Dpkg::Progress=1 -y autoconf automake devscripts gawk libjpeg-dev libncurses5-dev libtool-bin python-dev     libtiff5-dev libperl-dev libgdbm-dev libdb-dev gettext libssl-dev libcurl4-openssl-dev libpcre3-dev libspeex-dev  libspeexdsp-dev libsqlite3-dev libedit-dev libldns-dev libpq-dev libsndfile-dev libopus-dev liblua5.1-0-deм




Centos


yum install epel-release nload

понедельник, 20 апреля 2015 г.

Port Forward for Asterisk ( redirect )

iptables  -A PREROUTING -i eth1 -p udp --dport 5080 -j REDIRECT --to-port 5060

Если сип приходит не на стандартный порт 5060 - Астериск не умеет "слушать" несколько портов

среда, 10 декабря 2014 г.

we need tftp server

apt-get install tftpd-hpa

# /etc/default/tftpd-hpa 
TFTP_USERNAME="tftp" 
TFTP_DIRECTORY="/tftp" 
TFTP_ADDRESS="0.0.0.0:69" 
TFTP_OPTIONS="--secure"

start tftpd-hpa
stop tftpd-hpa

среда, 26 ноября 2014 г.

CP 7960 и OwerDsine 3001 poe power adapter

Казалось бы, должно работать из коробки..но вот беда - цискофоны расчитаны на роботу с POE свичами, где есть auto-MDIX,






Тоесть умеют менять пары местами если нужно. Ну а наш PowerDsine 3001, наверняка не умеет.



Вывод : тут пригодится crossover cable , который, скорее всего, прийдется сделать самому.