安装软路由小记

介绍

学习路由器中的各项配置,对理解计算机网络很有帮助。
这里实践了在vm上安装openwrt的方法

操作方式

下载镜像

http://downloads.openwrt.org/ 选最新的镜像。
目前最新是15.05.
选x86的generic
下载地址
http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/openwrt-15.05-x86-generic-combined-ext4.img.gz

转化格式

vm不能加载img的镜像,要把它转化为vmdk格式

1
2
gunzip openwrt-15.05-x86-generic-combined-ext4.img.gz
qemu-img convert -f raw -O vmdk openwrt-15.05-x86-generic-combined-ext4.img openwrt-15.05-x86-generic-combined-ext4.vmdk

如何安装qemu-img工具呢,找到ubuntu的机器,sudo apt-get install qemu-utils

vm安装

与安装别的系统没有差别
但要注意在选硬盘时要选要选IDE硬盘
否则会出现waiting for root device /dev/sda2..
这样的问题

步骤(以VMware 12为例):

  • 文件>新建虚拟机,进入向导
  • 希望什么类型的配置:自定义高级,next
  • 选硬件兼容性:默认,next
  • 安装来源:稍后安装操作系统,next
  • 客户机操作系统:linux,版本:linux2.6内核,next
  • 命名:xxx,next
  • 处理器配置:1,1,next
  • 虚拟机的内存:256M,next
  • 网络类型:不使用网络连接(这个后面再配置 ),next
  • I/O 控制器:默认LSI Logic(L),next
  • 虚拟磁盘类型:(这里注意)不要选推荐的,要选IDE类型,next
  • 选择磁盘:使用现有虚拟磁盘。
  • 现有磁盘文件:浏览,选上面openwrt的vmdk文件。
    可能出弹出可转化为现有版本,点转就行。
  • 再就是点击自定义硬件
  • 添加两个网卡,一个选LAN区段,第二个选桥接模式。

配置openwrt

一个路由器最少有两个网络接口,一个wan,和一个lan。
lan接口所在网络把相关数据按路由规则转到lan的别的机器或wan接口。
所以在这里要对openwrt给两个网络适配器A,B。

配置lan端

可以在新建虚拟机的时候只给一个网络适配器,默认会为openwrt的lan端口。(注意,这点很重要,如果顺序反,或者只有一个网络接口,机器会没有网)
在vm配置的时候,不要指定为桥接模式或NAT,要在vm中新建一个LAN区段,VM中新建LAN区段相关于建立一个交换机,把openwrt的lan端口连到了这台交换机上。
再新建一个虚拟机,网络适配器也连到这个新建的LAN区段上。
在这个新建的虚拟机中访问192.168.1.1可以登录这台openwrt。
默认账号是root,首次的时候要通过telnet或ssh,用passwd设置密码。
设置之后,才可以webui方式登录。

配置wan端

在vm的openwrt虚拟机中增加一个网络配置器,类型为桥接模式。
重启openwrt。
这时候相关到于openwrt的wan端口连本机所在的网络。
openwrt的lan端口连在了vm中新建的lan区段上。
所以连在lan区段上的电脑数据,都要经过openwrt转发。

相关其它配置

  • /etc/config/network中可以配置接口相关的参数
  • /etc/init.d/network restart可以重新加载配置

一个network配置的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'

config interface 'lan'
option ifname 'eth0'
option type 'bridge'
option proto 'static'
option ipaddr '172.18.0.1'
option netmask '255.255.255.0'

config interface 'wan'
option ifname 'eth1'
option proto 'dhcp'

设置转发

因为默认配置好,只能在虚拟机的用LAN段访问路由。
但实际自己电脑与软路由的WAN在同一网段。
这时候就需要设置转发。

方法

先用WEBUI方式进入openwrt。
然后Network->Firewall->PortForwars
配置New port forward
有七个参数:

  • name 名称
  • protocol 协议
  • External Zone ,外部区域,就是wan网段
  • External port, 向外部暴露的端口
  • Internal zone。Lan的域
  • Internal IP address,内网的地址。
  • Internal port , 网络地址的端口。

填好之后要点ADD,然后再点Save& Apply。
用用重启,可以立即生校。

可以练习的

  • 实践iptables的使用
  • 在openwrt上验证各种软件

注意事项

如果遇到莫名其妙的问题,找找多找找版本,类别,型号的问题

参考

https://wiki.openwrt.org/doc/howto/vmware
https://wiki.openwrt.org/doc/uci/network
http://www.cnblogs.com/codeinsight/p/openwrt_vmware.html