RHEL7网络管理相关的命令

本节所讲内容:

•      OSI七层模型和TCP/IP四层模型

•      IP地址分类

•      了解常见的网络相关协议

•      TCP三次握手和四次挥手

•      网络相关的调试命令

•      实战tcpdump和tshark抓包

 

OSI 七层模型                                            TCP/IP 四层模型                 

应用层                                           应用层:如:http协议  FTP协议

表示层  ASCII       

会话层         

 

传输层  防火墙                                   传输层  tcp udp

网络层  三层交换机和路由器                网络层  路由器

 

数据链路 二层交换机和网卡                     链路接口层

物理层   集线器

 

IP地址分类:

简单的说,IP地址分5类,常见的地址是A、B、C类

A类地址:范围从0-127,0是保留的并且表示所有IP地址(例:0.0.0.0),而127也是保留的地址,并

且是用于测试环回口用的。因此A类地址的可用的范围其实是从1-126之间。

以子网掩码来进行区别:255.0.0.0

8.8.8.8

范围

0

*

*

*

*

*

*

*

二进制

十进制

最小

0

0

0

0

0

0

0

0

00000000

0

最大

0

1

1

1

1

1

1

1

01111111

127

 

B类地址:范围从128-191,如172.168.1.1,第一和第二段号码为网络号码,剩下的2段号码为本地计 255.255.0.0

 

范围

1

0

*

*

*

*

*

*

二进制

十进制

最小

1

0

0

0

0

0

0

0

10000000

128

最大

1

0

1

1

1

1

1

1

10111111

191

C类地址:范围从192-223,以子网掩码来进行区别: 255.255.255.0

例如: 192.168.1.254 

范围

1

1

0

*

*

*

*

*

二进制

十进制

最小

1

1

0

0

0

0

0

0

11000000

192

最大

1

1

0

1

1

1

1

1

11011111

223

 

D类地址:范围从224-239,被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机

E类地址:军工企业,科研部门

 

 

它标识共享同一协议的一组计算机。

例:

 

私有IP

A:10.0.0.0/8

B:  172.16.0.0 ~ 172.31.0.0/16

C:  192.168.0.0 ~ 192.168.255.0/24    255.255.255.0

 

例:

回环口一直是可用up状态:       

结论:这个127这个网段都用于环回口

[root@xuegod60 ~]# ping127.0.0.1

PING 127.0.0.1(127.0.0.1) 56(84) bytes of data.

64 bytes from 127.0.0.1:icmp_seq=1 ttl=64 time=0.073 ms

64 bytes from 127.0.0.1:icmp_seq=2 ttl=64 time=0.087 ms

 

TCP/IP协议

TCP/IP协议是一个协议簇。里面包括很多协议的

 

例如:
超文本传输协议(HTTP):万维网的基本协议.   
文件传输ftp

(TFTP简单文件传输协议):   搭建无人值守安装服务器

远程登录(Telnet)

网络管理(SNMP简单网络管理协议)

TCP TransmissionControl Protocol,传输控制协议)是面向连接的协议,

UDP UDP(User Data Protocol,用户数据报协议)非连接的协议

Internet协议(IP)     
Internet
控制信息协议(ICMP)   
地址解析协议(ARP)    
反向地址解析协议(RARP)

 

TCP和UDP区别

1.基于连接与无连接;
2.
对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.tcp流模式与udp数据报模式 ;

 

tcp: 三次握手

作用:建立连接

 

Client                            Server

 

TCP连接状态   建立过程        TCP连接状态

               LISTEN

SYN_SENT    ---synseq=a -->       SYN_RCVD

ESTABLISHED <--syn seq=b ack=a+1

           --ack=b+1-->      ESTABLISHED  #(单词意思为:公认;含意为:连接成功

 

任务:FIN   SYN  ACK   RST

 

TCP四次挥手四交挥手状态:

关闭连接:四次挥手

 

  C                        S

FIN_WAIT  --fin seq=a-->     CLOSE_WAIT

FIN_WAIT2  <--acka+1-- 

TIME_WAIT  <--fin b--    LAST_ACK

          --ack b+1-->   CLOSE

 

 

网络接口类型表示方法:

以太网(ethernet)  eno(7位数字)      RHEL6    ethN

回环口              lo

光纤网             fddiN

桥设备:            br0

Linux ADSL宽带接口:ppp              pppN  如:ppp0

隧道                     tun0   tun1

 

网络相关的调试命令:

查看网卡硬件相关信息:

#查看网卡物理连接是否正常

[root@xuegod60 ~]#mii-tool eno16777736

eno16777736: negotiated1000baseT-FD flow-control, link ok

[root@xuegod60 ~]#mii-tool eno16777736

eno16777736: no link

 

ethtool 是用于查询及设置网卡参数的命令。

[root@xuegod60 ~]#ethtool eno16777736

Settings for eno16777736:

       Supported ports: [ TP ]

       Supported link modes:  10baseT/Half 10baseT/Full

                              100baseT/Half 100baseT/Full

                              1000baseT/Full

       Supported pause frame use: No

       Supports auto-negotiation: Yes

       Advertised link modes: 10baseT/Half 10baseT/Full

                              100baseT/Half 100baseT/Full

                              1000baseT/Full

       Advertised pause frame use: No

       Advertised auto-negotiation: Yes

       Speed: 1000Mb/s

       Duplex: Full

       Port: Twisted Pair

       PHYAD: 0

       Transceiver: internal

       Auto-negotiation: on

       MDI-X: off (auto)

       Supports Wake-on: d

       Wake-on: d

       Current message level: 0x00000007 (7)

                            drvprobe link

       Link detected: yes

 

配置网络和IP地址:

方法一:[root@xuegod60~]# nmtui-edit eno16777736

方法二:修改网卡配置文件

[root@xuegod60 ~]# vim/etc/sysconfig/network-scripts/ifcfg-eno16777736

TYPE="Ethernet"

BOOTPROTO="none"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

NAME="eno16777736"

UUID="dc8f83d0-8a8f-4d94-b494-ea4bf4a16f33"

DEVICE="eno16777736"

ONBOOT="yes"                                       #开启网卡

IPADDR="192.168.1.60"

PREFIX="24"

GATEWAY="192.168.1.1"

DNS1="8.8.8.8"

IPV6_PEERDNS="yes"

IPV6_PEERROUTES="yes"

IPV6_PRIVACY="no"

 

注:

BOOTPROTO=static   静态IP

BOOTPROTO=dhcp   动态IP

BOOTPROTO=none   无(不指定)

 

说明:在RHEL7中增强了NetworkManager服务功能,弱化了network的功能,RHEL7中要确定NetworkManager服务是开启的状态

 

[root@xuegod60 ~]#systemctl status NetworkManager

●NetworkManager.service - Network Manager

   Loaded: loaded(/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset:enabled)

   Active: active(running) since Mon 2016-03-07 20:19:42 CST; 1h 36min ago

 

开启NetworkManager

[root@xuegod60 ~]#systemctl restart NetworkManager     #开启服务

[root@xuegod60 ~]#systemctl enable  NetworkManager   #设置服务开机自动启动

#此服务不开启,则无法通过nmtui工具配置网络

 

重启网络服务

[root@xuegod60 ~]#systemctl restart network

 

扩展:

RHEL6网络服务管理方式

NetworkManager服务建议关闭

[root@xuegod60 ~]#service NetworkManager stop

Redirecting to/bin/systemctl stop NetworkManager.service

[root@xuegod60 ~]#chkconfig NetworkManager off

[root@xuegod60 ~]#service network restart

 

例:给新添加的网卡添加IP地址和对应的配置文件。

添加网卡之后查看网卡的名称

[root@xuegod60 ~]#ifconfig -a

eno16777736:flags=4163  mtu 1500

        inet 192.168.1.60  netmask 255.255.255.0  broadcast 192.168.1.255

        inet6 fe80::20c:29ff:fef2:6ee  prefixlen 64 scopeid 0x20

        ether 00:0c:29:f2:06:ee  txqueuelen 1000  (Ethernet)

        RX packets 692  bytes 73055 (71.3 KiB)

        RX errors 0  dropped 0 overruns 0  frame 0

        TX packets 407  bytes 74386 (72.6 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0

 

eno33554984: flags=4098  mtu 1500

        ether 00:0c:29:f2:06:f8  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0 overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0

 

首先,添加设备

 

重启网络服务

[root@localhost ~]#systemctl restart network

 

修改主机名配置文件

[root@xuegod60 ~]# vim/etc/hostname

xuegod60.cn

 

如果是RHEL6操作系统,通过下面的文件修改主机名

vim/etc/sysconfig/network

 

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

[root@xuegod60 ~]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4localhost4.localdomain4

::1         localhost localhost.localdomainlocalhost6 localhost6.localdomain6

192.168.1.60 xuegod60.cnhost1

 

DNS配置的配置文件

[root@xuegod60 ~]# vim/etc/resolv.conf

 

互动:是不是一定先解析hosts再解析DNS?

本机域名解析顺序

#vim /etc/nsswitch.conf    #查找以下内容

#hosts:     db files nisplus nis dns

hosts:      files dns

 

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

[root@localhost ~]# vim/etc/services

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

 

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

[root@xuegod60 ~]# route-n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.1.1     0.0.0.0         UG   100    0        0 eno16777736

192.168.1.0     0.0.0.0         255.255.255.0   U     100   0        0 eno16777736

192.168.2.0     0.0.0.0         255.255.255.0   U    100    0        0 eno33554984

192.168.122.0   0.0.0.0         255.255.255.0   U    0      0        0 virbr0

 

说明:

route命令输出的路由表字段含义如下:
    Destination
目标
          The destination networkor 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 等

[root@xuegod60 ~]# route add-net 192.168.2.0 netmask 255.255.255.0 dev eno33554984

[root@xuegod60 ~]# route del-net 192.168.2.0 netmask 255.255.255.0

 

查看网络连接状态

[root@xuegod60 ~]# netstat-anptu

-a,--all

-n,--numeric              don't resolvenames

-p,--programs

-t  显示tcp连接

-u  显示udp连接

 

ping命令的一般格式为:

-c 数目 在发送指定数目的包后停止。

-i 秒数 设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。

-I  指定接口

[root@xuegod60 ~]# ping -Ieno16777736 192.168.1.1

 

Iptraf

查看网络流量

[root@xuegod60 ~]# rpm -ivh/mnt/Packages/iptraf-ng-1.1.4-4.el7.x86_64.rpm

[root@xuegod60 ~]# iptraf-ng

arping: 查看IP地址是否有冲突

[root@xuegod60 ~]# arping -Ieno16777736 192.168.1.1

ARPING 192.168.1.1 from192.168.1.60 eno16777736

Unicast reply from 192.168.1.1[FC:D7:33:24:88:24]  0.745ms

Unicast reply from 192.168.1.1[FC:D7:33:24:88:24]  0.851ms

Unicast reply from 192.168.1.1[FC:D7:33:24:88:24]  1.330ms

 

tcpdump命令:

三次握手过程分析

tcpdump port 22 -c 3 -n  -S

# port  端口号

-c  抓几个包

-n  不解析端口号为协议名

-S     Print absolute, rather than relative,  TCP sequence numbers.

-i   指定网卡

在主机A上开启SSHD服务,此时不要有任何客户端主机来连接主机A的SSHD服务。这样是为了抓包更清楚。 

 

在服务端

tcpdump  port 22 -c  3  -n -S  -i  eno16777736

 

抓包命令

在客户端

安装telnet工具包yum -y install  telnet

telnet  192.168.1.60 22

抓包命令

yum -y install wireshark

创建一个保存抓包信息的文件

touch  a.txt

执行抓包命令

[root@xuegod60 ~]# tshark -wa.txt -i eno16777736

[root@xuegod60 ~]# tshark -ra.txt

-r 指定要读取的包文件
-V
将包尽可能的解析(这个有时在包数量很多的情况下可以不使用,这样它会给出一个很简洁的报文解释)

你可能感兴趣的:(linux)