ns2

从零构建DNS主从服务器

為{幸葍}努か 提交于 2020-03-18 13:49:33
从头构建主从dns 我们没有外网ip地址和域名。为了做实验,假设我们有一个网段地址192.168.0.0/24和一个域名:zhuxu.co 准备工作 物理机一台,ip :192.168.0.111/24 gw:192.168.0.1 dns:8.8.8.8 二台虚拟机,系统为redhat7,一台虚拟机(ns1.zhuxu.co)做成主dns服务器。网卡类型为自动桥接. ip:192.168.0.118/24 gw:192.168.0.1 另一台(ns2.zhuxu.co)做成从dns服务器,网络类型为自动桥接。ip:192.168.0.119/24 gw:192.168.0.1 1,配置主机名(把192.168.0.1主机名该成ns1.zhuxu.co) [root@server ~]# hostnamectl set-hostname ns1.zhuxu.co [root@server ~]# hostname ns1.zhuxu.co 2,配置yum源,(我选择挂载光盘的方式) 在touch /etc/yum.repos.d/server.repo 文件。添加一下内容 [base] name=redhat7.repo baseurl=file:///mnt/cdrom enabled=1 gpgcheck=0 挂载光盘(请确保光盘镜像是连接状态) [root@ns1 ~]#

Tungsten Fabric与K8s集成指南丨创建安全策略

风流意气都作罢 提交于 2020-03-06 05:27:06
作者:吴明秘 Hi!欢迎来到Tungsten Fabric与Kubernetes集成指南系列,本文介绍如何创建安全策略。Tungsten Fabric与K8s集成指南系列文章,由TF中文社区为您呈现,旨在帮助大家了解Tungsten Fabric与K8s集成的基础知识。大家在相关部署中有什么经验,或者遇到的问题,欢迎与我们联系。 安全策略可以通过限制端口、网络协议等方式控制任意pod之间的访问,以及pod与service之间的访问。在K8s集群中安全策略对应的是Network Policy,在Tungsten Fabric中安全策略对应的Firewall Rule,两者是会实时同步的。 pod之间的访问控制 安全策略的控制是全局的,跨命名空间,跨network,所以创建策略的时候要尽可能详细地指定此端到彼端的一些参数,包括端口、命名空间、IP地址段等等。 根据第二章节的信息,可以知道目前有—— 两个命名空间:test-ns1 test-ns2 三个network:k8s-ns1-pod-net01 k8s-ns1-pod-net02 k8s-ns2-pod-net01 四个pod: nginx01-ns1-net01 nginx01-ns1-net02 nginx01-ns2-net01 nginx02-ns2-net01 而k8s-ns1-pod-net01与k8s-ns1

Tungsten Fabric与K8s集成指南丨创建安全策略

梦想的初衷 提交于 2020-03-05 18:03:44
作者:吴明秘 Hi!欢迎来到Tungsten Fabric与Kubernetes集成指南系列,本文介绍如何创建安全策略。Tungsten Fabric与K8s集成指南系列文章,由TF中文社区为您呈现,旨在帮助大家了解Tungsten Fabric与K8s集成的基础知识。大家在相关部署中有什么经验,或者遇到的问题,欢迎与我们联系。 安全策略可以通过限制端口、网络协议等方式控制任意pod之间的访问,以及pod与service之间的访问。在K8s集群中安全策略对应的是Network Policy,在Tungsten Fabric中安全策略对应的Firewall Rule,两者是会实时同步的。 pod之间的访问控制 安全策略的控制是全局的,跨命名空间,跨network,所以创建策略的时候要尽可能详细地指定此端到彼端的一些参数,包括端口、命名空间、IP地址段等等。 根据第二章节的信息,可以知道目前有—— 两个命名空间:test-ns1 test-ns2 三个network:k8s-ns1-pod-net01 k8s-ns1-pod-net02 k8s-ns2-pod-net01 四个pod: nginx01-ns1-net01 nginx01-ns1-net02 nginx01-ns2-net01 nginx02-ns2-net01 而k8s-ns1-pod-net01与k8s-ns1

Linux中使用GDB调试NS2

别说谁变了你拦得住时间么 提交于 2020-02-08 03:44:09
在使用ns2过程中,避免不了要修改或者添加一些模块,对C++代码进行改动。编写好自己的功能模块以后,进行编译执行。但通常不会这么容易通过,经常会出现编译可以通过,但执行是会出错。比较常见的是“段错误”,因指针内容为空。这个时候,需要用调试器对源代码进行调试,来精确定位错误发生在哪里。下面记录一些我比较常用的调试功能,GDB在linux中常用的调试器,功能比较全,我用到的也不多。以后会继续更新。 首先要让我们的ns2支持gdb的调试,需要对makefile进行修改。(以ns2.29为例)加上-g3选项。 .cc.o: @rm -f $@ $(CPP) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.cc .c.o: @rm -f $@ $(CC) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.c 修改完上面的内容后,重新编译。然后可以在任意目录下执行:gdb ns。此时就可以进行调试了,介绍几个我常用的命令。 (gdb) r test.tcl //执行指定的test.tcl文件 (gdb) b udp.cc:55 //在udp.cc文件的第55行打断点 (gdb) c //执行到断点处,继续往下执行 (gdb) bt //查看调用栈。觉得这个挺有用,可以查看整个仿真过程的调用过程,对理解仿真步骤和执行过程很有帮助 (gdb)

NS2的GDB调试

 ̄綄美尐妖づ 提交于 2020-02-08 03:36:15
本文所用的NS2版本为2.34,运行在ubuntu10.10环境下,该平台中已经包含了gcc/gdb等工具,这些工具可以用apt-get命令安装,很简单。 一、在NS2中启用GDB调试工具 1. 修改makefile.in:加上-g3选项 .cc.o: @rm -f $@ $(CPP) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.cc .c.o: @rm -f $@ $(CC) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.c 2. 修改Makefile(没有任何后缀的)文件,增加-g标记 CCOPT = -Wall -g -Wno-write-strings 3. 在ns-allinone-2.34/ns-2.34目录下重新编译 make clean touch common/packet.h make 4. 成功后开始进入调试: 转到ns-2.34目录下,cd ~/ns-allinone-2.34/ns-2.34/ gdb ns 然后通过cd命令进入到你的脚本所在的文件目录下,采用命令:r XXX.tcl来运行ns程序。当然这之前你可能需要设置断点。 二、GDB的使用   1常用的gdb命令:        b/break num:在num行设置断点(用于一个文件的程序调试)        b/break file

NS2仿真环境安装

自古美人都是妖i 提交于 2020-02-08 02:16:27
eclipse 的安装 sudo apt-get install eclipse sudo apt-get install eclipse-cdt NS2安装 1.下载软件 首先先下载ns-allinone-2.35.tar.gz(http://sourceforge.net/projects/nsnam/files/), 将其放到/home/administrator/zhouhui/soft/下(zhouhui是我的文件名,soft是我建立的一个文件夹) 打开终端(Ctrl+Alt+T),在其中输入 cd /home/administrator/zhouhui/soft<回车> tar zxvf ns-allinone-2.35.tar.gz <回车> 将ns2.35解压到当前目录下 2.安装前的准备工作 为了更好的安装ns2,需要更新ubuntu系统文件,在终端中输入命令 sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade 安装过程需要较长时间,请耐心等待,可以用这段时间做些其他事。 首次采用sudo时,需要用户密码,也就是安装ubuntu时设置的。 还需要进行一些package的安装,输入命令 sudo apt-get install build-essential

【NS2】NS2在ubuntu下的安装

强颜欢笑 提交于 2020-02-08 01:59:59
Step1: 更新系统。在终端输入如下命令 sudo apt-get update #更新源列表 sudo apt-get upgrade #更新已经安装的包 sudo apt-get dist-upgrade #更新软件,升级系统 Step2:安装几个需要的包 sudo apt-get install build-essential sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev #for tcl and tk sudo apt-get install libxmu-dev libxmu-headers #for nam Step3:下载安装包,并复制到需要安装的目录,在这里需要取得root权限才可以安装 官网下载地址: http://www.isi.edu/nsnam/ns/ ,这里下载allinone tar xvfz ns-allinone-2.35.tar.gz cd ns-allinone-2.35 ./install #进行安装 Step4:配置环境变量 在当前用户目录下,编辑.bashrc文件 vim .bashrc 在文件末尾添加 # add path for ns2 export PATH="$PATH:/home/liushun/ns-allinone-2.35/bin:/home/安装文件夹名

NS2安装LEACH协议

这一生的挚爱 提交于 2020-02-07 18:23:04
NS2安装LEACH协议 1.解压出来的文件夹有个mit,复制到~/ns2.35/目录下 2.打开每个文件,看看有“#ifdef MIT_uAMPS …… #endif“这样的部分,就贴到ns2.35下的同名文件同样位置中去。 2.1 app.c Application::Application() : enableRecv_(0), enableResume_(0) { #ifdef MIT_uAMPS enableRecv_ = 1; #endif }    #ifdef MIT_uAMPS void Application::recv(int link_dst, int data_size, char* meta_data, int sender) { if (! enableRecv_) return; Tcl& tcl = Tcl::instance(); tcl.evalf("%s recv %d %d %d %s", name_, link_dst, sender, data_size, meta_data); } void Application::recv(char* ch_index) { if (! enableRecv_) return; Tcl& tcl = Tcl::instance(); tcl.evalf("%s recv %s", name_,

NS2中802.11代码深入理解—packet传输的流程 (转帖)

时间秒杀一切 提交于 2020-02-07 18:22:13
如何传送一个封包(How to transmit a packet?) 首先,我们要看的第一个function是在mac-802_11.cc内的recv( ),程式会先判断目前呼叫recv( )这个packet的传输方向,若是DOWN,则表示此packet是要送出去的,因此就会再呼叫send(p, h).所以接着,我们跳到send( ),此send( )首先会去检查energy model,若是目前这个node是在睡眠状态(sleep mode),则把此packet给丢弃.然后会把handler h设定给callback_.下一步,就是去呼叫sendDATA(p)和sendRTS(ETHER_ADDR(dh->dh_ra)). 底下是sendDATA的程式码. (部份英文说明和程式码,会因为长度的关系而拿掉,所以读者最好还是拿原本的程式码做对照) void Mac802_11::sendDATA(Packet *p) { hdr_cmn* ch = HDR_CMN(p); struct hdr_mac802_11* dh = HDR_MAC802_11(p); /* 更新packet的长度,把packet的长度加上PreambleLength (内定值为144 bits), PLCPHeaderLength(内定值为48bits), Mac Header Length和ETHER

construction of two different packet for a protocol / a simulation in NS2

拟墨画扇 提交于 2020-01-25 12:23:48
问题 I am implementing a new protocol in NS2. I stucked at a point. kindly help me. Is it possible to make two different type of packets(containing different headers) in the same simulation In my protocol there are two types of struct header { } . At few instances i want to use one and at other instances want to use another.One of the structure has very less fields compared to other so this would reduce the size of packet i'm sending. Is it possible ? and if yes then how to implement that? 回答1: