主要起因是IPv6的出现吧。。现在大部分卖得火的便宜路由器往往会因为要么存储空间或RAM太小,或者CPU等硬件尚未得到支持而无法使用诸如OpenWRT一类的第三方固件。估计是出于商业目的吧,现在的路由器都不会宣称自己支持IPv6,到时候路由器就可以卖两道了。(然而放在移动放在学校寝室里的华为的接入点可以支持IPv6,估计要上千)然后接上自己的路由器,IPv6地址就没了,怪可惜的。因而打算同时支持IPv4+IPv6的“路由器”,学校接入点每次都要登陆,显然不行,主角就打算选这个刚买的开发板了。在我原本的想象中,这件事应该是十分简单的,计算机网络理论十分完整而清晰,再加上GNU这样的开源组织,多少也会提供一个能用的解决方案吧,毕竟路由器这玩意还是十分实用的。结果后来发现,著名的OpenWRT还是因为Cisco因为偷偷使用了Linux才不得不开源的。开源路由固件大头都要靠这种方式开头,这发展指望不得啊,唉。。。
现在的探索历程就很迷,在国内搜,估计基本tmd都是为了应付计网实验的,两台主机,静态ip,加个ip forward完事,要不就是vmware;在国外,也差不多只会实现流量转发的功能,不过写得比较实在,会在标题写上“流量转发”四个大字而不是像国内一样,不但话说不清楚,反倒觉得自己很NB了。看了一下鸟叔的Linux私房菜,不过里面关于路由器的那部分,层次有点高。。那真的是讲路由器的,不过是路由器之间的配置,上升到RIP和OSPF那个层次了。。我想要和下层设备的交互部分,DHCP啊。。
可能是没有找到正确博客的原因吧,在各大搜索引擎上零零散散地只是搜集到了一些相关的组件,比如Linux内核自带的IP转发IP forwarding
功能,具有类似IP防火墙功能的iptables
提供了网络地址转换NAT
功能,hostapd
提供的Wi-Fi热点功能,以及提供PPPoE拨号的pppoe
和pppoeconf
软件包(Ubuntu)。这虽然已经构成了路由器最基本的功能:数据的定向转发,但是离日常生活中花钱买的路由器还是有点距离的。除路由器的核心功能外,最关键的,也是最常用的一个,私以为便是DHCP了。
从stackoverflow上获得推荐的,ubuntu的官方路由搭建指导:
https://help.ubuntu.com/community/Router
里面提到了一个DHCP服务器,不过Debian Buster的apt里面好像没有这个包:
https://help.ubuntu.com/community/dhcp3-server
到时候有时间试试手动编译吧。
目前对于整个架构的设想:
使用开发板上的千兆网口作为网络输入,开发板上装Linux系统并进行有线网拨号;(已实现,pppoe
)
插入无线网卡(RTL8188EU,已有内置驱动支持),作为Wi-Fi热点的发射装置;(已实现,hostapd
)
使用虚拟网桥将有线网与Wi-Fi连接,让连入了Wi-Fi的设备可以手动配置后上网;(根据进一步的调查,发现这个可能要用iptables
比较好,网桥的话,pppoe不知道能不能作为设备连接起来)
添加DHCP等路由器-终端自动配置服务,自动完成无线网络参数配置;
最后,如果可能的话,再更改一下Wi-Fi的认证机制,使其支持企业级认证。(记录一下,可能考虑用LEAP或者PEAP)