openwrt 开发笔记

本文详细介绍了openwrt系统的log管理,包括logd、rsyslogd和syslogd的使用。接着讲解了配置管理,涵盖网络参数、无线参数和SSH登录的配置。VRRP配置部分涉及编译配置和调试步骤。在VMware环境下搭建LEDE软路由,包括环境准备、配置虚拟网卡、系统访问和软路由安装。此外,文章还讨论了PPTP通过4G ppp拨号的配置,IPsec移植开发,以及WiFi抓包环境的搭建和分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
第31章《openwrt开发笔记》讲解了如何在Ubuntu 12.04和OpenWrt 15.05上进行4G拨号上网。在开始之前,我们需要确保Ubuntu安装了相关驱动程序和依赖项。 首先,我们需要在Ubuntu上安装modem-manager和usb-modeswitch。可以使用以下命令来安装: sudo apt-get install modem-manager usb-modeswitch 安装完成后,我们需要在OpenWrt设备上配置4G拨号连接。连接设备到计算机上,然后通过串口或SSH登录到OpenWrt。 首先,我们需要编辑网络配置文件。可以使用以下命令打开配置文件: vi /etc/config/network 然后,将以下配置添加到配置文件末尾: config interface 'wwan' option proto '3g' option device '/dev/ttyUSB0' option service 'umts' 保存并关闭文件。然后,重启网络服务,使配置生效: /etc/init.d/network restart 接下来,我们需要为4G连接配置一个接口。在OpenWrt中,可以使用以下命令: uci set network.wwan=interface uci set network.wwan.proto='3g' uci set network.wwan.device='/dev/ttyUSB0' uci set network.wwan.service='umts' uci commit network /etc/init.d/network reload 完成以上步骤后,我们可以使用以下命令进行拨号并进行4G上网: /usr/sbin/usbmode -s -v 0x12d1 -p 0x1436 /usr/sbin/usbmode -s -v 0x12d1 -p 0x1001 这将启动拨号过程,并将设备连接到4G网络。拨号成功后,我们就可以在OpenWrt设备上访问互联网了。 综上所述,《openwrt开发笔记》第31章介绍了如何在Ubuntu 12.04和OpenWrt 15.05上进行4G拨号上网。这个过程涉及到在Ubuntu上安装相关驱动程序和依赖项,然后在OpenWrt设备上配置和启动4G连接。完成这些步骤后,我们可以成功地进行4G上网了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值