Linux 网络管理
第一篇:计算机网络基础:
一、计算机网络:
1.TCP/IP:协议栈(使用中的模型)
ISO(国际标准化组织):OSI(开放系统互联基本参考模型),学习中的模型。
1)各层之间的相关协议和单位:
互联网层:IP协议
传输层:TCP,UDP 协议
应用层:http,https,ftp,ldap…
单位:
数据线路层:以太网帧(MTU最大传输单元1500字节)
互联网层:IP报文
2.通信子网与资源子网
1)从计算机网络各组成部分的功能来看,各部分主要完成两种功能:即网络通信和资源共享
2)通信子网:把计算机网络中实现网络通信功能的设备及软件的集合称为网络的通信子网;
组成有:中继器,集线器,交换机,通讯线缆,路由器等各种网关硬件设备;
3)资源子网:把网络中实现资源共享功能的设备及软件的集合称为资源子网。
组成有:用户计算机(工作站),网络存储设备,网络终端,服务器等。
3.以太网(Ethernet)和令牌环网(Token-ring network)
1)以太网指的是基带局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术,并以10M/S的速率运行在多种类型的电缆上。
2)令牌环网,常用于IBM系统中,有一种专门的帧称为“令牌”,在环路上持续地传输来确定一个结点何时可以发送包。
4.MAC地址:
MAC(Media Access Control)地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。(MAC地址是用来实现本地通信的,如果要跨网络通信,就要使用IP地址)
MAC地址是网卡决定的,是固定的。
二、网络设备:
1.Hub集线器:
Hub:多端口中继器
Hub并不记忆该信息包是由哪个MAC地址发出,哪个MAC地址在Hub的哪个端口
Hub的特点: 共享带宽,半双工通信
2.网桥(bridge):MAC地址表
静态指定:
动态学习:根据原地址学习
交换式以太网的优势:
扩展了网络带宽
分割了网络冲突域,使网络冲突被限制在最小的范围内
交换机作为更加智能的交换设备,能够提供更多用户所要求的功能:优先级、虚拟网、远程检测……
工作原理:
1)以太网桥监听数据帧中源MAC地址,学习MAC,建立MAC表
2)对于未知MAC地址,网桥将转发到除接收该帧的端口之外的所有端口;
3)当网桥接到一个数据帧时,如果该帧的目的位于接收端口所在网段上,它就过滤掉该数据帧;如果目的MAC地址在位于另外一个端口,网桥就将该帧转发到该端口;
4)当网桥接到广播帧时候,它立即转发到除接收端口之外的所有其他端口
3.交换机(switch):多端口的网桥
交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。
4.Hub和交换机比较:
1)集线器属于OSI的第一层物理层设备,而网桥属于OSI的第二层数据链路层设备;
2)从工作方式来看,集线器是一种广播模式,所有端口在一个冲突域里面。网桥的可以通过端口隔离冲突;
3)Hub是所有共享总线和共享带宽。网桥每个端口占一个带宽。
5.路由器:
1.路由表:
静态指定,动态学习(rip2,ospf)
2.为了实现路由,路由器需要做下列事情:
分隔广播域;
选择路由表中到达目标最好的路径;
维护和检查路由信息;
链接广域网;
3.路由:
把一个数据包从一个设备发送到不同网络里的另一个设备上去。这些工作依靠路由器来完成。路由器只关心网络的状态和决定网络中的最佳路径。路由的实现依靠路由器中的路由表来完成。
4.路由条目:
目标地址 经由 下一跳(nexthop)来实现;
目标地址的类别:主机路由
网络路由
默认路由(0.0.0.0/0.0.0.0)
6.VLAN:
功能:分隔广播域、安全、灵活管理
VLAN = 广播域= 逻辑网络(Subnet)
三、IP地址
在网络中,为了实现不同计算机之间的通信,每台计算机都必须有一个唯一的地址。就像日常生活中的家庭住址一样,我们可以通过一个人的家庭住址找到他的家。当然,在网络中要找到一台计算机,进而和它通信,也需要借助一个地址,这个地址就是IP地址,IP地址是唯一标识一台主机的地址。
一、定义和功能
它们可唯一标识IP 网络中的每台设备;
每台主机(计算机、网络设备、外围设备)必须具有唯一的地址。
1.IP地址由两部分组成:
1)网络ID:
标识网络
每个网段分配一个网络ID
2)主机ID:
标识单个主机
由组织分配给各设备
2.分类:
IPv4:32位,可以表示2^32个地址;
IPv6:128位,可以表示2^128个地址。
子网掩码(subnet mask)
1.用于与IP地址按位进行“与”运算,从而取出其网络地址。
与运算:1与任何数相与都的任何数,0与任何数相与都得0
举例:
1.3.2.1/255.0.0.0=1.0.0.0(网络号)
1.3.2.1/255.255.0.0=1.3.0.0(网络号)
2.划分子网和超网
3.子网掩码可以写成全格式的,也可以写成用1的个数表示的方式。
如:A类IP的子网掩码:255.0.0.0=/8
B类IP的子网掩码:255.255.0.0=/16
C类IP的子网掩码:255.255.255.0=/24
IPv4地址
1.地址格式
1)IP地址是一个32位二进制数,用于标识网络中的一台计算机。IP地址通常以两种方式表示:二进制数和十进制数。
2)二进制数表示:在计算机内部,IP地址用32位二进制数表示,每8位为一段,共4段
3)十进制数:为了方便使用,通常将每段转换为十进制数。
2.IP地址规定:
网络号不能以127开头,第一字节不能全为 0 ,也不能全为l。
主机号不能全为0,也不能全为l。
3、IP地址的分类
由于IP地址是有限资源,为了更好的管理和使用IP地址,INTERNIC根据网络规模的大小将IP地址分为5类(ABCDE)如图:
A类:
范 围: 1.0.0.0~126.0.0.0
网络数:2^7-2=126(去掉全0和全1的两个地址)
每个网络中的主机数:2^24-2
默认子网掩码:255.0.0.0/8
私网地址:10.0.0.0
B类:
范 围:128.0.0.0~191.255.0.0
网络数:2^14
每个网络中的主机数:2^16-2
默认子网掩码:255.255.0.0/16
私网地址:172.16.0.0-172.31.0.0
C类:
范 围:192.0.0.0~223.255.255.0
网络数:2^21
每个网络中的主机数:2^8-2
默认子网掩码:255.255.255.0/24
私网地址:192.168.0.0-192.168.255.0
D类:组播
1110 0000 -1110 1111: 224-239
E类:
240-255
进程地址:
IP:PORT,socket
总结:
1.三种通信的地址:
MAC地址:本地通信(任何互联网通信都要转化成本地通信才能够实现)范围:本地局域网()
IP:界定通信主机,源主机和目标主机;范围:全球互联网
Port(端口):界定通信进程;范围:本地主机
2.通信实质
互联网通信其实实现的是多段接力的本地通信,IP地址只是标识网络地址,即源主机是谁,目标主机是谁,帮你选出一条路来;
真正通信的是,某一主机上的某一个端口和另外一个主机上的某一个端口进行通信,最终要转换成多MAC地址,或本地事物的交互。在通信子网中完成。
三、通信方式
1.跨网络之间主机的通信:
TCP/IP协议,路由(精度越高,优先级越高),还需要网关;
2.本地主机之间的网络通信:
ARP(地址解析)协议是通过广播实现的
四、将Linux主机接入到网络中,需要配置网络相关设置:
1.一般包括如下内容:
IP/NETMASK:本地通信;
路由(网关):跨网络通信;
DNS服务器地址:基于主机名的通信
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
包括三类:
主DNS服务器地址
备用DNS服务器地址
第三备用DNS服务器地址
2.配置方式:
1)静态指定:一般服务器的地址是静态指定
命令:(送往内核立即生效,但不会永久有效)
ifcfg家族:
ifconfig:配置IP,NETMASK
route:路由
netstat:状态及统计数据查看
iproute2家族:
ip OBJECT
addr:地址和掩码;
link:接口;
route:路由
ss:状态及统计数据查看
CentOS 7:nm家族
nmcli:命令行工具
nmtul:text window 工具
注意:
(1)DNS服务器指定
配置文件:/etc/resolv.conf
(2)本地主机名配置
hostname(临时生效,永久生效要写入配置文件中)
配置文件:/etc/sysconfig/network
CentOS 7:hostnamectl
配置文件:(会永久有效,但不会立即生效,需要强制通知内核重读文件)
RedHat及相关发行版
/etc/sysconfig/network-scripts/ifcfg-NETCARO_NAME(网卡名)
2)动态分配 :依赖于本地网络中有DHCP服务
DHCP(动态主机配置协议)
3.网络接口命名方式:
1)传统命名:
以太网:ethx[0,…),例如:eth0,eth1…
PPP网络:pppX,[0,…]例如:ppp0,ppp1…
2)可预测命名方案(CentOS):
支持多种不同的命名机制:Fimrware,拓扑结构
如果Firmware或者BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如:eth1,eth3…
如果Firmware或者BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1,ens2…
如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0…
如果用户显示定义,也可根据MAC地址命名,例如:enx122161ab2e10…
上述均不可用,则使用传统方式命名
3)命名格式的组成:
en:entherent
wl:wlan
ww:wwan
4)名称类型:
o<index>:集成设备的设备索引号;
s<slot>:扩展槽的索引;
x<MAC>:基于MAC地址的命名;
p<bus>s<slot>:基于总线及槽的拓扑结构进行命名;
第二篇:Linux网络属性配置
一、ifcfg命令家族:ifconfig,route,netstat
ifconfig命令 查看及配置网卡的相关参数
○查看接口:ifconfig [INTERFACE] 默认显示激活状态接口
# ifconfig -a:显示所有接口,包括未激活状态的接口;
○设定IP地址
# ifconfig IFACE IP/mask [up]
# ifconfig IFACE IP netmask MASK
注意:立即送往内核中的TCP/IP协议栈,并生效
示例:
也可以使用 # ifconfig eth1 192.168.10.100 netmask 255.255.255.0
[-]promisc 启用或禁用混杂模式
add addr/prefixlen;
del aaddr/prefixlen
route 命令:路由查看及管理
1.路由条目类型:
主机路由(host): 目标地址为单个IP;
网络路由(net):目标地址为IP网络;
默认路由:目标位任意主机,0.0.0.0/0.0.0.0
2.查看:
# route -n (以数字格式显示,不要反解地址和端口号)
route add [-net|-host] target [netmask Nm] [gwGw] [[dev] If]
目标:192.168.1.3 网关:172.16.0.1
# route add -host 192.168.1.3 gw172.16.0.1 [dev eth0]
目标:192.168.0.0 网关:172.16.0.1
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
默认路由,网关:172.16.0.1
# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
# route add default gw 172.16.0.1
删除:route del
route del [-net|-host] target [gwGw] [netmask Nm] [[dev] If]
目标:192.168.1.3 网关:172.16.0.1
# route del -host 192.168.1.3
目标:192.168.0.0 网关:172.16.0.1
# route del -net 192.168.0.0 netmask 255.255.255.0
删除默认网关
# route del default
netstat 命令:显示接口的统计数据
1.显示路由表:
netstat{–route|-r} [–numeric|-n]
-r: 显示内核路由表
-n: 数字格式
2.显示网络连接:
传输层协议:
tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后, 拆除链接。
udp:无连接的协议;直接发行数据报文;
netstat[–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]
-t: tcp协议相关链接,链接均有其状态;FSM
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口;
-e:扩展格式
-p: 显示相关进程及PID
常用选项:
-tan,-uan,-tnl,-unl,-tunlp
3.显示接口统计数据:
netstat{–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]
# netstat -i 显示所有接口;
# netstat–I<IFACE> 显示指定接口,注意-I和接口名没有空格;
# ifconfig -s eno16777736
ifup/ifdown 命令 启用或禁用
注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE 来识别接口并完成配置;
二、配置主机名:
1.CentOS 6:hostname 命令:
查看:hostname
配置:hostname HOSTNAME
当前系统有效,重启后无效
2.CentOS 7:hostnamectl 命令
hostnamectl status :显示当前主机名信息;
hostnamectl set-hostname NAME:设定主机名,永久有效;
3.设置配置文件
1)CentOS 6 :/etc/sysconfig/network
HOSTNAME=<NAME>
注意:此方法的设定,不会立即生效,但以后会一直有效;
2)CentOS 7:直接使用 hostnamectl 设置即可,直接生效。
三、配置名字解析器
1./etc/hosts(本地解析器)
本地主机名数据库和IP地址的映像
对小型独立网络有用
通常,在使用DNS前检查
getent hosts 查看/etc/hosts 内容
2.配置DNS服务器指向:
1)配置文件:
/etc/resolv.conf
nameserver DNS_SERVER_IP(必须是IP地址);
注意:Linux最多只能设置3台主机被当做DNS地址解析;
2).如何做测试(host/nslookup/dig):
正解:# dig -t A FQDN(主机名)
FQDN–>IP
反解:# dig -x IP
IP–>FQDN
四、iproute2 家族
ip 命令
功能:ip-show / manipulate routing, devices, policy routing and tunnels
语法:ip[ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr| route| netns }
注意:OBJECT 可简写,各object的子命令也可简写
1.IP OBJECT
1)ip link :network device configuration(网络设备的配置)
ip link help 查看简要帮助,常用命令如下:
○ip link set :change device attrlbutes(修改设备属性)
dev NAME(default):指明要管理的设备,dev关键字可省略;
up and down :激活或禁用指定网卡接口
○ip link show :display device attrlbute,s(显示设备输属性)
查看的是二层设备(数据链路层)的相关属性
○multicast on 或 multicast off:启用或禁用多播功能;
○name NAME:重命名接口
注意:重命名的时候要先把设备停掉(ip link set NAME down)
○ mtu MUMBER:设置MTU的大小,默认为1500;
○netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
2)ip netnes :manage network namespace 网络名称空间
ip netns add NAME:创建指定netns
ip netns del NAME:删除指定netns
ip netns list:列出所有的netns
ip netns exec NAME COMMAND:在指定的netns中运行命令
3)ip address – protocol address management
○ ip addr add IFADDR dev IFACE :添加一个新的接口地址
[label NAME] 为额外添加的地址指明接口别名;
[broadcast ADDRESS]:指明广播地址,会根据IP和NETMASK自动计算得到;
[scope {global|link|host}]:指明作用域
global: 全局可用;
link: 仅链接可用;
host: 本机可用
○ip addr delete IFADDR dev IFACE :删除接口地址
如:ip addr del 172.16.100.13/16 dev eth0 label eth0:0
○ip addr show/list [IFACE] :查看指定接口地址;
○ip addr flush dev IFACE :清空所有指定接口地址
4)ip route -routing table management
○添加路由:ip route add
语法:ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
TYPE PREFIX:
主机路由:IP
网络路由:NETWORK/MASK
示例:
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13 via 172.16.0.1
ip route add default via 172.16.0.1
○ip route del TYPE PRIFIX :删除指定路由
○ip route flush [dev IFACE] [via PREFIX] :清空路由表
如: # iproute flush dev eth0
○ip route get TYPE PRIFIX :获取指定路由条目,前提是必须存在。
5.ss命令:
格式:ss[OPTION]… [FILTER]
netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息。
1.选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unixsock相关
-l: listen监听状态的连接
-a: 所有状态的连接
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
2.FILTER := [ state TCP-STATE ] [ EXPRESSION ] 过滤
3.TCP的常见状态:
tcpfinite state machine:
LISTEN: 监听
ESTABLISHED:已建立的连接
FIN_WAIT_1:
FIN_WAIT_2:
SYN_SENT:
SYN_RECV:
CLOSED:
4.EXPRESSION:
dport= 目标端口
sport = 源端口
示例:’( dport= :sshor sport = :ssh)’
5.常见用法:
ss -l 显示本地打开的所有端口
ss -pl 显示每个进程具体打开的socket
ss -t -a 显示所有tcp socket
ss -u -a 显示所有的UDP Socekt
ss -o state established '( dport = :ssh or sport = :ssh )' 显示所有已建立的ssh连接
ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接
ss -s 列出当前socket详细信息:
五、配置文件
1.IP、MASK、GW、DNS相关配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
2.路由相关的配置文件:
/etc/sysconfig/network-scripts/route-IFACE
3.说明:配置文件 /etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性;其可通过vim编辑器直接修改,也可以使用专用的命令进行修改(CentOS 6:system-config-network(setup),CentOS 7:nmtui)
ifcfg-IFACE配置文件参数:
DEVICE:此配置文件的对应的设备名称;
ONBOOT:此设备是否随OS启动而激活;
UUID:此设备的唯一标识;
IPV6INIT:是否初始化IPv6;
BOOTPROTO:启动时此设备使用的配置协议;取值有:static(手动配置)、none(手动配置)、dhcp或bootp(动态配置)
TYPE:接口类型,常见的有Ethernet,Bridge;
DNS1:第一DNS服务器指向;
DNS2:备用DNS服务器指向;
DOMAIN:DNS搜索域;
IPADDR:IP地址;
NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
GATEWAY:默认网关;
USERCTL:是否允许普通用户控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动配置的DNS服务器指向;默认为允许;
NM_CONTROLLED:NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no”
网络服务:
1.network
NetworkManger
CentOS 6 通过chkconfig –list 查看默认状态
2.管理网络服务:
CentOS 6:
# service SERVICE {start|stop|restart|status}
CentOS 7:
# systemctl {start|stop|restart|status} SERVICE
3.配置文件修改之后,如果要生效,需要重启网络服务:
CentOS 6 系统需执行:
# service network restart
CentOS 7 系统序执行:
# systemctl restart network
示例:对CentOS 6 中的新增网卡eth1设置配置文件,并激活
1)创建配置文件ifcfg-eth1,并设置如下参数:
2)设置好之后保存退出,然后重启网络
3)重启网络之后,可查看当前状态
用到非默认网关路由:
/etc/sysconfig/network-scripts/route-IFACE
支持两种配置方式,但不可混用;
(1)每行一个路由条目:
TARGET vla GW
(2)每三行一个路由条目:
ADDRESS#=TARGET
NETMASK#=MASK
GETEWAY#=NEXTHOP
给接口配置多个地址:
除了ip addr 之外,ifconfig或配置文件都可以;
(1)ifconfig IFACE_LABEL IPADDR/NETWASK
IFACE_LABEL:eth0:0,eth0:1,…
(2)为别名添加配置文件;
DEVICE=IFACE_LABEL
BOOTPROTO:网卡别名不支持动态获取地址;使用 static,nano手动配置
注意:DEVICE一定要同定义的文件名
原创文章,作者:zhumengxiaotao,如若转载,请注明出处:http://www.178linux.com/44038
评论列表(1条)
文章内容总结的很全面,同时有自己的操作,对结果也通过标记突出,很具有阅读性。很不错哦。