Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第二WAN口按域名分流配置无效 #95

Open
Rayuuu opened this issue Feb 7, 2025 · 11 comments
Open

第二WAN口按域名分流配置无效 #95

Rayuuu opened this issue Feb 7, 2025 · 11 comments

Comments

@Rayuuu
Copy link

Rayuuu commented Feb 7, 2025

首先感谢开发者,这个插件用了好几年了一直很稳定!为我解决了大问题!

最近需求稍微发生了变化,有一个域名需要通过WAN2访问,并且也需要用WAN2手动配置的DNS,除此以外所有的请求都正常走WAN1(对所有客户端都一样)。我的配置方法如下:

1、除了"域名地址动态访问策略-第二WAN"这一栏为”启用“,其他所有策略都为默认的”禁用“
2、wan_2_domain_client_src_addr.txt中配置了源IP(所有客户端)如下:
192.168.50.0/24
3、wan_2_domain.txt中配置了目标域名如下:
ld.yn.hsip.gov.cn
4、确保各配置文件路径无误。lz_rule启动日志中的策略配置显示如下:
2025-02-07 15:29:00 [14549]: Successfully registered openvpn-event interface.
2025-02-07 15:29:00 [14549]: ---------------------------------------------
2025-02-07 15:29:00 [14549]: Primary WAN Local Area Network
2025-02-07 15:29:00 [14549]: ---------------------------------------------
2025-02-07 15:29:00 [14549]: Secondary WAN Local Area Network
2025-02-07 15:29:00 [14549]: ---------------------------------------------
2025-02-07 15:29:00 [14549]: CTCC Primary WAN 1727
2025-02-07 15:29:01 [14549]: CUCC/CNC Primary WAN 650
2025-02-07 15:29:01 [14549]: CMCC Primary WAN 50
2025-02-07 15:29:01 [14549]: CRTC Primary WAN 17
2025-02-07 15:29:01 [14549]: CERNET Primary WAN 84
2025-02-07 15:29:01 [14549]: GWBN Primary WAN 172
2025-02-07 15:29:01 [14549]: OTHER Primary WAN 3325
2025-02-07 15:29:01 [14549]: HONGKONG Primary WAN 2334
2025-02-07 15:29:01 [14549]: MACAO Primary WAN 29
2025-02-07 15:29:01 [14549]: TAIWAN Primary WAN 698
2025-02-07 15:29:02 [14549]: FOREIGN Primary WAN -9086
2025-02-07 15:29:02 [14549]: ---------------------------------------------
2025-02-07 15:29:02 [14549]: DomainNmLst-2 Secondary WAN 1 1
2025-02-07 15:29:02 [14549]: ---------------------------------------------
2025-02-07 15:29:02 [14549]: Using Netfilter CT Technology.
2025-02-07 15:29:02 [14549]: ---------------------------------------------
2025-02-07 15:29:04 [14549]: ip_rule_prio_24961 = 2
2025-02-07 15:29:04 [14549]: ip_rule_prio_24976 = 1
2025-02-07 15:29:04 [14549]: ip_rule_prio_24997 = 1
2025-02-07 15:29:04 [14549]: ip_rule_prio_24998 = 1
2025-02-07 15:29:04 [14549]: ---------------------------------------------
2025-02-07 15:29:04 [14549]: Policy routing service has been started successfully

5、结果是通过webUI的工具查询出口,日志中DNS访问的是WAN1的DNS,并没有走到WAN2的DNS(因此无法解析),自然网址也无法访问

请问问题出在哪?

另外有没有交流群可以加入,平时我也可以帮助其他朋友解决一些基本的配置问题。谢谢!

@Rayuuu
Copy link
Author

Rayuuu commented Feb 7, 2025

补充一下版本是最新的4.7.2

@larsonzh
Copy link
Owner

larsonzh commented Feb 7, 2025

“域名地址动态访问策略”使用路由器本机自动分配的DNS解析域名地址,只对“客户端IP地址列表”中以DHCP方式连接路由器,且DNS指向路由器主机地址的下游设备有效。

WebUI工具页面中的“查询路由器出口”功能只适用于IPv4地址,其中也可自己指定DNS服务器地址,地址内容空缺时,软件会使用路由器主机系统自动分配的DNS进行地址解析,然后按照“运营商IP地址访问策略”确定基本的路由器出口信息,不会根据“域名地址动态访问策略”的设置显示域名的访问出口,因为后者可能只针对部分下游设备使用。

若需准确验证“域名地址动态访问策略”的实际出口,可在下游客户端设备中使用路由跟踪工具检测。

如有使用问题,或需要交流,亦可访问:

华硕梅林路由器双线路策略路由配置工具
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8302324&fromuid=858284
(出处: 恩山无线论坛)

@Rayuuu
Copy link
Author

Rayuuu commented Feb 8, 2025

“域名地址动态访问策略”使用路由器本机自动分配的DNS解析域名地址,只对“客户端IP地址列表”中以DHCP方式连接路由器,且DNS指向路由器主机地址的下游设备有效。

WebUI工具页面中的“查询路由器出口”功能只适用于IPv4地址,其中也可自己指定DNS服务器地址,地址内容空缺时,软件会使用路由器主机系统自动分配的DNS进行地址解析,然后按照“运营商IP地址访问策略”确定基本的路由器出口信息,不会根据“域名地址动态访问策略”的设置显示域名的访问出口,因为后者可能只针对部分下游设备使用。

若需准确验证“域名地址动态访问策略”的实际出口,可在下游客户端设备中使用路由跟踪工具检测。

如有使用问题,或需要交流,亦可访问:

华硕梅林路由器双线路策略路由配置工具 https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8302324&fromuid=858284 (出处: 恩山无线论坛)

感谢老大回复,我分析了一下这个问题的根源,然后又做了如下测试:
1、根源应该是需要走到WAN2的DNS请求,走到了WAN1,现在就要解决如何让指定域名的DNS解析请求通过WAN2并且用配置在WAN2的DNS地址去请求解析;
2、首先尝试通过指定IP的方式,将WAN2的DNS地址通过“自定义策略-1”配置到WAN2,并且在配置文件里写死DNS的IP(10.116.130.21),如下图:

Image

Image

3、重启服务后使用内置的工具测试出口,但是很奇怪出口还是去往了WAN1 .... T_T。请老大看一下这是什么原因

Image

PS。补充一下因为我看到说明文件里说自定义策略只在静态模式生效,我又把模式从默认的动态切换到了静态,但是结果还是一样的:

Image

@larsonzh
Copy link
Owner

larsonzh commented Feb 8, 2025

尽管双通道时每个通道都可以至少拥有主备两个DNS,但在路由系统运行时似乎只使用第一通道的第一个DNS地址,该DNS失效时才会切换使用备用DNS;当第一通道的主备DNS均失效时,才会使用第二通道的DNS。

也就是说,路由器全局同时只能有一个DNS起作用,其他DNS都是作为备用存在,且不是按照通道选择使用各自的DNS。

试试在“内部网络(LAN) - DHCP 服务器”页面将你的第二通道的那个DNS设置进去,看看效果如何。

另一方法是将原来的WAN口线路对调一下,重新配置下策略,取保系统首先使用原来第二通道的DNS。

@larsonzh
Copy link
Owner

larsonzh commented Feb 8, 2025

你那个DNS不是公网IP,若地址正确,可按如下查询:

image

@Rayuuu
Copy link
Author

Rayuuu commented Feb 9, 2025

谢谢答复,我还有两个问题想明确一下:
1、当WAN1的DNS全部失效以后,系统按您所说选择WAN2的DNS进行请求的时候,这个请求是通过WAN1发送还是WAN2发送呢?
2、如果我为某个DNS的IP配置了明确的出口策略,会起作用吗?(希望以此指定向这个DNS发起的解析请求去往我期望的某个WAN口)

@larsonzh
Copy link
Owner

larsonzh commented Feb 9, 2025

梅林路由器使用dnsmasq作为DNS和DHCP服务,可以通过SSH命令查看系统配置的上游DNS服务器:

cat /etc/resolv.conf

路由器系统会按输出内容显示的服务器序列顺序向下游设备提供DNS服务。

查看DHCP分配的DNS:

cat /etc/dnsmasq.conf

上述DNS服务路径已在路由器开机启动时初始化,正常情况下无需再次为其设定路由。如需修改DNS配置,一般情况下可在Asuswrt界面中按照功能定义进行。

@Rayuuu
Copy link
Author

Rayuuu commented Feb 9, 2025

梅林路由器使用dnsmasq作为DNS和DHCP服务,可以通过SSH命令查看系统配置的上游DNS服务器:

cat /etc/resolv.conf

路由器系统会按输出内容显示的服务器序列顺序向下游设备提供DNS服务。

查看DHCP分配的DNS:

cat /etc/dnsmasq.conf

上述DNS服务路径已在路由器开机启动时初始化,正常情况下无需再次为其设定路由。如需修改DNS配置,一般情况下可在Asuswrt界面中按照功能定义进行。

现在引入了策略路由规则,我不清楚策略路由会不会影响DNS请求去往不同的WAN口?(我这个情况里,既要解决给客户端分配DNS地址的问题,也要解决DNS请求去往指定的WAN口的问题,尤其是后者更重要,不然即使分配了正确的DNS给客户端,也没法正常解析)

@larsonzh
Copy link
Owner

larsonzh commented Feb 9, 2025

如果给WAN口线路正确设置了上游DNS,在/etc/resolv.conf文件中应该能看到,路由器启动时系统会自动在策略路由库生成相应的高优先级交互访问路由规则,可通过ip命令检索到,应该是位于最前面优先级为200或400的条目中(不同机型或固件版本可能会有差异)。

ip rule show

所以即使没有手工去设置规则,一般情况下都可以正确访问到上游DNS。在路由器和下游设备上只要能ping通DNS服务器地址,就说明该网络连接是正常的,不需要再额外设置。

DNS的作用是域名解析,将解析出的IP地址回传给网络访问发起者,发起者然后向这个IP地址发起访问请求,策略路由软件的作用,就是在此时按照事先制定的规则将该流量导向路由器的某个出口。所以本软件并不关注DNS到底来自哪个WAN口,只要发起者能够明确网络访问的目标IP,软件就可以据此分配流量出口。

@Rayuuu
Copy link
Author

Rayuuu commented Feb 10, 2025

感谢大佬耐心解答,现在因为生产环境着急使用,我先手动解析出IP然后使用IP路由策略配置了(政府的IP短时间应该不会变更),这个一直是没问题的。

域名路由的运行逻辑感觉和通常的理解不太一样(并不是简单地配置好域名和对应的WAN口就可以使用,DNS解析请求也没有按通常的思维去运行,应该是有一些限制条件、其他的配置要求等),这个问题等有时间了我好生测试一下,等测试出结果了再来回复这个issue。

@larsonzh
Copy link
Owner

试试在“外部网络(WAN) - 互联网连接”页面中“互联网 DNS 设置”的“DNS 服务器”里手动设置一下该WAN口的DNS地址。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants