Openwrt 路由设置(二):网络
一、家庭网络架构的选择
家庭网络架构的原则:网络中只有一个NAT
现代家庭网络,光猫入户,光猫自带路由功能,由光猫拨号上网,管理DHCP,NAT给上网设备(有线或无线)。
- 光猫自带wifi性能弱。家庭网络必备单独的无线wifi设备。
- 光猫性能一般,如承担NAT,当上网设备较多,压力太大。
- 光猫应放弃做NAT,改桥接模式,由主路由负责拨号,拿公网IP(包括IPv4和IPv6)。
网络架构选择原则:NAT设备性能要足够,并运行稳定。
方案一:Openwrt主路由模式架构
Internet –> modem(桥接模式) –> opw(活儿全包)–> wifi(ap模式)
此方案由openwrt做唯一NAT;无线wifi设备做AP。俗称openwrt的“主路由模式”。
- 要求:openwrt设备要强,负责家庭网络中的全部日常和特殊工作。
- 优点:可跑满带宽。wifi设备不需要性能。
- 缺点:openwrt挂掉后,整个网络瘫痪。
方案二:Openwrt旁路由模式架构
Internet –> modem(桥接模式) –> wifi(路由模式)–> opw(仅需一个网口)
此方案由无线wifi设备做唯一NAT;openwrt做旁路由/网关。俗称openwrt的“旁路由模式”
- 要求:wifi设备性能比光猫强。
- 优点:即使openwrt挂掉,也不影响整体网络连通。
- 缺点:游泳速度损失10%-15% 。
二、光猫改造
电信光猫的超级用户名:
telecomadmin
密码:nE7jA%5m
- 记录
vlan_ID
、宽带识别码
;记录原WAN中的MTU
(1492)。 - 记录IPv6获取方式(地址获取方式:AutoConfigured;获取前缀enable;前缀获取方式:PrefixDelegated;DNS获取方式:DHCPv6)。
- 记录IPv6 LAN主机的设置(DNS来源:家庭网关代理;前缀来源:WANDelegated)
- 记录Ipv6 DHCPv6的设置(地址信息不通过DHCP获取,其他信息通过DHCP获取;RA设enable;slaac前缀disable;IPv6的RA报文最大/最小自动发送时间(600s/200s))
注意: 路由设置要参考光猫设置,与光猫设置保持一致性。
光猫改桥接模式:
- 模式不使用路由模式,改为桥接模式。IP模式:IPv4&IPv6;VLAN模式:改写(tag);802.1p管理内部优先级,不需要改。
- 关闭DHCP服务和DHCPv6服务。(下属4个选项开关均无所谓:地址信息通过DHCP获取、其他信息通过DHCP获取、RA、slaac前缀)
- 必须关闭IPv6 SESSION(如果开启,IPv6只能单向传输,不能通过IPv6访问回家)。
- 关闭防火墙Dos攻击保护。
- 删除TR069和相关服务,关闭远程网管,以免电信公司从远程篡改光猫配置。
- 路由器可承担的服务,让路由器去承担;关闭相关功能,减轻modem负担。
IPv6背景知识:
- IPv6-to-IPv6 Network Prefix Translation (NPTv6) 类似于IPv4的NAT和IPv6的NAT66,但实现了一对一映射,不用端口转发,更先进。
- IPv6时代,DHCP有状态地址分配方案是落后的;无状态地址分配是先进的,即SLAAC的地址分配方式。具体过程是:路由器基于 NDP(ICMPv6) 广播自己的路由,然后别的设备基于拿到的前缀再根据自己的mac地址去填充地址后缀,得到完整的地址。当然也会选择完全随机的方式去生成随机地址。
三、Openwrt作为主路由的网络配置
(一)拨号配置(WAN接口)
- PPPoE协议;开机自动运行;账号;密码;
- MTU(与光猫保持一致);自动获取DNS;使用默认网关(开);
- 获取IPv6地址(自动);委托IPv6前缀(开);IPv6分配长度(禁用);
- WAN口的DHCP服务(关闭、忽略);
- IPv6设置:指定的主接口(开);RA服务(中继);DHCPv6服务(中继);NDP代理(禁用)。
(二)DHCPv6(WAN6接口)
- 注意:该接口自动配置,无需手动添加。
- 不要自动获取 DNS 服务器;使用自定义 DNS 服务器:
2400:3200:baba::1
、2606:4700:4700::1111
(二)LAN接口配置
- 静态地址(192.168.100.1);开机自动运行;广播地址(255结尾);网关(留空);
- 强制链路(开);使用默认网关(开);可自定义DNS(
223.6.6.6
、114.114.114.114
、8.8.8.8
和2400:3200:baba::1
、2606:4700:4700::1111
);委托IPv6前缀(开);IPv6分配长度(64)
LAN接口的DHCP设置:
- 强制(开)
- RA服务(服务器模式);DHCPv6服务(服务器模式);本地IPv6DNS服务器(开启,即本路由作为局域网内的IPv6的DNS);NDP代理(禁用)
- IPv6 RA设置:默认服务器(在可用的前缀上);启动SLAAC(开);RA标记(M、O、H全选);RA最长/最短间隔(参照光猫设置)
另: “网络-接口”中,全局网络的“IPv6 ULA前缀”一定要留空;“数据包引导”关闭(如有)。
(三)DHCP/DNS配置
- 忽略空域名解析(开);唯一授权(开);过滤无用包(开);过滤本地包(关);本地化查询(开);
- 记录查询日志(关);不记录日志(开)。
- DNS转发,首位可转发至游泳端口,再补充添加(
223.6.6.6
、114.114.114.114
、8.8.8.8
和2400:3200:baba::1
、2606:4700:4700::1111
)。 - 不要勾选“禁止解析IPv6 DNS记录”,否则IPv6不通。特别注意此项
- 可设置“静态地址分配”,在DHCP分配IP地址时,将某IP固定分配给指定Mac,不分配给其他设备。(租期填写
infinite
) - 注意: 还需设置“IP/MAC绑定”(ARP协议),直接解析IP为Mac,相当于设置IP–>Mac的直接固定映射,可防止ARP欺骗。
(四)另:wifi设备(ap)的设置
- 网线连接至opw主路由;
- 静态IP;模式设为“AP模式”;
- 关闭一切附加服务。
- 在opw主路由中,将此wifi设备的MAC和IP捆绑,固定IP。
四、Openwrt作为旁路由/网关的网络配置
(一)另:主路由(即wifi设备)的设置
- WAN拨号:须包括IPv6拨号
- LAN地址设为静态192.168.100.1
- DHCP:须包括DHCPv6
- MAC和IP捆绑:捆绑opw旁路由给一个固定IP地址,例如192.168.100.100
- DMZ主机:设为opw旁路由的192.168.100.100
- 虚拟服务器(内外端口映射):注意电信对常用端口已封闭,外网端口建议设为10000以上大号端口。例如80映射到19980
- DDNS设置
设置完成后检查拨号是否成功。
opw设备用网线LAN对LAN连接到主路由。
(二)LAN 接口配置
“网络-接口”中,仅设置两个接口“LAN”和“LAN6”;删除全部WAN口和其他无用接口
- LAN:静态地址192.168.100.100;网关设为wifi主路由的IP地址192.168.100.1;广播地址192.168.100.255;DNS设为114.114.114.114和8.8.8.8;IPv6分配长度禁用;
- DHCP禁用;DHCPv6服务禁用;IPv6路由通告服务禁用;NDP代理禁用;
- LAN高级:开机自动运行启用;使用内置IPv6管理启用;强制链路启用。
- LAN6:传输协议“DHCPv6客户端”;请求IPv6地址“try”;请求制定长度的IPv6前缀“自动”;
- LAN6高级:开机自动运行启用;使用内置IPv6管理启用;强制链路禁用;使用默认网关启用;使用对端通告的DNS服务器禁用;自定义DNS服务器“
2400:3200::1
”(alibaba)和“2001:4860:4860::8888
”(google)。 - LAN和LAN6均不桥接,共同指向以太网适配器eth0。
- 如LAN6传输协议中没有“DHCPv6客户端”,需手动安装
$ opkg install ipv6helper
(三)其他配置
- “网络-接口”中,全局网络的“IPv6 ULA前缀”一定要留空;“数据包引导”关闭(如有);
- “网络-DHCP/DNS-高级设置”中,不要勾选“禁止解析IPv6 DNS记录”。特别注意此项
(四)网关 or DHCP
-
按如上设置,opw设备作为独立网关使用。如果其他设备想通过opw游泳,设备的网关和DNS服务器均设为opw的IP地址192.168.100.100即可。如opw崩溃,其他设备均不受影响。
-
此外,还可由opw设备提供DHCP服务(同时必须关闭主路由DHCP),这样全部设备均将通过opw,均可游泳。但如opw崩溃,全部设备将受影响。
opw提供DHCP服务,上网设备均走opw,同时可指定设备不走opw,而走主路由网关: 编辑/etc/config/dhcp
# 新建个模板:iot是tag名称,可任意起。6开头的是dns,3开头的是网关。dns和网关设置走主路由。 config tag 'iot' list dhcp_option '6,192.168.100.1' list dhcp_option '3,192.168.100.1' option force '1' # 指定设备pc1(mac地址)使用iot配置,即走主路由。 config host option name 'pc1' option mac 'aa:bb:cc:dd:ee:ff' option dns '1' option tag 'iot'
五、公网接通后的测试
- 主路由拨号可拿到IPv4和IPv6地址。
- 全部设备均可获得IPv4和IPv6地址。
- 主路由拨号拿到的外网IPv4地址是公网IP,即与网页查询的IP结果一直。如非公网IP,联系电信公司申请。
- 全部设备的IPv6地址都是公网IP。电信的IPv6通常为240e开头。
- 网站测试IPv6的情况(注意中英文不同):http://test-ipv6.com/index.html.zh_CN
$ nslookup www.taobao.com
$ ping www.taobao.com
$ ping6 www.taobao.com
六、游泳:
(一)OpenClash
- 运行模式选择:使用Fake-IP(增强);不用tun(目前有问题)。
-
Fake-IP 模式:在客户端发起DNS请求时会立即返回一个保留地址(198.18.0.1/16),同时向上游DNS服务器查询结果,如果判定返回结果为污染或者命中代理规则,则直接发送域名至代理服务器进行远端解析。因为节约了一次本地向DNS服务器查询的时间,客户端响应速度加快,浏览体验更加顺畅。
-
Redir-Host 模式:DNS由Clash先进行并发查询,等待返回结果后再尝试进行规则判定和连接。当判定需要代理时,使用fallback组DNS的查询结果进行通讯。客户端响应速度一般,可能出现网页加载时间过长的情况。
注意:TUN
内核:能够代理所有UDP链接,改善游戏联机体验。 -
UDP流量转发(开启);代理模式(Rule);仅代理命中规则流量(开启);
-
路由本地代理(开启);IPv6流量代理(开启);绕过大陆IPv6(开启);禁用QUIC(开启);
-
绑定网络接口(停用);Url-test切换敏感(500ms)。
- DNS设置
- 本地DNS劫持(开启);自定义上游DNS(关闭);追加上游DNS(开启);自定义Fallback-Filter(关闭)
- Fake-IP持久化(开启);禁止Dnsmasq缓存(开启)
- 允许IPv6类型DNS解析(开启)
- 流媒体
- 预解析(开启);预解析间隔(24小时);自动选择解锁节点(开启);自动选择的检测间隔(2小时)
- 还可针对不同服务商指定地点
- 使用内置的规则、策略;不使用第三方或自定义的规则、策略。
(二)PassWall
- 订阅节点:“使用类型”选择Xray;“允许不安全连接”不勾选。
- 负载均衡:手动一个一个加节点。节点根据“负载均衡端口”来分组,相同的端口为一组(相同一组各节点的参数必须一致)。
- 手动新建节点:每组负载均衡添加一个对应的新节点。新节点的地址为
127.0.0.1
、端口为上述“负载均衡端口”,其余参数照抄成员节点的参数。 - 开启主开关。“TCP节点”选择“Xray分流”;“UDP节点”选择“同TCP节点”;分流“默认”选上述手动新建的负载均衡节点。
- Xray分流规则注意顺序,特殊需代理的->直连->特殊需直连的->代理。
- 可设置socks代理(非必须,供其他使用):选择一个节点,再选择N个备用节点,可自动检测切换。
- DNS设置:模式用“dns2socks”;端口选代理TCP的端口;启用ChinaDNS并选“智能DNS”。
- 转发配置:UDP转发屏蔽“QUIC”;开启“IPv6透明代理(TProxy)”;“TCP代理方式”用“TProxy”。
- “过滤代理域名IPv6”不要选:否则分流有问题代理名单连接不上;“流量嗅探”开启;“流量嗅探仅供路由使用”不勾选;“缓冲区大小”131072。
附:Openwrt的DNS解析流程
- 在openwrt中,wan和lan口地址是openwrt自身地址;路由服务在openwrt中使用dnsmasq提供dns服务。
- 客户端请求dns,先到dnsmasq,再到上游dns。
- dnsmasq 绑定
53
端口,在DHCP/DNS中的DNS转发项
和解析文件项
中可以设置dnsmasq的上游服务器。 - 默认情况下,
DNS转发项
是空的,dnsmasq使用解析文件获取上游服务器(解析文件路径一般是/tmp/resolv.conf.d/resolv.conf.auto
),而解析文件中的dns地址一般是运营商分配的dns服务器,即wan口dns地址。
最后修改于 2024-02-24