solaris中几个网络经典命令小结


1.ping命令:
  这个命令大家再熟悉不过了,windows下经常会遇到的。但在solaris下的用法有些不同,如下所示:
[root@sol01 /]#ping 192.168.1.156
192.168.1.156 is alive
windows下:
C:\Documents and Settings\jacky.lee>ping 192.168.1.156
Pinging 192.168.1.156 with 32 bytes of data:
Reply from 192.168.1.156: bytes=32 time
Ping statistics for 192.168.1.156:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
这样对比很明显了,要在solaris下也有这样的输出,就加个-s参数(这个参数一直会ping,按ctrl+c即可结束):
[root@sol01 /]#ping -s 192.168.1.156
PING 192.168.1.156: 56 data bytes
64 bytes from xzxj (192.168.1.156): icmp_seq=0. time=0.231 ms
64 bytes from xzxj (192.168.1.156): icmp_seq=1. time=0.490 ms
64 bytes from xzxj (192.168.1.156): icmp_seq=2. time=0.462 ms
64 bytes from xzxj (192.168.1.156): icmp_seq=3. time=0.457 ms
^C
----192.168.1.156 PING Statistics----
4 packets transmitted, 4 packets received, 0% packet loss
round-trip (ms)  min/avg/max/stddev = 0.231/0.410/0.490/0.12
[root@sol01 /]#
再加个-I 2参数意为以2秒的时间间隔发送ping包:
[root@sol01 /]#ping -s -I 2 192.168.1.156
PING 192.168.1.156: 56 data bytes
64 bytes from xzxj (192.168.1.156): icmp_seq=0. time=0.564 ms
64 bytes from xzxj (192.168.1.156): icmp_seq=1. time=0.488 ms
64 bytes from xzxj (192.168.1.156): icmp_seq=2. time=0.467 ms
^C
----192.168.1.156 PING Statistics----
3 packets transmitted, 3 packets received, 0% packet loss
round-trip (ms)  min/avg/max/stddev = 0.467/0.506/0.564/0.051
[root@sol01 /]#
下例是发送一个特定大小的数据包:
[root@sol01 /]#ping -s 192.168.1.156 4096
PING 192.168.1.156: 4096 data bytes
4104 bytes from xzxj (192.168.1.156): icmp_seq=0. time=4.48 ms
4104 bytes from xzxj (192.168.1.156): icmp_seq=1. time=0.968 ms
4104 bytes from xzxj (192.168.1.156): icmp_seq=2. time=0.897 ms
^C
----192.168.1.156 PING Statistics----
3 packets transmitted, 3 packets received, 0% packet loss
round-trip (ms)  min/avg/max/stddev = 0.897/2.12/4.48/2.1
以太网中常见的包有512,1024,4096,8096byte 大小左右.4096是一很有代表性的数字,代表一个相当大的数据分组,可以用来测试远程系统能否接受大数据分组.
发送三个1024大小的包:
[root@sol01 /]#ping -s 192.168.1.156 1024 3
PING 192.168.1.156: 1024 data bytes
1032 bytes from xzxj (192.168.1.156): icmp_seq=0. time=0.622 ms
1032 bytes from xzxj (192.168.1.156): icmp_seq=1. time=0.497 ms
1032 bytes from xzxj (192.168.1.156): icmp_seq=2. time=0.514 ms
----192.168.1.156 PING Statistics----
3 packets transmitted, 3 packets received, 0% packet loss
round-trip (ms)  min/avg/max/stddev = 0.497/0.544/0.622/0.068
[root@sol01 /]#
1)icmp_seq=0 icmp 返回包的顺序号,如果顺序号不正常,说明路由存在问题
2)time=0. ms 显示包的延迟时间,局网的延迟应该是0-20 秒,对于这个你应该是有经验的
2)ctrl+c 退出后,在最后一行可以看见丢包率
2.ndd,在不重新启动系统与配置内核的情况下设置网络参数:
用法:
a)ndd /dev/hme \?
查看/dev/hme 设备可以修改的参数
b)ndd /dev/hme link_speed
查看这个参数现有的值
c)ndd -set /dev/hme link_speed 1
设置这个参数的值
2)ndd 可以修改的设备
/dev/arp
/dev/icmp
/dev/tcp
/dev/ip
/dev/hme
......
3)ndd,实例:
[root@sol01 /]# ndd /dev/hme \?
?                             (read only)
transceiver_inuse             (read only)
link_status                   (read only)
link_speed                    (read only)
link_mode                     (read only)
ipg1                          (read and write)
ipg2                          (read and write)
use_int_xcvr                  (read and write)
pace_size                     (read and write)
adv_autoneg_cap               (read and write)
adv_100T4_cap                 (read and write)
adv_100fdx_cap                (read and write)
adv_100hdx_cap                (read and write)
adv_10fdx_cap                 (read and write)
adv_10hdx_cap                 (read and write)
autoneg_cap                   (read only)
100T4_cap                     (read only)
100fdx_cap                    (read only)
100hdx_cap                    (read only)
10fdx_cap                     (read only)
10hdx_cap                     (read only)
lp_autoneg_cap                (read only)
lp_100T4_cap                  (read only)
lp_100fdx_cap                 (read only)
lp_100hdx_cap                 (read only)
lp_10fdx_cap                  (read only)
lp_10hdx_cap                  (read only)
instance                      (read and write)
lance_mode                    (read and write)
ipg0                          (read and write)

ndd -set /dev/hme link_speed 1
1 表示100M
0 表示10M
ndd -set /dev/hme autoneg_cap 1
1 表示100M 与10M 自适应网卡
0 表示非自适应
ndd -set /dev/hme 100fdx_cap 1
100M 全双工支持
ndd -set /dev/hme 100hdx_cap 1
100M 半双工支持
ndd -set /dev/hme 10fdx_cap 1
10M 全双工支持
ndd -set /dev/hme 10hdx_cap 1
10M 半双工支持
ndd -set /dev/ip hme0:ip_forwarding
决定这张网卡是否转发数据包,默认网卡是转发包的。除非做路由器,否则关闭转发。
ndd –set /dev/ip ip_forward_directed_broadcasts 0
默认网卡是转发广播包的,为防止smurf 攻击,关闭广播转发。
ndd –set /dev/ip ip_forward_src_routed 0
源路由转发,照样关闭。
ndd –set /dev/tcp tcp_conn_req_max_q0 4096
ndd –set /dev/tcp tcp_conn_req_max_q 1024
防止Synflood 攻击
ndd -set /dev/tcp tcp_close_wait_interval 30000
默认打开一个tcp 连接后,默认在120 秒内会保持打开状态,造成很大的资源浪费,这里修改成
30 秒.
几句不太明白的ndd 命令,但是对于安全有益。
ndd -set /dev/ip ip_ignore_redirects 1
忽略重定向错误
ndd -set /dev/ip ip_send_redirects 0
不发送重定向数据包
ndd-set /dev/ip ip_respond_to_timestamp 0
不响应时间戳
ndd –set /dev/ip ip_respind_to_address_mask_broadcast 0
不响应地址掩码广播
ndd –set /dev/ip ip_respond_to_timestamp_broadcast 0
不响应时间戳广播
ndd –set /dev/ip ip_respond_to_echo_boadcast 0
关闭对echo 广播的响应
关于ndd的命令修改系统,都可以加入/etc/init.d/inetinit中去。
心得:在用ndd 命令修改网络参数的同时,发现TCP/IP 网络基础知识还是不足,但可以确定的一点就是用ndd 命令,可以对防止DOS 攻击启动积极的作用. 在重负荷的网站可能需要优化磁盘IO 与用ndd 优化一些网络参数,如/dev/tcp.但在此之前先要熟悉tcp 的原理.关于ndd在Solaris 网络与安全方面还有应用,注意查阅书籍.注意:修改ndd 属于中级管理员的命令,由于ndd 所造成的错误十分隐蔽,排错过程为,先寻找启动过程中的ndd 命令,进而重新启动机器.
3.arp 命令
1)arp -a 查看arp 表
solaris 默认保存动态arp 表300 秒
#ndd –set /dev/arp arp_cleanup_interval 60000
#ndd -set /dev/ip ip_ire_flush_interval 60000
减短arp 的过期时间。
2)arp -s hostname mac
添加静态arp 项,静态添加的arp 项除非手工删除,是不会消失的
静态arp 一般都是在路由器,网关上作,网关作了静态arp 之后,可以大大地减少广播,显著地
提高网络效率.
也可以把命令放在启动脚本中.
3)arp -f filename
从一个文件中读取arp 信息
4)arp -d hostname
删除一项arp 项
注意:一个错误的arp 对应关系,无法正确访问,但是由于一直有人访问,所以造成该arp 项无
法被清空,在路由器与交换机上经常出现这种情况,需要受动清空arp 表,或者直接重启设备.
用arp 判断ip 地址冲突
a机器上可能出现ip 冲突
1)在a上用ifocnfig 或者ok banner查看mac地址
2)在b上ping a
3)在b上arp -a 查看本机mac地址表中的mac与a是否对应

4.rarp:
1)使用环境,无盘工作站,DHCP
2)deamon:in.rarpd
rarp 的条件
1)/etc/inet/hosts 文件
2)/etc/ethers 文件
3)/usr/sbin/in.rarpd 要运行关于rarp 的deamon
启动rarpd
/usr/sbin/in.rarpd -a 在所有的网卡上启动rarp
/usr/sbin/in.rarpd -ad debug 模式
in.rarpd 是在nfs.server 中启动的
在做nis 的时候,一般不把ethers,networks 之类的网络信息放在网上,可以提高查找与访问
信息效率.对于,学校,软件公司等要求不高的地方.
如果对安全与效率要求高,则尽量少使用nis.
arp如果碰到复杂环境,如双网卡,或者双网卡用一个ip,arp -s 向哪张网卡上加.

posted on 2012-09-19 09:26  Dream_c  阅读(1398)  评论(0编辑  收藏  举报