2015年开始,校园网由免费变为按流量开始计费,双向计费,2元/GB,无其它方案可选。PC端按流量计费且单价如此之高,实在让人无法适应,每月都要花掉40、50元的上网费用,而且是在不看在线视频不下载的情况下,体验实在差到极点。

然而政策如此,短期内没有改变的迹象,只有自己想对策了。

开发IPv6潜能

长期以来IPv6在校园网中几乎唯一的应用就是BT,实际上IPv6覆盖已经很广,只是大量的网络服务依然是运行于IPv4的网络中,而IPv6与v4网络的互通一直不好,所以v6的可用资源少得可怜。


更新详细教程: 为VPS创建IPv6隧道

Read More

之前一直在一些导入的开源工程里编写一些Java代码,所以不怎么遇到依赖问题,最近学习Hadoop,由于安装的是2.4.0版本,在编写hadoop、hbase相关程序的时候,遇到一些依赖问题难以解决,网上搜索结果无论英文还是中文一般都是hadoop 1.x的版本,但是1.x和2.x的包结构根本不一样,尝试了很久手动搜索然后一个一个jar包导入的方式,最后还是提示有问题,这时候我想到了maven工具,虽然一直没有真正使用过,但是知道它在管理依赖方面有很大的优势,所以这两天粗略学习了一下。

  学习一个东西最好的(最适合我的)方式,还是去official site看 getting started 之类的tutorial, 在看过30分钟的入门教程之后(实质follow完远不止30分钟),对Maven有了一个初步的了解,已经能够使用它来创建工程和导入第三方的Jar包了。

  getting started里提到的都是一些最常见的标签,于是我又尝试阅读了一下两个开源项目的POM文件,试着往自己工程的POM里添加相应的标签,最终终于成功编译了一个hbase的程序,之后又尝试了一些restlet等框架,总体感觉maven在解决依赖关系方面确实非常强大,当然Maven远不止是一个为依赖关系而设计的工具,还需要进一步的学习和体会 。

在开始之前,除上官网教程中生成maven工程的命令:相关的package和jar名都可以修改

1
2
3
4
mvn archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DgroupId=com.mycompany.app \
-DartifactId=my-app

Read More

  Openstack允许不同租户创建自己的网络,并通过租户自己的Router连接到外网。网络是允许重叠的,即不同租户都可以创建了192.168.1.0/24这个网段,都有一个192.168.1.1的IP,这样就需要在底层实现对不同租户网络的隔离。

  Neutron(openstack中的网络管理模块)实现隔离的方式不止一种(根据不同的plugin而不同),我只讨论我所配置的Openstack(应该也是最觉的配置方式之一)的情况,即OVS_Neutron_Plugin,即选用Open vSwith作为虚拟网桥的方式,对处于不同物理节点上的ovs bridge,采用GRE隧道的方式连接(另外一种是Vlan)。

  根据查看Neutron相关部分代码和实验验证,得知Neutron是通过Vlan的方式来作网络隔离的,这一点也不意外。下表列出了某计算节点上br-int的端口配置情况,可以看到不同的网络分配了不同的tag值,这里的tag就是Vlan ID,所有从这些port进入的数据都会被加上相应的Vlan ID在交换机里传输和处理,不同的Vlan的端口是不会接收到其它Vlan的数据的,这样就在一个物理节点为解决了隔离问题。

Read More

  在用open vSwitch做实验时,我们经常需要知道OVS port对应的ofport编号,这个比较容易,用

1
ovs-ofctl show bridge

就能得到。如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
root@vaio:~# ovs-ofctl show br-int
OFPT_FEATURES_REPLY (xid=0x2): dpid:0000da9142cdfb44
n_tables:254, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP STRIP_VLAN SET_DL_SRC SET_DL_DST SET_NW_SRC SET_NW_DST SET_NW_TOS SET_TP_SRC SET_TP_DST ENQUEUE
1(patch-tun): addr:6e:4b:44:8e:f8:d7
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
18(tap0): addr:ea:58:d5:f8:26:4e
config: 0
state: 0
current: 10MB-FD COPPER
speed: 10 Mbps now, 0 Mbps max
19(tap1): addr:96:fc:5d:b6:43:d6
config: 0
state: 0
current: 10MB-FD COPPER
speed: 10 Mbps now, 0 Mbps max
LOCAL(br-int): addr:da:91:42:cd:fb:44
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0

  当一个bridge上连接有多台虚拟机(或VM有多个IF)时,我们还常常需要知道VM的IF与bridge port的对应,这时候可以使用:

Read More