Openwrt 路由设置(二):网络
家庭网络架构的选择和基础配置。

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))

注意: 路由设置要参考光猫设置,与光猫设置保持一致性。

光猫改桥接模式:

  1. 模式不使用路由模式,改为桥接模式。IP模式:IPv4&IPv6;VLAN模式:改写(tag);802.1p管理内部优先级,不需要改。
  2. 关闭DHCP服务和DHCPv6服务。(下属4个选项开关均无所谓:地址信息通过DHCP获取、其他信息通过DHCP获取、RA、slaac前缀)
  3. 必须关闭IPv6 SESSION(如果开启,IPv6只能单向传输,不能通过IPv6访问回家)。
  4. 关闭防火墙Dos攻击保护。
  5. 删除TR069和相关服务,关闭远程网管,以免电信公司从远程篡改光猫配置。
  6. 路由器可承担的服务,让路由器去承担;关闭相关功能,减轻modem负担。

IPv6背景知识:

  • IPv6-to-IPv6 Network Prefix Translation (NPTv6) 类似于IPv4的NAT和IPv6的NAT66,但实现了一对一映射,不用端口转发,更先进。
  • IPv6时代,DHCP有状态地址分配方案是落后的;无状态地址分配是先进的,即SLAAC的地址分配方式。具体过程是:路由器基于 NDP(ICMPv6) 广播自己的路由,然后别的设备基于拿到的前缀再根据自己的mac地址去填充地址后缀,得到完整的地址。当然也会选择完全随机的方式去生成随机地址。

三、Openwrt作为主路由的网络配置

(一)拨号配置(WAN接口)

  1. PPPoE协议;开机自动运行;账号;密码;
  2. MTU(与光猫保持一致);自动获取DNS;使用默认网关(开);
  3. 获取IPv6地址(自动);委托IPv6前缀(开);IPv6分配长度(禁用);
  4. WAN口的DHCP服务(关闭、忽略);
  5. IPv6设置:指定的主接口(开);RA服务(中继);DHCPv6服务(中继);NDP代理(禁用)。

(二)DHCPv6(WAN6接口)

  1. 注意:该接口自动配置,无需手动添加。
  2. 不要自动获取 DNS 服务器;使用自定义 DNS 服务器:2400:3200:baba::12606:4700:4700::1111

(二)LAN接口配置

  1. 静态地址(192.168.100.1);开机自动运行;广播地址(255结尾);网关(留空);
  2. 强制链路(开);使用默认网关(开);可自定义DNS(223.6.6.6114.114.114.1148.8.8.82400:3200:baba::12606:4700:4700::1111);委托IPv6前缀(开);IPv6分配长度(64)

LAN接口的DHCP设置:

  1. 强制(开)
  2. RA服务(服务器模式);DHCPv6服务(服务器模式);本地IPv6DNS服务器(开启,即本路由作为局域网内的IPv6的DNS);NDP代理(禁用)
  3. IPv6 RA设置:默认服务器(在可用的前缀上);启动SLAAC(开);RA标记(M、O、H全选);RA最长/最短间隔(参照光猫设置)

另: “网络-接口”中,全局网络的“IPv6 ULA前缀”一定要留空;“数据包引导”关闭(如有)。

(三)DHCP/DNS配置

  1. 忽略空域名解析(开);唯一授权(开);过滤无用包(开);过滤本地包(关);本地化查询(开);
  2. 记录查询日志(关);不记录日志(开)。
  3. DNS转发,首位可转发至游泳端口,再补充添加(223.6.6.6114.114.114.1148.8.8.82400:3200:baba::12606:4700:4700::1111)。
  4. 不要勾选“禁止解析IPv6 DNS记录”,否则IPv6不通。特别注意此项
  5. 可设置“静态地址分配”,在DHCP分配IP地址时,将某IP固定分配给指定Mac,不分配给其他设备。(租期填写 infinite
  6. 注意: 还需设置“IP/MAC绑定”(ARP协议),直接解析IP为Mac,相当于设置IP–>Mac的直接固定映射,可防止ARP欺骗。

(四)另:wifi设备(ap)的设置

  1. 网线连接至opw主路由;
  2. 静态IP;模式设为“AP模式”;
  3. 关闭一切附加服务。
  4. 在opw主路由中,将此wifi设备的MAC和IP捆绑,固定IP。

四、Openwrt作为旁路由/网关的网络配置

(一)另:主路由(即wifi设备)的设置

  1. WAN拨号:须包括IPv6拨号
  2. LAN地址设为静态192.168.100.1
  3. DHCP:须包括DHCPv6
  4. MAC和IP捆绑:捆绑opw旁路由给一个固定IP地址,例如192.168.100.100
  5. DMZ主机:设为opw旁路由的192.168.100.100
  6. 虚拟服务器(内外端口映射):注意电信对常用端口已封闭,外网端口建议设为10000以上大号端口。例如80映射到19980
  7. DDNS设置

设置完成后检查拨号是否成功。

opw设备用网线LAN对LAN连接到主路由。

(二)LAN 接口配置

“网络-接口”中,仅设置两个接口“LAN”和“LAN6”;删除全部WAN口和其他无用接口

  1. 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分配长度禁用;
  2. DHCP禁用;DHCPv6服务禁用;IPv6路由通告服务禁用;NDP代理禁用;
  3. LAN高级:开机自动运行启用;使用内置IPv6管理启用;强制链路启用。
  4. LAN6:传输协议“DHCPv6客户端”;请求IPv6地址“try”;请求制定长度的IPv6前缀“自动”;
  5. LAN6高级:开机自动运行启用;使用内置IPv6管理启用;强制链路禁用;使用默认网关启用;使用对端通告的DNS服务器禁用;自定义DNS服务器“2400:3200::1”(alibaba)和“2001:4860:4860::8888”(google)。
  6. LAN和LAN6均不桥接,共同指向以太网适配器eth0。
  7. 如LAN6传输协议中没有“DHCPv6客户端”,需手动安装
    $ opkg install ipv6helper

(三)其他配置

  1. “网络-接口”中,全局网络的“IPv6 ULA前缀”一定要留空;“数据包引导”关闭(如有);
  2. “网络-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'
    

五、公网接通后的测试

  1. 主路由拨号可拿到IPv4和IPv6地址。
  2. 全部设备均可获得IPv4和IPv6地址。
  3. 主路由拨号拿到的外网IPv4地址是公网IP,即与网页查询的IP结果一直。如非公网IP,联系电信公司申请。
  4. 全部设备的IPv6地址都是公网IP。电信的IPv6通常为240e开头。
  5. 网站测试IPv6的情况(注意中英文不同):http://test-ipv6.com/index.html.zh_CN
  6. $ nslookup www.taobao.com
  7. $ ping www.taobao.com
  8. $ ping6 www.taobao.com

六、游泳:

(一)OpenClash

  1. 运行模式选择:使用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)。

  1. DNS设置
  • 本地DNS劫持(开启);自定义上游DNS(关闭);追加上游DNS(开启);自定义Fallback-Filter(关闭)
  • Fake-IP持久化(开启);禁止Dnsmasq缓存(开启)
  • 允许IPv6类型DNS解析(开启)
  1. 流媒体
  • 预解析(开启);预解析间隔(24小时);自动选择解锁节点(开启);自动选择的检测间隔(2小时)
  • 还可针对不同服务商指定地点
  1. 使用内置的规则、策略;不使用第三方或自定义的规则、策略。

(二)PassWall

  1. 订阅节点:“使用类型”选择Xray;“允许不安全连接”不勾选。
  2. 负载均衡:手动一个一个加节点。节点根据“负载均衡端口”来分组,相同的端口为一组(相同一组各节点的参数必须一致)。
  3. 手动新建节点:每组负载均衡添加一个对应的新节点。新节点的地址为127.0.0.1、端口为上述“负载均衡端口”,其余参数照抄成员节点的参数。
  4. 开启主开关。“TCP节点”选择“Xray分流”;“UDP节点”选择“同TCP节点”;分流“默认”选上述手动新建的负载均衡节点。
  5. Xray分流规则注意顺序,特殊需代理的->直连->特殊需直连的->代理。
  6. 可设置socks代理(非必须,供其他使用):选择一个节点,再选择N个备用节点,可自动检测切换。
  7. DNS设置:模式用“dns2socks”;端口选代理TCP的端口;启用ChinaDNS并选“智能DNS”。
  8. 转发配置:UDP转发屏蔽“QUIC”;开启“IPv6透明代理(TProxy)”;“TCP代理方式”用“TProxy”。
  9. “过滤代理域名IPv6”不要选:否则分流有问题代理名单连接不上;“流量嗅探”开启;“流量嗅探仅供路由使用”不勾选;“缓冲区大小”131072。

附:Openwrt的DNS解析流程

  1. 在openwrt中,wan和lan口地址是openwrt自身地址;路由服务在openwrt中使用dnsmasq提供dns服务。
  2. 客户端请求dns,先到dnsmasq,再到上游dns。
  3. dnsmasq 绑定 53 端口,在DHCP/DNS中的 DNS转发项解析文件项 中可以设置dnsmasq的上游服务器。
  4. 默认情况下,DNS转发项是空的,dnsmasq使用解析文件获取上游服务器(解析文件路径一般是 /tmp/resolv.conf.d/resolv.conf.auto ),而解析文件中的dns地址一般是运营商分配的dns服务器,即wan口dns地址。

最后修改于 2024-02-24