构建简易家用路由器

构建简易家用路由器

构建环境:

系统:Ubuntu 14.04

网卡:两张有线网卡,TL-WN821N

路由器硬件结构:

如图:   

上图所示,我们常用的家用路由器由三部分组成,包括左下角的交换芯片组,右下角的WIFI芯片和上方的CPU。一般路由器会有5个接口,这5个接口最终会通过交换芯片汇聚成一路触发CPU中断。由于交换芯片是可编程的,可以将WAN口单独划入一个VLAN,这样可以将WAN和LAN区分开。而WIFI芯片则通过br0与LAN桥接在一起。

我们准备两张有线网卡和一张无线网卡。我们可以用一张有线网卡模拟图中的WAN口,一张网卡模拟lan口,TL-WN821模拟WIFI芯片。

设置无线接口为AP模式:

1、安装hostapd  apt-get install hostapd

2、nmcli nm wifi off  #改变NetworkManager里的状态,关闭wifi,同时软锁定

3、rfkill unblock wlan #启用wifi设备,不同于网络状态中的启用wifi(后者改变NetworkManager里的状态)

完成上面3步后,ifconfig 查看无线接口假设为wlan1

桥接LAN和无线接口:

1、下载brctl源码包:http://www.linuxfromscratch.org/blfs/view/svn/basicnet/bridge-utils.html

autoconf

./configure

make

make install

2、新建桥接口brctl braddr br0 ; ifconfig br0 up

3、桥接无线接口到br0,并激活无线配置,添加配置无线配置文件/etc/hostapd/wpa2.conf,内容如下

interface=wlan1//接口名字

bridge=br0

driver=nl80211

ssid=my_router_test//ssid

hw_mode=g //模式

channel=11 //频道

wpa=2

wpa_passphrase=12345678//密码

wpa_key_mgmt=WPA-PSK

wpa_pairwise=CCMP

启动无线配置

hostapd -B /etc/hostapd/wpa2.conf

4、查看桥接口brctl show 发现wan1 已经在br0下面了。

5、假如如还用其他有线网卡,如eth1,可以通过brctl addif br0 eth1 将eth1加入br0桥

路由器软件结构


如图上图所示,web server一般用于用户页面配置参数使用,web server通过CGI调用flash set命令工具将参数保存到flash,随后CGI启动初始化脚本,脚本将所需参数通过flash get读取出来,并用读取的参数重启各个应用。

配置DHCP服务器(用于给连接路由器的设备分配IP)

这里用的是isc-dhcp-server,你也可以使用其它的dhcp服务器程序

1、安装isc-dhcp-server,sudo apt-get install isc-dhcp-server

2、修改dhcp server所绑定的接口,修改/etc/default/isc-dhcp-server文件的”INTERFACES”字段改为br0。

3、修改/etc/dhcp/dhcpd.conf文件,修改分配的DNS地址option domain-name-servers后面改为8.8.8.8, 114.114.114.114

配置DHCP地址池,在文件尾部添加

subnet 192.168.1.0 netmask 255.255.255.0 {

range dynamic-bootp 192.168.1.2 192.168.1.100;

option broadcast-address 192.168.1.255;

option routers 192.168.1.1;

}

4、重启接口ifconfigbr0 192.168.1.1 netmask 255.255.255.0 up

5、重启DHCP服务器/etc/init.d/isc-dhcp-server restart

IPtables


Iptables主要作用是用于拦截,修改,标记数据包。

iptables默认有5 条链,他们对应处理数据包的5个挂在点。5个挂载点的位置如图所示:

PREROUTING:数据包进入路由表之前

INPUT:通过路由表后目的地为本机

FORWARD:通过路由表后,目的地不为本机

OUTPUT:由本机产生,向外转发

POSTROUTIONG:发送到网卡接口之前

iptables另外还有3个做特定处理的表。

mangle 表用于标记数据包

nat用于转换地址

filter用户过滤数据包

Iptables链与表的关系如图:


如上图所示PREROUTING和POSTROUTING是不能进行过滤操作的,且各个表在链中的处理顺序是mangle > nat > filter

NAT:

为了成功的与公网进行通信,我们需要把我们的私有地址转换成我们唯一的公网地址才行。

1、开启LINUX的路由转发功能 sudo sysctl -w net.ipv4.ip_forward=1

2、iptables -F  清理iptable所有表的所有规则

iptables -t nat -F 指定清理iptable nat表的所有规则

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //将路由后从eth0接口出去的包,进行源IP地址伪装,伪装成该接口的IP地址。

最后将命令整理成init.sh shell脚本,设置成开机自启动就完成了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351

推荐阅读更多精彩内容

  • dnsmasq是什么我就不说了,请自行百度。 目前我需要使用的用途是:1.dhcp(分配一个或者多个内网ip地址)...
    dnaEMx阅读 16,102评论 0 6
  • 起因 现在市面上有那么多路由器可以选择,为什么还要自己造一台呢?很多国产路由器 fork 自 OpenWRT 的源...
    程序员Delton阅读 3,437评论 5 10
  • 我想要什么? 我能克服什么? 我该怎么做? 依现在看他是不会培养我成长了,只能全靠自己。用打掉牙往肚里咽的勇气,也...
    空灵人生阅读 181评论 0 0
  • 父亲节,我婶写了篇文章,说让我也写写,我说我不敢,因为我会哭,但是我还是写了,二十多年,没有说过这些,今天,...
    王妮妮_阅读 227评论 0 0
  • 微凉的清晨,走在铺满青石板的林荫小道上,脚下层层的落叶像一块宽大柔软的金色地毯,踩在上面发出绵绵的沙沙声。 阵阵秋...
    纤子墨阅读 573评论 4 12