tcpdump和ethereal都是著名的開源網絡數據包捕獲和分析軟件,大家對肯定都曾經用過,其中Ethereal是通過capture
filter設置捕獲規則,display
filter設置顯示規則,捕獲規則和顯示規則的語法是不同的,其中捕獲規則語法類似tcpdump的規律規則語法。這里主要通過例子簡要說明下如何設置
其tcpdump和ethereal中的過濾器,對IPv6數據包進行捕獲。
1. 基于主機的捕獲
host host? ?? ???#host可以是主機名或IP地址
src host host? ?? ???#host作為數據包的源地址
dst host host? ?? ???#host作為數據包的目的地址
$tcpdump -t -vv -n -i eth0 -s 512 host 1337::1
2. 基于端口號
port port? ?? ???#捕獲端口號為80的數據包,不管源或目的
src port port? ?? ???#源端口80
dst port port? ?? ???#目的端口80
3. 基于網段
net 192.168
src net 192.168
dst net 192.168
4. 基于協議
ether proto
ip proto tcp
tcp
udp
ip proto udp
5. 基于字節偏移
語法: proto[offset]
ip[8] : TTL字段
ip[9]: IP頭中的協議字段
因此,要捕獲IPv6的數據包,可以設置以下簡單的過濾規則:
1) proto ipv6
$tcpdump -t -vv -n -i eth0 -s 512 proto ipv6
2) ether proto 0x86dd
捕獲封裝在IPv4中的IPv6隧道數據包,則:
ip[9]=41
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1501641