《Linux命令、编辑器与Shell编程》读书笔记9-Linux网络管理

来源:互联网 发布:凯里欧文16年数据 编辑:程序博客网 时间:2024/05/22 02:12

一、网络接口配置

【查看网卡信息】

1. ifconfig

*错误和丢弃数据包数量,与网络质量有关;溢出数据包总数通常与缓冲区大小及收发数据包速率有关。

 

2. 查看所有网络接口(包括被禁用)

ifconfig  -a

 

3. 查看IP地址:

ip address show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu16436 qdisc noqueue state UNKNOWN

   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

   inet 127.0.0.1/8 brd 127.255.255.255 scope host lo

   inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo

   inet6 ::1/128 scope host

      valid_lft forever preferred_lft forever

2: eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen1000

   link/ether 00:0c:29:6b:8d:81 brd ff:ff:ff:ff:ff:ff

   inet 192.168.233.129/24 brd 192.168.233.255 scope global eth0

   inet6 fe80::20c:29ff:fe6b:8d81/64 scope link

      valid_lft forever preferred_lft forever

【配置网卡】

ifconfig <interface_name>  <ip_address> netmask <netmask>  [up | down]

上述命令也可以写成:

ifconfig <interface_name>  <ip_address>  </prefix_len> [up | down]

其中prefix_len表示以“长度”表示子网掩码,需要将子网掩码转换为2进制,然后将这穿2进制数中1的个数写到prefix_len的位置。

【举例】

#配置网卡eth1ip和子网掩码,并使该网卡立即生效

ifconfig eth0  192.168.233.129  netmask  255.255.255.0  up

#或者写成

ifconfig eth0  192.168.233.129/24  up

【网卡配置文件】

位于/etc/sysconfig/network下,以ifcfg-ethX命名,X是网卡的编号。此外,ifcfg-lo是回环接口的配置文件。

ifcfg-ethX文件内容如下:

BOOTPROTO=’static'

STARTMODE='auto'

DEVICE=eth0

ONBOOT=yes

NETMASK=255.255.255.0

IPADDR=192.168.233.129

【配置项说明】

·BOOTPROTO:网卡开启后应如何获取配置,参数值如下:

         dhcp:从dhcp服务器自动获取ip、掩码、默认网关及DNS地址等信息;

         static:使用该配置文件中的设置,这时要求该文件中至少包含IP、默认网关、子网掩码这几项信息。

         none:有两种含义,一是这个网卡有其他用途(比如网卡处于bonding)、不需要使用IP地址;还可能网卡使用静态IP地址。

·STARTMODE:决定了该网卡以何种方式启动.有以下几个参数:

         manual:需要系统启动后手动输入ifup 网卡名(比如eth0)进行启动;

         auto:网卡会在系统启动时启动(如果网络连接可用的话),或者在网络连接被激活时、实时激活该网卡;

         hotplug:和auto功能类似,区别在于网卡启动失败后、不会再尝试rcnetwork命令;

         nfsroot:与auto含义类似,区别在于配置了该参数后、该网卡就无法通过rcnetwork stop.  ifdown  <interface>  -o force命令关闭;该参数用于iBFT中。

         *BFT是一种将 iSCSI引导设备的相关参数传递到操作系统的方法。首次从 iSCSI 引导时,系统上的iSCSI引导固件将连接到 iSCSI 目标。如果登录成功,则固件会将网络和 iSCSI引导参数保存到iBFT,并将该表存储在系统内存中。系统可使用此表配置其自己的 iSCSI连接和网络并启动。

         off:表示该网卡无法通过任何方法激活

         ifplugd:多网卡环境下,网卡的启动优先级;如果配置了这个参数,则下面的IFPLUGD_PRIORITY参数也需要配置到该文件中;

·IFPLUGD_PRIORITY:当STARTMODE=ifplugd时,该参数标识了该网卡的启动优先级,默认为0.

·DEVICE:该网卡的名字

·NETMASK:子网掩码

·IPADDRIP地址

·BROADCAST:广播地址(网络号),IP地址与子网掩码通过二进制“与”运算后自动获取,一般不用写(配了反而容易配错)

*配置项的名字一定要用大写,里面的参数使用小写字母。其他的配置项说明可以登录系统通过man  ifcfg命令查看。

【改变网络服务状态】

启动网络服务

service network  start

停止网络服务

service network  stop

重启网络服务

service network  restart

停、启某个网卡:

ifdown eth0(或者:ifconfig  eth0  down

ifup eth0(或者:ifconfig  eth0  up

查看网卡状态及网卡型号:

rcnetwork  status

二、路由

*路由器:为数据包寻找最佳传输路径的网络设备,是一种专门负责计算数据包传输路径的“计算机”。

【路由表】

使用route命令查看主机路由表(或者使用route  -n,或者netstat  -rn):

Kernel IP routing table

Destination     Gateway         Genmask         Flags  Metric  Ref     Use  Iface

loopback                     *             255.0.0.0               U     0     0        0  lo

link-local                     *             255.255.0.0             U     0     0        0  eth0

192.168.233.0          *            255.255.255.0           U    0      0        0  eth0

【结果说明】

Destination:目标IPdefault表示默认路由(就是指向默认网关的条目)。

Gateway:网关地址,即下一跳的路由器地址,*表示直接与主机连接,不需要网关地址。

Genmask:目标IP的子网掩码

Flags:路由标记,U-活跃状态,H-目标是主机,G-指向默认网关的路由,R:恢复动态路由产生的条目,D-后台路由程序动态安装,M-路由后台程序修改过的条目,C-缓存的路由条目,!-拒绝路由的条目

Metric:该路由到达目标IP的代价值,越低越好

Ref:该条路由被引用的次数

Use:该条路由被路由软件查找的次数

Iface:目标网卡名

【增/删默认路由】

route [add|del]  default  gw ip_address

该命令并不会保存配置到配置文件中,但可以快速确定网络接口对应的网络

【增/添路由条目】

route[add|del] [net|host]ipadd1 [netmask mask_IP] [gw|dev] gw_ipadd2|dev_name

[add|del]:添加/删除一条路由

[net|host]:目标是一个网络还是主机

ipadd1目标网络的IP地址

ipadd2下一跳路由器的IP地址

[netmask mask_IP]:目标主机IP的子网掩码,如果目标是一个网络,此参数省略。

[gw|dev]:下一跳路由器的地址或要使用的网络接口

【举例】

1. 新增路由

route  add  -net  192.168.1.0 netmask  255.255.255.0  gw  192.168.233.1

route  add  -net  192.168.1.0/24 gw  192.168.233.1

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

loopback        *               255.0.0.0       U    0      0        0 lo

link-local      *               255.255.0.0     U    0      0        0 eth0

192.168.1.0    192.168.233.1   255.255.255.0   UG   0      0       0 eth0

192.168.233.0   *               255.255.255.0   U    0      0        0 eth0

2. 删除路由

route del  -net  192.168.1.0/24  gw 192.168.233.1

【永久配置路由】

SUSE下打开/etc/sysconfig/network/routes,填写如下:

#Destination    Dummy/Gateway    Netmask  Device

第一列为路由目标,可以是网络或主机的IP地址;

第二列包含默认网关或通过其可访问主机或网络的网关;

第三列包含网关后的网络或主机的子网掩码;

第四列表示该条路由从哪个设备出去。

*注:实际试了一下,添加后重启网络,用route或者netstat -rn命令查不出新增的路由,待定。

【路由汇总】

如果路由表条目过多,会导致网络性能下降,这是可以将一组路由条目汇总成单个路由广播,比如,要将192.168.192.0~192.168.233.0的网络汇总成一条路由广播添加到路由表中:

route add  -net  192.168.192.0/18  dev  eth0

计算路由器的汇总路由,需判断这些地址最左边的多少位相同的。计算汇总路由的步骤如下: 

第一步:将地址转换为二进制格式,并将它们对齐 

第二步:找到所有地址中都相同的最后一位。在它后面划一条竖线。

第三步:计算竖线前面有多少位是相同的,记为n。汇总路由为第1IP地址加上斜线,斜线后面写刚才数出来的数字n

三、主机名

【查看主机名】

hostname

【修改主机名】

1. hostname new_hostname

2. SUSE下修改/etc/ HOSTNAME文件,将.site前面的字符串改成新主机名即可

/etc/hosts

修改主机名后,还要修改/etc/hosts文件中的映射关系,将本机IP和主机名加到这个文件中,空格分隔;以保证依赖主机名工作的服务能够正常工作。

四、其他网络命令

ping

ping [option]  ip_address

OPTION

c:指定发送数据包的个数

f:快速发包,用于极限测试

s:指定发送数据包的大小,单位Bytes

l:指定发送数据包的网络端口

R:显示数据包经过的路由

t:指定数据包使用的TTL

*TTLTime To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量TTLIPv4包头的一个8 bit字段。最大值255,默认值64

traceroute

可以测试出经过的路由中、哪个节点有问题

netstat

OPTION

t:列出正在使用的tcp连接

u:列出正在使用的UDP连接

a:查看所有正在连接中的套接字

n:以IP地址的形式显示(而非域名)

p:显示套接字对应的进程名即PID

l:只显示正处于监听状态的套接字

*套接字:系统处理相同端口的不同TCPUDP连接的接口

i:查看网卡使用情况

例:显示正在监听网路的进程、端口、PID

netstat -tunlp

【输出说明】

Iface:网卡名

MTUMet:最大传输单元及度量值

RX-OKTX-OK:正常发送、接受的数据包个数

RX-ERRTX-ERR:发送和接收到的错误数据包个数

RX-DRPTX-DRP:发送、接收过程中丢弃的数据包个数

RX-OVRTX-OVR:发送、接收过程中溢出(或者叫丢失)的数据包个数

Flg:标识了当前网卡的工作状态,只有处于RU状态的网卡才能正常工作

         B:该网卡设置了广播地址

         M:处于混乱模式,可以接收所有数据包

         R:网卡正在运行,可以接收数据包

         U:网卡处于开启状态

         L:该网卡是一个环回接口

State:使用an等选项时会被展示

         ESTABLISHED:当前套接字已经存在一个连接

         SYN_SENT:套接字正在积极尝试建立连接

         SYN_RECV:已经收到一个连接请求

         CLOSE_WAIT:远程端口已关闭,正在等待套接字关闭

         FIN_WAIT1:套接字已经关闭,连接正在关闭

         CLOSED:套接字没有被使用

         LISTEN:套接字处于监听状态

         UNKNOWN:套接字状态位置

【域名解析】

dignslookup

五、网络通信过程

主要经历以下三个过程:

【域名转换】

通信之前,会对目标地址进行检查,如果地址是一个域名,则需要对域名进行转换;首先查看hosts文件中是否包含对应记录,如果没有,则会到对应的DNS服务器上查询。

【封装数据包】

经过应用层和传输层的某些协议封装,数据被传递到网络层,开始经IP协议,对数据进行拆分、封装,并加上IP头,将其传递到数据链路层再次封装(加上MAC地址)和校验信息,最后经过物理层传输。

【数据发送】

按照路由表中的路由进行传输。

【网络故障排查思路】

1.      ping命令测试网络通讯是否正常,否则需要确认默认网关、DNS地址是否合理正确

2.      traceroute判断故障发生在哪个路由器

3.      检查物理连接

0 0
原创粉丝点击