公司需要一款可以检查网络的软件,之后任务分配到我们组

经过讨论最终方案是以wireshark为版本,进行二次开发,主要目的在于简化上层操作复杂性(软件使用人群为非专业性的)

软件分为三部分,其一底层网络,其二wireshark抓包(做一层封装,只要需要的结构数据),其三上层应用

因平时比较关注运维的一些东西,所以分配了底层网络,与上层应用中的数据统计部分

这里主要记录底层网络配置过程,以备后忘!

简述

底层网络在开始时只需要转发数据包就可以,所以我当时的策略是:配置软路由(因配置简单,且网上资料很多,这里就不说了)

后因为需求增加,软路由已无法满足,百般搜寻中,想起了以前配置openstack时网络组件中的一款软件--也就是接下来要说明的软件 Openvswitch

配置版本

系统版本:ubuntu 12.04.3 STL Desktop 64位

软件版本:openvswitch-1.9.3.tar.gz

注:最新版本更新到2.0.1

更新系统:

    apt-get update && apt-get -y upgrade

安装前的软件准备:

    apt-get -y install build-essential && apt-get -y install openssl && apt-get -y install ssh && apt-get -y install vim

    注:build-essential 是ubuntu提供的开发工具包,其中包括gcc,g++,make等。openssl 下文安装软件需要,ssh与vim都是个人习惯,可以选择不安装

OpenVswitch下载地址: http://openvswitch.org/download/

解压:  # tar -xzf openvswitch-1.9.3.tar.gz

安装:  

  此处需要注意:预编译需指明内核源码的目录

  具体如下:  ~# ./configure --with-linux=/lib/modules/`uname -r`/build

  编译:    ~# make

  编译安装:  ~# make install

  OVS内核模块安装:  ~# sudo insmod ./datapath/linux/openvswitch.ko

  检查ovs模块是否已安装:

              ~# lsmod | grep openvswitch

                openvswitch            47849  0  

  继续安装内核模块:  ~# sudo make modules_install

 

  至此软件安装完成,接下来就是配置了

配置:

 

  新建OpenVSwitch配置文件和数据库:

      ~# mkdir -p /usr/local/etc/openvswitch

      ~# ovsdb-tool create /usr/local/etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema

  启动:

      ~# ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,manager_options --private-key=db:SSL,private_key --certificate=db:SSL,certificate --bootstrap-ca-cert=db:SSL,ca_cert  --pidfile --detach

  注:如果你安装 Open vSwitch 时没有加SSL 支持(即安装openssl),需省略--private-key, --certificate, and --bootstrap-ca-cert

  查看启动情况:
        ~# ps -ef | grep ovsdb-server

  初始化数据库:
        ~# ovs-vsctl --no-wait init
  注:仅需在第一次创建数据库时运行,但是每次都运行也没问题

  启动Open vSwitch daemon,连接到同样的Unix domain socket上

  ~# ovs-vswitchd --pidfile --detach

  注:成功后,会有三个进程,一个ovs_workeq进程,一个ovs-vswitchd进程,一个ovsdb-server进程

  升级暂未用到,这里先不予说明了

  服务器网络配置:

  注:因在openvswitch未启动时,br0是不存在的,为防止开机启动网络消耗时间,所以需要在之后的开机启动脚本中加以控制

  文件名称:interfaces.switch  

    auto lo
    iface lo inet loopback

    auto br0
    iface br0 inet dhcp

    auto eth0
    iface eth0 inet manual
    up ifconfig eth0 up

    auto eth1
    iface eth1 inet manual
    up ifconfig eth1 up

  文件名称:interfaces  

    auto lo

    iface lo inet loopback

    auto eth0
    iface eth0 inet manual
    up ifconfig eth0 up

    auto eth1
    iface eth1 inet manual
    up ifconfig eth1 up

Openvswitch设置:

  添加名为br0的网桥:

    ~# sudo ovs-vsctl add-br br0

  列出所有网桥:

    ~# sudo ovs-vsctl list-br

  将网络端口eth0挂接到网桥br0上:

    ~# sudo ovs-vsctl add-port br0 eth0

  列出挂接到网桥br0上的所有网络接口:

    ~# sudo ovs-vsctl list-ports br0

      eth0

      eth1

   列出已挂接eth0网络接口的网桥:

    ~# sudo ovs-vsctl port-to-br eth0

      br0

  查看结果:

    ~# sudo ovs-vsctl show

      7578df6c-7121-4a9a-8ecb-e7142d94c88e
      Bridge "br0"
        Port "eth0"
      Interface "eth0"
        Port "eth1"
      Interface "eth1"
        Port "br0"
      Interface "br0"
      type: internal

  查看虚拟交换机信息:     

    ~# sudo ovs-ofctl show br0
      OFPT_FEATURES_REPLY (xid=0x1): dpid:000000e04c36005c
      n_tables:255, 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(eth1): addr:00:e0:4c:36:00:5c
      config: 0
      state: LINK_DOWN
      speed: 100 Mbps now, 100 Mbps max
      2(eth0): addr:00:e0:4c:5a:ea:60
      config: 0
      state: 0
      current: 1GB-FD AUTO_NEG
      advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-HD 1GB-FD COPPER AUTO_NEG AUTO_PAUSE AUTO_PAUSE_ASYM
      supported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-HD 1GB-FD COPPER AUTO_NEG
      speed: 1000 Mbps now, 1000 Mbps max
      LOCAL(br0): addr:00:e0:4c:36:00:5c
      config: 0
      state: 0
      speed: 100 Mbps now, 100 Mbps max
      OFPT_GET_CONFIG_REPLY (xid=0x3): frags=normal miss_send_len=0

    

  开机启动脚本:

  注:开机启动需注意,权限问题

      #!/bin/bash

      sudo echo "------------- [start `date`] --------">>/home/haier/log.txt

      sudo ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,manager_options --private

      -key=db:SSL,private_key --certificate=db:SSL,certificate --bootstrap-ca-cert=db:SSL,ca_cert --pidfile --detach

      sudo echo "     ------------- [1 `date`] --------">>/home/haier/log.txt

      sudo ovs-vsctl --no-wait init

      sudo echo "     ------------- [2 `date`] --------">>/home/haier/log.txt

      sudo ovs-vswitchd --pidfile --detach

      sudo echo "     ------------- [3 `date`] --------">>/home/haier/log.txt

      sudo mv /etc/network/interfaces /etc/network/interfaces.default

      sudo mv /etc/network/interfaces.switch /etc/network/interfaces

      sudo /etc/init.d/networking restart

      sudo mv /etc/network/interfaces /etc/network/interfaces.switch

      sudo mv /etc/network/interfaces.default /etc/network/interfaces

      sudo echo "     ------------- [4 `date`] --------">>/home/haier/log.txt

      #sudo /usr/bin/xbmc

      sudo echo "------------- [end `date`] --------">>/home/haier/log.txt

 

参考资料:

      http://pan.baidu.com/s/1jGftQp4

sniffer底层网络配置记录的更多相关文章

  1. K8s二进制部署单节点 etcd集群,flannel网络配置 ——锥刺股

    K8s 二进制部署单节点 master    --锥刺股 k8s集群搭建: etcd集群 flannel网络插件 搭建master组件 搭建node组件 1.部署etcd集群 2.Flannel 网络 ...

  2. 在mac版virtual box中安装ubuntu虚拟机的NAT/Host-Only网络配置踩坑记录

    之前用惯了vmware和parallels desktop,网络配置十分智能,基本不用自己配置.由于版权原因,工作电脑上换了免费的virtual box用,四五年都完全在虚拟机里干活的本菜鸡居然在虚拟 ...

  3. 虚拟机 NAT 网络静态ip配置记录

    环境 VMware 15.5.5 build-16285975 centos7 虚拟网络编辑器配置 位置 编辑 --> 虚拟网络编辑器 示例 以下以 192.168.18.0 网段ip为例,实际 ...

  4. Kubernetes(k8s)底层网络原理刨析

    目录 1 典型的数据传输流程图 2 3种ip说明 3 Docker0网桥和flannel网络方案 4 Service和DNS 4.1 service 4.2 DNS 5 外部访问集群 5.1 外部访问 ...

  5. [System] CentOS虚拟机系统克隆后的网络配置

    VMware Workstation 虚拟机在进行克隆 CentOS 系统之后,在克隆机上配置网卡时,会出现一些细节问题,讨论一二. 一.情景描述 克隆机上默认由 NetworkManager 服务管 ...

  6. ESXi5 中克隆Linux虚拟主机的网络配置

    虚拟化技术果然非常方便,尤其是windows主机,克隆后在网络管理中改一下IP即可. 但对于Linux来说就有点麻烦,只修改IP还不行,还有MAC地址,网卡指定等,这个规程对应新手来说没有大半天搞不定 ...

  7. ubuntu网络配置相关知识(转载)

    From:http://os.51cto.com/art/201003/188055.htm 文章主要介绍Ubuntu网络配置,希望能让Linux新手学习参考.更好使用Ubuntu.更有效的学习Ubu ...

  8. linux网络配置、环境变量以及JDK安装(CentOS 6.5)

    由于需要搭建hadoop平台,但是苦于没有现成可用的linux服务器,只好自己下载了CentOS 6.5从头装起,安装过程中遇到了很多问题,比如网络配置.时钟同步.环境变量配置.以及各种服务的启停,还 ...

  9. ORACLE网络配置大全没有比这个更详细的【weber出品】

    一.起篇 现在怎么说也是互联网时代,数据库也要联网,很多朋友学习Oracle的时候无外乎搭建的是以下两种学习环境: 1.直接在windows环境下安装Oracle后直接sqlplus连接. 2.在wi ...

随机推荐

  1. [Maven]Maven 那点事儿

    0. 前言 Jason Van Zyl,在 Java 十大风云人物排行榜上或许会看到他. 这兄弟是干嘛的? 他就是 Maven 的创始人,人们都尊称他为"Maven 他爸". 毋庸 ...

  2. Spark性能测试报告与调优参数

    1.代码中尽量避免group by函数,如果需要数据聚合,group形式的为rdd.map(x=>(x.chatAt(0),x)).groupbyKey().mapValues((x=>x ...

  3. POJ 3468 A Simple Problem with Integers(线段树 成段增减+区间求和)

    A Simple Problem with Integers [题目链接]A Simple Problem with Integers [题目类型]线段树 成段增减+区间求和 &题解: 线段树 ...

  4. 生成均值文件mean.binaryproto

    [感谢:http://www.cnblogs.com/denny402/p/5102328.html] compute_image_mean.bin生成均值文件mean.binaryproto: ca ...

  5. java和h5 canvas德州扑克开发中(一)

    先附上我的德州扑克测试地址 http://120.26.217.116:8080/LxrTexas/texasIndex.html 我和一个朋友的德州扑克历时一个多月开发,目前已经基本可玩. 前端主要 ...

  6. 编写更好的jQuery代码

    这是一篇关于jQuery的文章,写到这里给初学者一些建议. 现在已经有很多文章讨论jQuery和JavaScript的性能问题,然而,在这篇文章中我计划总结一些提升速度的技巧和一些我自己的建议来改善你 ...

  7. HTTP 协议详解

    相关文章:HTTP 协议之压缩 当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相 ...

  8. Java 多张图片合成一张 drawImage

      package com.yunfengtech.solution.business; import java.awt.Color; import java.awt.Graphics; import ...

  9. XE7 & IOS开发之开发账号(2):发布证书、发布授权profile的申请使用,附Ad hoc真机调试、生成ipa文件演示(XCode所有版本通用,有图有真相)

    网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 注意,以下讨论都是以&q ...

  10. javascript实现原生ajax的方法

    <script> var xmlHttp; function createxmlHttpRequest() { if (window.ActiveXObject) { xmlHttp = ...