GNUer's Blog

技术博客存档 - 分享GPS、DNS、网络、Linux等技术文章

bind主备同步关注点

bind主备同步关注点 最近遇到几次DNS的主备同步问题。 每分钟动态生成反解,然后发现有的slave服务器上不更新。 通过日志看到每次都是最后一个slave机器收到notify消息去master上请求传输zone时有报错,提示master服务不可用。后来发现是master上的transfers-out没有单独指定,这个值默认是10,所有可能比较多slave机器请求时就失败了。把这个配置根据实际的 …

自动化配置ospf

自动化配置ospf ospf的部署因为涉及交换机配置和服务器上qugga的配置,在配置的时候一般都比较麻烦。对应ospf的一些关键配置项需要在配置前协商好,比如 hello-interval 和 dead-interval如果不匹配的话是没有办法建立起邻居关系的,另外还有ospf类型(p2p or 广播类型,etc),验证的方式、密码,area ID。当前这些都是建立在网络接线没有任何问题的前提 …

配置VM使用单独的VLAN

配置VM使用单独的VLAN 实际在部署虚拟化的时候我们往往都会把宿主机和VM各自的地址段单独规划。借助OpenWrt可以自己划分一下vlan。OpenWrt上设置vlan tag可以参考之前的文章。比如我的network配置文件,划分了3个VLAN(其实最好不要使用vlan 0),非默认vlan里每个lan口都是打了vlan tag: config interface …

dns 递归时的NS选择

dns 递归时的NS选择 一个域名的权威DNS往往都有多个,有其实域名服务商或者一般的互联网大公司的NS可能非常多。那么我们的local dns做递归的时候是如何选择使用哪个NS呢。一般是根据SRTT算法来做选择。不过的软件的方式有所不同,总的来说有几种: 选择RT最短的NS。 平均选择RT小于一定阈值的NS。 把NS参考RT和一些其他的因素进行排序,按照不同的比例进行选择。 可以参考一下这 …

KVM VM在线迁移及Qos测试

KVM VM在线迁移及Qos测试 做公有云的应该都能感受到比做私有云多N倍的痛苦。比如服务器硬件的问题,如果是内部的应用按理说应用都做到了无状态,随便挂几个机器基本没有任何影响,把机器下线慢慢修就行。但是对于有上十万台服务器规模的人来说,每周挂几十个机器是非常非常平常的,有时内核有bug你也无能为力,升级肯定是需要重启机器的,会对上面跑的VM造成影响,不升级就只有等死。虽然说xen和kvm都是有热 …

dns解析超时的排查

dns解析超时的排查 这几天有开发同学反馈说是线上的应用dns解析总是失败,我自己测试了连续dig 1000次都是正常的。今天也把合作方的同学一起叫上了。因为之前是看对方有的CNAME设置的TTL是0,造成每次需要重新解析,dns服务器没有办法做cache。 今天排除了很久,后来看了线上的日志才发现问题的本质是业务量非常小,每天就几十笔调用,即便对方把TTL改成60后,实际每次应用服务器查询dns …

使用localmodconfig配置内核

使用localmodconfig配置内核 之前每次编译内核都是自己慢慢手动把每个选项都确认一下。费时间不说,主要之自己最终实际还是编译了很多不用的模块,造成编译的时间是比较长的。今天试了下localmodconfig还不错。现在的内核配置的时候都是可以先make localmodconfig的,这个只是把当前内核加载了的模块都选上。如果自己有额外的没有插在电脑上的硬件驱动需要支持,可以单 …

合并CIDR地址段

合并CIDR地址段 最近由于需要用iptables设置一些过滤规则,也有bind里配置acl的时候有合并地址段的需求。看了下cpan里有个现成的模块,几行代码就可以做这个合并工作。 #!/usr/bin/perl use strict; use warnings; use Net::CIDR::Lite; my $cidr = Net::CIDR::Lite->new; while (my …

把ssh当socket代理

把ssh当socket代理 有的时候需要一个简单的tcp代理。其他机器通过这个机器做代理上网。可以选择在这个服务器上部署squid之类的做透明代理,不过简单期间也可以直接使用ssh隧道转发,有大家用ssh翻墙的方式有点类似。 比如有A,B,C三台机器,只有C能上外网。除了在A,B上使用ssh -D xxx C的形式外,也可以就在机器C上开一个允许外部访问的端口。在机器C上运行: ssh -g -D …

windows下缩短time_wait的时间

windows下缩短time_wait的时间 最近线上遇到windows机器访问其他机器的时候失败的情况。实际就是本地的端口不够用造成的。 $ netsh interface ipv4 show dynamicportrange protocol=tcp Protocol tcp Dynamic Port Range ——————————— Start Port : 49152 Number of …