|
楼主 |
发表于 2022-3-12 17:30
|
显示全部楼层
经过各位朋友的热心解答和网络搜索解决方案,我的问题目前已经得到解决,下面把解决方案总结一下,以便有类似需求的朋友能尽快解决问题。
【问题描述】
我的网络拓扑简述如下:
1. 在J4125工控机上安装ESXI,ESXI上安装openwrt作为主路由并拨号;
2. J4125共4个千兆网卡,其中2个分别接两台无线路由器,两台无线路由器均设置为AP模式(局域网内所有设备都在同一个网段);
3. 群晖NAS通过有线连接其中一台AP;
网络设置:群晖NAS设置DDNS,注册域名,openwrt上做端口转发;
如上设置后,有以下现象:
1.外网能通过域名访问NAS;
2.局域网内所有设备都能用内网IP访问NAS;
3.和NAS连接在同一台AP的手机电脑等不能用域名访问NAS,另一台AP下面的手机电脑等设备可以用域名访问NAS;
4.交换NAS连接的AP后,发现只有和NAS连接在同一个AP下的设备不能用域名访问NAS,其他AP下的设备可以用域名访问NAS;
5.把openwrt管理页面也做端口转发,则局域网内所有设备能用域名访问NAS。
我的网络拓扑可能不具有普遍性,只是使问题更有趣了,或更接近本质了,有待各位懂原理的大神解答。
下面我列出大家更可能遇到的拓扑结构:
光猫->openwrt(拨号)->无线路由器做AP->NAS或服务器以及各种有线/无线上网设备;
也就是服务器和其他上网设备都连接到无线路由器AP下面,则其他设备不能用域名访问服务器;
【解决方案】
解决方案参考下面两个链接:
https://blog.csdn.net/aplsc/article/details/122684437
http://www.kennylife.cn/index.php/x86_router/openwrt-NAT.html
具体如下:
1.ssh连接openwrt系统后,编辑/etc/sysctl.d/11-br-netfilter.conf文件。
net.bridge.bridge-nf-call-arptables=0
net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0
确认后面的值是0,如果不是,需要改为0
2.编辑/etc/sysctl.conf文件。文件内容可能是空的,把第一条的内容复制进sysctl.conf文件,保存退出。
3.ssh内输入sysctl -p命令,查看输出结果是不是上面提到的那三行内容。
4.输入/etc/init.d/sysctl restart
按上述内容设置后,问题完美解决!!!
【补充】
1.按解答问题的大佬的说法,这个问题是由于“部分openwrt自定义源码编译出的固件会导致无法自动生成这部分配置,就导致回流异常,手动配置一下自然就好了”。
2.想再请教一下各位大佬,内网用域名访问服务器,会消耗外网流量吗,网速会受外网带宽限制吗?
|
|