What do you want to prefere ? Traffic path ? Protocol used ? What protocol your LAN clients use ?
IP6 lives in parallel with IP4 in ROS and they are separated worlds.
That you have to set in your client machine. The router will serve both IPv4 and IPv6 if asked for it, with no discrimination. There is no such thing as a protocol “preference” concept in a router.
The client decides what to ask for, not the router.
in client side I think is solved with precedence way.. many tutorial i found in internet but i want to know in router side?
the other solution i think is if I have a DNS server and set in my DNS server for not return AAAA record for the website in question. but that possible in Router Side?
i mean if my destination website available in IPv4 and IPv6 such as google, youtube, facebook.. if I in dual stack router.. and open one of them, my router will be directly choose their IPv6.. the problem is my IPv6 connection in my dual stack by tunnel.. so it will be slowly and high latency..
Seems to be deeper problem than you ask. It is not router opening sites. Clients do so router just forwards packets from client to the Internet and back.
You want router to decide on the fly which route to the destination is better over IP4 or IP6 and then do proper masquarading or translation from IP4 to IP6 or IP6 to IP4 to achieve the fastest answer.
How do you want to rate which route is the best to download page ? What if some elements are downloaded from main site but some from other ones ? Should router split the traffic to more than one path/route/ISP to make it load faster ? That is not router job. Router is for routing. You are asking for smart load balancer or proxy splitting traffic not only to different ISP but to IP4, IP6.
You seem to misunderstand the nature of IPv4 vs. IPv6.
They’re complete parallel universes. The router doesn’t evaluate routing based on “site” being visited and then decide which protocol to use to get there. The decision was already made by one of the two endpoints communicating with each other. Thus If the router receives an IPv6 packet, then it forwards that packet according to the IPv6 routing table and IPv6 firewall rules. If it receives an IPv4 packet, then it forwards the packet based on the IPv4 routing table and firewall rules. ROS has no capability to directly interwork the two protocols (with such things as NAT64, etc), anyway, so there’s no way it can influence which protocol the client PCs choose to make their connections.
Well, that is a problem with IPv6 not being available native from your ISP: You can run it thru a tunnel, for research/fun, but the problem is latency and speed. However, if an OS supports IPv6, it will use it by default, even if it’s not as fast as IPv4. Neither the client nor router does any checking for latency or bandwidth, just connectivity.
I don’t quite agree with that statement. Thanks to MT adding piles of things onto MT, which a ROUTER is not supposed to do, it IS the MT opening sites…
For example
web proxy… MT would need to give preference to connect to a site via IPv6, instead of IPv4.
/tool/ping www.acme.com MT would need to give preference to ping the site with IPv6, and not IPv4
The same with traceroute, DNS, afaik, the same with ANY “service” that MT runs, which is IPv6 capable.
sigh. Reasons to keep a router a ROUTER, and not a ‘jack of all trades’, ai…
No.
Router is passing packets back and forth.
However Mikrotik offers additional funcionality of proxy which handles cache of pages so it means that it opens/loads page instead of client but it is client starting conversation so the client decides if the “talk” is handled in IP4 world or in IP6 … it depends on DNS name resolution and I do not know if IP4’s DNS client resolves names to IP6 one’s. Really do not know if it is valid at all.
Mikrotik’s webproxy IMHO is not so sophisticated to prefetch pages using IP6 instead of IP4 … why do you assume that DNS resolves names in IP6 and IP4 to same service ? Are you sure to you can assume (read: proxy could assume) that “http4://…” is the same content as “http6://…” ?
Why MT should prefere IP6 over IP4 ? Why ping should prefere IP6 over IP4 ?
Windows Servers prefere IP6 over IP4 and it makes a lot of trouble as ping to localhost usually talk in IP6 and then all services should be aware of that. Try to connect to SQL Server with localhost if it is configured in IP4 domain only etc…
Therefore I have written that it is deeper problem.
Not true. Go learn how proxy servers work. The client has ZERO to do with this, if a proxy is involved.
The client purely sends to the proxy (in it’s simplest form - it does not even attempt to resolve http://www.myhost.com):
GET / HTTP/1.0
Hostname: http://www.myhost.com
The PROXY does a DNS lookup on http://www.myhost.com and the DNS then returns both a IPv4, as well as IPv6 address. The PROXY decides, whether or not to connect via IPv4, or IPv6 - NOT the client.
There are many reasons too, why I would want to ping/traceroute http://www.myhost.com using an IPv6 address, instead of an IPv4 address - for example. As I said, it’s ANY service in MT which supports IPv6, where this issue would come up.
Some providers (us included) are actually also starting to charge different rates for IPv4 vs. IPv6 traffic, to encourage IPv6 uptake. There’s many, many reasons why IPv6 is preferred over IPv4, and it’s unfortunately the defacto standard moving forward. IPv4 is going to be dieing a slow and painful death.
OK…let’s agree at this point … but … AFAIK there are many types of proxy and I do not know if IP4 → IP6 masqarading is what I expect to be done behind the scenes. If I’m in IP4 domain I expect to be IP4 all the time. Maybe lucky those who do not know
If you’re telling web proxy to connect to http://www.something.com, then it’s exactly what you get. You shouldn’t care if it uses IPv4 or IPv6. I don’t know about any standard mechanism to influence that (but I didn’t really search for one).
If you had SOCKS proxy instead (not MikroTik one, because it doesn’t support IPv6), you’d have a choice. You could resolve DNS locally and then tell proxy to connect to IPv4 or IPv6 address. Or you could just give it hostname and let it decide (like web proxy does).
The big browser vendors should be performing checks for availability and taking whichever is faster. If you’re tunneled you’ll want to make sure MTU is being handled cleanly. Do you have firewall rules in place on both the router and your local machine to ensure necessary ICMPv6 messages are making it through? Alternatively set the MTU of one of your PCs to 1280 and see if performance improves.
So it means that suggest that proxy could switch from IP4/IP6 on the fly as one them becomes faster ? What eg. about sessions consistency ?
Asking as I do not recall using myself any proxy intentionally.
As far as the behavior of a specific proxy implementation I can’t say. That said HTTP to an IPv4 or IPv6 only host can be proxied by a dual stack proxy server.