您的位置:首页 > 理论基础 > 计算机网络

【学神】1-16 网络管理相关命令

2015-11-23 12:10 681 查看
本节所讲内容:
OSI七层模型和TCP/IP四层模型 IP地址分类 了解常见的网络相关协议 TCP三次握手和四次挥手 网络相关的调试命令 实战tcpdump和tshark抓包

一、OSI七层模型和TCP/IP四层模型

OSI 七层模型 TCP/IP 四层模型
应用层 应用层:如:http协议 FTP协议表示层 ASCII 会话层传输层 防火墙 传输层 tcp udp 网络层 三层交换机和路由器 网络层 路由器数据链路 二层交换机和网卡 链路接口层物理层 集线器




二、IP地址分类

简单的说,IP地址分5类,常见的地址是A、B、C类IP地址由4组8位2进制数组成,为了方便记忆转换成十进制数,如:192.168.1.2分为网络号(网段号)与主机号组成。子网掩码:用于区分网段号与主机号,标准子网掩码网段号用全1表示(即255),主机号用全0表示(即0),可用于划分子网。A类地址:第一位为网络号,后三位为主机号,网段号的取值范围从0-127,0是保留的并且表示所有IP地址(例:0.0.0.0),而127也是保留的地址,并且是用于测试环回口用的。因此A类地址的可用的范围其实是从1-126之间。其标准子网掩码为:255.0.0.0 B类地址:前2位为网络号,后2位为主机号,网段号第一位的取值范围从128-191,如172.168.1.1,其标准子网掩码为:255.255.0.0 C类地址:前3位为网络号,后1位为主机号,网段号第一位的取值范围从192-223,如: 192.168.1.254,其标准子网掩码为: 255.255.255.0 D类地址:范围从224-239,被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。例:




私有IPA:10.0.0.0/8B: 172.16.0.0 ~ 172.31.0.0/16C: 192.168.0.0 ~ 192.168.255.0/24 255.255.255.0【例】 ping 127网段的ip
[root@xuegod63 ~]# ping 127.23.23.23
PING 127.23.23.23 (127.23.23.23) 56(84) bytes of data.
64 bytes from 127.23.23.23: icmp_seq=1 ttl=64 time=0.360 ms
回环口一直是可用up状态:结论:这个127这个网段都用于环回口

三、TCP/IP协议

TCP/IP协议是一个协议簇。里面包括很多协议的。主要有以下协议超文本传输协议(HTTP):万维网的基本协议.文件传输(TFTP简单文件传输协议): 远程登录(Telnet)网络管理(SNMP简单网络管理协议)TCP Transmission Control Protocol,传输控制协议)是面向连接的协议,UDP UDP(User Data Protocol,用户数据报协议)非连接的协议Internet协议(IP) Internet控制信息协议(ICMP) 地址解析协议(ARP) 反向地址解析协议(RARP) TCP和UDP区别1.基于连接与无连接;
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.tcp流模式与udp数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证

四、TCP三次握手和四次挥手

1 tcp: 三次握手

作用:建立连接


1.1 tcp三次握手的链接状态C(client) S(server)TCP连接状态 建立过程 TCP连接状态 LISTENSYN_SENT ---syn seq=a --> SYN_RCVDESTABLISHED <--syn seq=b ack=a+1 --ack=b+1--> ESTABLISHED #(单词意思为:公认;含意为:连接成功)

2 TCP四次挥手

作用:关闭连接


四次挥手状态关闭连接:四次挥手 C(client) S(server)TCP连接状态 建立过程 TCP连接状态FIN_WAIT --fin seq=a--> CLOSE_WAITFIN_WAIT2 <--ack a+1-- TIME_WAIT <--fin b-- LAST_ACK --ack b+1--> CLOSE扩展: 网络接口类型表示方法以太网(ethernet) ethN回环口 lo光纤网 fddiN桥设备: br0 Linux ADSL宽带接口:ppp pppN 如:ppp0tun0 tun1

五、网络相关的调试命令

1查看网卡硬件相关信息

1.1 查看网卡物理连接是否正常
[root@xuegod63 ~]# mii-tool eth0
eth0: negotiated 100baseTx-FD, link ok
1.2 ethtool 是用于查询及设置网卡参数的命令
#ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes:   10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes:  10
baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes  #播发自动协商:是
Speed: 1000Mb/s   #当前是1000M
Duplex: Full     #全双工
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
Link detected: yes

2 配置网络和IP地址

方法一:#setup (TUI,方式,文本用户界面(Text User Interface) 配置IP地址说明:在RHEL6中增加了一个新的网络服务:
[root@xuegod63 ~]# /etc/init.d/NetworkManager stop   #但是这个服务在后期使用中有一些问题,另外,在字符界面下也不需要使用这个服务。
Stopping NetworkManager daemon:                            [FAILED]
[root@xuegod63 ~]# chkconfig NetworkManager off
[root@xuegod63 ~]# service network restart
查看IP相关信息#ifconfig #查看所有激活状态的网卡信息#ifconfig eth0 #只查看eth0-a所有网卡,包括没有启动的网卡信息。#ifconfig eth0 down/up #ifdown eth0 #ifup eth0#ifconfig eth0:1 192.168.1.3 netmask 255.255.255.0 #临时有效。 重启network服务方法二:修改网卡配置文件:
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0  #物理设备的名字,内核通过这上名字来确认是哪个网卡
BOOTPROTO=static 或dhcp 或none无(不指定),如是none,配上IP地址和static效果一样
IPADDR=192.168.18.254
NETMASK=255.255.255.0
ONBOOT=YES   开机启动网卡
TYPE=Ethernet    #类型为:以太网
注:
BOOTPROTO=static   静态IP
BOOTPROTO=dhcp   动态IP
BOOTPROTO=none   无(不指定)
【例】 给新添加的网卡添加IP地址和对应的配置文件。
[root@xuegod63 ~]# setup   #通过setup命令可以快速生成一个网卡的配置文件



[root@xuegod63 ~]# service network restart

3 修改主机名配置文件

作用:设置主机名永久生效其他相关配置文件:
#vim /etc/sysconfig/network
NETWORKING=yes 开机时激活网络,开启network服务注:如果NETWORKING=no,即使network设置为开机启动,那也启不来。HOSTNAME=localhost.localdomain

4配置IP与主机名(域名)的对应

[root@xuegod63 ~]# cat /etc/hosts   #优先级高于DNS解析
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63   xuegod63.cn
192.168.1.64   xuegod64.cn

5 DNS配置的配置文件

#vim /etc/resolv.conf
RHEL5,用这个文件。在RHEL6中直接在网卡配置文件中指定:DNS1=192.168.1.1默认情况下,域名解析顺序: 本地hosts文件-》DNS查询互动:是不是一定先解析hosts再解析DNS?本机域名解析顺序
#vim /etc/nsswitch.conf    #查找以下内容
#hosts:     db files nisplus nis dns
hosts:      files dns

6 端口号和服务对应的配置文件

#vim /etc/services #此文件可以查看常用端口对应的名字。iptables或netstat要把端口解析成协议名时,都需要使用到这个文件。另外后期xinetd服务管理一些小服务时,也会使用到此文件来查询对应的小服务端口号。

7 查看路由信息: 查看默认网关

[root@xuegod63 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
说明:route命令输出的路由表字段含义如下
Destination 目标
The destination network or destination host. 目标网络或目标主机。

Gateway 网关
The gateway address or '*' if none set. 网关地址,如果没有就显示星号或4个0。

Genmask 网络掩码
The netmask for the destination net; '255.255.255.255' for a
host destination and '0.0.0.0' for the default route. 添加/删除路由条目:增加 (add) 与删除 (del) 路由的相关参数:
-net :表示后面接的路由为一个网域;
-host :表示后面接的为连接到单部主机的路由;
netmask :与网域有关,可以设定 netmask 决定网域的大小;
dev :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等【例】
添加路由(把Linux做成路由器时或服务器有多个网卡,指定到不同网段走哪个网卡)
[root@xuegod63 ~]# route add -net 192.168.2.0 netmask 255.255.255.0 dev eth1
添加默认网关
[root@xuegod63 ~]# route add default gw IP
删除路由
[root@xuegod63 ~]# route del -net 192.168.2.0 netmask 255.255.255.0
查看路由信息
[root@xuegod63 ~]# route 或 route -n (-n 表示不解析名字,列出速度会比route 快)
8 查看网络连接状态
[root@xuegod63 ~]# netstat -antup
-a, --all-n, --numeric don't resolve names-p, --programs-t 显示tcp连接-u 显示udp连接

9 ping命令的一般格式为

-c 数目 在发送指定数目的包后停止。 -i 秒数 设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
[root@xuegod63 ~]# ping -i 0.01 192.168.1.1
指定从哪个端口出去。ping -I eth0 192.168.1.1 使用参数大写的I

10 iptraf

查看网络流量:
[root@xuegod63 ~]# rpm -ivh /mnt/Packages/iptraf-3.0.1-13.el6.x86_64.rpm
[root@xuegod63 ~]# iptraf




arping: 查看IP地址是否有冲突例:arping 192.168.1.1
[root@xuegod63 ~]# arping 192.168.1.1
ARPING 192.168.1.1 from 192.168.1.63 eth0
Unicast reply from 192.168.1.1 [50:BD:5F:24:78:72]  8.376ms
Unicast reply from 192.168.1.1 [C0:61:18:63:BC:D6]  8.457ms
Unicast reply from 192.168.1.1 [D0:C7:C0:0C:B2:24]  8.476ms
Unicast reply from 192.168.1.1 [34:BD:F9:84:50:D0]  8.499ms
Unicast reply from 192.168.1.1 [34:BD:F9:84:50:D0]  4.634ms
11.ARP 管理命令示例1:查看ARP缓存 
 [root@xuegod63 ~]# arp
示例2: 添加 
 [root@xuegod63 ~]# arp –s IP MAC
  示例3: 删除 
 [root@xuegod63 ~]# arp –d IP
12.ipip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具。例如:ifconfig、route等,ip命令的语法  ip命令的用法如下:  ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]ip link set——改变设备的属性。 缩写:set、s  示例1:up/down 起动/关闭设备。
  [root@xuegod63 ~]# ip link set dev eth0 up
 
这个等于传统的 # ifconfig eth0 up(down)  示例2:改变设备传输队列的长度。  参数:txqueuelen NUMBER或者txqlen NUMBER 
 [root@xuegod63 ~]# ip link set dev eth0 txqueuelen 100
  示例3:改变网络设备MTU(最大传输单元)的值。  
[root@xuegod63 ~]# ip link set dev eth0 mtu 1500
  示例4: 修改网络设备的MAC地址。  参数: address LLADDRESS  
[root@xuegod63 ~]# ip link set dev eth0 address 00:01:4f:00:15:f1
ip link show——显示设备属性。 缩写:show、list、lst、sh、ls、l  -s选项出现两次或者更多次,ip会输出更为详细的错误信息统计。示例:  
[root@xuegod63 ~]# ip -s -s link ls eth0
  eth0: mtu 1500 qdisc cbq qlen 100
  link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff
  RX: bytes packets errors dropped overrun mcast
  2449949362 2786187 0 0 0 0
  RX errors: length crc fifo missed
  0 0 0 0 0
  TX: bytes packets errors dropped carrier collsns
  178558497 1783946 332 0 332 35172
  TX errors: aborted fifo window heartbeat
  0 0 0 332
这个命令等于传统的 ifconfig eth0

六、实战tcpdump和tshark抓包

1 tcpdump命令

1.1指定接口(-i)如:tcpdump -i eth0三次握手过程分析在主机A上开启SSHD服务,此时不要有任何客户端主机来连接主机A的SSHD服务。这样是为了抓包更清楚。 主机A执行:tcpdump port 22 -c 3 -n -S# port 端口号-c 抓几个包-n 不解析端口号为协议名 -S Print absolute, rather than relative, TCP sequence numbers.主机B执行:
yum install telnet -y   #安装telnet


telnet 192.168.1.63 22    #连接主机A的22端口
1.2 分析数据包
[root@xuegod63 ~]# tcpdump port 22 -c 3 -n -S
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
22:41:08.630144 IP 192.168.1.64.53619 > 192.168.1.63.ssh:Flags [S], seq 1186556275, win 14600, options [mss 1460,sackOK,TS val 4294894444 ecr 0,nop,wscale 7], length 0
22:41:08.630270 IP192.168.1.63.ssh > 192.168.1.64.53619: Flags [S.], seq 1584691203,ack 1186556276,win 14480, options [mss 1460,sackOK,TS val 3611906 ecr 4294894444,nop,wscale 7], length 0
22:41:08.631121 IP 192.168.1.64.53619 > 192.168.1.63.ssh: Flags [.], ack 1584691204, win 115, options [nop,nop,TS val 4294894449 ecr 3611906], length 0
3 packets captured
7 packets received by filter
0 packets dropped by kernel
2 抓包命令
[root@xuegod63 Packages]# yum install wireshark -y
[root@xuegod63 ~]# tshark -w filename -i eth0
-w 将抓包的数据写入文件filename中。
-i 指定要抓包的接口名称
[root@xuegod63 ~]# tshark -r filename
-r 指定要读取的包文件
-V 将包尽可能的解析(这个有时在包数量很多的情况下可以不使用,这样它会给出一个很简洁的报文解释 学神-IT-教育51cto技术交流群:468845589快来上我们公开课吧! 学神MK老师:1273815479 学神ZY老师:3054384936 学神IT-vip1508-公瑾提供 本文出自 “学神IT教育-讲师MK” 博客,请务必保留此出处http://xuegodlinux.blog.51cto.com/10844319/1715889
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: