ASUS DSL-N12U

Введение

Долгое время наша тестовая лаборатория не располагала ADSL-коммутатором, что препятствовало нам проводить тесты ADSL-маршрутизаторов. Поэтому, когда в нашем распоряжении оказался DSLAM D-Link DAS-3248EC, мы решили не ограничиваться только тестами устройств этого производителя, но также запросили ADSL-модемы у других компаний. Так к нам в лабораторию попал беспроводной маршрутизатор ASUS DSL-N12U, обзор которого мы и предоставляем нашим читателям.

Внешний вид и аппаратная платформа

Беспроводной ADSL-маршрутизатор ASUS DSL-N12U выполнен в чёрном корпусе из глянцевого пластика с серой горизонтальной вставкой и имеет габариты 179х119х37 мм (без учёта внешних антенн). Для своей работы аппарат требует внешнего источника питания со следующими характеристиками: 12В и 1.5А.

На лицевой панели расположено название модели и световые индикаторы состояния устройства и его портов: четыре для портов LAN, один для Wi-Fi, индикатор ADSL показывает соединение с оборудованием провайдера (если он не горит, продолжать настраивать устройство бесполезно), а Internet - подключение к провайдеру в режиме PPPoA/PPPoE.

Боковые панели ничем особым не примечательны: здесь также располагается серая пластиковая вставка и небольшие отверстия для вентиляции.

Верхняя панель глянцевая и несёт на себе объёмное название производителя. Значительную часть верхней панели занимает вентиляционная решётка.

Большую часть днища устройства также занимает вентиляционная решётка, кроме которой здесь расположена наклейка с краткой информацией о модели, четыре резиновые ножки и два Т-образных технологических отверстия, позволяющие размещать DSL-N12U не только на столе, но и на стене.

На задней панели размещаются две несъёмные внешние антенны с коэффициентом усиления 5 дБи. Также здесь расположены четыре порта Fast Ethernet, один порт для подключения телефонной линии, один разъём USB 2.0, кнопка включения/выключения устройства, переключатель для выключения беспроводного модуля, а также две небольшие круглые кнопки, предназначенные для сброса пользовательских настроек и упрощения процедуры подключения новых беспроводных устройств.

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

Система построена на базе SoC чипа компании Ralink. Не закрыты экраном три чипа: флеш-память Winbond W9816G6IH объёмом 2 Мбайта, процессор TrendChip TC3162LE-LQ128G и модуль TrendChip TC3086-QFN64-EPG, отвечающий за работу с ADSL.

Перейдём теперь к рассмотрению программной части маршрутизатора.

Обновление прошивки и обзор дополнительных утилит

Процедура смены версии микропрограммного обеспечения в модели ASUS DSL-N12U аналогична тем, что подходят большинству беспроводных устройств данного производителя – требуется лишь указать файл с новой прошивкой в пункте «Обновление микропрограммы» группы «Администрирование» и нажать кнопку «Отправить».

Весь процесс занимает порядка трёх минут и не требует от пользователя какой-либо специальной квалификации. Версия прошивки отображается в пункте «Обновление микропрограммы» группы «Администрирование» и на главной странице маршрутизатора.

В случае сбоя при обновлении прошивки ASUS DSL-N12U переходит в режим восстановления, характеризующийся медленным миганием индикатора питания устройства. Отметим, что пользователь может вручную перевести маршрутизатор в данный режим, для чего требуется включить устройство с нажатой кнопкой Reset и удерживать её в течение десяти секунд. К косвенным признакам, указывающим на нахождение DSL-N12U в режиме восстановления, можно отнести отсутствие эхо-ответов протокола ICMP от устройства, а также то, что его MAC-адрес становится равным 4040.4040.4040.

C:\>ping 192.168.1.1
Обмен пакетами с 192.168.1.1 по с 32 байтами данных:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Статистика Ping для 192.168.1.1:
Пакетов: отправлено = 4, получено = 0, потеряно = 4
(100% потерь)
C:\>arp -a
Интерфейс: 192.168.1.2 --- 0x36
адрес в Интернете Физический адрес Тип
192.168.1.1 40-40-40-40-40-40 динамический
192.168.1.255 ff-ff-ff-ff-ff-ff статический

Для восстановления прошивки необходимо использовать утилиту ASUS Firmware Restoration, идущую в составе набора программного обеспечения для данной модели. Сама процедура восстановления предельно проста: требуется лишь выбрать файл с нужной прошивкой и нажать кнопку «Загрузить», всё остальное утилита выполнит самостоятельно.

Восстановления микропрограммы можно провести и в полностью ручном режиме, то есть без использования специализированной утилиты. Для этого требуется сменить IP-адрес узла, с которого будет производиться восстановления. Выяснить нужный адрес можно с помощью перехвата трафика с помощью утилит Wireshark или TCPdump, генерируемого устройством в LAN-сегмент. В нашем случае ASUS DSL-N12U регулярно рассылал ARP-запросы об адресе 192.168.1.20, поэтому именно это значение мы использовали для IP-адреса нашего тестового узла. После смены IP-адреса необходимо передать файл с нужной прошивкой в устройство с помощью протокола TFTP и дождаться перезагрузки устройства. Вывод команд ниже сокращён.

C:\>tftp -i 192.168.1.1 put c:\DSL-N12U_1.0.3.7.trx
Успешная передача: 4348652 байт за 4 сек., 1087163 байт/с
C:\>ping -t 192.168.1.1
Обмен пакетами с 192.168.1.1 по с 32 байтами данных:
Ответ от 192.168.1.20: Заданный узел недоступен.
Ответ от 192.168.1.20: Заданный узел недоступен.
Ответ от 192.168.1.1: число байт=32 время=2000мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64

Кроме указанной ранее утилиты в состав набора программного обеспечения для DSL-N12U входят ещё три: Printer Setup, ADSL Setting Wizard и Device Discovery, позволяющие установить на локальный ПК принтер, подключённый к USB-порту маршрутизатора; настроить сам маршрутизатор для работы с определённым провайдером, а также произвести обнаружение DSL-N12U в локальном сегменте сети.

Подробное рассмотрение возможностей каждой из указанных утилит выходит за рамки данного обзора, поэтому мы переходим к рассмотрению веб-интерфейса устройства.

Обзор веб-интерфейса

Для доступа к веб-интерфейсу беспроводного ADSL-маршрутизатора может использоваться любой современный браузер. IP-адрес LAN-интерфейса по умолчанию равен 192.168.1.1, логин – admin.

После ввода корректных учётных данных, пользователь попадает на стартовую страничку устройства, с которой пользователь может перейти к мастеру настройки подключения к интернет или страничке выбора предпочитаемых типов трафика. Веб-интерфейс ASUS DSL-12U доступен на 14 языках.

Здесь же хотелось бы отметить, что более тонкие настройки качества обслуживания доступны во вкладке «QoS» группы «WAN».

Также со стартовой странички пользователь может перейти к расширенным настройкам устройства. Мы не станем их подробно рассматривать, однако упомянем о наиболее интересных.

Вкладка «Профессионально» группы «Беспроводная сеть» отображает текущее состояние беспроводного модуля и позволяет включать/выключать его по расписанию. Также здесь доступны и другие тонкие настройки беспроводной сети.

Пункты «IP-адрес ЛВС» и «DHCP-сервер» группы «ЛВС» позволяют не только изменять IP-адрес LAN-интерфейса устройства и управлять параметрами работы DHCP-сервера, но также и включать/выключать трансляцию сетевых адресов (NAT/PAT). Данная операция производится путём выбора режима работы маршрутизатора. Приятной опцией DHCP-сервера является возможность указания IP-адреса шлюза вручную.

Подпункты «DSL WAN», «Ethernet WAN» и «3G WAN» группы «WAN» позволяют не только настроить ADSL-порт маршрутизатора, но также выбрать один из LAN-интерфейсов в качестве канала в интернет. ASUS DSL-12U позволяет осуществлять подключение не только к ADSL и Ethernet провайдерам, но и к сетям 3G.

С помощью вкладки «IPTV» той же группы администратор может указать порты устройства, к которым подключены телевизионные приставки. Также здесь собраны и другие настройки группового вещания.

Параметры фильтрации на основе URL или MAC адресов могут быть изменены на вкладках группы «Брандмауэр». Также здесь возможно предоставление доступа к определённым глобальным ресурсам по расписанию.

Вкладки группы «Администрирование» позволяют изменять пароль администратора и параметры синхронизации времени, обновлять микропрограммное обеспечение и управлять пользовательскими настройками. Также здесь представлены тонкие настройки работы ADSL-порта.

Группа «Системный журнал» предоставляет администратору доступ к журнальной информации системы, DHCP-сервера, беспроводного и ADSL модулей. Кроме этого здесь можно просмотреть таблицу маршрутизации и перенаправления портов. К небольшим недочётам данной группы мы бы отнесли вылезающие за отведённые пределы русскоязычные называния вкладок.

На этом мы завершаем обзор веб-интерфейса беспроводного ADSL-маршрутизатора ASUS DSL-12U и переходим к изучению возможностей командной строки устройства.

Обзор интерфейса командной строки

Для доступа к командной строке устройства по протоколу Telnet необходимо ввести те же логин и пароль, что используются для доступа к веб-интерфейсу маршрутизатора. На беспроводном маршрутизаторе ASUS DSL-N12U установлена операционная система Linux версии 2.6.21 и BusyBox версии 1.12.1.

DSL-N12U login: admin
Password:
BusyBox v1.12.1 (2012-05-30 04:29:58 GMT) built-in shell (ash)
Enter 'help' for a list of built-in commands.
# busybox
BusyBox v1.12.1 (2012-05-30 04:29:58 GMT) multi-call binary
Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.
Usage: busybox [function] [arguments]...
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as!
Currently defined functions:
[, [[, arp, ash, basename, brctl, cat, chmod, chpasswd, cp, date,
dd, echo, expr, free, ftpget, ftpput, grep, hostname, ifconfig,
insmod, kill, killall, klogd, ln, logger, login, logread, ls, lsmod,
mdev, mkdir, mknod, mount, mv, netstat, nslookup, ping, ps, pwd,
rm, rmmod, route, sed, sh, sleep, syslogd, telnetd, test, tftp,
top, touch, traceroute, umount, vconfig, vi, wc, zcip
# cat /proc/version
Linux version 2.6.21 (asus@localhost) (gcc version 3.4.2) #1826 Wed May 30 12:38:35 CST 2012

С помощью команды ps посмотрим, какие процессы запущены на устройстве в данный момент. Утилита top отобразит данные по текущей работе запущенных процессов.

# ps
PID USER VSZ STAT COMMAND
1 admin 2700 S /init
2 admin 0 SWN [ksoftirqd/0]
3 admin 0 SW< [events/0]
4 admin 0 SW< [khelper]
5 admin 0 SW< [kthread]
30 admin 0 SW< [kblockd/0]
33 admin 0 SW< [khubd]
45 admin 0 SW< [kswapd0]
46 admin 0 SW [pdflush]
47 admin 0 SW [pdflush]
48 admin 0 SW< [aio/0]
182 admin 0 SW [mtdblockd]
263 admin 0 SW< [dwc_otg]
285 admin 0 SW [RtmpWscTask]
316 admin 1552 S tp_init
318 admin 1732 S /sbin/syslogd -m 0 -t UTC-4 -O /tmp/syslog.log
320 admin 1732 S /sbin/klogd
322 admin 3152 S httpd eth2.1
326 admin 1780 S /usr/sbin/infosvr br0
327 admin 1116 S /usr/sbin/udhcpd /tmp/udhcpd.conf
329 admin 1204 S dnsmasq -C /tmp/dnsmasq.conf
331 admin 1568 S lpd
332 admin 2376 S u2ec
333 admin 2376 S u2ec
334 admin 2692 S usdsvr_broadcast
335 admin 2692 S usdsvr_unicast
337 admin 2376 S u2ec
340 admin 1196 S lld2d br0
341 admin 1468 S /usr/sbin/wanduck
347 admin 2268 S /usr/sbin/pppd file /tmp/ppp/options.wan0
358 admin 1452 S internet_led
360 admin 0 Z [failover_monito]
362 admin 0 Z [failover_3g]
363 admin 2692 S watchdog
376 admin 2692 S ntp
379 admin 2692 S ots
391 admin 1736 R telnetd
392 admin 1788 S networkmap
393 admin 1740 S /bin/sh
450 admin 1748 S -sh
485 admin 1736 R ps
#top
Mem: 22276K used, 6376K free, 0K shrd, 0K buff, 12824K cached
CPU: 0% usr 8% sys 0% nice 91% idle 0% io 0% irq 0% softirq
Load average: 0.00 0.01 0.00
PID PPID USER STAT VSZ %MEM %CPU COMMAND
492 450 admin R 1740 6% 8% top
322 1 admin S 3152 11% 0% httpd eth2.1
1 0 admin S 2700 9% 0% /init
363 1 admin S 2692 9% 0% watchdog
376 1 admin S 2692 9% 0% ntp
379 1 admin S 2692 9% 0% ots
334 1 admin S 2692 9% 0% usdsvr_broadcast
335 1 admin S 2692 9% 0% usdsvr_unicast
333 332 admin S 2376 8% 0% u2ec
332 1 admin S 2376 8% 0% u2ec
337 333 admin S 2376 8% 0% u2ec
347 1 admin S 2268 8% 0% /usr/sbin/pppd file /tmp/ppp/options.w
392 1 admin S 1788 6% 0% networkmap
326 1 admin S 1780 6% 0% /usr/sbin/infosvr br0
450 391 admin S 1748 6% 0% -sh
393 1 admin S 1740 6% 0% /bin/sh
391 1 admin S 1736 6% 0% telnetd
318 1 admin S 1732 6% 0% /sbin/syslogd -m 0 -t UTC-4 -O /tmp/sy
320 1 admin S 1732 6% 0% /sbin/klogd
331 1 admin S 1568 5% 0% lpd
316 1 admin S 1552 5% 0% tp_init

Выясним, какие файлы расположены в каталогах /bin, /sbin, /usr/bin и /usr/sbin.

# ls /bin
chmod gpio sdparm ated
cp lld2d ls flash
umount rm grep iptables-restore
mii_mgr busybox wscd dnsmasq
rt2860apd kill iwconfig iwpriv
ash ping switch sleep
mkdir touch mount spicmd
dd igmpproxy ez-ipupdate tc
login usb_modeswitch sed sh
cat iptables hostname upnp_xml.sh
mv echo pwd reg
ln mtd_write vi
mknod upnpd comgt
ps date netstat
# ls /sbin
gen_ralink_config halt
lsmod start_ddns
wan-up ATE_Get_MacAddr_2G
start_telnetd start3g
sta_wps_stop run_ftp
getSiteSurvey ATE_Get_ResetButtonStatus
wps_pin ATE_Get_PINCode
hso_connect.sh rc
ip-down FWRITE
vconfig start_ots
erase hotplug_usb_mass
test_of_var_files_in_mount_path get_device_id
ATE_Set_PINCode gbe
run_ftpsamba config.sh
atehelp ntp.sh
disktest asuscfe
wps_start restart_dns
getChannel ATE_Set_RegulationDomain
switch_to_3gwan write_smb_conf
setCountryCode radioctrl
getBSSID getBootV
ATE_Set_PowerLedOn getPIN
greenap.sh vpn-passthru.sh
tracktest wps_oob
udhcpc.sh setBootV
auth-down apcli_monitor
nvram_restore zcip
gbr ejusb
config-pppoe.sh getIMG
auth-up apcli_connect
gpio_setbit ATE_Get_RegulationDomain
3ginfo.sh getSSID
ddns.sh run_apps
ddns_updated reboot
wmac switch_to_dslwan
start_ntp setMAC
insmod getStaConnectionSSID
setPIN init
hotplug run_upnp
watchdog stop_ftp
convert_asus_values get_sw
ifconfig rsrom
route automount.sh
config-pptp.sh ATE_Get_BootLoaderVersion
usdsvr_broadcast nat.sh
get_modem_node ATE_Get_WpsButtonStatus
stop3g ip-up
usbtpt dev_init.sh
restart_qos wan.sh
chpasswd.sh config-udhcpd.sh
ledoff ATE_Set_RestoreDefault
wan-down ping_keep_alive
apcli_set gpio_wrint
rmmod gpio_rdint
usdsvr_unicast gpiotest
chg_to_ethwan sigmon
logmessage restore
write ATE_Get_SWMode
wsrom ATE_Set_PowerLedOff
pspfix getApCliInfo
ots startWan
ATE_Get_WlanButtonStatus sta_wps_pbc
3gsqmon.sh klogd
initial_var_file send_sms
dhcpc_apply_delayed setDisassociate
ATE_Get_FWVersion getMAC
ateshow spiread
wps_pbc speedtest
3g.sh config-3g-ppp.sh
umount2 getCurrentAddress
config-dns.sh config-igmpproxy.sh
read_sms getCountryCode
ATE_Set_MacAddr_2G wphy
ATE_Set_StartATEMode ntp
ledon syslogd
ATE_Get_Usb2p0_Port1_Infor getWPSAP
mdev eject_usb1
chkalltask stopservice
gpio_setdir wifi_unload.sh
wps_stop arp
config-l2tp.sh logread
chg_to_dslwan global.sh
# ls /usr/bin
test nslookup ftpget expr free
killall traceroute ftpput [ basename
top tftp logger wc [[
# ls /usr/sbin
arpstorm internet_led udhcpd failover_monitor
pppd tp_init ntpclient spiflash
infosvr telnetd pppoe-relay chpasswd
networkmap nvram l2tp-control u2ec
lpd adslate udhcpc l2tpd
brctl wanduck udpxy failover_3g
httpd bpalogin auto_det
#

Перейдём теперь в каталог /proc и посмотрим, какие файлы здесь размещены, а также выясним время работы операционной системы и её среднюю загруженность, получим информацию об установленном процессоре и количестве оперативной памяти.

# cd /proc/
# ls
527 337 263 loadavg interrupts sys
450 335 182 uptime slabinfo irq
393 334 48 meminfo buddyinfo misc
392 333 47 version vmstat scsi
391 332 46 filesystems zoneinfo ioports
379 331 45 cmdline diskstats iomem
376 329 33 locks modules timer_list
363 327 30 execdomains kcore kallsyms
362 326 5 mounts net swaps
360 322 4 kmsg sysvipc crypto
358 320 3 devices fs mtd
347 318 2 cpuinfo driver rt2880
341 316 1 partitions tty Config
340 285 self stat bus spiflash
# cat uptime
1335.37 1316.40
# cat loadavg
0.00 0.00 0.00 3/41 530
# cat cpuinfo
system type : Ralink SoC
processor : 0
cpu model : MIPS 24K V4.12
BogoMIPS : 255.48
wait instruction : yes
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : yes
hardware watchpoint : yes
ASEs implemented : mips16 dsp
VCED exceptions : not available
VCEI exceptions : not available
# cat meminfo
MemTotal: 28652 kB
MemFree: 6320 kB
Buffers: 0 kB
Cached: 12828 kB
SwapCached: 0 kB
Active: 7280 kB
Inactive: 7752 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 2244 kB
Mapped: 1688 kB
Slab: 4344 kB
SReclaimable: 952 kB
SUnreclaim: 3392 kB
PageTables: 392 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 14324 kB
Committed_AS: 5652 kB
VmallocTotal: 1048404 kB
VmallocUsed: 2188 kB
VmallocChunk: 1045676 kB

Нельзя не упомянуть и об утилите nvram, позволяющей изменять важные параметры работы устройства.

# nvram
usage: nvram [get name] [set name=value] [unset name] [show]
# nvram show | grep pass
size: 17698 bytes (15070 left)
wan_pppoe_passwd=
hsdpa_pass=
http_passwd=password
wan0_pppoe_passwd=test
dsl_pppoe_passwd0=
dsl_pppoe_passwd1=
dsl_pppoe_passwd2=
dsl_pppoe_passwd3=
dsl_pppoe_passwd4=
dsl_pppoe_passwd5=
dsl_pppoe_passwd6=
dsl_pppoe_passwd7=
usb_ftppasswd_x=
ethwan_pppoe_passwd=test
ddns_passwd_x=
acc_password=

На этом мы завершаем рассмотрение интерфейса командной строки беспроводного ADSL-маршрутизатора ASUS DSL-N12U и переходим к его непосредственному тестированию.

Тестирование

Первым тестом, с которого мы обычно начинаем данный раздел, является установление времени загрузки устройства, под которым мы понимаем интервал времени, прошедший с момента подачи питания до получения первого эхо-ответа по протоколу ICMP. ASUS DSL-N12U загружается за 27 секунд. Мы считаем это хорошим результатом.

Вторым тестом обычно является проверка защищённости устройства, для чего мы используем сканер сетевой безопасности Positive Technologies XSpider 7.7 (Demo build 3100). Всего было обнаружено двенадцать открытых портов: TCP-23 (Telnet), TCP-53 (DNS), UDP-53 (DNS), TCP-80 (HTTP), TCP-515 (printer), TCP-3394 (d2k-tapesty2), TCP-3838 (Недоступен), TCP-5473 (unknown), TCP-9100 (Недоступен), TCP-9998 (Недоступен), TCP-18017 (HTTP) и TCP-49152 (HTTP). Наиболее интересная информация представлена ниже.

Теперь настала пора, пожалуй, самых ожидаемых нашими читателями тестов – тестов производительности устройства. В таблице ниже мы приводим основные параметры нашего тестового стенда.

Компонент ПК Ноутбук
Материнская плата ASUS Maximus V Extreme ASUS M60J
Процессор Intel Core i7 3770K 3.5 ГГц Intel Core i7 720QM 1.6 ГГц
Оперативная память DDR3 PC3-10700 SEC 32 Гбайта DDR3 PC3-10700 Kingston 8 Гбайт
Сетевая карта Intel Gigabit CT Desktop Adapter
ASUS EA-N66
Atheros AR8131
Atheros AR9285
Операционная система Windows 7 x64 SP1 Rus Windows 7 x64 SP1 Rus

Начали мы с установления максимальной скорости передачи пользовательских данных через беспроводной сегмент сети.

Полученные здесь скорости вполне соответствуют производительности проводного сегмента, то есть проводные и беспроводные сети в DSL-N12U сбалансированы.

Мы решили не ограничиваться измерением лишь максимально возможных скоростей, обеспечиваемых маршрутизатором, но проверить его работу в нескольких различных ADSL-режимах.

Поскольку ASUS DSL-N12U позволяет подключаться не только к ADSL, но и Ethernet-провайдерам мы решили выяснить скорости, которые будут доступны пользователям, в следующих режимах: маршрутизация и NAT, туннель PPTP без шифрования и туннель PPTP с шифрованием MPPE128.

На этом мы завершаем раздел тестирования и переходим к подведению итогов.

Заключение

В целом мы остались довольны ADSL-маршрутизатором ASUS DSL-N12U, а возможность организации резервных подключений с использованием беспроводных USB-модемов или Ethernet-провайдеров делает его вдвойне привлекательным для подключения к глобальной сети по технологии ADSL.

Сильные стороны устройства перечислены ниже.

  • Внешние антенны с коэффициентом усиления 5 дБи.
  • Возможность подключения к сети интернет не только через ADSL, но также и с использованием Ethernet и 3G провайдеров.
  • Поддержка Annex M.
  • Возможность включения/отключения беспроводного модуля вручную и по расписанию.
  • Хорошие скорости передачи данных при подключении к Ethernet-провайдерам.

К сожалению, мы не можем не сказать и о недостатках протестированной модели.

  • Незначительно «расползается» веб-интерфейс устройства.
  • Невозможность подключения к USB-порту устройства внешних дисков и флеш-карт.

На момент написания статьи средняя цена на беспроводной ADSL-маршрутизатор ASUS DSL-N12U в интернет-магазинах Москвы составляла 2000 рублей.

You have no rights to post comments

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter