packETH发包工具使用教程
測試環(huán)境:
在vmware上運(yùn)行兩臺Ubuntu虛擬機(jī)。
Ubuntu1:Ubuntu14.04,安裝packETH
Ubuntu2:Ubuntu16.04,gnome版
?
Feature:
?you can create and send any ethernet packet. Supported protocols:
?ethernet II, ethernet 802.3, 802.1q, QinQ, user defined ethernet frame
?ARP, IPv4, IPv6, user defined network layer payload
?UDP, TCP, ICMP, ICMPv6, IGMP, user defined transport layer payload
?RTP (payload with options to send sin wave of any frequency for G.711)
?JUMBO frames (if network driver supports it)
?sending sequence of packets
?delay between packets, number of packets to send
?sending with max speed, approaching the theoretical boundary
?change parameters while sending (change IP & mac address, UDP payload, 2 user defined bytes, etc.)
?saving configuration to a file and load from it - pcap format supported
?
?
官網(wǎng):http://packeth.sourceforge.net/packeth/Home.html
?
注:
-
支持windows,packETH.exe
-
支持CLI,但是feature不完善,本文描述GUI
-
支持載入pcap format文件
?
?
1.?安裝packETH
在Ubuntu1執(zhí)行:sudo apt-get install packeth
?
2.?使用packETH
2.1?IP地址和MAC地址
Ubuntu1:
baoli@ubuntu:~$ ifconfig
eth0??????Link encap:Ethernet??HWaddr 00:0c:29:ed:54:0c??
??????????inet addr:192.168.0.108??Bcast:192.168.0.255??Mask:255.255.255.0
??????????inet6 addr: fe80::20c:29ff:feed:540c/64 Scope:Link
??????????UP BROADCAST RUNNING MULTICAST??MTU:1500??Metric:1
??????????RX packets:15577 errors:0 dropped:0 overruns:0 frame:0
??????????TX packets:12129 errors:0 dropped:0 overruns:0 carrier:0
??????????collisions:0 txqueuelen:1000
??????????RX bytes:1946776 (1.9 MB)??TX bytes:21812885 (21.8 MB)
?
Ubuntu2:
baoli@ubuntu:~$ ifconfig
ens33?????Link encap:Ethernet??HWaddr 00:0c:29:66:c6:ed??
??????????inet addr:192.168.0.106??Bcast:192.168.0.255??Mask:255.255.255.0
??????????inet6 addr: fe80::6e4d:8ec3:9dfe:5e89/64 Scope:Link
??????????inet6 addr: fe80::215d:ec74:acce:2ef1/64 Scope:Link
??????????inet6 addr: fe80::8c01:a61f:27a4:d469/64 Scope:Link
??????????UP BROADCAST RUNNING MULTICAST??MTU:1500??Metric:1
??????????RX packets:111370 errors:0 dropped:0 overruns:0 frame:0
??????????TX packets:6327 errors:0 dropped:0 overruns:0 carrier:0
??????????collisions:0 txqueuelen:1000
??????????RX bytes:57839751 (57.8 MB)??TX bytes:687101 (687.1 KB)
?
2.2?構(gòu)建ping包測試
ubuntu1 ping ubuntu2
Ubuntu1執(zhí)行:sudo packeth,彈出GUI界面。
?
1)在builder中構(gòu)建ping包,填寫以下數(shù)據(jù):
-
L2?Link?layer,填寫源和目的MAC地址,選擇IPv4
-
L3 IPv4 data,填寫源和目的IP地址,選擇ICMP協(xié)議
-
L4?ICMP?data,Type選擇Echo?request
-
其它保持默認(rèn)即可
2)ping包構(gòu)建完后點(diǎn)擊interface選擇eth0,最后點(diǎn)擊send。
3)在點(diǎn)擊send前可以執(zhí)行tcpdump抓包工具。
新建終端窗口,執(zhí)行:sudo tcpdump -i eth0 icmp
baoli@ubuntu:~$ sudo tcpdump -i eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:26:54.774623 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:26:54.775197 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
14:26:54.978150 IP 192.168.0.108 > local0: ICMP 192.168.0.108 udp port 60529 unreachable, length 107
14:26:59.412684 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:26:59.413310 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
?
注:可以點(diǎn)擊save將設(shè)置保存為文件,load載入設(shè)置。
?
2.3?Gen-s
可以自定義發(fā)包數(shù)量、包間隔等,在packet?contents中可以看到builder中構(gòu)建的數(shù)據(jù)包的二進(jìn)制內(nèi)容。
1)設(shè)置:發(fā)送10個(gè)ping包,包間隔10ms(10000us)
2)點(diǎn)擊send,在tcpdump抓包,可以觀察到一瞬間便發(fā)出了10個(gè)ping包!!
baoli@ubuntu:~$ sudo tcpdump -i eth0 icmp
[sudo] password for baoli:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:57:35.397134 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:57:35.397864 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
14:57:35.403706 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:57:35.406920 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
14:57:35.413699 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:57:35.414335 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
14:57:35.423931 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:57:35.424916 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
14:57:35.433708 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:57:35.434466 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
14:57:35.443770 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:57:35.445575 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
14:57:35.453961 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:57:35.456399 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
14:57:35.463696 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:57:35.464473 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
14:57:35.473946 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:57:35.474884 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
14:57:35.483701 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
14:57:35.485729 IP 192.168.0.106 > 192.168.0.108: ICMP echo reply, id 1, seq 1, length 8
對于測試性能來說是個(gè)很有用的工具。
?
2.4?GEN-b
用來構(gòu)建發(fā)包序列、發(fā)包速率等。
1)先在builder中構(gòu)建好包,然后save,比如保存為packet_ping
2)點(diǎn)擊select選擇packet_ping
3)設(shè)置發(fā)送速率,這里設(shè)為10Mbit/s
4)點(diǎn)擊calculate,計(jì)算Delay?betwen、Delay?to?Next
5)最后點(diǎn)擊send
6)tcpdump抓包,可以看到包間隔非常短。
15:05:21.589072 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.589143 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.589344 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.589414 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.589560 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.589630 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.589775 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.589845 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.590102 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.590177 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.590307 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.590497 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.590630 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.590703 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
15:05:21.590827 IP 192.168.0.108 > 192.168.0.106: ICMP echo request, id 1, seq 1, length 8
?
2.5?構(gòu)建UDP包
1)構(gòu)建UDP包,填寫以下數(shù)據(jù):
-
L2?Link?layer,填寫源和目的MAC地址,選擇IPv4
-
L3 IPv4 data,填寫源和目的IP地址,選擇UDP協(xié)議
-
L4?UDP?data,填寫source?port和destination?port,勾選“udp?payload 0x”
-
填寫payload?data,要以十六進(jìn)制格式填寫
2)最后點(diǎn)擊send
3)執(zhí)行:sudo tcpdump -i eth0 udp?抓包
15:29:19.288359 IP 192.168.0.108.10001 > 192.168.0.106.10002: UDP, length 10
15:29:19.467634 IP 192.168.0.108.10001 > 192.168.0.106.10002: UDP, length 10
15:29:19.624197 IP 192.168.0.108.10001 > 192.168.0.106.10002: UDP, length 10
?
?
?
總結(jié)
以上是生活随笔為你收集整理的packETH发包工具使用教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。