技术博客存档 - 分享GPS、DNS、网络、Linux等技术文章
也说说ip_conntrack
也说说ip_conntrack ip_conntrack是一个连接跟踪模块。经常被不小心开启,然后引发各种问题。比如连接太多,造成机器都登录不上,dmesg输出大量的 ip_conntrack: table full, dropping packet. 这个时候很多人会先把ip_conntrack_max调大,来试图缓解这个问题,有时也是可以的。一般需要调整的参数主要有: …
TCP三次握手的意义
TCP三次握手的意义 大家去面试的时候,经常都让简单介绍TCP的三次握手。上半年我也去面试了一下,问了十多个人,基本都只能简单说出三次握手的SYN,ACK-SYN,ACK的发送顺序。不过基本没有人能完成说出三次握手的关键所在。 三次握手的功能主要实际包括几种: 接触和通信。 序列号的交换。client和server端把自己的初始序列号isn(一个随机数)告诉对方。 MSS协商,协商发送报文的最大长 …
ospf的dr、bdr
ospf的dr、bdr ospf协议中是有多种网络类型: 点到点网络(p2p) 广播网络(broadcast) 非广播多路访问(nbma) 点到多点(p2mp) 虚链路(virtual links) 其中只有广播类型和非广播多路访问是有DR,BDR的。其他三种网络类型都是没有DR,BDR的。比如P2P的 对于广播类型和非广播多路访问类型的OSPF,都是需要靠DR(BDR)来做LSA …
snat dnat测试
snat dnat测试 今天同事问了个dnat的问题,就是在linux服务器上把某个端口的流量dnat到上面跑的某个kvm虚拟机上没有正常工作,简单看了下就是ip_forward没有打开。。 想着自己也很多没有搞过这些了,简单试试snat+dnat。基本的结构是 目的使用192.168.100.17做代理服务器,专门做SNAT+DNAT,练习NAT的使用。 …
igb Detected Tx Unit Hang
igb Detected Tx Unit Hang 公司大量的服务器使用了intel的网卡,主要是intel I350/82580/82576。 各个版本的igb驱动都出现过detected tx unix hang的报错。 大部分是老版本igb的bug,更新到新版后基本都解决了。不过最近发现有几台I350(4端口)的升级了驱动还是存在这样的报错。 Detected Tx Unit Hang in …
iptables使用tee模块镜像流量
iptables使用tee模块镜像流量 一般的流量镜像需要在交换机上做,实际上iptables也有个tee模块做流量镜像。在OpenWrt里使用也比较简单。 把tee模块安装上加载进去(需要依赖ipv6模块) opkg install kmod-ipt-tee 2.把某个源IP的包镜像发到指定的IP iptables -t mangle -A PREROUTING -s 192.168.3.224 …
使用memtester测试内存
使用memtester测试内存 最近有几个新的服务器,经常有一堆内存的报错。并且是服务上线后才发现的,dmesg里能看到很多错误信息,但是带外直接看sel log又没有异常。尝试了下使用http://pyropus.ca/software/memtester/来测试。 使用比较简单,直接编译安装后,放screen运行。 Usage: memtester [-p …
adjtimex使用
adjtimex使用 今天遇到一个ntp的同步问题。服务器上配置好了ntpd,在启动前也手动进行过同步,但是过段时间ntpq查询发现服务器即便能选出同步服务器,但是系统的时间偏差越来越大。 服务器上实际有2个时钟,一个是主板电池驱动的硬件时间(RTC或者CMOS时间),另外就是系统时间。服务器启动时会从RTC里读取一次时间,之后便靠中断来计时。可以设置ntpd同步后讲时间写回RTC. 语 …
使用dnspython解析zone文件生成反解记录
使用dnspython解析zone文件生成反解记录 今天试了下使用dnspython来解析zone文件,然后把IP->Domain信息输出来。按照PTR格式输出到zone文件里面。 <br />#!/usr/bin/env python2.7 import dns.zone import dns.ipv4 import os.path import sys import …
处理libc链接被误删
处理libc链接被误删 最近有同学找到我,说是libc的一个链接被误删了.在libc的一些链接被删除后,ssh就不能登陆了,因为基本所有的动态链接的程序都是需要使用libc pm@debian:/ $ ldd /usr/sbin/sshd |grep libc.so libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 …