RCODeエラー(ServFail、NXDomainなど)をUbuntu Xenial
使用してDNS応答をフィルタリングしたいと思います。tcpdump
したがって、「0」を除くすべての RCODE です。
(望むよりIANA DNS Rコード)
したがって、UDPパケットの11番目のバイトに基づいてフィルタを使用する必要があります。 4つの低ビットにはRCODEが含まれています。値が0と異なるかどうかをテストしたいと思います。だから私はこの4つの低いビットだけを得るために左に4ビットを動かします。
このコマンドは機能しません。
tcpdump ポート 53 と 'udp[11] << 4 > 0'
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 14:07:04.148693 IP ns-cache0.oleane.net.domain > 192.168.151.53.50372: 17799 2/0/0 CNAME video-stats.l.google.com., A 216.58.204.142 (82) 14:07:04.150768 IP ns-cache0.oleane.net.domain > 192.168.151.53.50372: 39389 2/0/0 CNAME video-stats.l.google.com., AAAA 2a00:1450:4007:812::200e (94) 14:07:04.150798 IP ns-cache0.oleane.net.domain > 192.168.151.53.60464: 60219 NXDomain* 0/1/0 (104) 14:07:04.152703 IP ns-cache0.oleane.net.domain > 192.168.151.53.40235: 3472 1/0/0 PTR ns-cache0.oleane.net. (75)
NoError DNS応答も受信しました...
ただし、このコマンドを使用すると機能します。
tcpdump ポート 53 および "udp[11]&0x0F > 0"
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 14:07:42.014626 IP ns-cache0.oleane.net.domain > 192.168.151.53.54270: 44447 NXDomain 0/1/1 (109) 14:07:42.016611 IP ns-cache0.oleane.net.domain > 192.168.151.53.41840: 57750 NXDomain* 0/1/0 (104)
なぜ左に移動しないのですか?
答え1
8ビットレジスタには左シフトを実行する仕様がなく、上位ビットは破棄されます。 (実際には、シフトは32ビットまたは64ビットなどのコンピュータにあるデフォルトのサイズレジスタを使用できます。)
したがって、値を隠すために左のShiftキーを使用しないでください。