网络分层

看到一段感觉写得不错的分层小述,手敲一遍:

当网卡接收到数据后,硬件网卡会给CPU发硬中断,CPU在指令周期内指示操作系统软件从网卡缓冲区取走数据,然后操作系统将数据交给TCP/IP栈(内核态的一个进程)来处理,在处理过程中,通过解析二层网络数据帧头中的MAC地址来决定在二层网络中的转发,如需三层网络转发就继续由TCP/IP栈来解析三层网络数据包头中的IP地址来决定三层网络中的转发,以此类推;二层[……]

Read more

虚拟机未分配IP地址的问题

尽管为了提高VM启动性能,可以采取静态固定IP的方式来取代DHCP,但私有云当中还是有些环境依旧保留有DHCP方式,在并发进行云主机生命周期的时候,偶尔出现有未正常分配IP地址的情况,这部分需要好好分析下

这里说的涉及到DHCP的问题,首先主机这边应该能够查询到对应PORT的IP地址,但是在虚拟机内部,网卡的IP地址却为空,此时分析的大概流程如下

1:dhclient获取一次,通过dhclient[……]

Read more

网络连通性测试

nas的上线依赖于网络,因此和网络有着千丝万缕的联系,需要验证nas在正常上线和非正常的时刻,网络的健康状况,要进行这项测试,就需要两个数据结果,一个是nas上线的时间点,另一个就是网络连通性正常的时间点,但这两点必须是独立的,因为最终的测试需要验证的是两个方面,nas正常上线的时候和网络连通性正常双方的时间间隔有多久,nas不正常的时候网络是否正常,最终的目的就是为了确认nas异常与网络的相关性[……]

Read more

网卡Attach之后的反应

昨天被一个感觉很烂的环境折磨了半天,今天又在上面试了下一个新功能,记录下走了一些比较弱的弯路

首先,不带任何PORT创建一台VM,未来资源池的实现姿势

然后,创建网卡,挂载上去,因为这场景实在是太弱,直接自动化脚本里实现好,来个N并发,结果卡在了网络连通性验证上,看到这里,没有按常理出牌,查看虚拟机的网络状况,而是走了一条另类的路

(1)怀疑角色

十分怀疑我租户添加的角色,因此将上面挂载好的POR[……]

Read more

Neutron的Vnet

Neutron里在创建port的时候,通常都是通过Network ID来创建,在请求创建port的RESTful的API中,body里会通过指定network_id字段来指明创建port对应的network

在这种情况下,创建PORT似乎仅仅只与某一个Network相关,如果是后续每次想用到这个network,可以每次获取一下这个network id,稍微偷懒一点的可能就直接将这个network写[……]

Read more

Pktgen

Linux提供了一个基于内核的发包工具pktgen,理论上来讲肯定比应用层的发包工具性能要好很多,但它是以内核模块的形式存在,有兴趣可以耍一耍

下面以Debian7.8为例,在两个VM上来测试下这个工具

1:查看内核模块

理论上linux默认会自带这个ko模块,根据内核版本到响应的目录进行查询

root@pktgen-1:~# uname -r
3.2.73
root@pktgen-1:~# l[......]

Read more

Netmask

CIDR的计算比较简单,比如10.0.0.0/24,掩码24,前三个8位不变,最后一个8为0~255,也就是10.0.0.0~10.0.0.255

稍微IP段再大一点10.0.0.0/20,掩码20,前两个8位不变,第三个8位前4位不变,后两个8位换成二进制也就是

00000000 00000000 ~ 00001111 11111111

换算一下也就是10.0.0.0~10.0.15.255,包[……]

Read more