Archive

‘Programmer’ 分类存档

Trex building packets by advance mode in GUI

背景

之前总结过一些Trex的内容,如下所示,这篇文章主要介绍如何在GUI中的高级模式中创建报文,并变更特定项目,如原/目IP地址,TCP/UDP 原/目端口等,以及如何修复可变TCP/UDP端口号带来的Checksum不正确的问题;另外最后还会使用另一种方法来调用流量模型;

Limited

  • 报文统计数据不能导出到Excel或CVS;
  • IPv6包头不能通过Field Engine改变,但API支持;
  • 如果想打IPv6的报文,需要在网络设备上绑定nd和mac的mapping关系;

Topology

拓扑同上一篇文章:

Trex-Server1 (100.0.0.1)------ (100.0.0.2)Router1 ---- network ----- Router2(100.1.1.2) ------ (100.1.1.1)Trex-Server2

Trex配置文件生成

Trex里有一个程序,可以自动生成配置文件,如下所示,Platform部分是设置内核分配的(如果不设置,默认只有一个core,性能有限),启动时指明需要几个内核,那么系统就会自动按照配置进行分配,如“./t-rex-64 -i -c 27

完整阅读

TRex Advance stateful mode Example

详细内容可以查阅:TRex Advance stateful support

在之前的文章中,介绍过Trex Stateless Mode的简单使用方法,在这里介绍下ASTF模式是如何工作的,并且如何统计信息的;另外在这个例子中,主要是通过变更PCAP报文中的原和目的地址,并以Server/Client方式发送流量并统计;

Topology

Trex-Server1 (100.0.0.1)------ (100.0.0.2)Router1 ---- network ----- Router2(100.1.1.2) ------ (100.1.1.1)Trex-Server2
完整阅读

MacOS 多用户场景下共享使用Brew

由于办公用的是自己的电脑,为了跟原有管理原账号分开,单独创建了一个办公账号,这样可以方便多场景使用,权限也被限制,但今天在尝试用brew安装软件时,会报下面的错误:

xxx@MacBook ~ % brew install wget
Error: /usr/local/Cellar is not writable. You should change the
ownership and permissions of /usr/local/Cellar back to your
user account:
  sudo chown -R $(whoami) /usr/local/Cellar
Error: The following directories are not writable by your user:

按照提示的操作,没多大用处,最后报下面错误:

xxx@MacBook ~ % brew install gettext
==> Downloading https://homebrew.bintray.com/bottles/gettext-0.21.big_sur.bottle
#=#=-#  #                                                                     
curl: (22) The requested URL returned error: 403 Forbidden
Error: Failed to download resource "gettext"

执行下面命令后,恢复正常使用:

sudo chown -R $(whoami) $(brew --prefix)/*

网络设备信息采集脚本

在常规测试中,经常需要在测前、测后抓取大量信息留存,不同厂商命令又不一样,黏贴复制采集工作量巨大,效率又低,所以需要写一个自动化脚本帮助自动化采集。自动化脚本有很多种方法编写,这里主要使用简单易用的Python,由于使用的是SecureCRT,所以直接选择了Python与SecureCRT的组合自动化脚本,其实之前写过一些,不过此篇用到了多个Session;

SecureCRT最开始支持VB脚本,后来逐步转到Python。官网也有很多example可以供参考,如果感兴趣可以参考:

https://www.vandyke.com/support/securecrt/python_examples.html 

https://www.vandyke.com/support/tips/tabscripts.html

脚本功能

此自动化脚本可以复用,根据需求任意更改,简单上手;另外Juniper带“table”的命令会扰乱SecureCRT的脚本,更改后恢复正常,代码正文中的是最终版本,同时也去掉了等待时间;其实脚本还可以优化下,但为了简单点,就写了10多个函数;

  1. 指定路径并按照“日_时分”格式自动创建文件夹;
  2. SecureCRT自动登录14台路由设备,并开启记录log功能;
  3. 采集14台设备信息,自动保存log,以“年-月-日-时-分”命名log文件;
  4. 采集后自动关闭Session;
show route yyyyyyyy extensive table C-CT |no-more\r
完整阅读

Telemetry Receiver by UDP+KV-GPB

In the article, only show as follow (because easy to show how to work):

Protocol: UDP; Port: 5234

Encoding: KV-GPB

For more detailed information, you can reference my colleague’s GitHub, which includes more examples, e.g GRPC.

AlexFengCisco / Telemetry_Receiver

GRPC Update Info:

If use GRPC not TCP/UDP, that will have standard function, you will not need to write “DECODE_FN_MAP…”, function will auto generate, direct to use. Simple list steps:

  1. Get GRPC protobuf (e.g “mdt_grpc_dialout”) from cisco / bigmuddy-network-telemetry-proto
  2. Install/use compile tools, suggest install python virtual env, you can reference 在MacOS中部署Python虚拟开发环境
(telemetry-protocol) [root@telemetry telemetry-protocol]# python -V
Python 3.6.8
(telemetry-protocol) [root@telemetry telemetry-protocol]# easy_install pip
(telemetry-protocol) [root@telemetry telemetry-protocol]# pip install grpcio
(telemetry-protocol) [root@telemetry telemetry-protocol]# pip install protobuf
(telemetry-protocol) [root@telemetry telemetry-protocol]# pip install grpcio_tools
(telemetry-protocol) [root@telemetry telemetry-protocol]# python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. cisco_grpc_dialout.proto
(telemetry-protocol) [root@telemetry telemetry-protocol]# ls -l|grep cisco
-rw-r--r--.  1 root    root       2695 Aug 10 16:16 cisco_grpc_dialout_pb2_grpc.py   #generated
-rw-r--r--.  1 root    root       3805 Aug 10 16:16 cisco_grpc_dialout_pb2.py   #generated
-rw-r--r--.  1 root    root        485 Aug 10 16:15 cisco_grpc_dialout.proto   #proto file  
Follow all file if you need grpc protocol:
[root@telemetry grpc-dailout]# ls -l
total 36
-rw-r--r--. 1 root root  2695 Aug 10 16:16 cisco_grpc_dialout_pb2_grpc.py #Contains the server Stub class and the client Stub class, as well as the service RPC interface to be implemented.
-rw-r--r--. 1 root root  3805 Aug 10 16:16 cisco_grpc_dialout_pb2.py #message serialization classes
-rw-r--r--. 1 root root   484 Aug 10 15:36 mdt_grpc_dialout.proto 
-rw-r--r--. 1 root root  3722 Aug 10 16:11 service_grpc_dialout_no_tls.py #service python
-rw-r--r--. 1 root root 19220 Aug 10 15:58 telemetry_pb2.py  #decode gpb-kv messages, generate as below
grpc-dailout.zip

Install Protobuf of python version

完整阅读

blonde teen swallows load.xxx videos