1.log管理
logd
在openWRT系统中调试,需要查看自己的打印信息。可以用logread来查看。具体的操作为:
#logread 将查看历史打印信息
#logread -f 将查看实时的打印信息
logread的实现流程主要是:连接共享内存->信号量加锁->读取共享内存中的信息并输出->信号量解锁。而log信息也是有一个logd的守护进程所处理的。查看进程信息可以看到:/sbin/logd -S 256;-S 256的含义就是分配256KB的内存空间来存储log信息;超过256KB的情况下会滚动覆盖。而 256的参数一般在/etc/config/system中的log_size值。可以根据需要来调整存储内存的大小。
rsyslogd
linux系统中读取内核启动打印信息。可以使用 cat /var/log/dmesg。
linux系统中驱动调试的打印信息。可以用cat /var/log/kern.log。
rsyslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地,可以处理百万条信息。远程log管理,可以通过网络来传输log信息到指定主机。(具体另查)
syslogd
2.配置管理
openWRT通用的配置信息均存在/etc/config目录下。如网络参数/etc/config/network;无线参数/etc/config/wireless。这些参数可以直接用编辑器进行编辑,或者用uci脚本命令来编辑。编辑完成后,可以直接重启脚本进行生效。
网络参数配置
基本网络接口配置
config interface ‘lan’
option ifname ‘eth0 eth1’
option force_link ‘1’
option type ‘bridge’
option proto ‘static’
option netmask ‘255.255.255.0’
option gateway ‘10.10.10.1’
option ip6assign ‘60’
option ipaddr ‘10.10.10.98’
端口VLAN配置
config switch
option name ‘switch0’
option reset ‘0’
config switch_vlan
option device ‘switch0’
option vlan ‘1’
option ports ‘0t 1 2 3 4 5’
4G上网PPP拨号配置
config interface ‘ppp0’
option proto ‘3g’
option apn ‘ctnet’
option dialnumber ‘*99#’
option device ‘/dev/ttyUSB1’
option service ‘umts’
option username ‘ctnet@mycdma.cn’
option password ‘vnet.mobi’
当network参数配置完成后,需要即时生效配置后的参数,使用命令/etc/init.d/network reload来生效配置的参数。
无线参数配置
config wifi-device ‘wifi0’
option type ‘qcawifi’
option channel ‘auto’ //信道选择为自动
option country ‘CN’ //区域选择为中国,这里主要是有些无线参数需符合当地无线电规范要求
option hwmode ‘11ng’ //无线模式选择
option txpower ‘12’ //发送功率 dBm
option htmode ‘HT20’ //频宽
config wifi-iface
option device ‘wifi0’
option network ‘lan’ //网络配置
option mode ‘ap’ //工作模式,AP,Client,WDS等配置
option ssid ‘SSID0’ //SSID配置
option encryption ‘none’ //加密方式,目前无
option disabled ‘0’ //wifi启动开关 0为开启
option hidden 1 //是否隐藏SSID,1为隐藏
当wifi的参数配置完成后,需要即时生效配置后的参数,需要执行wifi reload命令来生效。
以上wifi参数配置分为一个wifi-device和一个wifi-iface的两个配置表。
具体的wifi参数配置参考:https://blog.youkuaiyun.com/hui523hui523hui523/article/details/38493725
SSH登入
主要描述通过密钥方式登入SSH服务器,一般为Linux系统。本例用ubuntu作为参考测试。
1.在ubuntu客户端创建要登入服务器端的用户账户:sudo adduser admin
2.切换到admin账户下,使用ssh命令创建RSA密钥:ssh-keygen -b 1024 -t rsa;-b为设置密钥长度,可以不配置。该命令将在用户目录下的.ssh目录里产生私钥id_rsa 及公钥id_rsa.pub。
3.如果服务器为ubuntu,即将公钥id_rsa.pub复制到对应的用户目录.ssh下authorized_keys文件;现在为openwrt中的web配置,将公钥id_rsa.pub内的所有字符串内容拷贝到web配置管理内。
4.将公钥保存在登入服务器上了,此时可以免密登入了。登入命令:ssh admin@192.168.1.1 -i id_rsa;IP地址为SSH服务器的IP地址。
5.注,必须确保服务器有此用户名可以访问,及对应的SSH服务为重新生效配置的。
3. VRRP配置
虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。
具体应用实例描述:http://www.h3c.com/cn/d_200904/631528_30003_0.htm
3.1编译配置
1.配置编译openWRT支持VRRP,在make menuconfig中:
network--->
<*> keepalived............... Failover and monitoring daemon for LVS clusters
2.编译openwrt,同其他编译一样生成Image。
3.查看启动脚本
//查看启动脚本,cat /etc/init.d/keepalived或cat /etc/rc.d/S70keepalived
root@openwrt:~# cat /etc/rc.d/S70keepalived
#!/bin/sh /etc/rc.common
# Copyright (C) 2007-2015 OpenWrt.org
START=70
SERVICE_USE_PID=1
start() {
service_start /usr/sbin/keepalived
}
stop() {
service_stop /usr/sbin/keepalived
}
4.编辑配置文件;注意格式,tab,空格等。
root@openwrt:~# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP //如果是MASTER,这里就用MASTER
interface br-lan
virtual_router_id 51 //虚拟路由器组,同一组的配置,该值必须一致
priority 99 //优先级,数值越大,优先级越高,在抢占中会或者MASTER,MASTER的优先级比BACKUP高,MASTER配置成200。
advert_int 1 //MASTER 与BACKUP 负载均衡器之间同步检查的时间间隔,单位为秒
authentication {
auth_type PASS //验证类型,主要有PASS、AH 两种,通常使用的类型为PASS
auth_pass 1111 //验证密码为明文,同一vrrp 实例MASTER 与BACKUP 使用相同的密码才能正常通信。
}
virtual_ipaddress {
10.10.10.116 //虚拟ip地址,可以有多个地址,每个地址占一行.
}
}
配置选项参数描述:
nopreempt #设置为不抢占 注:这个配置只能设置在backup主机上,而且这个主机优先级要比另外一台高
preempt_delay #抢占延时,默认5分钟
3.2调试
当配置完成后,开始调试。
1.分别启动MASTER与BABKUP虚拟路由器的keepalived。分别查看VIP的情况,只有MASTER才能生成VIP接口,BACKUP不生成;当BACKUP变成MASTER后,即生成VIP接口。
MASTER:# ip addr
7: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 78:b6:c1:04:1f:54 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.98/24 brd 10.10.10.255 scope global br-lan
valid_lft forever preferred_lft forever
inet 10.10.10.116/32 scope global br-lan //VIP生成
valid_lft forever preferred_lft forever
inet6 fd04:64ed:d8b7::1/60 scope global
valid_lft forever preferred_lft forever
inet6 fe80::7ab6:c1ff:fe04:1f54/64 scope link
valid_lft forever preferred_lft forever
BACKUP:# ip addr
12: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 7e:41:e0:e6:1b:0b brd ff:ff:ff:ff:ff:ff
inet 10.10.10.99/24 brd 10.10.10.255 scope global br-lan
valid_lft forever preferred_lft forever
inet6 fd5f:6c07:c024::1/60 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::7c41:e0ff:fee6:1b0b/64 scope link
valid_lft forever preferred_lft forever
2.此时可以ping VIP接口,再用arp -a查看对应的MAC地址,确认是哪个设备上的。如果虚拟路由器有web server,也可以通过VIP来访问web,看是否对应正常。
3.此时关闭MASTER路由器的keepalived,#killall keepalived。再在BACKUP路由器上查看是否获取到VIP接口。如果获取到,BACKUP路由器将变成MASTER路由器,由于刚才的MASTER路由器异常。
12: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 7e:41:e0:e6:1b:0b brd ff:ff:ff:ff:ff:ff
inet 10.10.10.99/24 brd 10.10.10.255 scope global br-lan
valid_lft forever preferred_lft forever
inet 10.10.10.116/32 scope global br-lan //此时VIP在BACKUP路由器上获取到,变成MASTER
valid_lft forever preferred_lft forever
inet6 fd5f:6c07:c024::1/60 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::7c41:e0ff:fee6:1b0b/64 scope link
valid_lft forever preferred_lft forever
4.此时可以ping VIP接口,再用arp -a查看对应的MAC地址,确认是哪个设备上的。如果虚拟路由器有web server,也可以通过VIP来访问web,看是否对应正常。如果一切正常,ping通的是原来BACKUP路由器(现在变成了MASTER)
5.现在把原来的MASTER再次运行,由于配置都没有改变,按照要求原来的MASTER会变回MASTER,原来的BACKUP(现在是MASTER)会变回为BACKUP。
4.vmware搭建LEDE软路由
4.1环境准备
4.1.1 LEDE镜像下载安装
1)LEDE镜像软件包下载。
vmware安装镜像包下载
点击以上链接后,下载 openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-combined-squashfs.vmdk;也可以根据自己的需求选择。
2)vmware安装,略
3)将镜像安装到vmware中,安装参考:https://www.jianshu.com/p/8f84f444a1d8
现在vmware中创建一个空的虚拟机,即选择稍后安装操作系统。当创建好虚拟设备后,再在设置项中增加一个硬件。使用现有虚拟磁盘,选择对应的磁盘文件(openwrt-koolshare-mod-v2.36-r14941-67f6fa0a30-x86-64-generic-squashfs-combined.vmdk);再将原有的磁盘删除,让其使用新增加的磁盘文件启动系统。
4.1.2 组网环境
目前在路由器(192.168.100.1)下连接两个PC,一个安装vmware LEDE虚拟路由,一个就是普通的PC。网络参数配置如下。PC上下行网络通信分别红色蓝色的数据流通过LEDE Router转发,PC在Router上是二层转发。
4.2配置虚拟网卡
需要模拟路由,需要配置两个虚拟网卡,分别配置如下:
配置VMnet0为主机模式,配置VMnet1为桥接模式,桥接到物理接口上。其原理就是,在LEDE系统中有两个接口,eth0作为LAN口,eth1作为WAN口使用;而这两个接口跟VMnet*接口有对应的关系。一定要按照这个顺序配置。WAN口桥接是为了跟上行路由器处于同一网段使用。LAN口作为主机接口仅用于接口通信(或LAN口也配置为桥接模式。
注意:VMnet0子网地址段需要配置成与Router的LAN接口同网段192.168.100.0。否则可能网络不通。
查看LEDE中的网络接口信息:
root@Openwrt:~# ifconfig
br-lan Link encap:Ethernet HWaddr 00:0C:29:D9:F8:E2
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed9:f8e2/64 Scope:Link
inet6 addr: fd04:64ed:d8b7:4::1/62 Scope:Global
inet6 addr: fd51:d813:a03a::1/60 Scope:Global
inet6 addr: fd51:d813:a03a:4::1/62 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:32063 errors:0 dropped:24 overruns:0 frame:0
TX packets:28598 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2605197 (2.4 MiB) TX bytes:15850313 (15.1 MiB)
eth0 Link encap:Ethernet HWaddr 00:0C:29:D9:F8:E2
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:130246 errors:0 dropped:0 overruns:0 frame:0
TX packets:29750 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:34853815 (33.2 MiB) TX bytes:17440958 (16.6 MiB)
eth1 Link encap:Ethernet HWaddr 00:0C:29:D9:F8:EC
inet addr:192.168.100.176 Bcast:192.168.100.0 Mask:25