• shell之arp命令


    arp: 显示所有的表项。
    arp -d address: 删除一个arp表项。
    arp -s address hw_addr: 设置一个arp表项。
     
    常用参数:
    -a 使用bsd形式输出。(没有固定的列)
    -n 使用数字形式显示ip地址,而不是默认的主机名形式。
    -D 不是指定硬件地址而是指定一个网络接口的名称,表项将使用相应接口的MAC地址。一般用来设置ARP代理。
    -H type, --hw-type type: 指定检查特定类型的表项,默认type为ether,还有其他类型。
    -i If, --device If: 指定设置哪个网络接口上面的arp表项。
    -f filename: 作用同'-s',不过它通过文件来指定IP地址和MAC地址的绑定。文件中每行分别是主机和MAC,中间以空格分割。如果没有指定文件名称,则使用/etc/ethers文件。

     

    开启arp代理
    echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
    代理ARP的应用环境?
    A:Proxy ARP应该使用主机没有配置默认网关或没有任何路由策略的网络上。
    举个例子:主机A,IP地址是192.168.0.11/24。主机B,IP地址是192.168.1.22/24。主机A和主机B通过路由器R相连接,并且路由器R启用了Proxy ARP,并配置有路由。网络拓扑如下:
     
    eth0 eth0 eth1 eth0
    A------------------Router R------------------B
    192.168.0.11/24 192.168.0.0/24 eth0 192.168.1.22/24
    192.168.1.0/24 eth1
     
    在主机A上执行:ping 192.168.1.22,主机A不知道主机B的MAC地址是多少,首先要发送ARP查询报文,路由器R接收到主机A发出的ARP查询报文,并代替主机B作出应答,应答ARP报文中填入的就是路由器R的MAC地址。这样,主机A就会认为路由器R的地址是192.168.1.22。以后所有发往192.168.1.22的报文都发到路由器R,路由器R再根据已配置好的路由表将报文转发给主机B。
    这样做的好处就是,主机A上不需要设置任何默认网关或路由策略,不管路由器R的IP地址怎么变化,主机A都能通过路由器B到达主机B,也就是实现了所谓的透明代理。相反,若主机A上设置有默认网关或路由策略时,当主机A向192.168.1.22发送报文,首先要查找路由表,而主机A所在的网段是192.168.0.0/24,主机B所在网段是192.168.1.0/24,主机A只能通过默认网关将报文发送出去,这样代理ARP也就失去了作用。
     
    防止ARP攻击的shell代码
    #!/bin/bash
    declare gw=`route -n | grep -e '^0.0.0.0'`
    declare gwname=`echo $gw | grep -oe 'w*$'`
    declare gwip=`echo $gw | grep -oe '[0-9]{2,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'`
    declare gwmac=`arp -n | grep -e $gwip | grep -oe '[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-
    F]{2}:[0-9A-F]{2}:[0-9A-F]{2}'`
    echo "switch $gwname arp: $gwip - $gwmac to static"
    arp -s $gwip $gwmac
    echo "done, off arp reuqest .."
    ifconfig $gwname -arp
    echo "all done."

     

    arping命令
    arping -U -I 发送包的网卡接口 -s 源ip 目的ip
    假设你的eth0接口对应的ip为192.168.1.1,网关为192.168.1.255你就可以使用
    arping -U -I eth0 -s 192.168.1.1 192.168.1.255
     
    参数
    -0:指定源地址为0.0.0.0,这个一般是在我们刚刚安装好系统,电脑还没配置好IP的时候
    -a:Audible ping.这个当有reply回来的时候,你的电脑有喇叭的话,就会滴滴的叫
    -A:Only count addresses matching requested address
    -b:类似-0,指定源broadcast为255.255.255.255
    -B:指定这个就相当于 arping 255.255.255.255
    -c count:发送指定数量的arp包后,即停止退出
    -d:这个比较重要,当局域网有IP占用的时候,可以指定这个参数,当有相同的IP的不同MAC地址reply的时候,arping会退出,退出码为1
    -D:这个检测是否丢包的,当丢包的时候打印感叹号,正常的时候打印逗号
    -e:和-a相反,当没有reply的时候,会滴滴滴
    -p:打开混杂模式,当前用户对mac无权限时,可以加上这个选
    -r:输出的时候只打印MAC,写脚本的时候用得到,不用自己对结果awk了
    -R:输出的时候只打印IP,和上面一样
    -s MAC:指定源MAC地址
    -S IP:指定源IP,设置了源IP,如果目标主机没有到源IP的route,则有可能收不到answer
    -t MAC:指定目的MAC
    -T IP:指定目的IP,
    -i interface:指定发送arp包的设备。不指定的话,默认为系统的第一块网卡
    -q:表示不打印输出,写脚本不想打印输出的时候,应该用的到
    -u:没啥大用,结果显示的时候,加这个参数和不加,index的显示形式不同
    -v:打印详细的输出,默认打印的好像就是verbose
    -w deadline:指定两个ping直接的时间间隔,单位为毫秒,默认为1秒

     

    用法
    用法1:查看某个IP的MAC地址
    arping 192.168.131.155
    用法2:查看某个IP的MAC地址,并指定count数量
    arping -c 1 192.168.131.155
    用法3:当有多块网卡的时候,指定特定的设备来发送请求包
    arping -i eth1 -c 1 192.168.131.155
    用法4:查看某个IP是否被不同的MAC占用
    arping -d 192.168.131.155
    用法5:查看某个MAC地址的IP,要在同一子网才查得到
    arping -c 1 52:54:00:a1:31:89
    用法6:确定MAC和IP的对应,确定指定的网卡绑定了指定的IP
    arping -c 1 -T 192.168.131.156 00:13:72:f9:ca:60
    用法7:确定IP和MAC对应,确定指定IP绑在了指定的网卡上
    arping -c 1 -t 00:13:72:f9:ca:60 192.168.131.156
    用法8:有时候,本地查不到某主机,可以通过让网关或别的机器去查。以下几种形式测了下都可以
    arping -c 1 -S 10.240.160.1 -s 88:5a:92:12:c1:c1 10.240.162.115
    arping -c 1 -S 10.240.160.1 10.240.162.115
    arping -c 1 -s 88:5a:92:12:c1:c1 10.240.162.115
  • 相关阅读:
    左偏树(DP)问题
    Dinic问题
    卡特兰数问题
    《DSP using MATLAB》Problem 2.19
    《DSP using MATLAB》Problem 2.18
    《DSP using MATLAB》Problem 2.17
    《DSP using MATLAB》Problem 2.16
    《DSP using MATLAB》Problem 2.15
    《DSP using MATLAB》Problem 2.14
    《DSP using MATLAB》Problem 2.10
  • 原文地址:https://www.cnblogs.com/tla001/p/6436186.html
Copyright © 2020-2023  润新知