当前位置:  建站>运营/SEO
本页文章导读:
    ▪关于redhat系统yum源的配置1      安装过Linux软件的用户就知道,有时我们安装一个软件,需要依赖其他软件,所以必需找全所有的软件,这是一个极其麻烦的事情,有没什么方式可以让它自己去找依赖呢? 答案当然是肯定,.........
    ▪一套网络配置随时随地上网      在家,公司座位,公司会议室,公司的角落,客户现场,酒店...等所有地方,你都要配置一遍自己的网卡以保证和所处地点的配置一致,这太烦人了!能不能有一种方式免除这种繁琐配置呢?.........
    ▪Linux系统禁止路由cache      Linux kernel 3.6正式去除了路由cache,原因正如作者所说,它并不适合作为路由表的一部分存在,它是和流量patterns高度相关的,应该作为一种优化在外部实现,比如基于Asic硬卡的转发表中实现,.........

[1]关于redhat系统yum源的配置1
    来源: 互联网  发布时间: 2013-10-31

安装过Linux软件的用户就知道,有时我们安装一个软件,需要依赖其他软件,所以必需找全所有的软件,这是一个极其麻烦的事情,有没什么方式可以让它自己去找依赖呢?

答案当然是肯定,这就需要我们配置一个神器——yum,通过它,我们可以直接安装软件的,我们只需知道软件的名称就可以的,让它把所有的依赖都直接关联起来安装。不过本人最近一段时间使用yum的时候,发现一个很恶心的事情,就是redhat自带的yum非常令人讨厌。

由于 redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装,再配置其他源,以下为详细过程:

一、更改yum软件

1.删除RHEL的yum--这个yum很让人郁闷,总是显示那几行disable的字,很烦人,直接卸载系统自带的yum

rpm -aq | grep yum | xargs rpm -e --nodeps

2.下载CentOS的yum及其依赖的插件

wget http://mirrors.163.com/centos/6/os/i386/Packages/yum-3.2.29-30.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/os/i386/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm
wget http://mirrors.163.com/centos/6/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/i386/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
如果以上的镜像找不到,请查找其他的镜像即可,如:http://mirrors.sohu.com/centos/6.4/os/i386/Packages/

3.安装新的yum

rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm yum-3.2.29-30.el6.centos.noarch.rpm yum-metadata-parser-1.1.2-16.el6.i686.rpm

4.清理yum

yum clean all

建议最好吧rhel....repo这个仓库删除,在/etc/yum.repos.d这个文件夹下,vim /etc/yum.repos.d 直接删除即可。

作者:enson16855 发表于2013-6-20 20:58:35 原文链接
阅读:0 评论:0 查看评论

    
[2]一套网络配置随时随地上网
    来源: 互联网  发布时间: 2013-10-31

在家,公司座位,公司会议室,公司的角落,客户现场,酒店...等所有地方,你都要配置一遍自己的网卡以保证和所处地点的配置一致,这太烦人了!能不能有一种方式免除这种繁琐配置呢?在这个落后的自给自足的DIY时代,对于男耕女织作坊内的耕耘者来讲,答案无疑是肯定的!

sggw模块DIY方案
《OpenVPN以及其它IP层VPN的完全链路层处理的实现》中介绍了一种自动将包回复到发起者的一种方法,其实就是“从哪里来的包在收到其回复包时自动发送到相同的地方”,这个patch module连同ARP代理可以实现即时上网!也就是说,在不启用DHCP时,再也不用换一个地方配一遍IP了,虽然Macbook可以将这件事映射成“位置”这个配置,但是为了一些不常去的地方保留一个“位置”,也不是很好。注意,我这里说的是路由器端的实现,而不是笔记本的实现。具体怎么做呢?
1.路由器开启ARP代理(周末在家试了下,仅开始代理没有成功,也没有查出什么原因,于是对arp_process函数做了点手脚,简化了流程)。
2.路由器安装上述的sggw模块。
3.路由器在WAN口做MASQUERADE地址转换。
试想一个场景,路由器的LAN口配置为1.1.1.1/24,WAN口为2.2.2.2/24,接入路由器LAN口的笔记本IP为192.168.1.34/24,默认网关为192.168.1.254,它想访问WAN,比如IP为128.129.1.1,于是寻址默认网关,因路由器有ARP代理,故而回复了ARP请求,于是数据包发给了路由器,此时sggw模块将这个连接记录了下来,待回复包到达路由器的时候,sggw模块将其发给笔记本!
        也就是说,即使你的笔记本和路由器的LAN不在一个网段,也能正常上网!如果你的所到之处都部署了上面的路由器,那么你就可以只保留一个“位置”了,我的Macbook设置成了公司的“位置”,基于上述的实现,我在家利用公司的位置配置也能上网!但是有一个问题,还以上述为例,万一由于巧合,笔记本的IP和路由器LAN在同一网段怎么办,这时只要真正的网关不在同一网段,或者说真正的网关离笔记本更近以至于路由器的ARP回复可以覆盖掉真正的ARP回复就没有问题,其实这个问题很好解决,解决方式是非技术的,那就是把路由的LAN口地址设置成一些比较奇怪的地址,比如12.32.45.54之类的!注意,它绝不作为目标地址存在,仅仅是一个哨位!
        最后说一下我对arp_process做了什么手脚。不管怎样,笔记本或者PC在发起对网络的访问时,肯定要发ARP请求的,我们知道它是广播的,肯定能到达路由器,既然到了路由器,就能抓到它,从这个ARP请求中,可以得到足够的信息,比如最重要的就是笔记本的IP地址,MAC地址之类的。由于我的BOX仅仅做这个用,于是我的arp_process流程成为:
1.解析ARP请求包,得到发起者IP;
2.看看该IP是否是自己的直连IP,即是否跟自己的LAN网卡处于一个网段;
3.若不是,则直接回复自己的LAN口的MAC地址,若是,则跳到;
4.(此步骤是我开始添加后来删除的)根据发起者的IP添加一条force-onlink路由,网关即该地址;
5.返回;
6.走标准arp_process流程
第4个步骤被我去掉了,因为实在不方便在内核里面加路由删路由,太TM容易panic了!还是将event通过netlink传给用户态好啊!
其它的方案实际上想达到这个效果,还有另外两个DIY方案以及一个常规但不常用方案,DIY方案中一个是修改内核协议栈的ROUTE模块,另一个是基于conntrack工具提供的event监控,我们一个一个说。
修改内核代码的方案:
我们知道有一种force-onlink路由,即使下一跳不是直连网段也能设置上去,因此它是逻辑上在三层没有直连,物理上是直连的,在没有任何设备开启ARP代理的情况下,ARP只能在物理直连段传播,而所谓的force-onlink路由就是直接针对下一跳发送ARP请求的!
        方案就是,针对每一个接入的笔记本或者PC都设置一条force-onlink路由,比如笔记本的IP为4.4.4.4/24,那么就设置下面一条:
ip route add 4.4.4.4/32 via 4.4.4.4 dev LAN onlink;
但是路由器事先不知道有多少机器要接入,更不知道其IP分别是什么,因此必须使用通配的方式来设置上述的路由,比如:
ip route add autolink via link dev LAN onlink;
注意,上述的autolink和link是需要新支持的标志,就是说在针对WAN进来的数据包查找路由时,看下LAN上是否绑定autolink路由,若是,则下一跳直接设置成目标地址。
基于现有的工具的方案:
只要笔记本想发包,ARP代理导致它必定来到路由器,路由器的ip_conntrack会记录包的源IP地址是多少,这个可以通过以下的命令行来监控:
conntrack -E -e NEW;
既然监控的到,就可以为其设置一条路由,比如监控到源IP为A,那么就执行下面的命令:
ip route add A/32 via A dev LAN onlink;
使用conntrack工具可能会因为延迟带来不可预知的错误,因此可以使用更好的方案,那就是NFQUEUE target,因为QUEUEU是同步的,可以控制在添加好force-onlink路由之前不把QUEUE上来的数据包INJECT回去,注意,和conntrack event监控一样,只需要对NEW包QUEUE即可。
        既然是动态添加,就涉及到了动态删除的问题,可以采用最近最不经常使用的算法,加入GC机制。
常规方案:
落后会带来DIY,等都能流水化了,就没人DIY了,大部分人拿到手的东西是来用的,而不是来折腾的,如果花钱能带来简单,我就决不DIY,大量供货的物品,你也不会花很多钱,我知道,生命有限,应该来折腾的是人生本身,所谓DEBUG THE LIFE,而不能玩物丧志!IPv6天生针对叶子角色的终端就有自动配置的功能!然而对于IPv4,其自动配置虽然RFC也有明确的建议文档,比如Router Advertisement,Router Solicitation,Address XXX等ICMP就是可用的,然而很多主流的系统内核协议栈都没有实现,也许使用DHCP可以更加灵活地控制分配过程以及安全策略吧。
作者:dog250 发表于2013-6-20 19:48:15 原文链接
阅读:72 评论:0 查看评论

    
[3]Linux系统禁止路由cache
    来源: 互联网  发布时间: 2013-10-31
Linux kernel 3.6正式去除了路由cache,原因正如作者所说,它并不适合作为路由表的一部分存在,它是和流量patterns高度相关的,应该作为一种优化在外部实现,比如基于Asic硬卡的转发表中实现,况且,现有的路由cache在大多数情况下并不会带来显著的性能提升,如果你频繁flush cache后带来了性能下降的话,其中很多因素是flush操作本身以及lookup的read lock造成的。然而如果你使用的是低于3.6版本的内核,你将不得不面对路由cache,既然它给不了你太多的好处,那么如果它反而给你带来了坏处,你对它的态度就不仅仅是诅咒了!
面临的一个路由cache带来的危害路由cache和基于mark的policy routing之间的不配合造成了产品的一个bug,让我连续几日陷入了烦恼!我们知道,mark目前只能靠Netfilter的钩子来在标记,而PREROUTING处的标记在ROUTING之前,在Linux中,不管是iptables rule还是一条policy routing item,都是配置后立即生效的,两个操作不能合并为一个单独的原子操作,这就造成了问题:
1.现在需要一条rule为packet做mark,一条policy routing item基于该mark做路由,于是就有两条Linux命令;
2.执行上述两条命令前,有感兴趣数据包持续通过BOX,造成了路由cache;
3.先执行了mark rule,此时在policy routing item还未执行时进来一个感兴趣packet匹配到了mark,然而没有匹配到policy routing;
4.如果你的policy routing table配置的是fall though,问题就来了,lookup进入main table,配置到原始的路由,被cache住;
5.如果一直有持续的感兴趣流,那么上述的mark-policy routing将永远不会生效。
可能你会说,将mark rule和policy routing item的设置顺序互换一下即可,然而即使那样,如果你的实现是有状态的,你还要面临另外一个cache,即conntrack cache的问题。可能你还会说,fall though换成default unreachable去掉即可,但是那样就会和实现的语义有很大的差别。因此禁用路由cache势在必行!
如何禁用路由cache又是一段艰难的旅程!/proc/sys/net/ipv4/route/下面的参数调了个遍也没有成功,route -C -n还是显示出了一大堆恶心的乱七八糟的东西。于是还是google以及看代码,发现了以下的参数:
rt_cache_rebuild_count - INTEGER
        The per net-namespace route cache emergency rebuild threshold.
        Any net-namespace having its route cache rebuilt due to
        a hash bucket chain being too long more than this many times
        will have its route caching disabled
作为确认,在route.c中的IP的input/output中,查找cache之前有一个判断:

if (!rt_caching(net))
        goto skip_cache;
这样就跳过了cache查找,而rt_caching的实现超级简单:

static inline bool rt_caching(const struct net *net)
{
    return net->ipv4.current_rt_cache_rebuild_count <=
        net->ipv4.sysctl_rt_cache_rebuild_count;
}
加之sysctl_rt_cache_rebuild_count是int型的,只要保证上述函数永远返回0即可,于是将sysctl_rt_cache_rebuild_count设置为-1,成功禁用了路由cache!

总结不要天真地认为什么cache都会提高效率,在Linux路由cache的例子中,查找路由表是hash/trie查表,查找cache也是一个hash表,另外如果你的路由表只有一条默认路由,cache项的数量要远远大于路由表项的数量,此时cache仅仅就是直接使用了dst_entry,而不用从result里面把路由表项的字段抠出来设置进新申请的dst_entry中,浪费的查表时间得到这个一点收益...其实,只要路由表中有前缀小于32位的路由表项,都有可能出现上述情况,因此在cache查找机制和路由表查找机制没有本质区别的情况下,路由cache并没有达到预期的效果!相反,路由cache应该在PREROUTING的时候做,而不是到ROUTING的时候再做,在PREROUTING中,可以方便地使用Netfilter将cache实现在硬卡中。
        在确定行为的情况下,cache会提高效率,在行为模式不固定的情况下,cache的作用就是浪费资源,扰乱视听!老师罚你把“猪血”连续写10遍,此时你就可以连续写10个“猪”,再连续写10个“血”,肯定比连续写10个“猪血”要快一些,然而如果你是一位同声传译员或者一位速记员,你千万别把刚刚听到的记在脑子里...
作者:dog250 发表于2013-6-20 19:31:59 原文链接
阅读:67 评论:0 查看评论

    
最新技术文章:
▪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
▪hpux 操作系统 磁带备份与恢复    ▪HP DL360 G7通过iLO部署系统    ▪Redhat 6.0中VNC Server的配置方法
▪hpux 操作系统磁带备份与恢复    ▪用C++编程调用libvirt的API来创建KVM虚拟机    ▪hpux- hp小型机日常硬件故障处理case(一)
▪web集群时session同步的几种方法(统计)    ▪inux常用命令大全    ▪BAT 批处理实现循环备份N天文件夹
▪centos6.x已经安装的系统添加图形界面    ▪Linux查看CPU和内存使用情况    ▪win7问题解决,凭据管理器和无法访问,不允... iis7站长之家
▪《深入理解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