一年总结(一) - idle

一年总结(一)

views63 posted @ 2012年4月08日 17:42 in II with tags 为工具所累 工作? sqlite3 , 2603 阅读

离职手续正在办理中,第一份工作就要结束了。尽管我很珍惜这份工作,可公司、领导太过分!一年多来先后做了三个项目,现在还是三个项目同时在做。懒人一个,平时没时间、没心情写总结。就要走了闲来无聊,写点东西打发时间。

PTN 传输、WLAN、7750 路由器,一年多来做的都是粗活没什么技术含量。在 WLAN 上面花的时间比较多,总结就从这个开始吧。

WLAN 的基础知识网上很多,就在此不赘述了『其实是避实就虚……』。AC 的配置方法就我接触到的有两种:思科的 IOS 系纯 CLI,如思科,锐捷等;OEM/OMD 的,如上海贝尔、中兴通讯、三元达等,其实是无锡中太代工软件、阿德里亚(Aruba)硬件,在 Linux 底层上加一个业务平台。其中 IOS 系的,只是看别人操作过,我不会。在中太这套方案中有一个很重要的 sqlite3 数据库:icac_cfg.db,所有在 web 界面配置的数据都存储在这个文件里面。也正是因为这样,通过 web 界面配置的自然也可以通过 sqlite3 数据库配置。通过 web 界面配置,如添加热点等,网上也多的是,在此也不赘述。我就说说网上没看到的,通过 sqlite3 数据库如何配置。

该文件位于 /icac/db/icac_cfg/icac_cfg.db,因为 sqlite3 的位置没有在 Linux 的环境变量中,只能通过 /icac/local/sqlite/bin/sqlite3 /icac/db/icac_cfg/icac_cfg.db 打开。现在只要知道数据库的中各表的结构,剩下要配置什么就是 SQL 的事情了。以添加热点为例,这说这个之前先要知道添加热点的流程:

1.新建 AP 分组。导入 AP 的 MAC 地址及其对应的信道、功率,还应包含 AP 名称、所属热点名称等便于后期维护;

2.新建 WLAN 分组并配置该分组的 AP 参数。包含 SSID、VLAN、认证方式等;

3.分组策略关联。选择创建的 AP 分组,在 WLAN 分组中选择需要关联的 WLAN 分组;

4.WLAN-VLAN 关联。

# AP 分组表的结构,无需多解释,看一下创建 AP 分组表的语句就明白了。

CREATE TABLE ApGroup(
    ApMac           varchar(32)     not null,
    GroupName       varchar(32)     not null,
    Location        varchar(32)     default "",
    ApName          varchar(32)     default "",
    Description     varchar(128)    default "",
    primary key(ApMac)
);

添加记录实例

INSERT INTO ApGroup VALUES('00-17-7b-33-48-57','SXJTJ','松溪交通局','FJNAP-MA-WLAN-AP-SXJTJU-04-001','聚类商业楼宇');

AP 的信道、功率信息是存储在表 ApRadioConfig 中

CREATE TABLE ApRadioConfig(
    ApMac             varchar(32)     not null,
    RadioId               int            not null,
    BGChannel             int            default 0,
    RateSet               int            default 0, --0-auto value*10
    PowerCfgType          int            default 0, --0-auto switch 1-% 2-value
    PowerSet              int            default 0, --
    RadioType             int            default 5, --1-11b  2-11a 4-11g 8-11n
    RfSwitch              int            default 0, --0-enable 1-disable
    RateSet11n            int            default 0, --0,1-16
    SpatialMultiplexing   int            default 1, --1-1X1 2-2X2
    AMPDU                 int            default 0, --0-disable 1-enable
    ChannelBandwidth      int            default 0, --0-20MHz 1-auto 2-40- MHz 3-40+ MHz
    ShortGI               int            default 0, --0-Long(800us) 1-Short(400us)
    GreenfieldMixed       int            default 0, --0-Mixed 1-Greenfield
    AMSDU                 int            default 0, --0-disable 1-enable
    primary key(ApMac,RadioId)
);

实例

INSERT INTO ApRadioConfig VALUES('00-17-7b-33-48-57',1,1,0,1,1000,5,0,0,1,0,0,0,0,0);

# 创建 WLAN 分组
表结构

CREATE TABLE WlanGroup(
    WlanGroupId     int             not null,
    WlanGroupName   varchar(32)     not null,
    primary key(WlanGroupId)
);

实例

INSERT INTO WlanGroup VALUES(3,'SXJTJ');

WLAN 分组配置存储在表 WlanCfg 中

CREATE TABLE WlanCfg(
    WlanId                    int          not null,
    WlanGroupId               int          not null,
    WlanServiceIfIndex        int          default 0,
    MacType                   int          default 0,
    TunnelMode                int          default 0,
    SecurityMode              int          default 0,
    SecuConfigIndex           int          default 0,
    Ssid                      varchar(32)  default "",
    HideSsid                  int          default 0,
    VlanID                    int          default 0,
    QosLevel                  int          default 0,
    MaxUserNum                int          default 0,
    ConfigFlag                int          default 0,
    MacAclPolicy              int          default 0, --0:open,1:white,2:black
    MaxTraffic                int          default 0, --add  down traffic
    UserMaxTraffic            int          default 0, --add  down traffic
    MaxSsidUpTraffic          int          default 0, --add, up traffic
    MaxUserUpTraffic          int          default 0, --add, up traffic
    TrafficLimitType          int          default 0, --流量控制方式
    TransmitType              int          default 1, --接入转发方式
    primary key(WlanId, WlanGroupId)
);

实例

INSERT INTO WlanCfg VALUES(1,3,0,0,0,1,0,'CMCC',0,3843,0,20,1,0,0,0,0,0,0,0);

# 分组策略关联
表结构

CREATE TABLE GroupPolicy(
    ApGroupName           varchar(32)     not null,
    WlanGroupId           int             default 0,
    TimeLimitGrpId        int             default 0,
    primary key(ApGroupName)
);

注意该表的记录已经在前面的操作中自动创建,所以只需对其中的记录需改。

update GroupPolicy set WlanGroupId='3' where ApGroupName='SXJTJ';

# WLAN-VLAN 关联
表结构

CREATE TABLE WlanPortTable(
    WlanGroupId    int             not null,
    WlanId         int             not null,
    VlanId         int             default 0,
    Port           int             default 0,
    StackVlanId    int             default 0,
    Primary key(WlanId, WlanGroupId)
);

实例

INSERT INTO WlanPortTable VALUES(3,1,3843,0,0);

至此,热点添加完毕。

有 web 界面为何还要用 CLI 呢?效率!例如,某天运营商说要把每个热点的最大用户数从 32 改成 20 了,这时 web 界面就只能一个个热点去改,而用 CLI 只需一句

update WlanCfg set MaxUserNum='20' where MaxUserNum='32';

当然同样基于效率方面的考虑,新建 AP 分组通过 web 界面导入 csv 表格会快很多。其它的配置只要看一下对应的表结构就可以了,无需多言。下一次写 WLAN 组网方式或者就此不再写了。

views63 说:
2012年4月09日 12:57

@Garfileo: 还没着落。在这里资料都是挤牙膏似的要来的,大部分还是没用的。可以通过数据库操作还是我偶然发现的,生命都消耗发现别人造好的轮子上!

towry 说:
2012年5月08日 23:27

和SQL无两样啊,以后我也得学学网络通信方面的东西。

Avatar_small
views63 说:
2012年5月09日 02:20

@towry:就是 SQL 的语法……

Avatar_small
Nob0dy 说:
2012年12月24日 00:17

怎么样?现在做神马工作了?

Avatar_small
views63 说:
2012年12月29日 21:40

@Nob0dy: 转行比想象中的难,运维和网络工程师都去面试过,被刷了,现在在电脑城打杂……不好意思,最近有点忙,不常来看这边

Nob0dy 说:
2013年1月04日 21:01

我觉得还是网络比较容易转过去,继续找网络工程师的工作啊,至少你之前做的是和网络相关的,运维要求也是有点高的……

Avatar_small
views63 说:
2013年1月05日 20:02

@Nob0dy: 是的,相对来说转网络更容易一些。现在基础太差,不管哪个都得提升一下自己的能力才可以,自学或者参加培训

我为卿狂 说:
2014年1月28日 22:23

人的潜力都是被逼出来的,很多知识大学学的没用上,毕了业还是要继续学的。学无止境。

views63 说:
2014年1月29日 09:42

@我为卿狂: 后文是,我居然在电子城一做就是一年多。老板生意惨淡,现状何去何从又是问题了。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter
Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee