html tool

显示标签为“问题”的博文。显示所有博文
显示标签为“问题”的博文。显示所有博文

2020年6月30日星期二

问题:两个真实主机之间,pcap回放udp server 不接收问题II

问题:两个真实主机之间,pcap回放udp server 不接受问题

查看协议栈的统计情况
netstat -s --udp

对比发现:
upd 的 InCsumErrors 一直在发包时增长

https://www.cnblogs.com/qianyuliang/p/10542747.html
这里解释为:
. UDP Errors
type: Graph
Unit: short
Label: Datagrams out (-) / in (+)
InCsumErrors - 具有校验和错误的 UDP 数据包的平均数(5分钟内)

metrics:
irate(node_netstat_Udp_InCsumErrors{instance=~"$node:$port",job=~"$job"}[5m])
[next]这个校验和如何关闭呢?
https://cizixs.com/2018/01/13/linux-udp-packet-drop-debug/
UDP 报文错误
如果在传输过程中UDP 报文被修改,会导致 checksum 错误,或者长度错误,linux 在接收到 UDP 报文时会对此进行校验,一旦发明错误会把报文丢弃。

如果希望 UDP 报文 checksum 及时有错也要发送给应用程序,可以在通过 socket 参数禁用 UDP checksum 检查:

int disable = 1;
setsockopt(sock_fd, SOL_SOCKET, SO_NO_CHECK, (void*)&disable, sizeof(disable)

[next] 
python中如何实现呢?
https://docs.python.org/2/library/socket.html
There is a socket flag to set, in order to prevent this, socket.SO_REUSEADDR:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((HOST, PORT))
[try]
s.setsockopt(socket.SOL_SOCKET, socket.SO_NO_CHECK, 1)


-----[?]测试效果还是不可以,why?

2020年6月22日星期一

虚拟网络中回放pcap和socket监听数据

参考地址:
https://cizixs.com/2017/02/10/network-virtualization-network-namespace/

[添加虚拟网络]
ip netns add ns1
ip netns #查看效果


[添虚拟网卡]
ip link add vens0 type veth peer name vens1

[把虚拟网卡分配给ns1域]
ip link set vens1 netns ns1
ip netns exec ns1 ip a #查看分配效果


[给虚拟网卡分配地址]
ip netns exec ns1 ifconfig vens1 10.0.0.2
Ps: 这时 vensI 查看是NO-CARRIER状态
如果 pair 的一端接口处于 DOWN 状态,另一端能自动检测到这个信息,并把自己的状态设置为 NO-CARRIER。
所以 将与其连接的vens0 启动 : ifconfig vens0 up就可以了


[修改pcap] 
 805  ip a s
 806  tcprewrite --enet-dmac=96:b8:54:1f:96:61 -C --srcipmap=10.0.0.1:10.0.0.2 --dstipmap=192.168.91.50:10.0.0.1 --infile=1000w.pcap --outfile=1000wo.pcap


[回放方式]
 ip netns exec ns1 tcpreplay -i vens1 -M 10 1000wo.pcap 


[在主机上监听socket就可以接受到了]

当前问题:
不用虚拟监听方式,在两个真实主机间udp的pcap回放都不可以使用socket监听
这是why?

2019年6月9日星期日

认知天性-第六章 合适自己的学习方式-布鲁斯的例子

布鲁斯:
    -  进入没有竞争的领域深入
    -  深入发掘,问正确的问题[popexizhi: 这个主题文章中没有深入展开,布一定遇到过“不正确的问题”,是什么呢?what is 正确问题与不正确的问题?]
    - 纵观全局,承受风险[popexizhi: 布鲁斯之前的经验也是降低,看来没有风险是不太可能]
    - 诚实做人

作者:
    - 相似之处与他人: 了解所从事行业的本质
    - 独特之处与他人:
        - “用上学的方式”来了解自己的风险,建立一套自己的规则,判断什么是有吸引力的投资机会
        -  把这些规则组合成一套模板,然后找不同的,新的方式来应用这套模板
 pope:
    - 掌握自己受到的教育[popexizhi:  布与其父在12岁的鞭炮生意上的交道,pope开始只看到反抗的勇气,但现在看来这里不是无端的反抗本身是终于目标的智慧选择,是高于pope之前认识的,是看到自己的目标和这个反抗的对价值价值:),布的智慧和勇气都是自己的目标]
    - 以经验learn提高判断力,把精力放到更重要的事上[popexizhi: 布自己提出的深入发掘正确的问题是不是和这个有关呢?
    这里的两个从经验中learn本来都有的但是文章中的例子太让pope吃惊了,
        - 布自建房,从砖瓦,土到布线,到雇佣人做;
        - 从工作中得出"经理"赚的少
        - 谁是这个方向真正的专家,遇到莱普拉接触优先债券,唐对火车的了解
        这些例子都是尝试之后的一点点的补充出来的经验,pope有吗?:)
        在说把精力放到重要的事情上,这个是可以做pope做事指导原则的内容啊:)
    ]
[doing-next]
    - [thinking] pope的经验中有没有和布相似的内容,如何在之后更好的使用?
这个pope现在可以想到是布是在目标范围下,对learning经验总结改造,已更好的实现目标(或者方向吧?这里感觉这个具体内容应该也是不断调整的,但方向应是没有太多变化的);而pope之前的经验是被动的接受事情后的总结,
1. 没有这个总方向的指导(eg: 之前关于工作内容不想做与需求方太近的,直属领导本身不正的,不做领导下属直接分配和考核的;这些都是在工作中遇到问题后总结,发现自己不合适的而已,不是目标指导下主动探索遇到总结的;
2.有类似的经验只有系统分析考试时的最后发现对考试内容本身的不断探索和深入就可以搞定这个考试,系统性把握考试大纲,这是有效的,但只有这个之后就没有如此系统完整的使用过,偶尔的小测试应该没有系统性的范围要求不算;现在的闭息练习也是一个,还在继续中;魔方也是;每次有要查的问题,go或解决3日的测试也是;这样看来还是不少的,但是没有大的总体方向的指导,这个应该是和布的最大的不一致。
这个是有类似的,大的目标好像学校生活中多,但是现在基本没有太在做的,这样看来应该当时应该是有方向但是没有明细使用这个方向+经验learning规则,指导进一步实现。
突然发现下面那个“精力用在重要的事情上” 和这个方向目标也是有直接关系的;方向目标吗/pope的富足,平衡,接受自己,三斗计划,享受思维乐趣。现在应该是一斗中,但是方向性,这个也很明确。下面是对一斗如何使用这个方向+经验learning规则。感觉现在学的长投不太是,不太靠谱的文章内容,有有用的但是是偶尔的知识点,比如股票逆回购,但是很偶尔,还没有测试,自己心里感觉也不是pope要的方向,对股票不太好的印象感觉;基金没有测试过,可以测试一下去(要系统学习了解后)。之前给一斗的盘指向是佛像的,这个是pope感兴趣的方向,但操作方便性是不是有点儿问题?只是猜想啊,对那个基金和股票逆回购其实也都是猜想。ok,next的很明显了,对一斗做方向+经验learing自己的规则,并改进
[doing] 对一斗做方向+经验learing自己的规则,并改进
)
 - [doing]关于 " 对一斗做方向+经验learing自己的规则,并改进"
销售行业有句老话,"站在屋子里打不着鹿",“拿起装备,走出门去,弄清楚自己想要什么”---这里不只是目标,还有在修正目标和确定实现目标需要的能力,需要学习的东西,以及从哪里可以找到这些知识和技能,这里是一个复合的事情“走出门去,弄清楚”;

  1. 列出想要知道,做到,成就的事情;
  2. 列出对应1需要的能力,需要学习的东西,以及可以从哪里找到这些知识和技能
  3. doing,并不断的修正2
尝试用1-3分析一斗,这个方法和反思的方式一样应该试用范围很广,尝试了解范围和边界,并分析如何内化这个过程。

 [next]

    - [go] 布鲁斯其人,是否有其他作品,找找这个正确与不正确的问题区别,是否有其他可以借鉴分析的

    - [thinking] pope的经验中有没有和布相似的内容,如何在之后更好的使用?

    - [doing] "把精力放到重要的事情上", 开始使用,做每日分析,list吧?plan how to

    - [doing] 对一斗做方向+经验learing自己的规则,并改进





 [next]
    - [go] 布鲁斯其人,是否有其他作品,找找这个正确与不正确的问题区别,是否有其他可以借鉴分析的
    - [thinking] pope的经验中有没有和布相似的内容,如何在之后更好的使用?
    - [doing] "把精力放到重要的事情上", 开始使用,做每日分析,list吧?plan how to
    - [doing] 对一斗做方向+经验learing自己的规则,并改进

2019年6月5日星期三

unittest中的测试数据遇到的问题




unittest中的测试数据遇到的问题
  • *_test.py中的testdata有更好的方式设置吗?
    问题:
    当前使用类变量,在每个test_*()中使用,有小变化直接方法内部修改了,但就有如下问题:
     47     def test_check_autocc_alert_in_es(self):                                                                                   
     48         """ test check_autocc_alert_in_es"""                                                                                   
     49         t = autocc_check()                                                                                                     
     50         t.set_ssh(self.dic_test)                                                                                               
     51         pacp_name = "Teamviewer-Win10toWin7.pcap_10.10.51.2"                                                                   
     52         interface = "tap1"                                                                                                     
     53         autocc_check_dic = {"check_type": "autocc" , "check_main_tag":"Teamviewer" }                                           
     54         tcpreplay_para = " -M 1 -l 10 "                                                                                        
     55         t.get_autocc_pacp_ssh(pacp_name, interface, tcpreplay_para)                                                            
     56         print("~~~~~~~~start ssh get es result ---------------")                                                               
     57         print self.dic_test                                                                                                    
     58         self.dic_test["tdp_ip"] = "192.168.100.174"                                                                            
     59         t.set_ssh(self.dic_test, change_sshpass=0)                                                                             
     60         self.dic_test["tdp_ip"] = "127.0.0.1"                                                                                  
     61         #[popexizhi:这种用法太危险了,全部执行unittest时影响测用例后面的测试啊,死都不知道是如何死的,testdata是否有更好的方式呢?]
     62         print t.ssh_ip                                                                                                         
     63         res = t.check_autocc_alert_in_es(autocc_check_dic, "10.10.51.2")                                                       
     64         print res                                                                                                              
     65                                                                                                                                
     66 if __name__ == "__main__":  
    
    

    python *_test.py时,这个test_check_autocc_alert_in_es 执行pass了,但是之后的case就死活过不去,但单独
    python *_test.py Test*.test_* 每个方法就可以运行通过,
    最后发现是上面这个变量修改影响其他方法的使用了,好吧,现在想不出更好的解决,只是用完恢复一下,但是还有更好的,这也太不是自己想要的了。


2018年12月19日星期三

robotframework的Statistics by Suite显示内容问题


https://stackoverflow.com/questions/39119873/how-to-change-the-structure-of-output-xml-from-robot-framework-output

问题描述:
robotframe 的报告中 Statistics by Suite中每个格中只显示当前的test suit 或者 tag的name 不是全部的,如下笑脸部分:

结果:
当前的robot不可以,不可以

如下描述:
There is no way to modify the format of the output.xml file that was generated by robot. You have a couple of choices.
First, you can post-process output.xml with xslt or any other tool to transform it into whatever format you want. It's a very simple structure that is easy to parse.
Your second option is to ignore the output.xml and write your own using the listener interface. Through the listener interface you can get a callback for every suite, testcase and keyword where you can write your own output in whatever format you like.
【popexizhi:
方案一: 自己该output.xml 
方案二:  listener interface 这个还是第一次听说,看来可以试试
方案三: 我可以试试改改源码如下,嘻嘻,这个回头[next]

】

2018年11月29日星期四

No keyword with name "Set To Dictionary" found.



写成这样
 36     ${ta}    Create Dictionary     
 37     Set To Dictionary    ${ta}    a=b
还是提示
No keyword with name 'Set To Dictionary' found.


如下都没有介绍如何可以好,

https://stackoverflow.com/questions/29167928/getting-error-while-using-set-to-dictionary-keyword-in-robot-framework
https://github.com/robotframework/robotframework/issues/2320
https://stackoverflow.com/questions/29167928/getting-error-while-using-set-to-dictionary-keyword-in-robot-framework

最后改成这样吧
 33     ${waf_server_dic_tmp}=    Create Dictionary    ip=&{waf_server_dic}[ip]    port=${port}
 34     BuiltIn.log    ${waf_server_dic_tmp}  

ok了

【后记:
找到原因了是没有导入使用库的原因,加入如下就ok了
Library  Collections
看了一下源码,定义没有在BuildIn中,所以无法默认加载

】

2018年10月30日星期二

robotframework 导入类的命名--问题记录


https://robotframework-userguide-cn.readthedocs.io/zh_CN/latest/CreatingTestData/UsingTestLibraries.html#id3

使用库的路径

另一种导入库的方法是使用文件的路径来指定库. 类似于指定 资源文件和变量文件 的路径, 库的路径也被认为是相对于当前测试数据文件所在目录的(当然, 指定绝对路径也是可以的).
这种方式最大的好处是无需配置模块搜索路径.
如果库是一个文件, 则路径必须包含扩展名. 对Python库, 扩展名是 .py, 对Java库则是 .class 或 .java, 不过.class文件必须存在. 如果Python库是一个文件夹, 该路径最后必须有一个斜杠结尾(/).
下面的例子展示了几种不同的情况.
*** Settings ***
Library    PythonLibrary.py
Library    /absolute/path/JavaLibrary.java
Library    relative/path/PythonDirLib/    possible    arguments
Library    ${RESOURCES}/Example.class
该方法的缺陷是, Python类实现的 库名称必须和模块名一样. 此外, 使用 JAR包或者ZIP包发布的库不能使用这种方式.
[popexizhi:  这个库名称和模块名同名的要求,太坑了,还有别的方法导入类吗?这个还有潜在问题,如果有初始化类的参数如何使用啊????
]

2018年10月17日星期三

sar如何监控pid历史?pidstat可以存sar类似的历史文件并读取吗?

要解决的问题:
如何追溯关机前现场?

sar -X pid不好用啊 -r 没有意义了
问题:
1. sar如何监控pid历史?
2. pidstat可以存sar类似的历史文件并读取吗?

2018年6月21日星期四

问题:rx调整的推测


参考:
https://matthias0tafelmeier.wordpress.com/2016/12/25/monitoring-and-tuning-the-linux-networking-stack-egress-tx/
https://blog.csdn.net/myweishanli/article/details/25506745


网卡调整如下:
ethtool -L em1 rx 1
ethtool -l

网卡应该是只适用第一个cpu接受数据了,但表现是suricata的丢包变少了,好奇怪啊;
之前rx 4反而有丢包,使用如下不是会更多丢包吗?感觉解释不通,难道是多cpu使用后合成分包数据的问题??
ethtool -L combined 32

2017年12月5日星期二

[?]jmeter 命令行运行https 如何配置密钥呢?

问题: GUI 测试时要在ssl manage 中添加密钥
【参考:
  1. The final step is to finally point JMeter at the keystore we want to use. Click Options -> SSL Manager and select the mystore.keystore keystore that we created and press Enter.
  2. https://developer.ibm.com/mainframe/docs/how-to-test-your-apis/how-to-configure-jmeter-to-use-client-side-ssl/
  3. 找到工具栏“选项”-〉SSL管理器。打开bin目录下的ApacheJMeterTemporaryRootCA.crt即可。
  4. http://www.jianshu.com/p/efe03b4d02a3
】
,但是看了xml文件没有这个项目啊?
在命令行运行时, 不配置也可以运行成功,好奇怪,这个不用配置吗?

2017年10月31日星期二

转:java.util.Arraylist.toArray()


http://blog.csdn.net/Evan123mg/article/details/46331771


java.util.ArrayList.toArray(T[]) 方法返回一个包含所有在此列表中正确的序列中的元素(从第一个到最后一个元素)数组以下是关于ArrayList.toArray()要点:
1.返回数组的运行时类型是指定数组的。如果列表中指定的数组能容纳,则在其中返回。否则,一个新的数组分配具有指定数组的运行时类型和此列表的大小。
2.如果列表中指定的数组能容纳更加节省空间(即数组的元素比列表元素多),那么会将紧挨着collection尾部的元素设置为null。

声明:

以下是java.util.ArrayList.toArray()方法的声明
[java] view plain copy
  1. public  T[] toArray(T[] a)  

参数:

a -- 这是数组,列表中的元素将被存储,如果它是足够大的;否则同样的运行时类型的新数组分配用于这一目的。
[popexizhi: 这个位置很奇怪,测试时,对返回值和a 的位置单独赋值,其他位置没有调用,也可以正常返回,类似如下的调用方式:
调用测试一: List.toArray(a);
调用测试二: a = List.toArray(new Double[0] );
a都可以成为预期的double[],好奇怪啊,看下文的例子,是a= List.toArray(a);这个是什么原因,两个位置都要设置,这个方法到底是如何对两个位置处理的呢????
]

异常:

ArrayStoreException -- 如果指定数组的运行时类型不是此列表中每个元素的运行时类型的超类型。
NullPointerException -- 如果指定数组为null。

例子:

下面的示例演示java.util.Arraylist.toArray()方法的用法。
[java] view plain copy
  1. package com.yiibai;  
  2.   
  3. import java.util.ArrayList;  
  4.   
  5. public class ArrayListDemo {  
  6.    public static void main(String[] args) {  
  7.         
  8.     // create an empty array list with an initial capacity  
  9.     ArrayList arrlist = new ArrayList();  
  10.   
  11.     // use add() method to add values in the list  
  12.     arrlist.add(10);  
  13.     arrlist.add(12);  
  14.     arrlist.add(31);  
  15.     arrlist.add(49);  
  16.       
  17.     System.out.println("Printing elements of array1");  
  18.   
  19.     // let us print all the elements available in list  
  20.     for (Integer number : arrlist) {  
  21.       System.out.println("Number = " + number);  
  22.     }    
  23.   
  24.     // toArray copies content into other array  
  25.     Integer list2[] = new Integer[arrlist.size()];  
  26.     list2 = arrlist.toArray(list2);
  
  •   
  •     System.out.println("Printing elements of array2");  
  •   
  •     // let us print all the elements available in list  
  •     for (Integer number : list2) {  
  •       System.out.println("Number = " + number);  
  •     }  
  •   }  
  • }   
  • 让我们来编译和运行上面的程序,这将产生以下结果:
    [java] view plain copy
    1. Printing elements of array1  
    2. Number = 10  
    3. Number = 12  
    4. Number = 31  
    5. Number = 49  
    6. Printing elements of array2  
    7. Number = 10  
    8. Number = 12  
    9. Number = 31  
    10. Number = 49  

    2017年6月7日星期三

    mpstat在zabbix_agented调用和shell调用的现实区别

    问题:
    计划将mpstat -P ALL 监控数据到zabbix中显示,遇到很奇怪的问题,脚本手动执行和
    在zabbix_agentd debbug log中看到的不一致?

    如图中:
    手动命令行执行中包含CST 时间说明,但zabbix debug中明显没有,好诡异啊!
    还没go出来原因,记录一下问题吧

    2016年8月17日星期三

    关于卦象中方位问题

    在看八卦的卦象解释,问题:
    “君子有攸往,先迷后得主,利;西南得朋,东北丧朋,安贞吉” 这中的方位到底是不是方位的解释呢?如果是,那why方位会对这个有影响呢?
    是地气吗? 

    2016年4月12日星期二

    虚拟机万兆网卡测试为千兆的问题

    发现虚拟机的一个奇怪的问题:
    测试时网卡显示为 [Speed: 10000Mb/s] ,但测试结果为千兆网卡,当前主机 192.168.1.44/45 在同一个宿主机,使用ethtool 查看为[Speed: 10000Mb/s] 。

    Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes:   1000baseT/Full 
                           10000baseT/Full 
    Supported pause frame use: No
    Supports auto-negotiation: No
    Advertised link modes:  Not reported
    Advertised pause frame use: No
    Advertised auto-negotiation: No
    Speed: 10000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: off
    MDI-X: Unknown
    Cannot get wake-on-lan settings: Operation not permitted
    Link detected: yes

    使用iperf测速结果也为千兆网卡,截图如下:


    虚拟机的网络配置如下: [popexizhi:难道是这个配置影响了内部网络环境?待验证中]

    2014年7月2日星期三

    mysql的check约束不起作用

    在mysql中测试如下
    My SQL:
    CREATE TABLE Persons
    (
    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    CHECK (Id_P>0)
    )
    但添加id_P为0时可以成功的,why?
    [go]了一下http://stackoverflow.com/questions/14247655/mysql-check-constraint 中解释mysql应该是不支持,其中如下:
    CHECK constraints are ignored by MySQL as explained in a miniscule comment in the docs: CREATE TABLE
    The CHECK clause is parsed but ignored by all storage engines.
    这里引用http://dev.mysql.com/doc/refman/5.5/en/create-table.html 中的






    For other storage engines, MySQL Server parses and ignores the FOREIGN KEY and REFERENCES syntax inCREATE TABLE statements. The CHECK clause is parsed but ignored by all storage engines