Openwrt 一级 二级 路由设置心得

这几年真是没少折腾OpenWrt路由器,今天又在同事家里鼓捣了一天,结果还是铩羽而归(来回开车将近3个钟头,堵城北京绝非浪得虚名)。晚上回家后坚持不懈继续鼓捣了半天,总算找到了问题所在,记录一下,顺便理理思路。

  • 同事的需求

同事家里大house需要一个灵活的上网方案,而且已经有了路由器+IP-COM(信号放大器,大house必备),所以最终的思路是在现有路由器之上再加一个路由器(一级路由),理论上搭建完一级路由器后,现有路由器顺利降级为二级路由器,DNS查询、流量区别对待等功能通通依靠一级路由来完成。

  • 遇到的问题

一开始的计划是用新的路由器直接替代现有路由器,不区分一二级路由。这个路子简单粗暴,而且也询问了当初帮忙安装的师傅,所有的IP-COM均以AP接入+交换机的方式接入路由器,理论上只需把新路由的lan口ip改成现有路由器的网段即可。然而替换之后确未能实现,发现有两个问题:1)需要wan口改成PPPoE拨号方式(之前用惯了带拨号功能的光猫,同事家的竟然只是一个terminal猫,所以拨号都放在了路由器内);2)及时wan口能顺利上网,lan口似乎也无法上网。连接IP-COM终端后ip显示为奇怪的162开头的保留区间,稍微google百度之后发现,这个字段很可能是没有顺利分配IP的结果
刚开始没有注意到问题2,只是单纯的以为IP-COM需要特殊设置(例如采用静态IP,MAC绑定,路由器提供静态DHCP),所以采用一级路由(新路由)二级路由(现有路由)的方式进行连接,这样一级路由负责wan口连光猫,成功拨号后lan口连接二级路由的wan口进行internet分享。这个方法正是我自己在家采用的方式(因为CMCC的拨号光猫实在太流氓,连DNS都不让改,一堆奇奇怪怪的弹窗广告)。可惜, 胸有成竹尝试若干次之后,再次以失败告终,表现是二级路由无法自动获得IP地址,及时设置成静态IP也不可以。所以判断应该是一级路由的lan口无法给二级路由分配ip地址

  • 解决方法

经过若干小时的探索和研究,问题是出在了接口的设置上(还是因为对接口了解不深刻啊,捂脸)。正确的接口设置方法总结如下:

  1. 一级路由的接口设置:进入openwrt GUI管理界面,依次点击网络-接口-修改(br-lan这个接口的修改按钮)-物理设置-勾选【VLAN接口: “eth0.1″)】
  2. 二级路由的接口设置:仿照一级路由的方式,进入wan接口的物理设置选项,进入其中的基本设置,选择IP获取方式为“DHCP客户端”即可。静态IP设置的形式也可以,需要讲IP段改为一级路由IP段,网关和DNS改为一级路由IP(参考知乎,原文见后文附录)
  3. 一级路由lan口拉线插入wan口,连接二级路由测试是否可以正常灵活上网
  • 后记

折腾了这么久,说实话openwrt物理结构和计算层面的逻辑结构还是一知半解的状态。想要熟练openwrt,了解基本的原理和实现方式是必不可少的。所以阅读本文前,需要读者对openwrt有一个基本的了解。希望写出这篇文章之后可以帮助其他朋友们解决一些问题。
 
参考资料:
1. https://www.zhihu.com/question/20445817 (色即是空的回答)
2. https://blog.phpgao.com/openwrt-interface.html(老高的技术博客)