Linux网络属性配置


一、计算机网络

  1、概念:计算机网络就是利用通信设备和线路将地理位置不同的功能独立的多个计算机系统互连起来,以功能完善的网络软件(网络通信协议、信息交换方式和网络操作系统等)实现网络中资源共享,信息传递的系统。

  2、按属性分类,计算机网络通俗地讲就是由多台计算机(或其它计算机网络设备)通过传输介质和  软件物理(或逻辑)连接在一起组成的。总的来说计算机网络的组成基本上包括:计算机、网络操作系统、传输介质(可以是有形的,也可以是无形的,如无线网络的传输介质就是空气)以及相应的应用软件四部分。

二、TCP/IP协议简介
  1.简介

   TCP/IP是Transmission Control Protocol和Internet Protocol的缩写。TCP/IP是Internet主干网络的核心组成部分。它描述了一个四层模型,应用层,传输层,互连网络层,网络接口层。在一个TCP/IP网络上,数据被切割成一个一个的小数据包发送出去,这些数据包都包含了所要去往的目的地地址,到达目的地以后,会被自动的合并起来。

   IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套 规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP 协议就可以与因特网互连互通。正是因为有了IP协议,因特网才得以迅速发展成为世界上最大的、开放 的计算机通信网络。因此,IP协议也可以叫做“因特网协议”。

 2、IP地址具体分类   

 (1)A类IP地址

    一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地 计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为8位,主机标识的长度为24位,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。

   A类IP地址范围:

   1.0.0.0到126.255.255.255[1](二进制表示为:00000001 0000000000000000 00000000 - 01111110 11111111 11111111 11111111)。最后一个是广播地址。

 A类IP地址的子网掩码为255.0.0.0,每个网络支持的最大主机数为256的3次方-2=16777214台。

(2)B类IP地址

   一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码。如果用二进制表示IP地址,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP 地址中网络的标识长度为16位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,每个网 络所能容纳的计算机数为6万多台。

  B类IP地址范围:

   128.0.0.0-191.255.255.255[3](二进制表示为:10000000 00000000 00000000  00000000----10111111 11111111 11111111 11111111)。最后一个是广播地址。

 B类IP地址的子网掩码为255.255.0.0,每个网络支持的最大主机数为256的2次方-2=65534台

(3)C类IP地址

    一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计 算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成, 网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为24位,主机标识的长度为8位,C类网 络地址数量较多,适用于小规模的局域网络,每个网络最多只能包含254台计算机。

  C类IP地址范围:

  192.0.0.0-223.255.255.255[3](二进制表示为: 11000000 00000000 00000000  00000000 - 11011111 11111111 11111111 11111111)。

  C类IP地址的子网掩码为255.255.255.0,每个网络支持的最大主机数为256-2=254台

(4)D类IP地址

   D类IP地址在历史上被叫做多播地址(multicast address),即组播地址。在以太网中,多播地址命 名了一组应该在这个网络中应用接收到一个分组的站点。多播地址的最高位必须是“1110”,

范围:224.0.0.0-239.255.255.255。

(5)E类IP地址

     科研。


3、IPv4的主要内容:

(1)基本概念:

    IPv4,是互联网协议(Internet Protocol,IP)的第四版,也是第一个被广泛使用,构成现今互联 网技术的基石的协议。1981年 Jon Postel 在RFC791中定义了IP,Ipv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议) ,卫星链路等等。局域网中最常用的是以太   网,目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。

(2)地址格式:
   IPv4中规定IP地址长度为32(按TCP/IP参考模型划分),即有2^32-1个地址。一般的书写法为4个 用小数点分开的十进制数。也有人把4位数字化成一个十进制长整数,但这种标示法并不常见。另一方 面,IPv6使用的128位地址所采用的位址记数法,在IPv4也有人用,但使用范围更少。 过去IANAIP地   址分为A,B,C,D 4类,把32位的地址分为两个部分:前面的部分代表网络地址,由IANA分配,后面部分 代表局域网地址。如在C类网络中,前24位为网络地址,后8位为局域网地址,可提供254个设备地址   (因为有两个地址不能为网络设备使用: 255为广播地址,0代表此网络本身) 。网络掩码(Netmask) 限 制了网络的范围,1代表网络部分,0代表设备地址部分,例C类地址常用的网络掩码是255.255.255.0。

   

4、IPv6的主要内容:

(1)基本概念:

   IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。      IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。目前IP协议的版本号是4(简称为IPv4),它的下一个版本就是IPv6。

(2)主要特点:

   1)IPV6地址长度为128位,地址空间增大了2的96次方倍;

   2)灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了IPV4中可变长度的选项字段。IPV6中选项部分的出现方式也有所变化,使路由器可以简单路过选项而不做任何处理,加快了报文处理速度;

   3)IPV6简化了报文头部格式,字段只有8个,加快报文转发,提高了吞吐量;

   4)提高安全性。身份认证和隐私权是IPV6的关键特性;

   5)支持更多的服务类型;

   6)允许协议继续演变,增加新的功能,使之适应未来技术的发展  

(3)IPv6的主要优势:

   1)明显地扩大了地址空间。IPv6采用128位地址长度,几乎可以不受限制地提供IP地址,从而确保了端到端连接的可能性。

   2)提高了网络的整体吞吐量。由于IPv6的数据包可以远远超过64k字节,应用程序可以利用最大传 输单元(MTU),获得更快、更可靠的数据传输,同时在设计上改进了选路结构,采用简化的报头定   长结构和更合理的分段方法,使路由器加快数据包处理速度,提高了转发效率,从而提高网络的整   体吞吐量。

   3)使得整个服务质量得到很大改善。报头中的业务级别和流标记通过路由器的配置可以实现优先级控制和QoS保障,从而极大改善了IPv6的服务质量。

   4)安全性有了更好的保证。采用IPSec可以为上层协议和应用提供有效的端到端安全保证,能提高 在路由器水平上的安全性。

    5)支持即插即用和移动性。设备接入网络时通过自动配置可自动获取IP地址和必要的参数,实现 即插即用,简化了网络管理,易于支持移动节点。。

    6)更好地实现了多播功能。在IPv6的多播功能中增加了“范围”和“标志”,限定了路由范围可以区分永久性与临时性地址,更有利于多播功能的实现。


三、路由器和路由表

  1、路由器的简介:

    路由器(Router,又称路径器)是一种计算机网络设备,它能将数据包通过一个个网络传送至目的地(选择数据的传输路径),这个过程称为路由。路由器就是连接两个以上各别网络的设备,路由 工作在OSI模型的第三层——即网络层,例如网际协议(Internet Protocol,IP)层。

    路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。路由器是互联网络的枢纽,"交通警察"。目前路由器已 经广泛应用于各行各业,各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干   网与互联网互联互通业务的主力军。路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二 层(数据链路层),而路由发生在第三层,即网络层。这一区别决定了路由和交换机在移动信息的过   程中需使用不同的控制信息,所以两者实现各自功能的方式是不同的。

  2、路由器的作用:

    选择信息传送的线路,连通不同的网络。

  3、路由表的简介:

    所谓路由表,指的是路由器或者其他互联网网络设备上存储的表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。

    在计算机网络中,路由表或称路由择域信息库(RIB)是一个存储在路由器或者联网计算机中的电 子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径   的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和   静态路由选择。 

  4、主要工作:

    路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳的传输路径,并将该数据有效地 传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工   作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用, 表中包含的信息决定了数据转发的策略。打个比方,路由表就像我们平时使用的地图一样,标识着各   种路线,路由表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路由表   可以是由系统管理员固定设置好的,也可以由系统动态修改,可以由路由器自动调整,也可以由主机   控制。

 (1)静态路由表

   由系统管理员事先设置好固定的路由表称之为静态(static)路由表,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络结构的改变而改变。

 (2)动态路由表

    动态(Dynamic)路由表是路由器根据网络系统的运行情况而自动调整的路由表。路由器根据路 由选择协议(Routing Protocol)提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数   据传输的最佳路径。

    路由器通常依靠所建立及维护的路由表来决定如何转发。路由表能力是指路由表内所容纳路由表 项数量的极限。


四、端口

 1、端口的概念:

   端口(port),是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。物理端口又称为接口,是可见端口。

 2、端口的分类:          

 (1)硬件端口

   CPU通过接口寄存器或特定电路与外设进行数据传送,这些寄存器或特定电路称之为端口。其中硬件领域的端口又称接口,如:并行端口、串行端口等。

 (2)软件端口

    软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结 构,包括一些数据结构和I/O(基本输入输出)缓冲区。

 (3)网络端口

   在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口。

 (4)协议端口

    一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有 整数,范围是从0 到65535(2^16-1)。


五、网络属性配置

  1.Linux主机接入到网络方式

     IP/NETMASK:实现本地网络通信

     路由(网关):可以进行跨网络通信

  2.网络属性配置方式

    ifcfg命令家族: ifconfig, route, netstat

          route:配置路由相关信息

          netstat:状态及统计数据查看

    (1)ifconfig命令:配置IP,NETMASK

      ifconfig命令:接口及地址查看和管理

      ifconfig  [INTERFACE]

      # ifconfig -a:显示所有接口,包括inactive状态的接口;

      ifconfig interface [aftype] options | address ...

      # ifconfig  IFACE  IP/MASK  [up|down]

      # ifconfig  IFACE  IP  netmask  NETMASK  

      options:

      [-]promisc

      注意:立即送往内核中的TCP/IP协议栈,并生效; 

    

  (2)route命令:路由查看及管理

      路由条目类型(三种):

      主机路由:目标地址为单个IP;

      网络路由:目标地址为IP网络;

      默认路由:目标为任意网络,0.0.0.0/0.0.0.0

     1)查看: 

      # route  -n

      -n:表示以数字形式显示信息,不反向解析地址和端口号

          若有很多路由信息的时,反向解析为主机名和端口名会占用很多资源开销

      显示解析:

      Destination:目标地址

      Gateway:下一跳网管地址

      0.0.0.0:表示本地主机的网络地址,自己的主机就在网络上无需网关,直连路由,

      Genmask:目标网络的掩码地址

      Flags:路由条目的标志

         U (route is up):up,表示启用状态

         H (target is a host):目标地址是一个主机地址

         G (use gateway):使用一个网关

         R (reinstate route for dynamic routing):为路由恢复动态路径选择

         D (dynamically installed by daemon or redirect)

         M (modified from routing daemon or redirect)

         A (installed by addrconf)

         C (cache entry)

         ! (reject route)

        G:表示是一个网关,但不一定是目标网关,只有目标地址是0.0.0.0的才是默认网关

  Metric:度量值,表示到达这个网络中间要进过的开销

  Ref:Number of references to this route. (Not used in the Linux kernel.)

  Use:Count of lookups for the route

  Iface:通过本主机的哪块网卡接口对发送数据 

     2)添加:

       route  add  [-net|-host]  target  [netmask  Nm]  [gw  GW]    [dev] If]

       -net|-host :网络路由| 主机路由,默认路由为网络路由

    target  [netmask  Nm] :目标地址,可以用简写子网掩码格式,也可以用关键字netmask完整格式

      [gw  GW] :gw为关键字,GW表示真正的下一跳地址

       下一跳必须与自己的某块网卡在同一网段内,且存在

       [dev] If]:进由哪块网卡,可以省略,能自动判断

     示例:

      route add -net  10.0.0.0/8  gw  192.168.10.1  dev  eth1

      route add  -net  0.0.0.0/0.0.0.0  gw 192.168.10.1  

      route add  default  gw 192.168.10.1             

    3)删除:

      route  del  [-net|-host] target  [gw Gw]  [netmask Nm]  [[dev] If]

     示例: 

     route  del  -net  10.0.0.0/8  gw 192.168.10.1

     route  del  default

    

  (3)netstat命令:查看网络状态及统计数据

       Print network connections, routing tables, interface statistics, masquerade             connections, and multicast  memberships

     显示网络连接、路由表、接口连接、伪装连接和多播成员关系

     1)显示路由表:#  netstat  -rn

       -r:显示内核路由表

       -n:以数字形式显示信息,不反向解析地址

     2)显示网络连接信息:

      #  netstat   OPTIONS(常用组合:-tan,  -uan,  -tnl,  -unl,  -tunlp)

      -t,--tcp:TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine);

      通信开始之前,要建立一个虚链路;通信完成后还要拆除链接

      -u,--udp:UDP相关的连接;无连接的协议;直接发送数据报文

      -w:raw socket裸套接字相关的连接

      -l:处于监听状态的连接

      -a:所有状态的连接

      -n:以数字格式显示IP和Port;

      -e:扩展格式

      -p:显示相关的进程及PID;

     常用组合:-tan,  -uan,  -tnl,  -unl,  -tunlp

     传输层协议:

      tcp:面向连接的协议;通信开始之前要建立一个虚链路;通信完成后还要拆除连接;

      udp:无连接的协议;直接发送数据报文;

      tcp状态:LISTEN、ESTABLISEHD、FIN_WAIT_1等待状态、FIN_WAIT_2、SYN_SENT、SYN_RECV、                  CLOSED

      注意:传输 层协议区别(TCP|UDP)

    3)显示接口的统计数据:

     netstat{--interfaces|-I|-i}[iface][--all|-a][--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n]

      所有接口:netstat  -i

      指定接口:netstat  -I<IFace>,注意中间不能有空格

      ifup/ifdown命令:

      注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置

   

(4)配置主机名hostname/hostnamectl命令:

     1)hostname命令

     查看:hostname

     配置:hostname  HOSTNAME,当前系统有效,重启后无效;

     2)hostnamectl命令(CentOS 7):该命令会直接修改配置文件生效

        hostnamectl  status:显示当前主机名信息;

        hostnamectl   HOSTNAME:设定主机名,永久有效;


(5)iproute家族:

    ip命令:

     show / manipulate routing, devices, policy routing and tunnels 

     策略路由、隧道、路由 、设备

         ip   [ OPTIONS ]    OBJECT    { COMMAND | help }

             OBJECT := { link | addr | route | netns  }

        注意: OBJECT可简写,各OBJECT的子命令也可简写;

     (1)ip  link:network device configuration,网络设备配置

       1)ip  link  set :change device attributes,修改设备属性

         dev NAME (default):指明要管理的设备,默认配置,dev关键字可省略;

         up和down:启用,禁用

         multicast on或multicast off:启用或禁用多播功能;

         name NAME:重命名接口

         mtu NUMBER:设置MTU的大小,默认为1500;

         netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;

         实例:

            修改eth0名称,注意在修改前要先停用

           [root@localhost ~]# ip link set eth0 down

           [root@localhost ~]# ip link set eth0 name ethtest

           [root@localhost ~]# ip link show 

       2)ip  link  show/list :display device attributes,显示设备属性 

       3)ip  link  help:显示简要使用帮助;

 

    (2)ip  netns:manage network namespaces.管理网络名称空间

        ip  netns  list:列出所有的netns

        ip  netns  add  NAME:创建指定的netns

        ip  netns  del  NAME:删除指定的netns

        ip netns   exec  NAME  COMMAND:在指定的netns中运行命令

    (3)ip address: protocol address management.   协议地址管理

      1)ip address add :add new protocol address,增加新的协议地址

       ip  addr  add   INTERFACEADDR    dev   INTERFACE

       [label NAME]:为额外添加的地址指明接口别名;

       [broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;

       [scope SCOPE_VALUE]:范围变量

       global:全局可用;

       link:接口可用;

       host:仅本机可用; 

     2)ip  address  delete :delete protocol address,删除协议地址

        # ip addr  delete  INTERFACEADDR  dev  IFACE 

     3)ip  address show:look at protocol addresses,查看协议地址

        # ip  addr   list  [IFACE]:显示接口的地址; 

     4)ip address flush:flush protocol addresses,删除指定接口上所有的的地址

        # ip  addr  flush  dev  IFACE

  (4)ip route :outing table management,管理路由表

     1)ip route add - add new route增加

       ip route change - change route修改

       ip route replace - change or add new one修改或者增加

       ip  route   add  TYPE PREFIX  via GW  [dev  IFACE]  [src SOURCE_IP]

      示例:

        # ip route add 192.168.0.0/24  via 10.0.0.1  dev eth1 src  10.0.20.100

        # ip  route  add default  via  GW                                            

     2)ip route delete - delete route

        ip  route  del  TYPE PRIFIX

     3)ip route show - list routes

          TYPE PRIFIX

     4)ip route flush - flush routing tables  

          TYPE  PRIFIX           

     5)ip route get - get a single route

       ip  route  get  TYPE PRIFIX

 3.ss命令:查看网络状态及统计数据   ss  [options]  [ FILTER ]

   (1)[OPTION]:

       -t:TCP协议的相关连接

       -u:UDP相关的连接

       -w:raw socket相关的连接

       -l:监听状态的连接

       -a:所有状态的连接

       -n:数字格式

       -p:相关的程序及其PID

       -e:扩展格式信息

       -m:内存用量

       -o:计时器信息 

   (2)FILTER := [ state TCP-STATE ]  [ EXPRESSION ]  

       状态过滤功能可以过滤端口、状态等信息来查看

        EXPRESSION:

            dport =

            sport =

       示例:'( dport = :22 or sport = :22)'

         ~]# ss   -tan    '(  dport = :22 or sport = :22  )' 

         ~]# ss  -tan  state  ESTABLISHED

  

六、配置文件:

 1.IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE

    ifcfg-IFACE:实际接口名称; 

  (1)vim编辑配置文件

  配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性可直接修改

   1)fcfg-IFACE配置文件参数:

      DEVICE:此配置文件对应的设备的名称;

      ONBOOT:在系统引导过程中,是否激活此接口;

      UUID:此设备的惟一标识;

      IPV6INIT:是否初始化IPv6;

   BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;

      YPE:接口类型,常见的有Ethernet, Bridge;

      DNS1:第一DNS服务器指向;

      DNS2:备用DNS服务器指向;

      DOMAIN:DNS搜索域;

      IPADDR:IP地址;

      NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;

      GATEWAY:默认网关;

      USERCTL:是否允许普通用户控制此设备;

      PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖       本地手动指定的DNS服务器指向;默认为允许。

      WADDR:设备的MAC地址;

      NM_CONTROLLED:是否使用NetworkManager服务来控制接口

      在CentOS 6上networkManager不完善,集群、虚拟化桥接在此网络服务下无法使用

      网络服务有两种:network、NetworkManager

    2)管理网络服务:

     CentOS 6:  service  SERVICE  {start|stop|restart|status}

     CentOS 7:systemctl  {start|stop|restart|status}  SERVICE[.service]

      配置文件修改之后,如果要生效,需要重启网络服务;

     CentOS 6:# service  network  restart

     CentOS 7:# systemctl  restart  network.service

  (2)专用的命令的进行修改

     CentOS 6:system-config-network (setup)

     # setup 

     #system-config-network 

     CentOS 7: nmtui

 

 2.路由的相关配置文件:/etc/sysconfig/network-scripts/route-IFACE

    用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE

    支持两种配置方式,但不可混用;

    (1) 每行一个路由条目:  TARGET  via  GW

    (2) 每三行一个路由条目:

       ADDRESS#=TARGET

       NETMASK#=MASK

       GATEWAY#=NEXTHOP

 3.给接口配置多个地址:

    (1)ip addr  add  INTERFACEADDR  dev  INTERFACE label  LABELNAME

    (2)ifconfig  IFACE_LABEL  IPADDR/NETMASK

       IFACE_LABEL: eth0:0, eth0:1, ...

    (3)为别名添加配置文件;

       DEVICE=IFACE_LABEL

       BOOTPROTO:网上别名不支持动态获取地址;

           static, none

 4.hostname配置文件:/etc/sysconfig/network

      命令:HOSTNAME=<HOSTNAME>

      注意:此方法的设置不会立即生效; 重读配置文件或者重启系统后后会一直有效;

 5.配置DNS服务器指向:

      配置文件:/etc/resolv.conf,添加 nameserver   DNS_SERVER_IP

 6./etc/hosts 别名,名称解析,事先生效,先查看此文件