linux网络管理

简介:

  不联网的计算机就是废铁,管理linux也必须懂得网络,但是网络是一门特别大的学科,其中的原理和规范可以编写三本书。学习linux之前总不能先去考个CCNA再学习吧!不学的话那必须对网络有一定的认识懂得linux中的网络管理,了解基本的网络运作原理。

一 物理设备

  早期网络有多种拓扑结构,现在已经被淘汰了,只要了解它们的类型和大致的优缺点就好。星形拓扑,使用中间设备进行信号中继,中心节点单点故障对对全局影响明显;环形拓扑,使用令牌环,每个设备的损坏对全局都有特别大的影响;总线型拓扑,对中心线要求比较高;网状拓扑,特别耗费资源主要耗费线材;半网状拓扑,也就是当今世界使用的网络拓扑,不仅省了线材还最大程度上保证网络的联通性,当然这只是高层网络,底层大多是星形拓扑。

  物理设备主要有三种

  集线器hub:连接在集线器上的主机,在同一个冲突域,也在一个广播域内,其内部结构类似总线。冲突域:所有主机连接到一根网线上,这时在这个网线上只能有一个主机发信号,多个主机一起发信号就会导致这跟网线上的信息。一个主机发出信号,在这个网线上的所有主机都会收到,这就是广播。

  交换机switch:连接在交换机上的主机,不在同一个冲突域,在一个广播域内。交换机内部很复杂,主要是功能是:主机把数据发送给交换机时,交换机会把数据先自己保存然后转发给所有主机。这时多个主机可以同时发送信息了,解决了冲突。

  路由router:可以实现信息选择性的发送给其他设备,解决了广播。

二 网络协议

  网络的协议有两个规范,为什么是两个?因为有一个国际规范osi参考模型,这个规范为了把多种网络同一起来设计了一个七层模型,但是实际生产中人们发现另一种四层模型不仅简单而且高效的利用网络,导致规范出了两个。

  两个规范的对比情况:

wKioL1g_x1OxzAYSAAA7Z9U-xMI329.png-wh_50

  这里只说四层网络协议:

网际层:这一层很基础,主要是实现电气信息和数字信息的转换和个主机识别,主机间识别主要是使用这一层的mac

网络层:这一层有著名的ip协议实现主机通信。

传输层:tcpudp。主要是实现进程间通信,这才是重点,真正需要通信的不是主机,而是运行在主机上的进程。tcp三次握手,seq作为发送,ack作为响应。四次断开,因为通信是全双工的。

应用层:http超文本传输协议,ftp等等。

  判断网络的工具:

1
2
3
4
5
6
7
ping 检测网络的连通性,使用的是icmp协议
     -s    指定包的大小
     -c    指定发送包的数量
     -w    指定等待的时间
     -I      指定发送包的接口
     ping 的结果中ttl=初始值-经过的路由数(linux的初始值是64,windows是128)
     tracepath可以查看包经过的路由。
1
2
3
4
5
6
7
8
9
10
ss命令:
     -t          tcp协议的通信
     -u          udp协议的通信
     -w           raw socket通信
     -x          unix socket通信
     -n          以数字的形式显示
     -l          listen状态的
     -a          所有状态
     -p          显示pid
     -e          显示扩展信息

三 linux网络管理命令

  网络管理在centos67使用的工具不一样,在7里使用的工具虽然6里面也有但是兼容性和稳定性不太好。

1网络状况查看的命令

1
2
3
4
5
top 动态的查看网络状况
htop比 top 更好看
glances信息比较全的实时查看网络的工具
dstat实时监控系统各种状况的总计
等等


2 centos临时管理网络命令

1
2
3
ifconfig  IFACE IP /netmask  [up]
给IFACE指定ip,也可以给IFACE的一个别名指定ip,这样一个网卡就可以拥有多个ip
router add [-net|-host] target [netmask Nm][gw Gw] [[dev] If]

给某个ip增加路由示例:route add default gw 172.16.0.1

1
2
3
4
5
6
7
router –n 显示路由信息
以上是古老的网络查看管理命令,目前ip命令正在逐步取代上面这两个命令。
ip addr add|change|del|flush
        ip管理命令,使用tab补全,可以快速的管理|
note:ip可以让一个网卡同时拥有多个ip并且不是有别名
ip router 。。。
        路由管理命令


3 centos6的网络管理

  NetworkManager可以直接更改配置文件,但centos6中的NetworkManager不是很稳定一般都是关掉。由此,更改网络后要想让网络永久生效就需要更改网卡的配置文件。

centos配置文件位于/etc/sysconfig/network-scripts/目录下,以ifcfg-开头。

配置文件格式

1
2
3
4
5
6
7
8
DEVICE           设备名
BOOTPROTO       获取ip的方式dhcp、static等等
ONBOOT           开机时启动
IPADDR           ip地址
PREFIX|NETMASK     掩码位数或直接指定掩码
GATEWAY           指定网关
DNS1          指定dns服务器
等等


  很多公司的服务都是很重要的必须保证99.9%的在线时间,这时一个网卡换掉导致服务挂掉将是一大笔损失。一个网卡不能满足需求,这时我们可以使用两个网卡同时工作甚至更多。这需要使用bongdingbongding机制是使用linux内的bongding模块实现的。bonding有多种工作模式:1Mode 0 (balance-rr)2Mode 1 (active-backup)3Mode 3 (broadcast)

导入bonding模块的      modprobe bonding

  编辑配置文件/etc/sysconfig/network-scripts/ifcfg-bond0

1
2
3
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS= “miimon=100 mode=0”

编辑辅网卡的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0

1
2
3
4
5
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE= yes
USERCTL=no

       使bongding永久生效需要更改更改配置文件

1
2
3
vim  /etc/modprobe .d /bond .conf
alias  bond0 bonding
options bond0 miimon=100 mode=0    #使用这一行的时候就不用在bond0的配置文件中使用BONDING_OPTS= “miimon=100 mode=0”了。


4 centos7的网络管理

  centos7里可以直接使用NetworkManager的管理命令nmclinmcli命令很简单,连击tab就可以补全和ip的使用类似。使用cmcli配置的网卡的信息,最好使用ip命令查看。nmcli可以支持多个配置文件同时存在,但是只能使用一个。它的配置文件和6的进本类似只是可以指定多个ip

IPADDR

IPADDR1

centos7使用网络组实现类似centos6bonding。使用网络组的命令集合如下:

1
nmclicon add  type  team con-name team0 ifname team0 config ‘{ "runner" :{ "name" : "loadbalance" }}' ipv4.addresses 192.168.1.100 /24  ipv4.methodmanual

这条是命令是生成team0网卡并配置网卡

1
nmcli con add con-name team0-eth1 typeteamslave ifname eth1 master team0

eth1加入team0

1
nmcli con add con-name team0-eth2 typeteamslave ifname eth2 master team0

eth2加入team0

1
2
3
nmcli con up team0
nmcli con up team0-eth1
nmcli con up team0-eth2

启动三个网卡

1
2
teamdctl team0 state      查看组情况
nmcli dev dis eth1      停止eth1测试


总结

  网络知识虽然很多,但是运维人员需要接触的不是很多,bonding和网络组基本上是由机房人员实现的。机器网卡一旦出了问题,只能机房那一会的人员处理完问题后,才是运维上的时候。运维主要要了解网络的基本原理,了解网卡组网的原理。

  真正需要熟练使用的是网络的配置,ip,掩码,网关,路由。还有就是查看网络情况的命令,第一时间判断问题的出处。






      本文转自Ailu0li 51CTO博客,原文链接:http://blog.51cto.com/oldking/1878485,如需转载请自行联系原作者





相关文章
|
5月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
166 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
6月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
430 18
|
6月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
321 5
|
7月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
618 5
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
557 2
|
7月前
|
网络协议 Linux 开发者
深入Linux中UDP网络通信机制编程探索
以上步骤概述了Linux中UDP网络通信的编程机制。在实现时,因关注细节和上下文环境可能有所调整,但大致流程是一致的。这些知识片段旨在帮助开发者快速上手Linux下的UDP编程,并提供可靠的信息作为编程的基础。在编程实践中,应结合实际业务需求,设计合适的数据传输协议,确保数据的正确性和实时性。
189 0
|
9月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
266 18
|
9月前
|
Linux 数据安全/隐私保护
使用Linux命令行接入无线网络Wi-Fi的示例。
现在,你已经使用命令行成功地连接到 Wi-Fi 网络了。这两个示例涵盖了用 `nmcli` 和 `wpa_supplicant` 连接无线网络的常见场景,让你能够不依赖图形化界面来完成这个任务。在日常使用中熟练掌握这些基本操作能增强你对 Linux 系统的理解,帮助你更有效地处理各种问题。
769 12
|
9月前
|
安全 Ubuntu Linux
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
386 0
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
|
11月前
|
Ubuntu Linux
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
1798 20