<?xml version="1.0"?>
<rss version="2.0"><channel><title>Feature Requests Latest Questions</title><link>https://forum.keenetic.com/forum/51-feature-requests/</link><description>Feature Requests Latest Questions</description><language>en</language><item><title>Custom local IPv6 DNS</title><link>https://forum.keenetic.com/topic/23841-custom-local-ipv6-dns/</link><description><![CDATA[<p>
	I use Adguard Home on my homelab and my ISP has started to give me IPv6 service.
</p>

<p>
	I want to advertise the local IPv6 of my homelab to the clients so it can block ads when the client connects via IPv6 instead of bypassing it.
</p>

<p>
	But i am having difficulties doing this as i don't really see RDNSS setting anywhere and i couldn't find any commands.
</p>

<p>
	I have a Keenetic Hero router 
</p>
]]></description><guid isPermaLink="false">23841</guid><pubDate>Fri, 19 Dec 2025 15:24:55 +0000</pubDate></item><item><title>Access from Internet su GUI using Public IP Address</title><link>https://forum.keenetic.com/topic/25872-access-from-internet-su-gui-using-public-ip-address/</link><description><![CDATA[<p>
	Access from Internet su GUI using Public IP Address, like https://185.xxx.xxx.224 where IP 185.xxx.xxx.224 is an IP of Router (any interface) .<br />
	<br />
	<br />
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="41676" data-ratio="95.38" width="455" alt="image.png.9819ef8e30156c6034ef273436975da4.png" src="https://forum.keenetic.com/uploads/monthly_2026_05/image.png.9819ef8e30156c6034ef273436975da4.png" />
</p>
]]></description><guid isPermaLink="false">25872</guid><pubDate>Tue, 05 May 2026 13:41:53 +0000</pubDate></item><item><title>DNS Based Routes - Override Connection Policy</title><link>https://forum.keenetic.com/topic/24204-dns-based-routes-override-connection-policy/</link><description><![CDATA[<p>
	Hi,
</p>

<p>
	We were waiting for for the great DNS Based Routing feature to arrive, and now that KeeneticOS 5 is in the stable channel. We immediately upgraded our 8 routers and extenders to the latest version. 
</p>

<p>
	However it's a big disappointment that DNS Routing would only work on Default policy. 
</p>

<p>
	We have several Wifi Connections, each of them is tied to a different Segment Policy. where each segment connects via specific VPN Tunnel.
</p>

<p>
	The idea was to have the DNS Routing work on top of already defined policy, so that clients will continue to use assigned VPN tunnel on the policy, and at the same time still be able to route to a different VPN Tunnel for specific Website.
</p>

<p>
	Example: Wifi 1 Routes to UK VPN (Segment Policy), and Amazon.com Routes to USA VPN (DNS Routing).
</p>

<p>
	Please Look into having this implemented (or advise on whether there's a workaround on this). 
</p>

<p>
	We currently use IPv4 Routing to have this achieved, but it's hard to keep track of changing websites ip addresses. 
</p>

<p>
	Thank you! 
</p>
]]></description><guid isPermaLink="false">24204</guid><pubDate>Wed, 28 Jan 2026 10:20:26 +0000</pubDate></item><item><title>Add configurable loopback interfaces and use in outbound NAT</title><link>https://forum.keenetic.com/topic/25873-add-configurable-loopback-interfaces-and-use-in-outbound-nat/</link><description><![CDATA[<p>
	Add configurable loopback interfaces and use in outbound NAT.<br />
	<br />
	Example:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">lo01 &gt;&gt;&gt; IP address xxx.xxx.xxx.xxx
Outbound NAT source lo01 IP = xxx.xxx.xxx.xxx</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">25873</guid><pubDate>Tue, 05 May 2026 13:44:56 +0000</pubDate></item><item><title>Auto Device Registration / Request</title><link>https://forum.keenetic.com/topic/19721-auto-device-registration-request/</link><description><![CDATA[<p>
	Currently, the router interface has an automatic device registration feature that solves the issue of unregistered clients. However, there are some challenges with the current implementation:
</p>

<ol>
	<li>
		<p>
			<strong>Accumulation of Registered Devices:</strong> Over time, hundreds of registered devices accumulate in the list, making it difficult to manage. For instance, I recently deleted over 500 automatically registered clients from a router used in a corporate environment. While it's possible to clear these devices by modifying the startup-config file in one go, this would require restarting the router.
		</p>

		<ul>
			<li>
				<strong>Proposed Solution:</strong> After a router restart, the registered device list should be cleared automatically. Only devices that reconnect after the restart should be re-registered. This approach would keep the list clean and manageable while ensuring only actively connected devices remain registered.
			</li>
		</ul>
	</li>
	<li>
		<p>
			<strong>Unnecessary Details in Registered Device Names:</strong> When devices are automatically registered, their names include unnecessary details like the date and time of registration, which makes the list cluttered and difficult to read.
		</p>

		<ul>
			<li>
				<strong>Proposed Solution:</strong> Allow users to customize the naming format for automatically registered devices.

				<ul>
					<li>
						Options could include:
						<ul>
							<li>
								A user-defined prefix (e.g., "unregistered_").
							</li>
							<li>
								The device’s name (if available).
							</li>
							<li>
								The device’s MAC address (if no name is available).
							</li>
						</ul>
					</li>
				</ul>
			</li>
			<li>
				This flexibility would make the list more organized and user-friendly.
			</li>
		</ul>
	</li>
</ol>

<p>
	By implementing these improvements, the device registration process can be made significantly more efficient and easier to manage for end users.
</p>
]]></description><guid isPermaLink="false">19721</guid><pubDate>Thu, 02 Jan 2025 07:04:33 +0000</pubDate></item><item><title>REQ: in UI update Offline (in ClientList) with Last-Seen</title><link>https://forum.keenetic.com/topic/19670-req-in-ui-update-offline-in-clientlist-with-last-seen/</link><description><![CDATA[<p>
	now just says 'offline'.. update that column with "offline/n[datetime]" to see when last-seen... <br />
	<br />
	also req#2, Add to devicelist to show recent unregistered clients now offline too -- so over past 24h or past half-dozen over past week... that is just a separate REQ... It surprises me, someone can go onto a Keenetic system a few minutes ago then go offline and be invisible in the UI.  I actually prefer a DHCP page where I can see what was recently assigned and so who it was assigned to, but that isn't even fullproof if they go static.<br />
	<br />
	<img alt="image.png.0ee5ce32f8468f9b1d014d4278e6d71a.png" class="ipsImage ipsImage_thumbnailed" data-fileid="41365" data-ratio="33.60" width="1000" src="https://forum.keenetic.com/uploads/monthly_2024_12/image.png.0ee5ce32f8468f9b1d014d4278e6d71a.png" />
</p>
]]></description><guid isPermaLink="false">19670</guid><pubDate>Wed, 18 Dec 2024 12:05:53 +0000</pubDate></item><item><title>&#x200B;&#x200B;&#x200B;&#x200B;&#x200B;&#x200B;&#x200B;Please add the ability to combine multiple Wi-Fi networks into a single bridge or a single VLAN via the web interface</title><link>https://forum.keenetic.com/topic/25781-%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8Bplease-add-the-ability-to-combine-multiple-wi-fi-networks-into-a-single-bridge-or-a-single-vlan-via-the-web-interface/</link><description><![CDATA[<p>
	Hi!<br />
	Please add the ability to combine multiple Wi-Fi networks into a single bridge or a single VLAN via the web interface.<br />
	For example, I have three Wi-Fi networks and I need them all to receive addresses from a single, large range, but I can't do this because the web interface doesn't allow me to disable (remove) the automatically assigned VLAN ID.<br />
	To do this, I need to access SSH/Telnet and manually enter commands to combine my access points into a single bridge. But that's not all. Whenever I try to change the primary Wi-Fi settings (I have a home Wi-Fi connection), the router freezes and all connections to the router are lost. Essentially, the router has destroyed the bridge itself, and the only way to restore functionality is by resetting the router to factory settings using the physical reset button and loading a previously saved backup.
</p>
]]></description><guid isPermaLink="false">25781</guid><pubDate>Fri, 01 May 2026 23:29:29 +0000</pubDate></item><item><title>feedback</title><link>https://forum.keenetic.com/topic/25757-feedback/</link><description><![CDATA[<p>
	-Google Translate:
</p>

<p>
	Hello,<br />
	I am currently using IPv6 and experiencing issues related to MTU and MSS. While it is currently possible to edit these values for IPv4, this functionality is missing for IPv6. Could you please add the ability to configure MTU/MSS for IPv6 within the Interface and WireGuard profiles?<br />
	Additionally, it would be very helpful to have a GUI or CLI tool to statistically track and detect MTU-related TCP drop issues. Specifically, I would like to see how many drops occur on a particular client or interface.<br />
	Finally, if possible, could a feature be added to provide a GUI warning to clients experiencing these issues, with an option to automatically disable their IPv6 access to prevent further connectivity problems?
</p>
]]></description><guid isPermaLink="false">25757</guid><pubDate>Thu, 30 Apr 2026 13:09:07 +0000</pubDate></item><item><title>Download station and different internet gateway</title><link>https://forum.keenetic.com/topic/25488-download-station-and-different-internet-gateway/</link><description><![CDATA[<p>
	Hi, I'm using the download station based on Trasmission web to download huge images (LCX/ISO).
</p>

<p>
	My setup has 2 different gateways (Fiber and 4G for backup). I'd like to force the fiber usage only.
</p>

<p>
	Is it possible to implement the feature?
</p>

<p>
	Rule: 
</p>

<ul>
	<li>
		Fiber available and up: Download allowed
	</li>
	<li>
		Fiber not available and down: Download on-hold and denied
	</li>
</ul>

<p>
	Thanks a lot
</p>
]]></description><guid isPermaLink="false">25488</guid><pubDate>Fri, 17 Apr 2026 12:44:15 +0000</pubDate></item><item><title>update and ntp do not work with only ipv6 address</title><link>https://forum.keenetic.com/topic/25485-update-and-ntp-do-not-work-with-only-ipv6-address/</link><description><![CDATA[<p>
	my keenetic acts as an access point behind mikrotik router and generates ipv6 via SLAAC. it does not have ipv4 address. because of this it can't reach update server or ntp server. please make it work in ipv6 only scenario
</p>

<p>
	i can ping native ipv6 and dns64/nat64 resources in Network Connection Test
</p>

<p>
	Installed version 5.1 Beta 0.3
</p>

<p>
	# update logs<br />
	Core::Ndss: [3074] no registered connection.
</p>

<p>
	# ntp logs. auto server<br />
	Ntp::Server: disabled master mode.
</p>

<p>
	# ntp logs custom server<br />
	Ntp::Server: disabled master mode.<br />
	Ntp::Client: unable to communicate with "pool.ntp.org".
</p>
]]></description><guid isPermaLink="false">25485</guid><pubDate>Thu, 16 Apr 2026 23:57:03 +0000</pubDate></item><item><title>When will 6 GHz (Wi-Fi 6E) support come to Keenetic devices?</title><link>https://forum.keenetic.com/topic/25069-when-will-6-ghz-wi-fi-6e-support-come-to-keenetic-devices/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I’ve been using Keenetic devices for quite some time and really appreciate the ongoing software improvements. Recently, with the rise of newer Wi-Fi technologies, <strong>the 6 GHz band (Wi-Fi 6E)</strong> has started becoming more common across different manufacturers.
</p>

<p>
	I’m curious about a few things regarding this:
</p>

<ul>
	<li>
		Is there any plan to support 6 GHz (Wi-Fi 6E) on Keenetic devices?
	</li>
	<li>
		If so, would this come via a firmware update for existing devices, or require new hardware?
	</li>
	<li>
		Is there any estimated timeline for this feature?
	</li>
</ul>

<p>
	If anyone from the community or the Keenetic team has any insights or official information, I’d really appreciate it. I believe 6 GHz could make a significant difference, especially in environments with heavy network usage.
</p>

<p>
	Thanks in advance <span class="ipsEmoji">🙏</span>
</p>
]]></description><guid isPermaLink="false">25069</guid><pubDate>Tue, 31 Mar 2026 17:46:43 +0000</pubDate></item><item><title>DNS-based routes in 4.x.x</title><link>https://forum.keenetic.com/topic/24962-dns-based-routes-in-4xx/</link><description><![CDATA[<p>
	Hello everyone. A good option has appeared in routers - DNS-based routes. But, many previous versions of routers are used, which are still quite good (kn-3010, 1711, 1311, 1111) and replacing them all at once is problematic. Will this option be implemented in firmware version 4.x.x?
</p>
]]></description><guid isPermaLink="false">24962</guid><pubDate>Wed, 25 Mar 2026 17:01:21 +0000</pubDate></item><item><title>BTRFS</title><link>https://forum.keenetic.com/topic/20423-btrfs/</link><description><![CDATA[<p>
	Could you please add btrfs support for usb storage devices?
</p>
]]></description><guid isPermaLink="false">20423</guid><pubDate>Thu, 27 Mar 2025 22:11:12 +0000</pubDate></item><item><title>Opzione per disabilitare i canali DFS nella selezione automatica Wi-Fi (5GHz)</title><link>https://forum.keenetic.com/topic/24643-opzione-per-disabilitare-i-canali-dfs-nella-selezione-automatica-wi-fi-5ghz/</link><description><![CDATA[<p>
	Vorrei suggerire l'implementazione di una funzionalità software per migliorare la stabilità e la gestione del Wi-Fi a 5GHz, simile a quanto già presente in apparati professionali (come Ubiquiti per esempio).
</p>

<p>
	Attualmente, quando la selezione del canale 5GHz è impostata su "Auto", i router Keenetic scansionano l'intero spettro, includendo e preferendo da come vedo i canali DFS (52-144), soprattutto quelli superiori al 100. Sebbene questi canali offrano più larghezza di banda, a volte la frequenza viene disattivata troppe volte. Il router è costretto a interrompere le trasmissioni per 10 o 1 minuto (come da manuale) a seconda se è canale 100 e superiore o 52 e superiore, causando instabilità. Al momento, l'unica soluzione per l'utente è bloccare manualmente un canale specifico (36, 40, 44 o 48), perdendo però i vantaggi della selezione automatica in caso di interferenze.<br />
	<br />
	<b>Soluzione proposta:</b> Aggiungere un semplice interruttore (Toggle) nelle impostazioni Wi-Fi 5GHz: <b>"Consenti l'uso dei canali DFS" (Sì/No)</b>.
</p>

<ul>
	<li>
		<p>
			<b>Se impostato su SÌ (default):</b> Il router continua a funzionare come ora, scegliendo tra tutti i canali disponibili.
		</p>
	</li>
	<li>
		<p>
			<b>Se impostato su NO:</b> L'algoritmo di selezione automatica viene limitato esclusivamente ai canali <b>non-DFS (dal 36 al 48)</b>.
		</p>
	</li>
</ul>
]]></description><guid isPermaLink="false">24643</guid><pubDate>Sun, 01 Mar 2026 09:52:26 +0000</pubDate></item><item><title>Keenetic AI Editor</title><link>https://forum.keenetic.com/topic/24630-keenetic-ai-editor/</link><description><![CDATA[<p>
	-<span style="color:#c0392b;">Google Translate</span>:
</p>

<p>
	Hello, I recently received help from AI while troubleshooting some issues with my router, and it was very helpful. I had an idea about how to integrate this into the system, and I'd like to share this model with you. Adding such a feature would be beneficial.
</p>

<p>
	The visual is roughly prepared to help understand the logic. It could be a similar model.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://forum.keenetic.com/uploads/monthly_2026_02/image.png.3f0d244c38132855c016120ef1f29a61.png" data-fileid="41647" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="41647" data-ratio="120.97" width="620" alt="image.thumb.png.18e82d4f40cc6b1b42ce3aab1cbbeae7.png" src="https://forum.keenetic.com/uploads/monthly_2026_02/image.thumb.png.18e82d4f40cc6b1b42ce3aab1cbbeae7.png" /></a>
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">24630</guid><pubDate>Fri, 27 Feb 2026 22:21:30 +0000</pubDate></item><item><title>Add the ability to log in permanently</title><link>https://forum.keenetic.com/topic/24628-add-the-ability-to-log-in-permanently/</link><description><![CDATA[<p>
	It's incredibly inconvenient that you have to log in again about 10 minutes after logging in. After a short period of working with the router, the browser requires you to re-enter your login password.
</p>
]]></description><guid isPermaLink="false">24628</guid><pubDate>Fri, 27 Feb 2026 11:20:10 +0000</pubDate></item><item><title>"Adguard dns beta" should come as component (free NextDns alternative)</title><link>https://forum.keenetic.com/topic/14081-adguard-dns-beta-should-come-as-component-free-nextdns-alternative/</link><description><![CDATA[<p>
	Hello everyone. Some time ago Adguard offered a "free" alternative like nextdns that "has its own customizable interface". Anyone can use it now, it's in open beta.
</p>

<p>
	 
</p>

<p>
	I think it will have many users as it is a free alternative to NextDns.
</p>

<p>
	 
</p>

<p>
	It would be great if Keenetic brought this new adguard dns as a component. <span class="ipsEmoji">⬆️</span>
</p>

<p>
	 
</p>

<p>
	<a href="https://adguard-dns.io/en/welcome.html" rel="external nofollow">https://adguard-dns.io/en/welcome.html</a>
</p>
]]></description><guid isPermaLink="false">14081</guid><pubDate>Sun, 03 Apr 2022 09:40:13 +0000</pubDate></item><item><title>Call Blocking</title><link>https://forum.keenetic.com/topic/15322-call-blocking/</link><description><![CDATA[<p>
	 
</p>

<p>
	Hello everyone, I wanted to propose (if possible and if not already in future planning!) To introduce the "call blocking" function in the telephone station.<br />
	In practice, having the ability to block unwanted telephone numbers, both mobile and landline, even with an international prefix.
</p>

<p>
	Tanks and good Job
</p>
]]></description><guid isPermaLink="false">15322</guid><pubDate>Thu, 17 Nov 2022 17:11:26 +0000</pubDate></item><item><title>DND status Command via CLI</title><link>https://forum.keenetic.com/topic/20666-dnd-status-command-via-cli/</link><description><![CDATA[<p>
	I would like to ask for the implementation of a CLI / REST command to obtain the Do Not Disturb status for the telephone line. In this regard, I had previously requested a comparison with technical support who confirmed that at the moment the implemented commands only concern the turning on and off of the touchpad and its possible implementation.
</p>
]]></description><guid isPermaLink="false">20666</guid><pubDate>Tue, 15 Apr 2025 20:10:52 +0000</pubDate></item><item><title>Auto Wake On Lan with scheduler</title><link>https://forum.keenetic.com/topic/19550-auto-wake-on-lan-with-scheduler/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I need auto wake on lan client with specific date and time also one time or every day, every week, every month, every year like windows task scheduler. Can you add this next future uptade KeeneticOS 4.3 ?
</p>

<p>
	There are many Keenetic devices and PCs in our network. This feature is very necessary for our it department. 
</p>

<p>
	Thanks,
</p>

<p>
	Kind regards.
</p>
]]></description><guid isPermaLink="false">19550</guid><pubDate>Mon, 18 Nov 2024 18:39:00 +0000</pubDate></item><item><title>IPv6 Neighbor Discovery (ND) Proxy</title><link>https://forum.keenetic.com/topic/24198-ipv6-neighbor-discovery-nd-proxy/</link><description><![CDATA[<p>
	I’d like to request a feature that improves IPv6 support in deployments where a customer router is connected behind an ISP-provided router that does not support IPv6 Prefix Delegation (DHCPv6-PD) to downstream routers.
</p>

<p>
	In this scenario, enabling an IPv6 Neighbor Discovery (ND) Proxy on the customer router would allow it to proxy Neighbor Solicitation (NS) and Neighbor Advertisement (NA) messages between the WAN and LAN. This would make it possible for downstream devices to obtain and use IPv6 Global Unicast Addresses (GUAs) even when no delegated prefix is available.
</p>
]]></description><guid isPermaLink="false">24198</guid><pubDate>Sun, 25 Jan 2026 09:41:34 +0000</pubDate></item><item><title>PPPoE RFC4638 support</title><link>https://forum.keenetic.com/topic/13558-pppoe-rfc4638-support/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I have recently bought a Keenetic KN-1910 Skipper, but it seems that it lacks RFC4638 support. I set 1500 MTU on the PPPoE connection but a DF ping still shows max MTU of 1492. For RFC4638 support, the ethernet interface would need an MTU of at least 1510 bytes, since it needs to transport packet payload + VLAN tag (802.1q - 2byte) and PPPoE header (6+2=8bytes).
</p>

<p>
	My ISP supports RFC4638 and it uses VLAN + PPPoE. Under a different router running OpenWRT, I can set MTU of 1510 and have this working.
</p>

<p>
	Would it be possible to add this feature into the next KeeneticOS release, or is there a way to achieve the same permanently (into saved settings) via CLI?
</p>

<p>
	 
</p>

<p>
	Thanks,<br />
	FC
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">13558</guid><pubDate>Sat, 15 Jan 2022 11:41:04 +0000</pubDate></item><item><title>Support for Time Machine in SMB protocol</title><link>https://forum.keenetic.com/topic/19753-support-for-time-machine-in-smb-protocol/</link><description><![CDATA[<p>
	Are there any plans to implement an SMB protocol with full Time Machine support for MacOS?
</p>
]]></description><guid isPermaLink="false">19753</guid><pubDate>Wed, 15 Jan 2025 21:54:02 +0000</pubDate></item><item><title>Support Sierra Wireless EM9293</title><link>https://forum.keenetic.com/topic/23877-support-sierra-wireless-em9293/</link><description><![CDATA[<p>
	Keenetic OS does not support probably the best 5G modem currently available without modifications on the modem.
</p>

<p>
	Just plugging the modem in a USB adapter Keenetic OS does not recognize it as a modem:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">I [Dec 21 13:07:31] kernel: usb 2-1: new SuperSpeed Gen 1x2 USB device number 3 using xhci-mtk
I [Dec 21 13:07:31] kernel: usb 2-1: LPM exit latency is zeroed, disabling LPM.
W [Dec 21 13:07:31] kernel: usb 2-1: config 1 has an invalid interface number: 4 but max is 3
W [Dec 21 13:07:31] kernel: usb 2-1: config 1 has no interface number 2
I [Dec 21 13:07:31] kernel: usb 2-1: New USB device found, idVendor=1199, idProduct=90e3, bcdDevice= 0.06
I [Dec 21 13:07:31] kernel: usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
I [Dec 21 13:07:31] kernel: usb 2-1: Product: Sierra Wireless EM9293
I [Dec 21 13:07:31] kernel: usb 2-1: Manufacturer: Sierra Wireless, Incorporated
I [Dec 21 13:07:31] kernel: usb 2-1: SerialNumber: XXXXXXXXXXXXXXXX</span></pre>

<p>
	To get it to work one has to change the USBPID:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">AT!USBPID?
!USBPID:
APP : 90E3
BOOT: 90E2</span></pre>

<p>
	This has to be changed to match EM91xx series:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">AT!USBPID=90D3</span></pre>

<p>
	And verified:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">AT!USBPID?
!USBPID:
APP : 90D3
BOOT: 90D2</span></pre>

<p>
	This makes Keenetic OS see the device and try to connect:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">I [Dec 21 13:23:20] kernel: usb 2-1: new SuperSpeed Gen 1x2 USB device number 5 using xhci-mtk
I [Dec 21 13:23:20] kernel: usb 2-1: LPM exit latency is zeroed, disabling LPM.
W [Dec 21 13:23:20] kernel: usb 2-1: config 1 has an invalid interface number: 4 but max is 3
W [Dec 21 13:23:20] kernel: usb 2-1: config 1 has no interface number 2
I [Dec 21 13:23:20] kernel: usb 2-1: New USB device found, idVendor=1199, idProduct=90d3, bcdDevice= 0.06
I [Dec 21 13:23:20] kernel: usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
I [Dec 21 13:23:20] kernel: usb 2-1: Product: EM9293
I [Dec 21 13:23:20] kernel: usb 2-1: Manufacturer: Sierra Wireless, Incorporated
I [Dec 21 13:23:20] kernel: usb 2-1: SerialNumber: XXXXXXXXXXXXXXXX
I [Dec 21 13:23:20] kernel: option 2-1:1.3: GSM modem (1-port) converter detected
I [Dec 21 13:23:20] kernel: usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
I [Dec 21 13:23:20] kernel: option 2-1:1.4: GSM modem (1-port) converter detected
I [Dec 21 13:23:20] kernel: usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1
I [Dec 21 13:23:20] ndm: Network::Interface::Base: "UsbModem0": "usb" changed "link" layer state "detached" to "disabled".
I [Dec 21 13:23:20] ndm: Network::Interface::Usb: "UsbModem0": interface "UsbModem0" is plugged (port 1).
E [Dec 21 13:23:25] ndm: Core::Ndss: [31282] no registered connection.
E [Dec 21 13:23:34] ndm: Core::Ndss: [31308] no registered connection.
I [Dec 21 13:23:43] ndm: Network::Interface::Usb: "UsbModem0": started 5000 ms. power cycle.
I [Dec 21 13:23:43] kernel: usb 2-1: USB disconnect, device number 5</span></pre>

<p>
	But this will always fail. Even when disabling online checking so that the modem is not power cycled.
</p>

<p>
	Next the modem needs to be changed to rmnet.
</p>

<p>
	The modem is by default in MBIM mode:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">AT!USBCOMP?
Config Index: 1
Config Type:  4 (MBIM V2)
Interface bitmask: 00001009 (diag,modem,mbim)</span></pre>

<p>
	Changing this to rmnet:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">AT!USBCOMP=1,4,00000109</span></pre>

<p>
	And verified:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">AT!USBCOMP?
Config Index: 1
Config Type:  4 (MBIM V2)
Interface bitmask: 00000109 (diag,modem,rmnet0)</span></pre>

<p>
	This gives the modem bare minimum functionality in Keenetic OS:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">I [Dec 21 14:04:32] kernel: usb 2-1: new SuperSpeed Gen 1x2 USB device number 12 using xhci-mtk
I [Dec 21 14:04:32] kernel: usb 2-1: LPM exit latency is zeroed, disabling LPM.
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has an invalid interface number: 3 but max is 2
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has an invalid interface number: 4 but max is 2
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has an invalid interface number: 8 but max is 2
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has no interface number 0
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has no interface number 1
W [Dec 21 14:04:32] kernel: usb 2-1: config 1 has no interface number 2
I [Dec 21 14:04:32] kernel: usb 2-1: New USB device found, idVendor=1199, idProduct=90d3, bcdDevice= 0.06
I [Dec 21 14:04:32] kernel: usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
I [Dec 21 14:04:32] kernel: usb 2-1: Product: EM9293
I [Dec 21 14:04:32] kernel: usb 2-1: Manufacturer: Sierra Wireless, Incorporated
I [Dec 21 14:04:32] kernel: usb 2-1: SerialNumber: XXXXXXXXXXXXXXXX
I [Dec 21 14:04:32] kernel: option 2-1:1.3: GSM modem (1-port) converter detected
I [Dec 21 14:04:32] kernel: usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
I [Dec 21 14:04:32] kernel: option 2-1:1.4: GSM modem (1-port) converter detected
I [Dec 21 14:04:32] kernel: usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1
I [Dec 21 14:04:32] ndm: Network::Interface::Base: "UsbModem0": "usb" changed "link" layer state "detached" to "pending".
I [Dec 21 14:04:32] ndm: Network::Interface::Usb: "UsbModem0": interface "UsbModem0" is plugged (port 1).
I [Dec 21 14:04:39] pppd[1567]: pppd 2.4.4-4 started by root, uid 0
I [Dec 21 14:04:40] chat[1571]: report (Manufacturer)
I [Dec 21 14:04:40] chat[1571]: report (Model)
I [Dec 21 14:04:40] chat[1571]: report (Revision)
I [Dec 21 14:04:40] chat[1571]: report (MF192-)
I [Dec 21 14:04:40] chat[1571]: report (BD_MF)
I [Dec 21 14:04:40] chat[1571]: report (COPS:)
I [Dec 21 14:04:40] chat[1571]: send (ATI^M)
I [Dec 21 14:04:40] chat[1571]: expect (OK)
E [Dec 21 14:04:46] ndm: Core::Ndss: [1576] no registered connection.
I [Dec 21 14:04:50] chat[1571]: alarm
I [Dec 21 14:04:50] chat[1571]: send (^M)
I [Dec 21 14:04:50] chat[1571]: send (AT+CGDCONT=1,"IP","internet.emt.ee"^M)
I [Dec 21 14:04:53] chat[1571]: expect (OK)
E [Dec 21 14:04:56] ndm: Core::Ndss: [1600] no registered connection.
I [Dec 21 14:05:03] chat[1571]: alarm
I [Dec 21 14:05:03] chat[1571]: Failed
E [Dec 21 14:05:03] pppd[1567]: Initializer script failed
I [Dec 21 14:05:04] pppd[1567]: Exit.
E [Dec 21 14:05:04] ndm: Service: "UsbModem0": unexpectedly stopped.
I [Dec 21 14:05:04] ndm: Network::Interface::Base: "UsbModem0": interface is up.
I [Dec 21 14:05:06] pppd[1636]: pppd 2.4.4-4 started by root, uid 0
I [Dec 21 14:05:07] chat[1639]: report (Manufacturer)
I [Dec 21 14:05:07] chat[1639]: report (Model)
I [Dec 21 14:05:07] chat[1639]: report (Revision)
I [Dec 21 14:05:07] chat[1639]: report (MF192-)
I [Dec 21 14:05:07] chat[1639]: report (BD_MF)
I [Dec 21 14:05:07] chat[1639]: report (COPS:)
I [Dec 21 14:05:07] chat[1639]: send (ATI^M)
I [Dec 21 14:05:07] chat[1639]: expect (OK)
I [Dec 21 14:05:07] chat[1639]: ATI^M^M
I [Dec 21 14:05:07] chat[1639]: Manufacturer: Sierra Wireless, Incorporated^M
I [Dec 21 14:05:07] chat[1639]: Model: EM9293^M
I [Dec 21 14:05:07] chat[1639]: Revision: SWIX65C_03.04.10.01 00b8ca jenkins 2025/06/18 05:56:16^M
I [Dec 21 14:05:07] chat[1639]: IMEI: XXXXXXXXXXXXXX^M
I [Dec 21 14:05:07] chat[1639]: IMEI SV: 11^M
I [Dec 21 14:05:07] chat[1639]: FSN: XXXXXXXXXXXXXX^M
I [Dec 21 14:05:07] chat[1639]: +GCAP: +CGSM^M
I [Dec 21 14:05:07] chat[1639]: ^M
I [Dec 21 14:05:07] chat[1639]: ^M
I [Dec 21 14:05:07] chat[1639]: OK
I [Dec 21 14:05:07] chat[1639]:  -- got it
I [Dec 21 14:05:07] chat[1639]: send (AT+CGDCONT=1,"IP","internet.emt.ee"^M)
I [Dec 21 14:05:07] chat[1639]: expect (OK)
I [Dec 21 14:05:07] chat[1639]: ^M
I [Dec 21 14:05:07] chat[1639]: AT+CGDCONT=1,"IP","internet.emt.ee"^M^M
I [Dec 21 14:05:07] chat[1639]: OK
I [Dec 21 14:05:07] chat[1639]:  -- got it
I [Dec 21 14:05:07] pppd[1636]: Serial port initialized.
I [Dec 21 14:05:07] chat[1640]: abort on (NO CARRIER)
I [Dec 21 14:05:07] chat[1640]: abort on (NO DIALTONE)
I [Dec 21 14:05:07] chat[1640]: abort on (NO DIAL TONE)
I [Dec 21 14:05:07] chat[1640]: abort on (BUSY)
I [Dec 21 14:05:07] chat[1640]: abort on (VOICE)
I [Dec 21 14:05:07] chat[1640]: abort on (FCLASS)
I [Dec 21 14:05:07] chat[1640]: abort on (NO ANSWER)
I [Dec 21 14:05:07] chat[1640]: send (ATD*99#^M)
I [Dec 21 14:05:07] chat[1640]: expect (CONNECT)
I [Dec 21 14:05:07] chat[1640]: ^M
I [Dec 21 14:05:07] chat[1640]: ATD*99#^M^M
I [Dec 21 14:05:07] chat[1640]: CONNECT
I [Dec 21 14:05:07] chat[1640]:  -- got it
I [Dec 21 14:05:07] pppd[1636]: Serial connection established.
I [Dec 21 14:05:07] pppd[1636]: Using interface ppp0
I [Dec 21 14:05:07] pppd[1636]: Connect: ppp0 &lt;--&gt; /dev/ttyUSB0
W [Dec 21 14:05:08] pppd[1636]: Could not determine remote IP address: defaulting to 10.64.64.64
I [Dec 21 14:05:08] pppd[1636]: local  IP address 10.49.216.46
I [Dec 21 14:05:08] pppd[1636]: remote IP address 10.64.64.64
I [Dec 21 14:05:08] pppd[1636]: primary   DNS address 192.98.49.8
I [Dec 21 14:05:08] pppd[1636]: secondary DNS address 192.98.49.9
I [Dec 21 14:05:08] ndm: Network::Interface::Base: "UsbModem0": interface is up.
I [Dec 21 14:05:08] ndm: Network::Interface::Base: "UsbModem0": "ppp" changed "link" layer state "connecting" to "running".
I [Dec 21 14:05:08] ndm: Network::Interface::Base: "UsbModem0": interface is up.
I [Dec 21 14:05:08] ndm: Network::Interface::Ip: "UsbModem0": interface "UsbModem0" is global, priority 350.
I [Dec 21 14:05:08] ndm: Network::Interface::Ip: "UsbModem0": adding default route via UsbModem0.
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": adding name server 192.98.49.8.
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": adding a host route to name server 192.98.49.8 (via 0.0.0.0).
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": host route for name server 192.98.49.8 added.
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": name server 192.98.49.8 added, domain (default).
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": adding name server 192.98.49.9.
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": adding a host route to name server 192.98.49.9 (via 0.0.0.0).
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": host route for name server 192.98.49.9 added.
I [Dec 21 14:05:08] ndm: Dns::InterfaceSpecific: "UsbModem0": name server 192.98.49.9 added, domain (default).
I [Dec 21 14:05:08] ndm: Network::Interface::Base: "UsbModem0": "ip" changed "ipv4" layer state "pending" to "running".
I [Dec 21 14:05:08] ndm: Network::Interface::Ip: "UsbModem0": IP address is 10.49.216.46/32.</span></pre>

<p>
	 
</p>

<p>
	But the speed is REALLY bad. Only 30mbit/s max, when plugging it into a Windows laptop gets 300mbit/s+. Or 100mbit/s+ in the same USB adapter with RM520N-GL modem and Keenetic OS.
</p>

<p>
	Additionally there is no way to debug the modem as:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">interface Usbmodem0 tty send AT</span></pre>

<p>
	is unsupported. This works for RM520N-GL as it is not Usbmodem but UsbQmi.
</p>

<p>
	So there is no way to diagnose why the speed is so slow.
</p>

<p>
	 
</p>

<p>
	Please at minimum add EM9293 USBID to known list so that it works without changing it on the modem.
</p>

<p>
	Please add AT sending to Usbmodem to make at least some sort of diagnostics be possible with the modem.
</p>

<p>
	Please add IPv6 support for the modem - it works with no problems on Windows or using RM520N-GL in the same USB adapter with Keenetic OS and my mobile provider.
</p>
]]></description><guid isPermaLink="false">23877</guid><pubDate>Mon, 22 Dec 2025 16:38:56 +0000</pubDate></item><item><title>Domain name routing: route the first packet correctly</title><link>https://forum.keenetic.com/topic/24061-domain-name-routing-route-the-first-packet-correctly/</link><description><![CDATA[<p>
	In KeeneticOS 5.0+ a very useful feature was added — domain name based routing (DNS-based routes).<br />
	However, there is a fundamental issue: the first packet is always sent via the default route.
</p>

<p>
	Current behavior:
</p>

<p>
	• a client starts a connection<br />
	• the first TCP SYN is sent via the default interface<br />
	• only after the DNS response Keenetic adds the routing entry<br />
	• the second attempt goes through the correct interface
</p>

<p>
	As a result:
</p>

<p>
	• the first request is often slow or times out<br />
	• many websites and apps “open on the second try”<br />
	• network behavior becomes unpredictable
</p>

<p>
	Expected behavior:<br />
	If a domain is listed in domain name routing rules,<br />
	the very first packet should be routed via the correct interface, not the default one.
</p>

<p>
	Suggestion:<br />
	Implement a mechanism where Keenetic waits for the DNS response and applies the route before sending the first packet, so the connection is correct from the beginning.
</p>
]]></description><guid isPermaLink="false">24061</guid><pubDate>Thu, 08 Jan 2026 07:31:20 +0000</pubDate></item></channel></rss>
