当前位置:  建站>运营/SEO
本页文章导读:
    ▪iptables/arptables实现单IP一级二级路由      有时候,你仅仅有一个IP地址,然而却有多台设备,比如公司配发的电脑,自己的笔记本电脑,手机,iPad等,显然公司配发的电脑将是你的这个IP的第一优先占有者,其它的设备将无法接入。.........
    ▪C/C++源码编译警示录              近几年,国内开源越闹越火,不仅软件开源,硬件也开源。去开源中国看看,已经有专门的硬件开源专区,61ic代码工厂提供了许多的硬件(ARM、DSP等)相关的代码。在这.........
    ▪AIX 磁盘管理常用命令      在实践中常用到的命令(网上搜集自己修改) 磁盘信息 1、 检查存储资源是否被系统识别。 重新扫描设备 # cfgmgr –v 查看磁盘:(这里的hdisk可能是本地磁盘或者存储) # lsdev –Cc disk hdisk0 Av.........

[1]iptables/arptables实现单IP一级二级路由
    来源: 互联网  发布时间: 2013-11-01
有时候,你仅仅有一个IP地址,然而却有多台设备,比如公司配发的电脑,自己的笔记本电脑,手机,iPad等,显然公司配发的电脑将是你的这个IP的第一优先占有者,其它的设备将无法接入。如果你手上有一个带有WIFI模块的Linux BOX,你可能会想到建立二级路由,然而此时你的那台公司配发的机器就会被隐藏在这个BOX后面,如果你的BOX在WAN口做了基于状态的MASQURADE地址转换,那么所有针对你的被隐藏的工作机的主动访问都将不可能,除非你配置复杂的DNAT规则或者路由规则。
        现在,事情不同了,你可以将这个唯一的IP地址配置在你的工作机上的同时,也可以让所有的其它设备使用。
步骤:现在假设你的BOX有三个网口,分别是两个以太口:eth0,eth1以及一个WIFI口:wlan0,下面是一系列的操作:
你拥有的唯一IP及其配套配置:
地址:192.168.10.79/24
网关:192.168.10.1
1.桥接所有这些口
brctl addbf br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl addif br0 wlan0
2.为br0配置一个IP地址供WIFI使用(省略DHCP POOL以及DNS的配置过程)
接入设备数量限制一下:
ifconfig br0 172.20.1.1/28
3.可选1:为br0增加一个Secondary IP以便成功增加默认路由
ifconfig br0:0 192.168.10.255/23
注意,以上的prefix 23值得说明一下,原始的子网的掩码是255.255.255.0,现将prefix减少1位,此时你就可以使用原始网络中的broadcast地址作为一个IP地址了,这个地址不会和任何地址冲突。
route add default gw 192.168.10.1
4.可选2:使用force-onlink路由直接强制增加路由
ip route add 0.0.0.0/0 via 192.168.10.1 dev br0 onlink
5.增加地址转换规则,凡是WIFI包的源地址都转换成你唯一的那个IP地址
iptables -t mangle -A PREROUTING -m physdev --physdev-in wlan0 -j MARK --set-mark 100
iptables -t nat -A POSTROUTING -m mark --mark 100 -j SNAT --to-source 192.168.10.79
6.可选2的情况下增加arp
由于使用了force-onlink路由,意味着你的BOX上没有和192.168.10.0/24处于同网段的IP地址,那么当往192.168.10.1这个默认网关发包的时候,ARP请求将可能得不到回复,这涉及到默认网关的arp_filter或者等价配置的配置情况,因为arp请求的源是唯一的172.20.1.1这个地址,请求的是地址和它不在一个网段!
因此需要一条arptables规则:
arptables -t mangle -A OUTPUT -d  192.168.10.1  -j mangle --mangle-ip-s 192.168.10.79
事实上在可选1的情况下,你配置了一个192.168.10.255这个地址,对于原始网段来讲,它是一个广播,但是对于BOX来讲,它是一个常规IP,因此ARP请求可以发出,封装的源就是192.168.10.255,也可以正常回来,因为请求中的源是192.168.10.255,到达默认网关192.168.10.1后,与其掩码255.255.255.0相与得到192.168.10.0/24,显然属于同一个网段,检查通过,REPLY返回!
效果:整个BOX对于你的工作机就是一个HUB,它的工作毫不受到影响!另外BOX上的WIFI独自引出了一个子网,可以让多个设备接入,当这些设备发出的数据包外出时,BOX会将其源IP地址转换为你那唯一的IP地址,ip_conntrack机制可以保证所有的这些设备相关的流的五元组不会重复。
作者:dog250 发表于2013-8-8 21:41:45 原文链接
阅读:57 评论:0 查看评论

    
[2]C/C++源码编译警示录
    来源: 互联网  发布时间: 2013-11-01

        近几年,国内开源越闹越火,不仅软件开源,硬件也开源。去开源中国看看,已经有专门的硬件开源专区,61ic代码工厂提供了许多的硬件(ARM、DSP等)相关的代码。在这种趋势下,从头开始写一个软件或算法已经是上个世纪的事了,我们多多少少会从开源代码中借鉴点经验,甚至好的算法或中间件都会直接拿来用,当然,工程需要付费的就需要掏money了,不过提供开源免费代码的网站却还真不少,最有名的有sourceforge,github。我常常从github上下载别人的代码,尽管github中的代码良莠不齐,但长尾理论的告诉我们:除了Linux这种牛逼排名靠前的优秀源代码外,那些star较低的Repositories中也有许多好的可供我们学习甚至可以直接在工程中使用的代码,但需要我们去发现。

        哎哟,扯远了,回到正题……因为我们现在有太多可用的代码,我们不用从头编写,而要做的大部分工作都是移植(更专业点的叫重构),这里将持续地将自己移植工程(主要是C/C++工程)中遇到的问题及解决过程记录下来,“掘地三尺非一日之功”,这是一个积累的过程。


1. 出现大量的 link error #10056: symbol "_fann_set_scaling_params" redefined

【情况】

在链接一个神经网络的C语言库fann时,出现大量的类似上面redefined错误,错误原因很明显,“_fann_set_scaling_params重复定义”,而我在工程里找遍了,发先确实都只在一处有定义。

【解释】

_fann_set_scaling_params是编译后.obj文件中的标识符号(symbol,一般这些符号开头带下划线),以上错误出现在链接的时候,这说明多个.obj文件中出现了_fann_set_scaling_params的定义。我们知道,C编译器是根据.c文件编译的(即一个.c文件生成一个.obj,c编译器不会主动去编译头文件)。而fann库有所不同,其中一个floatfann.c文件中有这样几行代码:

#include "fann.c"
#include "fann_io.c"
#include "fann_train.c"
#include "fann_train_data.c"
#include "fann_error.c"
#include "fann_cascade.c"
你没看错,c语言中也是可以包含.c文件的,包含的.c文件会当做共成文件也编译成.obj文件。这就明白了,我将上面包含的几个.c文件添加到了工程里面,而这里又包含了这几个.c文件,同一个.c文件编译了两次,当然会出现重复定义了。

【解决办法】

第一种方法,将上面使用include包含的.c文件从工程中移除,第二种方法,将上面的#include "**.c"注释掉,相应的源文件添加到工程中。

注:这是第一个问题,记得之前遇到过很多次类似的问题,每次都迷迷糊糊的弄了好久才解决,甚至程序编译通过后还迷迷糊糊不知道怎么就跑通了,真后悔没早作记录。这次在往DSP上移植fann时又遇到这个问题,谨记。

2. fatal error #5: could not open source file "fann.h"

【解释】

相对于上面的编译错误,这是链接错误,意思是说fann.h头文件打不开,要么压根就没有这个头文件(检查下头文件名有没有错误),要么就是头文件路径设置不对(编译器找到不头文件)。

【解决方法】

在确定有这个头文件的情况下,eclipse C/C++中解决问题的方法是,工程右键->Properities->Build->Compiler->Include Options,在-I选项中添加头文件所在目录。关于这一点,用过Linux下gcc编译器的就会对头文件搜索路径,库搜索路径这些内容特别敏感,因此,这里强烈推荐做软件(尤其是C/C++软件)的要学会gcc的使用,这对学会构建工程非常有用。



待增加中……



作者:xiahouzuoxin 发表于2013-8-9 15:19:47 原文链接
阅读:6 评论:0 查看评论

    
[3]AIX 磁盘管理常用命令
    来源: 互联网  发布时间: 2013-11-01
在实践中常用到的命令(网上搜集自己修改) 磁盘信息

1、 检查存储资源是否被系统识别。

重新扫描设备

# cfgmgr –v

查看磁盘:(这里的hdisk可能是本地磁盘或者存储)

# lsdev –Cc disk

hdisk0 Available 01-08-00 SAS Disk Drive

hdisk1 Available 01-08-00 SAS Disk Drive

hdisk2 Available          Other iSCSI Disk Drive

检查PV信息。

# lspv

hdisk0      00cb45e5678b2a2b                    rootvg          active

hdisk1        00cb45e500864dcc                    None            

hdisk2          None                              None         

创建PV使设备能被系统使用

给hdisk2分配一个PVID使 hdisk2可用

# chdev –l hdisk2 –a pv=yes

# lspv

hdisk0      00cb45e5678b2a2b                    rootvg          active

hdisk1      00cb45e500864dcc                    None           

hdisk2      00cb45e5115f3a33                    None

 

其他相关命令

# lspv hdisk2             物理卷详细信息

# lspv -l hdisk2          物理卷上分配的逻辑卷信息

# lspv -p hdisk2          物理卷上物理分区分布的情况

# rmdev -l hdisk2 -d       从ODM库中彻底删除hdisk0

# extendvg rootvg hdisk1      向卷组中加一个物理卷

# migratepv -l lv01 hdisk0 hdisk1      把属于lv01的pp从hdisk0移动到hdisk1

 

 

创建VG并使用上PV

创建VG 使用hdisk2

 # mkvg –y mqvg –d 6 –s 8 hdisk2

mqvg为VG名,-d 6 表示最多包含6个物理卷,  -s 8  pp为8m , 包含物理卷为hdisk2。

# lspv

hdisk0       00cb45e5678b2a2b                    rootvg          active

hdisk1       00cb45e500864dcc                    None           

hdisk2      00cb45e5115f3a33                    mqvg            active

其他相关命令

# lsvg -l vgname   查看vg中包含的lv

# lsvg -p vgname   查看vg中包含的pv

# chvg -ay vgname  系统启动时自动激活vg

# chvg -an vgname  系统启动时不激活vg

# extendvg vgname hdisk9   向卷组中加一个物理卷

# reducevg datavg disk2    vg中删除一个物理卷,之前必须用rmlv删除该物理卷上的所有lv

如:

# mklv -y wolflv -t jsf rootvg 10

wolflv

# lsvg -l rootvg

rootvg:

LV NAME               TYPE       LPs     PPs     PVs  LV STATE           MOUNT POINT

hd5                 boot       1       2       2    closed/syncd  N/A

hd6                 paging     12      24      2    open/syncd    N/A

hd8                 jfs2log    1       2       2    open/syncd    N/A

hd4                 jfs2       45      90      2    open/syncd    /

hd2                 jfs2       7       14      2    open/syncd    /usr

hd9var              jfs2       1       2       2    open/syncd    /var

hd3                 jfs2       20      40      2    open/syncd    /tmp

hd1                 jfs2       1       2       2    open/syncd    /home

hd10opt             jfs2       1       2       2    open/syncd    /opt

hd11admin           jfs2       1       2       2    open/syncd    /admin

dzytest             jfs        2       4       2    open/syncd    /dzytest

loglv00             jfslog     1       2       2 &n

    
最新技术文章:
▪SQVI和SAP查询QUERY的区别和使用注意事项    ▪彻底理解Cisco/Linux/Windows的IP路由    ▪Exchange 2010 处于禁止发送用户自动收到来自IT...
▪MB_CHANGE_DOCUMENT使用方法    ▪ALV的html表头    ▪【译】如何精确判断最终用户响应时间过长的...
▪apache2.4.4启用deflate压缩    ▪使用vmware 配置centos 6.0+ 网络出现的各种问题...    ▪十句话教你学会Linux数据流重定向
▪centos6.x已经安装的系统添加图形界面    ▪Linux查看CPU和内存使用情况    ▪win7问题解决,凭据管理器和无法访问,不允...
▪Dynamics CRM 2013 初体验(4):不再被支持的功...    ▪win7下制作ubuntu系统安装启动盘和U盘安装ubuntu...    ▪Linux cp -a用法
▪Windows Server时间服务器配置方法    ▪Tomcat+memcached实现Session共享    ▪Linux修改系统环境变量PATH路径的方法
▪Citrix 服务器虚拟化之二十七 XenApp6.5发布服务...    ▪搭建本地Ubuntu 镜像服务器    ▪Create local metadata resource of yum
▪tsm ANS0326E问题处理    ▪Windows SVN变化邮件通知(Python2.7实现)    ▪linux下的内核测试工具——perf使用简介
▪Nginx TCP Proxy模块的编译安装    ▪OSX: SSH密钥使用日记(2)    ▪OSX: SSH密钥使用日记(1)
▪Manually start and stop Oracle XE in Ubuntu    ▪Disable autostart of Oracle-xe in Ubuntu    ▪tar命令-linux
▪xtrabackup-2.1.2-611安装    ▪无废话ubuntu 13.4文件共享配置    ▪Unix文本处理工具之sed
网络技术 iis7站长之家
▪hpux 操作系统磁带备份与恢复    ▪用C++编程调用libvirt的API来创建KVM虚拟机    ▪hpux- hp小型机日常硬件故障处理case(一)
▪web集群时session同步的几种方法(统计)    ▪inux常用命令大全    ▪BAT 批处理实现循环备份N天文件夹
▪BIND9私有DNS服务器小环境搭建实验    ▪Exchange2013增量备份    ▪OSSEC Monitor your App log file
▪《深入理解Nginx》阅读与实践(三):使用upstre...    ▪如何给Fedora 15创建磁盘分区    ▪Packet Sniffer Code in C using sockets
▪Error, some other host already uses address    ▪修改uCOS_II以实现“优先级+时间片”联合调度    ▪weblogic开发模式与生产模式介绍
▪Wireshark 高级特性    ▪ubuntu13.04版本下安装RabbitVCS,类似windows的Tortoi...    ▪Apache 一台主机绑定多个域名及虚拟主机
▪linux安全设置    ▪RHEL双网卡绑定    ▪Linux shell if参数
▪Windows配置路由时可以指定源地址啦    ▪centos安装vim7.4    ▪S3C2410 实验三——块拷贝、字拷贝(寄存器的...
▪系统运维——日志处理    ▪ip_conntrack缓存neighbour    ▪关键在封装并发出了帧-IP冲突也无所谓
▪weblogic11g 安装——linux 无图形界面    ▪《数据通信与网络》笔记--SCTP    ▪《数据通信与网络》笔记--TCP中的拥塞控制
▪weblogic11g 安装集群 —— win2003 系统、单台主...    ▪weblogic11g 节点管理器 nodemanager    ▪Citrix 服务器虚拟化之二十六 应用程序虚拟化...
▪如何将windows下的文件夹挂载到linux虚拟机下    ▪在64位AIX6.1下安装SAP JCo    ▪Outlook启动时提示“找不到文件Outlook.pst文件”...
▪weblogic8.1 登陆5 ip 限制    ▪weblogic 内存 及 内存溢出    ▪手把手教你在Windows端搭建Redmine项目管理软件
▪启动及重新启动nginx,重启nginx后丢失nginx.pid问...    ▪Win7实现快速启动栏并实现靠左边的终极操作...    ▪《深入理解Nginx》阅读与实践(二):配置项...
▪显示grub引导菜单    ▪nagios监控主机    ▪linux各种数据流重定向
▪centOS安装chrome浏览器    ▪Slackware 14 安装完全指南    ▪SharePoint 2013的100个新功能之内容管理(三)
▪Citrix 服务器虚拟化之二十一 桌面虚拟化之部...    ▪[问,ask]ubuntu13.04安装vncserver后只显示桌面,不显...    ▪Win7中IIS出现“HTTP 错误 404.17 - Not Found 请求的...
▪CentOS快速安装最新版本的SaltStack    ▪CentOS 6.4 快速安装Nginx笔记    ▪磁盘管理——RAID 0
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3