Перейти к содержанию

vasek00

Участники форума
  • Постов

    4 903
  • Зарегистрирован

  • Посещение

  • Победитель дней

    80

Сообщения, опубликованные vasek00

  1. 12 часа назад, Skrill0 сказал:

    Доброго Вам вечера!

    Из того, что вижу, в основном все маркируется с помощью CONNNDMMARK, кроме 1 клиента, которого поместила в профиль.

    Но при рабоче через Mark никак не получается правильно пустить соединение на Tproxy.
    Может, я чего-то не понимаю или не замечаю?

      Скрыть содержимое
    # Вывод маркированных соединений из таблицы mangle
    iptables -t mangle -L -v -n --line-numbers | grep MARK
    
    # Правило 1: Маркировка соединений на основе состояния
    1    23147   44M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED CONNNDMMARK match  0x20/0x0
    
    # Правило 2: NDMMARK для всех соединений
    1        7   364 NDMMARK    all  --  *      *       0.0.0.0/0            0.0.0.0/0            NDMMARK xor 0x4
    
    # Цепочка _IPSEC_L2TPSERVER_MARK
    # Правило 1: NDMMARK для соединений, проходящих через l2tp+
    1        0     0 NDMMARK    all  --  l2tp+  *       0.0.0.0/0            0.0.0.0/0            NDMMARK xor 0x10
    
    # Правило 2: CONNNDMMARK для соединений, прошедших через DNAT
    1        0     0 CONNNDMMARK  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate DNAT CONNNDMMARK xor 0x80
    
    # Правило 3: NDMMARK для соединений, прошедших через DNAT
    2        0     0 NDMMARK    all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate DNAT NDMMARK xor 0x80
    
    # Правило 4: CONNNDMMARK для соединений с определенной маркировкой и ctstate DNAT
    1        0     0 CONNNDMMARK  all  --  *      *       0.0.0.0/0            0.0.0.0/0            CONNNDMMARK match  0x80/0x0 CONNNDMMARK xor 0x80
    
    # Правило 5: RETURN для соединений с определенной маркировкой
    2        0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            CONNNDMMARK match  0x80/0x0
    
    # Правило 6: CONNNDMMARK для адреса 192.168.1.65
    1     2222  383K CONNNDMMARK  all  --  br0    *       192.168.1.65         0.0.0.0/0            CONNNDMMARK match  0x0/0x0 CONNNDMMARK and 0xff
    
    # Правило 7: MARK для адреса 192.168.1.60 
    6     2274  396K MARK       all  --  br0    *       192.168.1.60         0.0.0.0/0            MARK set 0xffffd00
    
    # Правило 8: CONNMARK для адреса 192.168.1.60
    7     2274  396K CONNMARK   all  --  br0    *       192.168.1.60         0.0.0.0/0            CONNMARK save
    
    # Правило 9: CONNNDMMARK для TCP соединений на порту 443 с флагами SYN
    1        0     0 CONNNDMMARK  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 flags:0x02/0x02 CONNNDMMARK xor 0x20
    
    # Правило 10: CONNNDMMARK для TCP соединений на порту 443 с флагами ACK
    3        0     0 CONNNDMMARK  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 flags:0x10/0x10 CONNNDMMARK xor 0x20
    
    # Правило 11: CONNNDMMARK для TLS соединений с определенным серверным именем
    1        0     0 CONNNDMMARK  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0             tls "*skrill.keenetic.link" CONNNDMMARK and 0xff
    
    # Правило 13: CONNNDMMARK для соединений с определенной NDMMARK маркировкой
    3        0     0 CONNNDMMARK  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ndmmark match 0x1/0x0 CONNNDMMARK xor 0x1
    
    # Правило 14: CONNNDMMARK для соединений с другой NDMMARK маркировкой
    2        0     0 CONNNDMMARK  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ndmmark match 0x2/0x0 CONNNDMMARK xor 0x2
    
    # Последнее правило: NDMMARK для всех соединений
    1    23949   44M NDMMARK    all  --  *      *       0.0.0.0/0            0.0.0.0/0            NDMMARK and 0xff

     

    TProxy не заработает, так как для маркировки в iptables нужно отключить hw_nat

    Берем например provixy чисто для пробы

    listen-address  127.0.0.1:8118
    
    /opt/etc/init.d # netstat -ntulp | grep 8118
    tcp        0      0 127.0.0.1:8118          0.0.0.0:*               LISTEN      1880/privoxy
    /opt/etc/init.d #
    
    
    iptables -t mangle -A PREROUTING -i br0 -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 8118 --on-ip 127.0.0.1
    ip rule add fwmark 1 lookup 100
    ip route add local 0.0.0.0/0 dev lo table 100

    После этого перестает работат WEB 80 порт роутера, ну как бы так и должно быть. Клиент из лок сети просматривает сайты которые открываются.

       71  3692 TPROXY     tcp  --  br0    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 TPROXY redirect 127.0.0.1:8118 mark 0x1/0x1

    -t mangle ... --tproxy-mark 0x1/0x1 --on-port 8118  изменяется пакет, устанавливает mark перед маршрутизацией  "ip rule add fwmark 1 ..." где все по умолчанию 0/0 идет в dev lo => помеченные пакеты идут в localhost на порт 8118 => тут просто смена маршрута. Проверял на скорую руку, но все работало, база 4.1.А.9 проц 7621

     

    Прошивка классификация интернет-трафика + профиль по клиенту

    Скрытый текст
      404 25945 CONNNDMMARK  all  --  br0    *       192.168.130.7        0.0.0.0/0            CONNNDMMARK match  0x0/0x0 CONNNDMMARK xor 0x10
     5886  780K RETURN     all  --  br0    *       192.168.130.7        0.0.0.0/0           
      869  186K CONNNDMMARK  all  --  br0    *       192.168.130.2        0.0.0.0/0            CONNNDMMARK match  0x0/0x0 CONNNDMMARK and 0xff
      869  186K MARK       all  --  br0    *       192.168.130.2        0.0.0.0/0            MARK set 0xffffaaa
      869  186K CONNMARK   all  --  br0    *       192.168.130.2        0.0.0.0/0            CONNMARK save
      869  186K RETURN     all  --  br0    *       192.168.130.2        0.0.0.0/0      

    Это классификация интернет-трафика (4 - CONNNDMMARK match  0x0/0x0 CONNNDMMARK xor 0x10) по клиенту

    Второй клиент классификация интернет по умолчанию и он сам клиент в профиле у которого MARK set 0xffffaaa

    Делал еще хитрее

    Скрытый текст
     iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j RETURN
     iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j CONNMARK --save-mark 
     iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -m dscp --dscp 63 -j MARK --set-mark 0xffffd01
     iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j MARK --set-mark 0xffffd00

    где --dscp 63 для сервиса торрента клинта ПК (windows) и для него профиль -set-mark 0xffffd01 в котором канал Инте2, а сам клиент ПК в профиле --set-mark 0xffffd00 в котором канал Инет1

    HWNAT вообще не трогал не выше ни тут (включен по умолчанию и hard и soft).

    Ремарка в 4.1 сменена нумерация table на 10,11,12 c 42,43 и т.д. и маркировка на 0xffffaaa с 0xffffd00

     

    По RAY там как то хитро

    https://gist.github.com/tossmilestone/b8ae168ae029e0a66da125b71979f5a2

    https://dongdongbh.github.io/blog/tproxy/

     

     

    • Лайк 3
  2. 17 минут назад, Skrill0 сказал:

    TProxy не заработает, так как для маркировки в iptables нужно отключить hw_nat | Спасибо @avn.

    А какже тогда маркировка в прошивке, которая практически везде используется, например клиент который помещен в профиль.

  3. 10 часов назад, Ant сказал:

    2). Второй регулятор зарегистрировался с 3-5 попытки. Проблема в том, что соединение Wi-Fi у него постоянно отваливается. То есть значок Wi-Fi на устройстве пропадает, в программе Smart Life он указан как "не в сети", и в Кинетике этот регулятор отмечен как "не в сети". Помогает выключение-включение регулятора, после чего он на какое-то время опять коннектится к wi-fi. После чего все повторяется.

    В наличие умные выключатели и программа Smart Life. Как писали выше все это работает в своем собственном сегменте 2.4 кроме них никого нет. Мало того в данном сегменте настройки Beamforming/QAM256/Airtime Fairness включены пока не мешают.

    Иногда бывает бзик, правда все работает все равно (тут уже писал про это), ну бзик (замечен как стабильный) и всегда при моих эксп. с клиентами и профилями для них в WEB роутера (клиентов умного дома вообще не трогаю).

    [I] Oct 10 00:58:47 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint0": STA(хх:хх:хх:хх:хх:хх) had disassociated by STA (reason: STA is leaving or has left BSS).

    только MAC нормальный.

    Пока есть подозрения на что то из WEB, или в ПО контроль интерфейсов/таблиц/или еще что-то, так как в данное время делал часто перенос клиента из одного профиля в другой и только это.

    На вопрос описать данное сообщение "had disassociated by STA (reason: STA is leaving or has left BSS)" или с чем оно может быть связано, чтоб найти концы где смотреть - пока тишина.

  4. 41A11 - KN1811, "служба классификации трафика" всегда была включена, не чего такого от нее не обнаружено.

    Есть пики но это по "show threads" говорят о http/rci

    Скрытый текст

    На старом WEB

    "Queue::IDFIZVDASZLIWOWC::http/rci": {
                    "tid": 1246,
                    "lock_list_complete": true,
                    "locks": {},
                    "backtrace": {
                        "calls": "\nThread::State::GetBacktrace() [clone .part.0]+0x40\nThread::AttachThreadsTo(Thread::Monitor const&, Xml::Node&)+0x1a8\nCore::Command::(anonymous namespace)::ShowThreads::Execute(Command::Request const&, Command::Response&) const+0x34\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Parse_(Command::Request const&, Command::Response&)+0x5dc\nCore::Configurator::Parse(Command::Request const&, Command::Response&)+0x18\nCore::Command::(anonymous namespace)::Parse::Execute(Command::Request const&, Command::Response&) const+0x9c\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Serve(Command::Request const&, Command::Response&)+0x3d0\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0x6c8\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xaec\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::JsonPost(Core::Configurator&, Core::Scgi::Request const&, Json::Document const&, Core::Scgi::Trace&, Json::Document&, bool*)+0x13c\nCore::Scgi::ThreadPool::Task_::ProcessJsonRequest_(Core::Configurator&, Core::Scgi::Request const&, Core::Scgi::Trace&, Array<char>&, Io::OStream&)+0x350\nCore::Scgi::ThreadPool::Task_::Run()+0x144\nTask::Thread::Run_()+0x30c\nTask::Thread::Run()+0x18\nThread::StartRoutine_(void*)+0x2c8\nstart()+0x90\n__clone()+0x30\n",
                        "error": ""
                    },
                    "statistics": {
                        "interval": 30,
                        "cpu": {
                            "now": "1959.824913",
                            "min": 0,
                            "max": 38,
                            "avg": 6,
                            "cur": 26
                        }
                    }
                },
                          
    
                          "Queue::IDFIZVDASZLIWOWC::http/rci": {
                    "tid": 1246,
                    "lock_list_complete": true,
                    "locks": {},
                    "backtrace": {
                        "calls": "\nThread::State::GetBacktrace() [clone .part.0]+0x40\nThread::AttachThreadsTo(Thread::Monitor const&, Xml::Node&)+0x1a8\nCore::Command::(anonymous namespace)::ShowThreads::Execute(Command::Request const&, Command::Response&) const+0x34\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Parse_(Command::Request const&, Command::Response&)+0x5dc\nCore::Configurator::Parse(Command::Request const&, Command::Response&)+0x18\nCore::Command::(anonymous namespace)::Parse::Execute(Command::Request const&, Command::Response&) const+0x9c\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Serve(Command::Request const&, Command::Response&)+0x3d0\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0x6c8\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xaec\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::JsonPost(Core::Configurator&, Core::Scgi::Request const&, Json::Document const&, Core::Scgi::Trace&, Json::Document&, bool*)+0x13c\nCore::Scgi::ThreadPool::Task_::ProcessJsonRequest_(Core::Configurator&, Core::Scgi::Request const&, Core::Scgi::Trace&, Array<char>&, Io::OStream&)+0x350\nCore::Scgi::ThreadPool::Task_::Run()+0x144\nTask::Thread::Run_()+0x30c\nTask::Thread::Run()+0x18\nThread::StartRoutine_(void*)+0x2c8\nstart()+0x90\n__clone()+0x30\n",
                        "error": ""
                    },
                    "statistics": {
                        "interval": 30,
                        "cpu": {
                            "now": "2471.824919",
                            "min": 0,
                            "max": 38,
                            "avg": 14,
                            "cur": 14
                        }
                    }
                },
                          
    "Queue::IDFIZVDASZLIWOWC::http/rci": {
                    "tid": 1246,
                    "lock_list_complete": true,
                    "locks": {},
                    "backtrace": {
                        "calls": "\nThread::State::GetBacktrace() [clone .part.0]+0x40\nThread::AttachThreadsTo(Thread::Monitor const&, Xml::Node&)+0x1a8\nCore::Command::(anonymous namespace)::ShowThreads::Execute(Command::Request const&, Command::Response&) const+0x34\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Parse_(Command::Request const&, Command::Response&)+0x5dc\nCore::Configurator::Parse(Command::Request const&, Command::Response&)+0x18\nCore::Command::(anonymous namespace)::Parse::Execute(Command::Request const&, Command::Response&) const+0x9c\nCore::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x158\nCore::Configurator::Serve(Command::Request const&, Command::Response&)+0x3d0\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0x6c8\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xaec\nCore::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x19c\nCore::Scgi::Tools::JsonPost(Core::Configurator&, Core::Scgi::Request const&, Json::Document const&, Core::Scgi::Trace&, Json::Document&, bool*)+0x13c\nCore::Scgi::ThreadPool::Task_::ProcessJsonRequest_(Core::Configurator&, Core::Scgi::Request const&, Core::Scgi::Trace&, Array<char>&, Io::OStream&)+0x350\nCore::Scgi::ThreadPool::Task_::Run()+0x144\nTask::Thread::Run_()+0x30c\nTask::Thread::Run()+0x18\nThread::StartRoutine_(void*)+0x2c8\nstart()+0x90\n__clone()+0x30\n",
                        "error": ""
                    },
                    "statistics": {
                        "interval": 30,
                        "cpu": {
                            "now": "2557.824915",
                            "min": 0,
                            "max": 37,
                            "avg": 12,
                            "cur": 26
                        }
                    }
                },
                          
    или тот же selftest в эти моменты
                          
            <thread>
                <name>Queue::IDFIZVDASZLIWOWC::http/rci</name>
                <tid>1246</tid>
                <lock_list_complete>yes</lock_list_complete>
                <locks>
                    <lock>
                        <precedence>
                            <name>TASK_QUEUE_THREAD</name>
                            <order>97</order>
                        </precedence>
                        <state>WAITING</state>
                        <since>Oct  9 11:31:15</since>
                        <duration>4.600787</duration>
                    </lock>
                </locks>
                <backtrace>
                    <calls>
                        <![CDATA[
    __switch_to()+0x5c
    futex_wait_queue_me()+0xb4
    futex_wait()+0xc0
    do_futex()+0x64
    SyS_futex()+0xa8
    el0_svc_naked()+0x34
    0xffffffffffffffff()+0x0
    __setjmp()+0x38
    __syscall_cp_asm()+0x24
    __syscall_cp_c()+0x64
    __timedwait_cp()+0x94
    pthread_cond_timedwait()+0xdc
    Condition::Wait(long) const+0x144
    Task::Thread::Run_()+0x494
    Task::Thread::Run()+0x18
    Thread::StartRoutine_(void*)+0x2c8
    start()+0x90
    __clone()+0x30
    ]]>
                    </calls>
                    <error/>
                </backtrace>
                <statistics>
                    <interval>30</interval>
                    <cpu>
                        <now>1825.824918</now>
                        <min>0</min>
                        <max>39</max>
                        <avg>8</avg>
                        <cur>0</cur>
                    </cpu>
                </statistics>
            </thread>
    
                          
            <thread>
                <name>Queue::IDFIZVDASZLIWOWC::http/rci</name>
                <tid>1246</tid>
                <lock_list_complete>yes</lock_list_complete>
                <locks>
                    <lock>
                        <precedence>
                            <name>TASK_QUEUE_THREAD</name>
                            <order>97</order>
                        </precedence>
                        <state>WAITING</state>
                        <since>Oct  9 11:31:32</since>
                        <duration>5.127473</duration>
                    </lock>
                </locks>
                <backtrace>
                    <calls>
                        <![CDATA[
    __switch_to()+0x5c
    futex_wait_queue_me()+0xb4
    futex_wait()+0xc0
    do_futex()+0x64
    SyS_futex()+0xa8
    el0_svc_naked()+0x34
    0xffffffffffffffff()+0x0
    __setjmp()+0x38
    __syscall_cp_asm()+0x24
    __syscall_cp_c()+0x64
    __timedwait_cp()+0x94
    pthread_cond_timedwait()+0xdc
    Condition::Wait(long) const+0x144
    Task::Thread::Run_()+0x494
    Task::Thread::Run()+0x18
    Thread::StartRoutine_(void*)+0x2c8
    start()+0x90
    __clone()+0x30
    ]]>
                    </calls>
                    <error/>
                </backtrace>
                <statistics>
                    <interval>30</interval>
                    <cpu>
                        <now>1843.824918</now>
                        <min>0</min>
                        <max>39</max>
                        <avg>8</avg>
                        <cur>0</cur>
                    </cpu>
                </statistics>
            </thread>
    
    
    <thread>
                <name>Queue::IDFIZVDASZLIWOWC::http/rci</name>
                <tid>1246</tid>
                <lock_list_complete>yes</lock_list_complete>
                <locks>
                    <lock>
                        <precedence>
                            <name>TASK_QUEUE_THREAD</name>
                            <order>97</order>
                        </precedence>
                        <state>WAITING</state>
                        <since>Oct  9 11:30:10</since>
                        <duration>4.981449</duration>
                    </lock>
                </locks>
                <backtrace>
                    <calls>
                        <![CDATA[
    __switch_to()+0x5c
    futex_wait_queue_me()+0xb4
    futex_wait()+0xc0
    do_futex()+0x64
    SyS_futex()+0xa8
    el0_svc_naked()+0x34
    0xffffffffffffffff()+0x0
    __setjmp()+0x38
    __syscall_cp_asm()+0x24
    __syscall_cp_c()+0x64
    __timedwait_cp()+0x94
    pthread_cond_timedwait()+0xdc
    Condition::Wait(long) const+0x144
    Task::Thread::Run_()+0x494
    Task::Thread::Run()+0x18
    Thread::StartRoutine_(void*)+0x2c8
    start()+0x90
    __clone()+0x30
    ]]>
                    </calls>
                    <error/>
                </backtrace>
                <statistics>
                    <interval>30</interval>
                    <cpu>
                        <now>1760.824902</now>
                        <min>0</min>
                        <max>37</max>
                        <avg>10</avg>
                        <cur>0</cur>
                    </cpu>
                </statistics>
            </thread>

     

     

  5. 3 часа назад, aleeko сказал:


    ДОкументация на ГИтхабе не нашел

    На данном форуме

    ~ # wget -qO - localhost:79/rci/show/ip/policy
    {
      "Policy0": {
        "description": "Cloud",
        "mark": "ffffd00",
        "table4": 42,
        "route4": {
          "route": [
    ...
    
    ~ # wget -qO - localhost:79/rci/show/interface | jq '.[] | select(.type=="Wireguard")' | jq -r '.id'
    Wireguard0
    Wireguard2
    Wireguard3
    Wireguard4
    ~ # 
    
    ~ # curl -X POST -d '{}' "http://localhost:79/rci/interface/connect?name=PPPoE0&via=ISP"
    {
      "status": [
        {
          "status": "message",
          "code": "72286209",
          "ident": "Network::Interface::Ppp",
          "message": "\"PPPoE0\": enabled connection via ISP interface."
        }
      ]
    }~ # 
    
    ~ # curl -s 127.0.0.1:79/rci/show/interface | jq -r '.[] | select(."interface-name"=="ISP") | .id'
    GigabitEthernet1
    ~ # 
    
    ~ # curl -s "127.0.0.1:79/rci/ip/http/security-level" | grep ssl | sed 's/.ssl.://' | tr -d " "
    true
    ~ # 

     

  6. 7 минут назад, aleeko сказал:

    Нет, wget с логом не то, там нет упоминаний и отсылки table и к интерфейсам пригодных для скармливания   "ip rule"
    Здесь как раз таки надо обращаться какой то командой к роутеру что бы вытащить через entware эту инфу о "policy", либо смотреть какой то командой в сетевых параметрах, где упоминается соотношения имени интерфейса к присвоенным им политикой номера таблиц.

    "ip rule" + "ip ro show table XXXX"

    Этих не хватит.

    Для перезагрузки используют /opt/etc/init.d скрипт с "S110Run" или хуки от /opt/ndm/...

    Скрытый текст
    ~ # ip rule
    0:      from all lookup local 
    10:     from all fwmark 0xffffcff lookup main 
    200:    from all fwmark 0xffffd00 lookup 42 
    201:    from all fwmark 0xffffd00 blackhole
    202:    from all fwmark 0xffffd01 lookup 43 
    203:    from all fwmark 0xffffd01 blackhole
    204:    from all fwmark 0xffffd02 lookup 44 
    ...
    
    
    ~ # ip ro show table 42
    default dev nwg0  scope link 
    10.2.0.1 dev nwg4  scope link 
    ....

    где

    42 у меня например ip policy Policy0/description Cloud

    44 у меня ip policy Policy2/description Anti

    Номера 42 и т.д. идут пока по порядку согласно конф файла

    ip policy Policy0 -------> 42
        description Cloud
    ...
    !
    ip policy Policy1 -------> 43
        description In-2
    ...
    !
    ip policy Policy2 ------> 44
        description Anti
    ...


     

     

  7. 1 час назад, aleeko сказал:

    Лично у меня вопрос... кто знает?!
    При работе через интерфейс мы можем добавлять новые таблицы, и таблицы интерфейсов могут получить новые значения.
    Как через скрипт получить информацию, в какой именно таблице сейчас прячется интерфейс nwg2 или любой другой? - что бы каждый раз не лазать ручками редактировать скрипт?

    На форуме куча есть примеров через wget - например

    wget -qO - --post-data='[{"log":{"once":true}}]' localhost:79/rci/show

    Есть и еще - поиск

     

    Для меня проще команды "ip rule" + "ip ro show table XXXX" + достаточно один раз посмотреть вывод "show ip policy"

    Policy0
    "description": "Cloud",
    "mark": "ffffd00",
    "table4": 42
    ....
    "route": [
                        {
    ...
                            "interface": "Wireguard0",
    ...                    },
                        {
    ....
                            "interface": "Wireguard4",
    ...
           "Policy2": {
                "description": "Anti",
                "mark": "ffffd02",
                "table4": 44,
                "route4": {
    ...
                       {
    ...
                            "interface": "Wireguard4",
    ...
    сопоставить с конф файлом
    ip policy Policy0
        description Cloud
        permit global Wireguard0

     

    opkg install ip-full ip-bridge

     

  8. 10 часов назад, aleeko сказал:

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

    Вам предложен вариант как это можно сделать.

    с проверкой поднятых интерфейсов видимо надо искать в других ветках...

    видимо так, на данном форуме есть куча вариантов описанных что и как только приложить некоторые усилия.

    Как говорится "без труда не выловишь и рыбку из пруда", второе "Подразумевается, что на нашем форуме пишут люди заинтересованные и технически подкованные, способные на минимальный анализ происходящего"

    • Лайк 1
  9. 3 часа назад, aleeko сказал:

    Я так понимаю, такой же логики следует придерживаться, если я буду заворачивать трафик в прокси настроенный на Кинетике?

    Логика проста - сначала все ручками чтоб работало, а потом уже скрипт для автом. запуска.

  10. 18 часов назад, bigpu сказал:

    Конфигурация у меня заработала корректно, я только изменил ваш конфиг "outbounds", взяв с бесплатного сервера конфиг "V2ray Vless". Единственно что смущает, грузит неплохо проц Кинетика - в покое теперь 25-35%, а под тем же СпидТест уходит выше 90%. Это на Viva 1910 c 7621, как будет ворочаться на стомегабитных Кинетиках, непонятно.

    Пока на mips не гонял, но на arm в самой простой конфигурации proxy->REDIRECT (без routing и DNS) попробовал

    Скрытый текст

    бесплатный 7 дневка

    {
        "inbounds": [
            {
                    "tag": "dokodemo-door",
                    "port": 10810,
                    "listen": "192.168.1.1",
                    "protocol": "dokodemo-door",
                    "settings": {
                            "network": "tcp,udp",
                            "followRedirect": true
                            },
                    "sniffing": {
                            "enabled": true,
                            "destOverride": ["http", "tls"]
                            },
                    "streamSettings": {
                            "sockopt": {
                                    "tproxy": "redirect"
                            }
                    }
            }
    ],
        "outbounds": [
            {
                "protocol": "vless",
                "settings": {
                    "vnext": [
                        {
                            "address": "ru2.vpnjantit.com",
                            "port": 10002,
                            "users": [
                                {
                                    "encryption": "none",
                                    "id": "8f.............366"
                                }
                            ]
                        }
                    ]
                },
                "streamSettings": {
                    "network": "ws",
                    "security": "tls",
                    "tlsSettings": {
                        "disableSystemRoot": false
                    },
                    "wsSettings": {
                        "path": "/vpnjantit"
                    },
                    "xtlsSettings": {
                        "disableSystemRoot": false
                    }
                }
            }
        ]
    }

    плюс iptables

    iptables -t nat -N V2RAY
    ....
    iptables -t nat -A V2RAY -p tcp -j REDIRECT --to-ports 10810 
    iptables -t nat -A PREROUTING -p tcp -j V2RAY

     

    В итоге получил на 100Мбит канале - 100 выдает

    Скрытый текст

    -2.thumb.jpg.650854c8b68e1d63bde470e14ae085fb.jpg

    и по памяти

    Скрытый текст
    /proc/5590 # cat status
    Name:   xray
    Umask:  0022
    State:  S (sleeping)
    Tgid:   5590
    Ngid:   0
    Pid:    5590
    PPid:   3274
    TracerPid:      0
    Uid:    0       0       0       0
    Gid:    0       0       0       0
    FDSize: 128
    Groups:  
    VmPeak:  1251720 kB
    VmSize:  1251720 kB
    VmLck:         0 kB
    VmPin:         0 kB
    VmHWM:     30280 kB
    VmRSS:     21220 kB
    RssAnon:            8720 kB
    RssFile:           12500 kB
    RssShmem:              0 kB
    VmData:    52228 kB
    VmStk:       132 kB
    VmExe:     10256 kB
    VmLib:         4 kB
    VmPTE:       108 kB
    VmPMD:        20 kB
    VmSwap:        0 kB
    Threads:        9
    SigQ:   2/1955
    SigPnd: 0000000000000000
    ShdPnd: 0000000000000000
    SigBlk: fffffffc3bba3a00
    SigIgn: 0000000000000000
    SigCgt: fffffffd7fc1feff
    CapInh: 0000000000000000
    CapPrm: 0000003fffffffff
    CapEff: 0000003fffffffff
    CapBnd: 0000003fffffffff
    CapAmb: 0000000000000000
    Speculation_Store_Bypass:       unknown
    Cpus_allowed:   3
    Cpus_allowed_list:      0-1		
    voluntary_ctxt_switches:        17
    nonvoluntary_ctxt_switches:     3
    /proc/5590 #

    Если сравнить с AdguardHome по потреблению

    /proc/972 # cat status
    Name:   AdGuardHome
    Umask:  0022
    State:  S (sleeping)
    Tgid:   972
    Ngid:   0
    Pid:    972
    PPid:   1
    TracerPid:      0
    Uid:    0       0       0       0
    Gid:    0       0       0       0
    FDSize: 64
    Groups:  
    VmPeak:   885228 kB
    VmSize:   885228 kB
    VmLck:         0 kB
    VmPin:         0 kB
    VmHWM:    176320 kB
    VmRSS:     87632 kB
    RssAnon:           73136 kB
    RssFile:           14496 kB
    RssShmem:              0 kB
    VmData:   206280 kB
    VmStk:       132 kB
    VmExe:      7412 kB
    VmLib:         4 kB
    VmPTE:       404 kB
    VmPMD:        20 kB
    VmSwap:        0 kB
    Threads:        8

     

     

    • Спасибо 1
  11. В продолжение того что писал выше про использование - tun2socks или точнее xray-tun2socks

    1. Конфиг по xray должен быть настроен на использование sokcs

    ...
    "inbounds": [
        {
          "tag": "socks",
          "port": 10808,
          "listen": "127.0.0.1",
          "protocol": "socks",
    ...

    Примечание - do-not use dns name , instead use VPS ip address

    2. В итоге получаем IP адрес которым уже можно управлять в прошивки

    Скрытый текст

    68747470733a2f2f74656c656772612e70682f66696c652f6361653339333034323663346133613464353662302e6a7067.thumb.jpg.92019d46ec053788255a68a0a60f8fb9.jpg

    3. Вариант примера запуска. Есть переменные "xray_ip" (сервер) и "def_gate" (интерфейс через который можно добраться до данного сервера xray_ip) их можно определить пока "ручками" + далее уже подъем tun интерфейса + маршрут на сам сервер.

    #!/bin/bash
    
    #variables
    xray_ip=$(grep 'address' config.json | sed ':a;N;$!ba;s/\n//g' |sed 's/"//g'| sed 's/,//g' | awk '{print$2}') 
    #This is a pretty bad way to find the remote ip . so if u can just paste the ip address of your VPS here
    
    def_gate=$(ip r | grep 'default' | awk '{print$3}') 
    # This will output your default gateway ip address.
    
    ip tuntap add dev tun0 mode tun user tun2socks
    ip addr add 10.0.0.1/24 dev tun0
    ## ip addr add fdfe:....::1/125 dev tun0
    ip route add $xray_ip via $def_gate
    ip link set tun0 up
    ## ip -6 link set tun0 up
    ip route add default dev tun0
    ## ip -6 route add default dev tun0
    
    xray -c config.json > /dev/null &
    sleep 3
    
    ./tun2socks -device tun://tun0 -proxy socks5://127.0.0.1:10808 
    
    # ip tuntap del dev tun0 mode tun
    # ip route del $xray_ip via $def_gate

    Основная команда тут "ip route add default dev tun0" т.е. если делать все в основном профиле то ВСЕ будет завернуто на него так как он tun0 будет default ну если нет каких то стат маршрутов на нужные IP.

    Можно попробовать с созданными профилями в прошифке но тогда команда будет выглядеть так

    ip route replaced default dev tun0 table НОМЕР_профиля
    ip route add xray_ip_сервер via IP_провайдера

    Надо попробовать будет на бесплатном 7 дневном vray сервере.


     

    • Спасибо 2
  12. Ремарка по Proxy серверу.

    По работе proxy и им подобных - нужен все время доступ до адреса самого сервера, это делается стат маршрутом нужного адреса сервера через нужный интерфейс провайдера.  Например сервер proxy 195......74

    ip route add 195.IP_сервера.74 dev IF_интерфейс

     

    В прошивке же есть Proxy сервис и используется badvpn-tun2socks он так же есть в Entware

    ~ # opkg list | grep tun2socks
    badvpn - 1.999.133-1 - The tun2socks program "socksifes" TCP connections at the network layer. It implements a TUN device which accepts all incoming TCP connections (regardless of destination IP), and forwards the connections through a SOCKS server. This allows you to forward all connections through SOCKS, without any need for application support. It can be used, for example, to forward connections through a remote SSH server.
    ~ # 

    но для запуска имеем

    /opt/bin # ./badvpn-tun2socks
    --netif-ipaddr is required
    Failed to parse arguments
    Usage:
        ./badvpn-tun2socks
            [--help]
            [--version]
            [--logger <stdout/syslog>]
            (logger=syslog?
                [--syslog-facility <string>]
                [--syslog-ident <string>]
            )
            [--loglevel <0-5/none/error/warning/notice/info/debug>]
            [--channel-loglevel <channel-name> <0-5/none/error/warning/notice/info/debug>] ...
            [--tundev <name>]
            --netif-ipaddr <ipaddr>
            --netif-netmask <ipnetmask>
            --socks-server-addr <addr>
            [--netif-ip6addr <addr>]
            [--username <username>]
            [--password <password>]
            [--password-file <file>]
            [--append-source-to-username]
            [--udpgw-remote-server-addr <addr>]
            [--udpgw-max-connections <number>]
            [--udpgw-connection-buffer-size <number>]
            [--udpgw-transparent-dns]
            [--socks5-udp]
    Address format is a.b.c.d:port (IPv4) or [addr]:port (IPv6).
    
    -rwxr-xr-x    1 root     root        217928 Aug 24 11:01 badvpn-tun2socks
    -rwxr-xr-x    1 root     root         78576 Aug 24 11:01 badvpn-udpgw

    только --socks-server-addr <addr> а в прошивке еще и http/https

    badvpn-tun2socks  --socks-server-addr <addr> ....

    и в итоге может быть как то так

    default dev t2s_tun0  scope link  
    хх.IP_сервер.хх dev ppp0  scope link  

     

    Возможно тогда хорошо бы иметь в прошивке раз используется tun2socks страницу c WEB по его использованию/созданию туннеля. Или например выше

    где например в https://github.com/xjasonlyu/tun2socks

    Цитата

    Features

    • Proxy Protocols: HTTP/Socks4/Socks5/Shadowsocks with authentication support for remote connections.

     

    или go-tun2socks - https://github.com/v2ray/go-tun2socks

    Цитата

        Support both TCP and UDP
        Support both IPv4 and IPv6 (but unfortunately, IPv6 still not usable on Windows because lacks of TUN support)
        Support ICMP local echoing with configurable packet delay time
        Support proxy handlers: SOCKS5, Shadowsocks, V2Ray (DNS cache is enabled in these handlers by default)
        Dynamically adding routing rules according to V2Ray's routing results (V2Ray proxy handler only)
        Intercepting DNS requests and dispatching them with V2Ray's flexible DNS client (V2Ray proxy handler only)

     

    • Спасибо 2
  13. В 07.09.2023 в 20:10, aleeko сказал:

    Не получилось у меня пока заставить работать как у вас?
    Можно вас попросить больше подробностей?
    Необходимо ли что то дополнительно настраивать в межсетевом экране?
    Включена ли у вас опция "Использовать для выхода в интернет" - в интерфейсе Inet-2

    И самое главное - правильно ли мы понимаем друг друга? 
    Есть клиент, допустим мобильный телефон - клиент подключается к серверу Wireguard настроенный на Keenetic - с последующим выходом через нужный интерфейс (который мы указали в статических маршрутах), а не через Основное подключение.
    Интерфейсе Inet-2 у вас подключен физически к роутеру в качестве резервного канала? Или это VPN или Прокси с выходом интернет?

    Все мои настройки и описания проверены при работе в профилях, т.е. есть

    1. основной профиль где расположены по росту вверху провайдер 1 RT (pppoe - основной), провайдер 2 Inet-2 (просто провод DHCP - резервный) и далее ниже уже идут все остальные Cloud-Warp, и еще ниже Proton и т.д.. Галки на WG каналах для выхода в интернет стоят (тогда их можно использовать в других профилях).

    2. профиль Cloud - галка только на канале Cloud-Warp (WG) на остальных галки нет

    3. профиль Anti - галка только на канале Proton (WG Proton) на остальных галки нет

    Скрытый текст
    PPPoE0 - основной провайдер GigabitEthernet0/Vlan9 - это Inet-2 второй провайдер (vlan9 это просто вырезанный LAN порт, ни каких vlan нет)
    
    interface Wireguard0
        description Cloud-warp
        security-level public
    
    interface Wireguard4
        description WG-proton
        security-level public
    
    ip policy Policy0
        description Cloud
        permit global Wireguard0
        no permit global GigabitEthernet0/Vlan9
        no permit global PPPoE0
        no permit global Wireguard4
        no permit global Proxy0
    
    ip policy Policy2
        description Anti
        permit global Wireguard4
        no permit global PPPoE0
        no permit global GigabitEthernet0/Vlan9
        no permit global Wireguard0
        no permit global Proxy0

    Настройки wireguard стандартны, описаны в базе знаний.

    Скрытый текст

     

    Есть клиент, допустим мобильный телефон - клиент подключается к серверу Wireguard настроенный на Keenetic - с последующим выходом через нужный интерфейс (который мы указали в статических маршрутах), а не через Основное подключение.

     

    Сервер WG на роутере для удаленных клиентов

    interface Wireguard3
        description PKN-WG
        security-level public
        ip address 10.16.130.101 255.255.255.0
    ....
        wireguard peer Z8cL......bTY= !A73
           endpoint 10.16.130.6:ххххх
    ....        
        !
        wireguard peer y09......MCA= !T505
            endpoint 10.16.130.18:ххххх
    ....        

    В данном случае данные клиенты получат IP который им присвоен в настройках WG сервера. Так как проблемы часто возникают именно с DNS то в данном варианте использования за это отвечает AdguardHome который - это локальный сервис роутера и он слушает сеть 192.168 и 127.0.0.1 порт 53. Куда и что прописать будет чуток ниже.

    AdguardHome
    
    dns:
      bind_hosts:
        - 192.168.130.101
        - 127.0.0.1
      port: 53

    Вспоминаем что это основной профиль и его канал выхода это РТ (pppoe).

    Мы хотим нашего клиента смартфон чтоб он выходил через профиль Cloud -> воспользуемся самой прошивкой, т.е. при создание профиля создается table маршрутизации где default нужный нам Wireguard0 а в другом профиле table другая default Proton

    Скрытый текст
    ~ # ip ro show table 42
    default dev nwg0  scope link 
    
    ~ # ip ro show table 44
    default dev nwg4  scope link

    это можно найти в web cli - 192.168.1.1/a набрав "show ip policy"

    По умолчанию наш удаленный клиент после подключения использовать основной профиль роутера, но мы можем ему сменит канал выхода направив его в нужную нам table за счет того что он клиент имеет IP от WG например выше - 10.16.130.6. Заворот данного клиента делается через

    ip rule add from IP_удал_клиента/24 table 42
    
    или
    
    ip rule add from IP_удал_клиента/24 table 44

    Для того что данный клиент мог выходить в интернет так как у него адрес серый то нужно применить

    ip nat Wireguard3

    По DNS воспользуемся тем что добаление сервера DNS в профилях создает стат маршрут на интерфейс который deault в данном профиле (без разницы какой это профиль - основной или созданные). Например

    Скрытый текст
    ~ # ip ro show table 42
    default dev nwg0  scope link 
    ...
    192.168.130.101 dev nwg0  scope link 

    Пока это работает, но можно и какой то свой например такой 10.2.0.1 DNS от конф. Proton

    ~ # ip ro show table 44
    default dev nwg4  scope link 
    10.2.0.1 dev nwg4  scope link 

     

    В итоге проверяем speedtest на удаленном клиенте

    1. по умолчанию IP будет от роутера на клиенте который по WG к роутеру

    2. после добавления rule то speedtest то на клиенте показывает адрес от профиля в который мы его направили (IP от wireguard0 или wireguard4).

    В данном варианте никакого контроля правил iptables нет, вопрос только в одной строчке

    "ip rule add from 10.16.130.6 table 42"
    
  14. 23 часа назад, Marassa сказал:

    Собственно вопрос: можно ли как-нибудь использовать static routes в веб-морде для простой настройки маршрутизации через shadowsocks, или нужно непременно морочиться со всем этим KVASом или, прости господи, телеграм-ботом?

     

    • Лайк 1
  15. В 02.09.2023 в 21:16, atest сказал:

    Настроил связку 2х роутеров Keenetic WireGuard + EoIP - работает прекрасно. Затем настроил 3 роутер,

    А зачем так сложно WG+EoIP - по отдельности ни как, в чем фишка такого использования?

  16. 4 часа назад, RomanZaritskiy сказал:

    Пролема в том что сеть 101 видит все сети что к ней подключены и подключенные сети видят ее

    нужно сделать чтобы была видна 100 сеть из всех остальных сетей 

    подскажите как это сделать

    База знаний https://help.keenetic.com/hc/ru/articles/360010131139-Пример-объединения-локальных-сетей-трех-роутеров-Keenetic-через-соединение-Wireguard-VPN

    Обратить внимание на параметр "Разрешенные подсети" и внимательнее к стат.маршрутам ВЕЗДЕ

    • Лайк 1
  17. 5 часов назад, aleeko сказал:

    PS - стрелочку слева нажал. Было всего 13, я 14-й .... 
    Как то мало нуждающихся (((
    А с другими протоколами ВПН  работает выбор интереса? В какой то официальной статье от Кинетика читал относительно OPenVPN - что для работоспособности выхода надо обязательно выбирать ЛЮБОЙ ИНТЕРФЕЙС а не какой то конкретный

    Для того чтоб wireguard работал через нужный сетевой необходимо чтоб был прописан стат маршрут до сервера wireguard через нужный сетевой интерфейс.

    Пример. Есть два входных интернет канала, по умолчанию основной РТ, второй Inet-2 в резерве. Поднимем warp wireguard через резервный канал.

    1. канал warp работает через основной, отключаем wireguard (через WEB другие подключения).

    2. прописываем стат маршрут через Inet-2 на нужный нам сервер wireguard 

    Сен 3 17:50:51 ndm Network::RoutingTable: added static route: 188.114.хх.хх/32 via 10.10.10.1 (GigabitEthernet0/Vlan9). 

    делается через WEB - раздел марщрутизация (до узла, нужный IP сервера 188.114.хх.хх/32. нужный инетрефес у меня Inet-2 или "via 10.10.10.1" и выбираем его)

    3. идем в WEB cli (192.168.1.1/a и включаем его "interface Wireguard0 up" в моем случае его номер "0", находится по конф файлу или так же WEB cli набрав просто "interface Wireguard" и клавишу "tab". Если он один то не чего искать не надо, это если их несколько)

    4. проверяем что все ОК на клиенте в браузере набираем speedtest и он должен показать IP клиента, в данном случае IP от cloudflare warp 104.28.ххх.ххх. По логу это выглядит так

    Скрытый текст
    Сен 3 17:52:05 ndm Network::Interface::Base: "Wireguard0": "base" changed "conf" layer state "disabled" to "running".
    Сен 3 17:52:05 ndm Network::Interface::Base: "Wireguard0": interface is up.
    Сен 3 17:52:05 kernel wireguard: Wireguard0: peer "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=" (8) created
    Сен 3 17:52:05 ndm Wireguard::Interface: "Wireguard0": added a host route to peer "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=" (188.114.хх.хх) via 10.10.10.1 (GigabitEthernet0/Vlan9).

    в отличие от ранее когда он поднят на основном канале

    162.159.хх.хх dev ppp0  scope link
    [I] Aug 15 09:17:52 ndm: Wireguard::Interface: "Wireguard0": added a host route to peer "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=" (162.159.хх.хх) via PPPoE0 (PPPoE0). 

     

    Скрытый текст

    -5.thumb.jpg.3912a07fe5f33db1f486520171874bfd.jpg

     
    Это будет работать до тех пора пока есть стат маршрут прописанный выше по п.2
  18. 1 час назад, RussianStatham сказал:

    Сложность в следующем, отваливается WiFi, чаще всего утром когда включаю тв, бывает и днем

     

    Для начала лучше убрать автомат на wifi 2.4 и 5GHz. На 2.4 если дальних клиентов нет то поставить gn, а на 5 поставить n+ac+ax. Потом неообходимость в band-steering есть.

  19. 2 часа назад, BGMike сказал:

    Просто висит и не открывается "Время ожидания соединения истекло".

    PS. всё... причину нашел, ресурс блокируется, открывается только если заходить через браузер Tor(((

    Замкнутый круг... Для того чтобы поставить Entware который нужен для установки Tora на роутере, мне нужен Тор для роутера)))) Есть идеи, как решить это петлю?)

    Никаких проблем нет, смартфон и МТС

    Screenshot_20230830_181935_Samsung Internet.jpg

  20. 8 минут назад, BGMike сказал:

    Народ. Есть у кого-то offline версия mipsel-installer.tar.gz для Ultra (KN-1810) прошивка 4.0.4?

    Ни в какую не хочет ставиться выдает:

    В браузере на клиенте наберите bin.entware.net что говорит?

  21. Возможно ли описание для данного сообщения

    Цитата

    had disassociated by STA (reason: STA is leaving or has left BSS). 

    т.е. когда/или в связи с чем она может возникать ?

     

    Если конкретно то вот например 4.1х и на текущей 4.1 Alpha 4 для Peak

    [I] Aug 30 12:18:19 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had disassociated by STA (reason: STA is leaving or has left BSS). 
    [I] Aug 30 12:18:20 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had associated. 
    [I] Aug 30 12:18:20 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) set key done in WPA2/WPA2PSK. 
    [I] Aug 30 12:18:20 ndhcps: DHCPDISCOVER received from 7c:.....:00. 
    [I] Aug 30 12:18:20 ndhcps: making OFFER of 192.168.150.3 to 7c:.....:00. 
    [I] Aug 30 12:18:20 ndhcps: DHCPREQUEST received (STATE_SELECTING) for 192.168.150.3 from 7c:.....:00. 
    [I] Aug 30 12:18:20 ndhcps: sending ACK of 192.168.150.3 to 7c:.....:00. 
    ...
    [I] Aug 30 12:19:31 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had disassociated by STA (reason: STA is leaving or has left BSS). 
    [I] Aug 30 12:19:32 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had associated. 
    [I] Aug 30 12:19:32 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) set key done in WPA2/WPA2PSK. 
    [I] Aug 30 12:19:32 ndhcps: DHCPDISCOVER received from 7c:.....:00. 
    [I] Aug 30 12:19:32 ndhcps: making OFFER of 192.168.150.3 to 7c:.....:00. 
    ...
    [I] Aug 30 12:21:55 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had disassociated by STA (reason: STA is leaving or has left BSS). 
    [I] Aug 30 12:21:56 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) had associated. 
    [I] Aug 30 12:21:56 ndm: Network::Interface::Mtk::WifiMonitor: "WifiMaster0/AccessPoint1": STA(7c:.....:00) set key done in WPA2/WPA2PSK. 
    [I] Aug 30 12:21:56 ndhcps: DHCPDISCOVER received from 7c:.....:00. 
    [I] Aug 30 12:21:56 ndhcps: making OFFER of 192.168.150.3 to 7c:.....:00. 
    [I] Aug 30 12:21:56 ndhcps: DHCPREQUEST received (STATE_SELECTING) for 192.168.150.3 from 7c:.....:00. 
    [I] Aug 30 12:21:56 ndhcps: sending ACK of 192.168.150.3 to 7c:.....:00. 
    ...
    и т.д. все посторяется

    Данный клиент умный выключатель с RSSI: -42 65 Мбит/с WPA2 и 11n 1x1 20 МГц но такое поведение есть и на других устройствах умного дома (так сказать самое плохое из них это устройство с RSSI: -68 65 Мбит/с WPA2 11n 1x1 20 МГц). Выделен сегмент в котором только Wifi 2.4 и больше не чего, доп.ТД выключена.

    В основном сегменте естественно 2.4 и 5 разделенные, FT для 5GHz + Управление BSS-окружением 802.11k/v включено и есть мобильный домен.

    Выключение устройств путем снятия 220V на них не помогает, перегрузка роутера не помогает после первой удачной регистрации had associated/set key done in WPA2/WPA2PSK через некоторое время - reason: STA is leaving or has left BSS

    Скрытый текст
    !
    interface WifiMaster0
        country-code RU
        compatibility GN
        channel 3
        channel width 40-above
        power 50
        rekey-interval 86400
        beamforming explicit
        vht
        up
    !
    interface WifiMaster0/AccessPoint0
        rename AccessPoint
        description "Wi-Fi access point"
        mac access-list type none
        security-level private
        authentication wpa-psk ns3 ***
        encryption enable
        encryption wpa2
        encryption wpa3
        ip dhcp client dns-routes
        ip name-servers
        ssid KN
        wmm
        rrm
        up
    !
    interface WifiMaster0/AccessPoint1
        mac access-list type none
        security-level protected
        authentication wpa-psk ns3 ***
        encryption enable
        encryption wpa2
        ip dhcp client dns-routes
        ip name-servers
        ssid Smart
        up
    !

     

     

    Если залить заново конф файл от KN-2710_draft_4.01.A.4.0-0_router_startup-config то все устаканивается, и записей "reason: STA is leaving or has left BSS" нет. 

    Пока есть подозрения на что то из WEB, или в ПО контроль интерфейсов/таблиц/или еще что-то, так как в данное время делал часто перенос клиента из одного профиля в другой и только это.

  22. 3 часа назад, АлексейМен сказал:

    При подключении термостата к wifi обязательно в приложении tuya smart после выбора термостата, вводится имя сети и пароль.

    Попробуйте еще раз, только так чтоб tuya сказала что все ОК, смените имя guest на другое. Второе смартфон (или устройство на котором tuya) в этой же сети в которой будет и термостат.

×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.