13网络协议和管理
广播域:当一台计算机发阿松一条广播,当有计算机收到广播了,就说明他们在一个广播域;
广播的目标MAC地址是48位的1–>ff:ff:ff:ff:ff:ff
交换机收到广播后;由于交换机MAC信息中,没有一个对应广播MAC地址的记录,所以会泛洪,发送给所有端口;***交换机不能阻断广播的,***广播会影响网络的性能。
路由器隔断广播。
冲突域:冲突域是在同一个网络上两个设备同时进行传输则会产生冲突;在网路内部数据分组所产生与发生冲突的这样一个区域称为冲突域,所有的共享介质环境都是一个冲突域,在共享介质环境中一定类型的冲突域是正常行为。
集线器与交换机的区别在于:
集线器是一种物理层设备,本身不能识别MAC地址和IP地址,当集线器下连接的主机设备间传输数据时,数据包以广播的方式进行传输,由每一台主机自己验证MAC地址来确定是否接收。
这种情况下,同一时刻由集线器连接的网络中只能传输一组数据,如果发生冲突则需要重传。集线器下连接的所有端口共享整个带宽,即所有端口为一个冲突域。
交换机则是工作在数据链路层的设备,在接收到数据后,通过查找自身系统MAC地址表中的MAC地址与端口对应关系,将数据传送到目的端口。
交换机在同一时刻可进行多个端口之间的数据传输,每一端口都是独立的物理网段,连接在端口上的网络设备独自享有全部的带宽。因此,交换机起到了分割冲突域的作用,每一个端口为一个冲突域。
网络层设备:路由器、三层交换机(既有交换机功能也有路由器功能;eg:家用路由器)
数据链路层:标准交换机;网卡; 以太网(MAC)
物理层设备:HUB集线器;以太网(网线接口标准)
VLAN:虚拟局域网(交换机上的技术)
利用VLAN将交换机切割成多个广播域(每个广播域有数字编号)
A发送的广播只能B收到,C、D收不到A广播;保证网络安全;
相当于: 交换机实现了路由器的功能。
虚拟机技术:云计算网络虚拟化对VLAN的需求量巨大。
vlan数据帧结构:
VID12位,2^12=4096个VID;但是云计算的诞生,导致虚拟网络对VLAN的需求量急速增加。
下图是交换机利用VLAN技术,交换机代替路由器分割广播域;实现把在不同楼层的同一个办公部门划分到同一个局域网。
TCP协议
TCP特性
TCP包头
端口号:用于识别应用层程序。
源端口:客户端端口号(随机)0-65535。
目的端口:服务器的端口号。
服务器端口号:
Apache:80
FTP:21
MySql:3306
ssh:22
https://baike.baidu.com/item/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E5%8F%A3/718781?fr=aladdin#3
查看Linux系统中已用的端口号
less /etc/service
序号:描述数据报文是数据的第几个报文(数据包编号:用于最后整合成完整数据)。
确认号:序号的下一个数据包编号,用于回应数据包已经收到。
数据偏移:头部长度不确定,用来体现头部的字节长度(头部:源端口到确认号)。
保留:没有使用的字节,空着不没有使用。
六个标记位(0|1):
URG:紧急指针,1说明紧急指针位有效,0说明紧急指针位没有意义。
ACK:确认,表示响应;
PSH:表示有DATA数据传输,数据放在缓冲区,还是立即发送给程序,PSH为1就立即发。
RST:连接重置,1说明网络中通讯出现重大的错误,需重新和对方建立连接。
SYN:同步连接(面向连接)。
FIN:关闭连接(面向连接)。
源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个。
序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从 0 开始。
确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送方: 我希望你(指发送方)下次发送的数据的第一个字节数据的编号为此确认号。
数据偏移:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。该字段的单位是32位(即4个字节为计算单位), 4位二进制最大表示15,所以数据偏移也就是TCP首部最大60字节。
URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段( urgentpointer)只有当URG=1时才有效。
ACK:表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。TCP规定,连接建立后, ACK必须为1,带ACK标志的TCP报文段称为确认报文段.
PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中.
RST:如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段.
SYN:在建立连接时使用,用来同步序号。当SYN=1, ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1, ACK=1时,表示对方同意建立连接。 SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段。
FIN:表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段.
窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量,达到此值,需要ACK确认后才能再继续传送后面数据,由Window size value * Window size scaling factor(此值在三次握手阶段TCP选项Window scale协商得到)得出此值.
校验和:提供额外的可靠性.
紧急指针:标记紧急数据在数据字段中的位置.
选项部分:其最大长度可根据TCP首部长度进行推算。 TCP首部长度用4位表示,选项部分最长为: (2^4-1)*4-20=40字节.
常见选项:
最大报文段长度: Maxium Segment Size, MSS,通常1460字节
窗口扩大: Window Scale
时间戳: Timestamps
TCP三次握手
SYN=1
ACK=1
seq:序号(数据包编号0-42.9亿)
ack:确认编号
第一次:客户端发送连接申请,SYN=1,其他标记位为0,数据包编号seq=x(第x个数据包,在客户端的编号,数据包的数量最大是2^32=4G,当所有编号用完后,编号再从0开始),假设这个x=1000,说明客户端向服务器已经发送了1000个数据包了。。
第二次:当服务器收到了客户段A主机发送的数据包,立即向客户端做出回应。回应的时候将标记位SYN、ACK设为1,其他为0,告诉客户端A,数据包x我已经收到,所以向A发送确认编号ack=x+1(表明A客户端需要向服务器B发送数据包x+1),同时服务器也向客户端发送一个数据编号seq=y的数据包。
第三次:客户端A收到了服务器的数据信息,需要向服务器B发送确认标记位ACK=1,并且发送数据编号seq=x+1的数据包,向服务器发送确认编号ack=y+1(表明服务器发送的y编号的数据包,客户端已经收到,并需要服务器发送第y+1个数据包)。
由此,三次通讯实现了双方可靠的连接确认,可靠的连接保证双方的正常通讯、传送数据;三次握手的目的是确认互相之间的通讯没有问题;两次握手是否验证互相通讯正常呢?
显然是不可能的,两次握手只能确认客户端向服务器发送数据连接,服务器确认收到了客户端的数据,并向客户端发送数据,但没有第三次握手,服务器不能确定客户端收到了自己发送的数据。(类似于生活中的打电话,三次握手生活中比比皆是)
TCP四次挥手
第一次:发送断开连接标记位FIN=1,但此时数据还在正常发送中,发送数据编号seq=u的数据包向服务器。
第二次:服务器回应客户端,发送确认标记位ACK=1(确认收到了断开连接的信号,但不是同意断开连接),向客户端依旧发送数据编号seq=v的数据包,并回应客户端自己收到了了编号seq=u的数据包,确认号ack=u+1。
但是服务器中还有大量的数据需要向客户端传送,客户端要求断开连接,说明客户端没有需要向服务器发送的数据了(编号seq=u为止);而服务器继续传送数据(数据标号seq=v-w);当数据传送完毕时,进行第三次挥手。 (半关闭状态)
第三次:数据发送完毕后,服务器主动向客户端发送断开连接的标记位FIN=1,ACK=1,seq=w的数据包,并再次确认收到seq=u的数据包,确认为ack=u+1。
第四次:客户端确认断开连接ACK=1, 并确认收到数据包w。
TCP三次握手|四次挥手–有限状态机FSM
CLOSED:网络连接段开状态;
LISTEN:监听状态,表示接收其他人的访问;
SYN-SENT:同步连接已发送;
SYN-RCVD:同步连接已收到;
ESTAB-LISHED:已建立连接;
FIN-WAIT1:终止等待1;
CLOSE-WAIT:关闭等待(断开连接等待);
FIN-WAIT2:终止等待2;
LAST- ACK:最后确认(断开连接);
TIME-WAIT:时间等待;2MSL:最大的数据段生存时间=2*LAST-ACK(网络的复杂性,数据包传送的路径不同,先发的数据包不一定先到,此时间段,保证数据完整性,可靠性)。
区分主动断开和被动端口方的端口状态:
主动端口方:SYN_SENT、FIN_WAIT1、FIN_WAIT2、CLOSING、TIME_WAIT 。
被动断开方:LISTEN、SYN_RCVD、CLOSE_WAIT、LAST_ACK 。
都具有的:CLOSED 、ESTABLISHED 。
抓包命令
抓取网卡eth1接口中与服务器Apache(端口:80)的连接信息
tcpdump -i eth1 -nn port 80
TCP协议非常可靠;当网络故障时,TCP超时重传
异常网络状况下(开始出现超时或丢包), TCP控制数据传输以保证其承诺的可靠服务
TCP服务必须能够重传超时时间内未收到确认的TCP报文段。为此, TCP模块为每个TCP报文段都维护一个重传定时器,该定时器在TCP报文段第一次被发送时启动。如果超时时间内未收到接收方的应答, TCP模块将重传TCP报文段并重置定时器。至于下次重传的超时时间如何选择,以及最多执行多少次重传,就是TCP的重传策略
与TCP超时重传相关的两个内核参数:
/proc/sys/net/ipv4/tcp_retries1,指定在底层IP接管之前TCP最少执行的重传次数,默认值是3
/proc/sys/net/ipv4/tcp_retries2,指定连接放弃前TCP最多可以执行的重传次数,默认值15(一般对应13~ 30min)
拥塞控制
网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可承受的能力, 网络的性能就会变坏。 此情况称为拥塞
TCP为提高网络利用率,降低丢包率,并保证网络资源对每条数据流的公平性。即所谓的拥塞控制
TCP拥塞控制的标准文档是RFC 5681,其中详细介绍了拥塞控制的四个部分:慢启动( slow start)、拥塞避免( congestion avoidance)、快速重传( fastretransmit)和快速恢复( fast recovery)。拥塞控制算法在Linux下有多种实现,比如reno算法、 vegas算法和cubic算法等。它们或者部分或者全部实现了上述四个部分
当前所使用的拥塞控制算法
/proc/sys/net/ipv4/tcp_congestion_control
生产中需要优化
cat /proc/sys/net/ipv4/tcp_max_orphans 指定内核能接管的孤儿连接数目
cat /proc/sys/net/ipv4/tcp_fin_timeout 指定孤儿连接在内核中生存的时间
ss –lnt
cat /proc/sys/net/ipv4/tcp_max_syn_backlog 未完成连接队列大小,建议调整大小为1024以上
cat /proc/sys/net/core/somaxconn 完成连接队列大小,建议调整大小为1024以上
与TCP超时重传相关的两个内核参数:
/proc/sys/net/ipv4/tcp_retries1,指定在底层IP接管之前TCP最少执行的重传次数,默认值是3
/proc/sys/net/ipv4/tcp_retries2,指定连接放弃前TCP最多可以执行的重传次数,默认值15(一般对应13~30min)
当前所使用的拥塞控制算法
/proc/sys/net/ipv4/tcp_congestion_control
ICMP协议测试网络状态
ping 命令发送的就是ICMP协议来检测网络故障 centos6 ping centos8,查看6和8能不能进行通讯;
[root@CentOS6 ~]#ping 192.168.52.109 -c1
c1指定ping一次
centos8抓取发送给主机的icmp协议的状态,检查网络故障
[root@CentOS8 ~]#tcpdump -i eth0 -nn icmp -e -X
ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。
操作系统ttl(网络通讯经过的路由器数量)由系统决定,一般会修改。防止黑客通过ping命令了解操作系统的类型;
Linux ttl=64
Windows ttl=256 | 128
ping -a ip 反向查找ip名
ping url 查看服务器信息
ping 命令查看网络故障
抓包工具查看网络详细情况
tcpdump
ping -f CPU全部性能发送大量的报文 f=flood
ping -s 指定报文大小 默认是64byte
Dos 拒绝服务(简单黑客攻击)
一台主机发送大量的ping,导致网卡卡顿,网络瘫痪
DDos
多台主机发送大量ping到某个用户网络,导致网络瘫痪
Dos防御 网络防御服务–阿里
ARP协议–地址解析协议
抓取ARP
查看计算机ARP
[root@centos7 ~]#ping 192.168.52.109 -c1
PING 192.168.52.109 (192.168.52.109) 56(84) bytes of data.
64 bytes from 192.168.52.109: icmp_seq=1 ttl=64 time=0.341 ms
--- 192.168.52.109 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.341/0.341/0.341/0.000 ms
[root@centos7 ~]#arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.52.109 ether 00:0c:29:8c:e3:01 C eth0
192.168.52.1 ether 00:50:56:c0:00:08 C eth0
192.168.52.254 ether 00:50:56:e6:21:4a C eth0
192.168.52.2 ether 00:50:56:ed:a3:8e C eth0
[root@CentOS8 ~]#tcpdump -i eth0 -nn arp -e
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
14:41:02.440015 00:50:56:c0:00:08 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: Request who-has 192.168.52.102 tell 192.168.52.1, length 46
14:41:02.440438 00:0c:29:9b:7d:ab > 00:50:56:c0:00:08, ethertype ARP (0x0806), length 60: Reply 192.168.52.102 is-at 00:0c:29:9b:7d:ab, length 46
14:41:09.444589 00:0c:29:9b:7d:ab > 00:0c:29:8c:e3:01, ethertype ARP (0x0806), length 60: Request who-has 192.168.52.109 tell 192.168.52.102, length 46
14:41:09.444623 00:0c:29:8c:e3:01 > 00:0c:29:9b:7d:ab, ethertype ARP (0x0806), length 42: Reply 192.168.52.109 is-at 00:0c:29:8c:e3:01, length 28
14:41:09.504293 00:0c:29:8c:e3:01 > 00:0c:29:9b:7d:ab, ethertype ARP (0x0806), length 42: Request who-has 192.168.52.102 tell 192.168.52.109, length 28
14:41:09.504803 00:0c:29:9b:7d:ab > 00:0c:29:8c:e3:01, ethertype ARP (0x0806), length 60: Reply 192.168.52.102 is-at 00:0c:29:9b:7d:ab, length 46
ARP通讯过程–>基于广播获取MAC/IP缓存表
ARP工作原理
ARP请求“广播报文”获取其他主机的IP;进而解析MAC地址(ARP广播);实现数据连接发送;缓存在记录IP和MAC地址,下次传输数据不用查询,直接连接(ARP缓存);但是长时间不连接,就需要再次进行ARP通讯,时效10分钟。
ARP跨网段传输:MAC地址根据网段设备(路由器网关)更换源MAC地址和目的MAC地址;但是源IP地址和目标IP不变。【ARP欺骗,获取银行密码】
广播获取不加密,天生不安全,没有验证机制;ARP诈骗(冒充网关,监听所有信息),所以需要手工绑定网关的MAC地址。
[root@CentOS8 ~]#arp -s 192.168.52.100
arp: need hardware address
[root@CentOS8 ~]#arp -s 192.168.52.100 00:0c:29:9b:7d:ab
[root@CentOS8 ~]#arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.52.100 ether 00:0c:29:9b:7d:ab CM eth0
手动加入网关IP和MAC;防止钓鱼网站,
MAC地址:在数据链路层作用
ARP跨网段传输
DESTMAC | SRCMAC | DESTIP | SRCIP |
---|---|---|---|
GATEWAY1 | MAC-A | IP-B | IP-A |
MAC-B | GATEWAY2 | IP-B | IP-A |
反向ARP
将MAC地址解析成IP地址:向网络中广播MAC地址,获取IP地址
IP协议
ICMP属于网络层子协议,是建立在IP协议基础之上是IP的上层协议,不是并行的;
IP协议|ICMP协议的关系 -->同属于网络层,处于网络层的不同子层
IP协议也是网络层子协议;
ARP协议和IP协议是并行的,同是网络层子协议。
IP PUD报头–>固定20字节<–TCP PUD报头
版本:占4位,指 IP 协议的版本目前的IP协议版本号为4
首部长度:占4位,可表示的最大数值是15个单位,一个单位为4字节,因此IP 的首部长度的最大值是60字节
区分服务:占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过.后改名为区分服务.只有在使用区分服务(DiffServ)时,这个字段才起作用.一般的情况下不使用
总长度:占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535 字节.总长度必须不超过最大传送单元 MTU
标识:占16位,它是一个计数器,通常,每发送一个报文,该值会加1, 也用于数据包分片,在同一个包的若干分片中,该值是相同的
标志(flag):占3位,目前只有后两位有意义
DF: Don’t Fragment 中间的一位,只有当 DF=0 时才允许分片
MF: More Fragment 最后一位, MF=1表示后面还有分片,MF=0 表示最后一个分片
片偏移:占13位,指较长的分组在分片后,该分片在原分组中的相对位置.片偏移以8个字节为偏移单位
生存时间:占8位,记为TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值,TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字RFC 指定,当前值为 64.发送 ICMP 回显应答时经常把 TTL 设为最大值 255
协议:占8位,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程, 1表示为 ICMP 协议, 2表示为 IGMP 协议, 6表示为TCP 协议, 17表示为 UDP 协议
首部检验和:占16位,只检验数据报的首部不检验数据部分.这里不采用 CRC 检验码而采用简单的计算方法
源地址和目的地址:都各占4字节,分别记录源地址和目的地址
IPv4最大的IP地址量42.9亿 十进制 192.168.52.4转换为二进制 32位二进制
ipv6最大的IP地址量2^128 十六进制 每四位用":"隔开 八个 128位二进制
传输数据包中的数据大小为46-1500byte(其中还有TCP|IP报头);数据超过需要拆分;
主机到主机的包传递底层工作原理
通过此原理解决网络故障问题
IP地址由两部分组成
它们可唯一标识IP网络中的每台设备(免费ARP验证IP是不是唯一的,唯一就可用)
网络ID(NETID)与MAC地址组合形成了标示每台设备的逻辑地址
每台主机(计算机、网络设备、外围设备)必须具有唯一的地址
• 网络ID:根据此判断在那个网段
--网段;路由器隔开算是一个网段;一个广播域就是一个网段
• 标识网络
• 每个网段分配一个网络ID
• 主机ID: 区分主机
• 标识单个主机
• 由组织分配给各设备
A类地址:0xxxxxxx.x.y.z-->最高八位是网络ID(1-126);后续24位是主机ID;
1.1.1.1
8.8.8.8 --->谷歌DNS服务器
127.x.x.x本地回环地址(不可用,回收)
0.x.x.x (不可用)
10.0.0.0-->本机(不可用)
10.255.255.255-->广播IP(不可用)
默认子网掩码:255.0.0.0
私网地址:10.0.0.0
A类网络的网段数=2^7-2=126
一个A类网段中的最大主机数=2^24-2=16777214
一个网络中最大主机数=2^(主机ID位数)-2
B类地址
网段数:2^14=16384
10xxxxxx.xxxxxxxx.y.z -->网络ID 16位(128-191)主机ID 16位
128-191.x.y.z
B类网络的网段数=2^14=16384
一个B类网段中的最大主机数=2^16-2=65534
默认子网掩码:255.255.0.0
私网地址:172.13.0.0-172.31.0.0
C类地址
110xxxxx.xxxxxxxx.xxxxxxxx.z -->网络ID 24位(192-223) 主机ID 8位
网段数:2^21=2097152
192-223.x.y.z
一个C类网段中的最大主机数=2^8-2=254
默认子网掩码:255.255.255.0
私网地址:192.168.0.0-192.168.255.0
D类
多|组播地址
1110xxxx.x.y.z
223-239.x.y.z
E类地址(保留未使用)
240-255.x.y.z
CIDR无类域间路由表示法:IP/网络ID位数-->网络ID不确定
根据主机数确定网络ID和主机ID
子网掩码(Netmask):确定网络ID的位数,32bit 二进制数字,和IP地址成对使用,对应于IP中网络ID相对应的位为1,对应的主机位是0。
一个公司需要建2000台主机;则网络ID为21位;主机ID位11位。
子网掩码:255.255.248.0 -->11111111.11111111.11111000.00000000
判断两个IP是否在同一个网段:
CIDR无类域间路由表示法:IP/网络ID位数-->判断对方主机是否在同一个网段,用自己的子网掩码分别和自己的IP及对方的IP做与运算,比较结构,相同是同一网段,不同则不是。
inet 172.20.2.12/16-->表示网络ID共16位
子网掩码:255.255.0.0
网络ID:172.20.0.0
inet 192.168.52.109/24-->表示网络ID24位
子网掩码:255.255.255.0
网络ID:192.168.52.0
两个主机通讯(网络故障排查)
1、判断是否在一个网段:自己的IP的子网掩码与运算是否相同
2、路由
3、ARP
4、三次握手
5、DATA
公式:
一个网络的最多的主机数=2^主机ID位数-2
网络(段)数=2^网络ID中可变的位数
网络ID=IP&netmask
CIDR无类域间路由表示法:IP/网络ID位数
判断对方主机是否在同一个网段:用自已的子网掩码分别和自已的IP及对方的IP相与,比较结果,相同则同一网络,不同则不同网段
划分子网:将一个大的网络(主机数多)划分成多个小的网络(主机数少),主机ID位数变少,网络ID位数变多,网络ID位向主机ID位借位
合并超网:将多个小网络合并成一个大网,主机ID位向网络ID位借位
中国移动10.0.0.0/8 给32个各省公司划分对应的子网
1)每个省公司的子网的netmask?
2^5>=32 借5位网络ID
8+5=13
255.248.0.0
2)每个省公司的子网的主机数有多少?
2^(32-13)-2=524286
3)河南省得到第10个子网,网络ID?
10.00000 000.0.0/13
10.01001 000.0.0/13
10.72.0.0/13
4)河南省得到第10个子网的最小IP和最大的IP?
10.01001 000.0.1
10.01001 111.11111111.11111110
10.72.0.1/13---10.79.255.254/13
5)所有子网中最大,最小的子网的netid?
10.00000 000.0.0/13 10.0.0.0/13
10.11111 000.0.0/13 10.248.0.0/13
6)所有子网中最大,最小的子网的IP?
10.0.0.1/13 --- 10.248.255.254/13
中国移动10.0.0.0/8 给32个各省公司划分对应的子网,河南省得到第10个子网,再给省内的16个地市划分子网
河南各市分16个小网段:
10.01001000.0 0000000.0
10.01001000.1 0000000.0
10.01001001.0 0000000.0
10.01001001.1 0000000.0
10.01001010.0 0000000.0
10.01001010.1 0000000.0
10.01001011.0 0000000.0
10.01001011.1 0000000.0
10.01001100.0 0000000.0
10.01001100.1 0000000.0
10.01001101.0 0000000.0
10.01001101.1 0000000.0
10.01001110.0 0000000.0
10.01001110.1 0000000.0
10.01001111.0 0000000.0
10.01001111.1 0000000.0
1)每个市公司的子网的netmask?
17位1,15位0-->子网掩码:255.255.128.0
2)每个市公司的子网的主机数有多少?
主机数:2^15-2=32766
3)各地市的最小netid和最大的netid?
最小:10.72.0.0/17;最大:10.79.128.0/17
4)洛阳市第2个子网,最小IP和最大IP?
洛阳是网络ID:10.72.128.0-->{10.72.128.1/17 -- 10.72.255.254/17}
子网合并成超网:将多个连续的子网合并到一个大网;主机位向网络ID位借位。减少路由器中路由表的数量,优化路由器的性能
A:192.168.36.6/19
B:192.168.37.7/16
A–>B:网络ID都是192.168.32.0;所以AB在同一个网段
B–>A:网络ID都是162.168.0.0;所以AB可以互相通讯。
所以在一个网段的IP地址,子网掩码不一定相同。
网段相同的两台主机不一定可以通过ARP广播通讯,因处在不同的广播域,必须经由路由器进行通讯。如下图:
同一个广播域的两台主机,没有路由记录也不能进行通讯。
跨网络通信–路由
路由:网络通讯路径寻找和选择
由主机A和主机B通讯路径(metric)
优先级:精度越高,优先级越高
主机路由>网络路由>默认路由
默认情况下在路由表中直连路由优先级最高,静态路由优先级其次,下来为动态路由,默认路由最低
路由表查询 route -n
李雷要去找韩梅玩,李雷知道韩梅在育才小学(第一个255)三年级(第二个255)二班(第三个255)名字叫韩梅(第三个255),李雷去找韩梅(主机路由),要先经过自家大门(默认路由),然后找到育才小学大门(网络路由),找到三年级(网络路由)再找到二班(网络路由),然后大喊一声韩梅(arp协议),然后韩梅应答(握手),找到了韩梅(主机路由)
主机路由:过于精确:主机到主机(精确的路由路径)–?同一个网段之间通讯也需要路由(路由记录)
网络路由:A网段–>B网段路径:接口节点到网段之间;
默认路由:又称缺省路由,在路由表中没有的所有未知网络都通过默认路由(默认网关)继续寻址。
centos6里面自动生成默认路由的数目一条(两个网卡中的任意一个默认网关即可)
centos7、8,自动生成两个网卡的默认路由。
默认路由(Default route),是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。目的地不在路由器的路由表里的所有数据包都会使用默认路由。这条路由一般会连去另一个路由器,而这个路由器也同样处理数据包: 如果知道应该怎么路由这个数据包,则数据包会被转发到已知的路由;否则,数据包会被转发到默认路由,从而到达另一个路由器。每次转发,路由都增加了一跳的距离。
当到达了一个知道如何到达目的地址的路由器时,这个路由器就会根据最长前缀匹配来选择有效的路由。子网掩码匹配目的IP地址而且又最长的网络会被选择。用无类别域间路由标记表示的IPv4默认路由是0.0.0.0/0。因为子网掩码是/0,所以它是最短的可能匹配。 当查找不到匹配的路由时,自然而然就会转而使用这条路由。同样地,在IPv6中,默认路由的地址是::/0. 一些组织的路由器一般把默认路由设为一个连接到网络服务提供商的路由器。这样,目的地为该组织的局域网以外——一般是互联网、城域网或者VPN——的数据包都会被该路由器转发到该网络服务提供商。当那些数据包到了外网,如果该路由器不知道该如何路由它们,它就会把它们发到它自己的默认路由里,而这又会是另一个连接到更大的网络的路由器。同样地,如果仍然不知道该如何路由那些数据包,它们会去到互联网的主干线路上。这样,目的地址会被认为不存在,数据包就会被丢弃。
主机里的默认路由通常被称作默认网关。默认网关通常会是一个有过滤功能的设备,如防火墙和代理服务器。
网关:通用概念,网络的关口;分割两个不同的网络,可能是采用路由器来隔开的网段,那此时网关就是路由器的接口IP;也可能是两边网络采用的协议不同,也需要网关连接。
缺省网关:又称默认网关,是计算机网络中一个如何将数据包转发到其他网络中的节点。在一个典型的TCP / IP网络,节点(如服务器、工作站和网络设备)都有一个定义的默认路由设置(指向默认网关)。在没有特定路由的情况下,明确出发送数据包的下一跳IP地址就是默认网关。
根据网络的配置情况,三个主机的IP地址和默认网关配置如下:
Host1 10.1.1.100, default gateway 10.1.1.1
Host2 172.16.1.100, default gateway 172.16.1.1
Host3 192.168.1.100, default gateway 192.168.1.96
配置一条默认静态路由和静态路由相似,但IP地址和子网掩码全部是零
例如:ip route 0.0.0.0 0.0.0.0 [网关ip或接口]
子网掩码 0.0.0.0 代表匹配所有网络
基本网络配置:
- 主机名
- IP/netmask
- 路由:默认网关
- DNS服务器:
CentOS 6 网卡名称
ethtool eth0 -->查看网卡
dmesg |grep -i eth -->查看网卡
mii-tool eth0|1 查看网络连接情况,网线是否断开,必须至少有两个网卡;一个网卡断开网线了,就查询不了。
网络接口识别并命名相关的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules
当网卡配置修改后,需要卸载再重新装载网卡驱动
卸载网卡驱动:
modprobe -r e1000
rmmod e1000
装载网卡驱动:
modprobe e1000
centos6中的下列两项网络服务冲突,应该禁用一个服务,本例中是禁用了NetworkManager服务
[root@CentOS6 ~]#service NetworkManager stop
Stopping NetworkManager daemon: [ OK ]
[root@CentOS6 ~]#service network restart
网络配置方式
静态指定:临时修改,需要修改配置文件
ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui, setup
配置文件
动态分配:
DHCP: Dynamic Host Configuration Protocol
配置网络接口
ifconfig命令
ifconfig [interface]
ifconfig -a
ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address ...
ifconfig IFACE IP/netmask [up]
ifconfig eth1:1 172.20.52.111 -->给eth1临时配置一个网卡eth1:1
ifconfig IFACE IP netmask NETMASK
注意:立即生效
启用混杂模式: [-]promisc -->抓包工具即是混杂模式, 交换机内的通讯都可以收到。
路由管理
路由表:一行即为一条路由记录,每条记录路由:
Destination(网络ID):(优先2)目标网络ID,(优先1)主机路由;(优先3)0.0.0.0/0 默认路由(与主机直连的网段)
Genmask:netmask
Ifac:接口,表示从当前的设备哪个网卡发出去,才能到达目标Destination;
Gateway(下一跳next hop):下一个路由器临近当前设备的接口IP;
Metric:花费,越小优先级越高-
实验:实现路由
- VMware搭建虚拟网络环境, 会在网络适配器中添加虚拟网卡,默认是vmnet1和vmnet8.而且可以自定义添加虚拟网卡。
添加虚拟网卡vmnet10
systemctl disable libvirtd.service //禁用libvirtd服务开机自启动
- vmnet8:NAT模式网卡, NAT相当于集线器HUB。此中的主机是以广播的形式发送信息,任何主机都可以选择性接受信息。
利用NAT模式抓包:
tcpdump -i eth0 -nn
192.168.52.6和192.168.52.7通讯;–>192.168.52.8可以抓包获取6和7直接通讯情况。
- vmnet1仅主机模式网卡(host-only),相当于是每个centos系统中的虚拟网卡(host-only)连接到虚拟的交换机vmnet1(vmnet1具备交换机的作用),再和计算机的vmnet1网卡连接;仅仅所在计算机内的虚拟机以及计算机本身可以互相通讯访问,其他计算机不能访问此计算机的虚拟机。
-
vmnet0:桥接模式网卡,相当于一个虚拟的交换机和本地网络连接在一起,具备和其他计算机网络通讯的功能。
-
lo回环网卡不能做路由配置,只是自己连接自己做测试使用
-
路由实验拓扑
主机A:centos6
主机B:centos8
R1路由:centos7
R2路由:centos7克隆
网段1:vmnet1
网段2:vmnet10
网段3:vmnet8
路由实验拓扑路由表
linux主机 | eth0 | eth1 | vmnet |
---|---|---|---|
主机A:centos8 | 192.168.52.8/24 | NAT | |
主机B:centos6 | 172.20.0.6/16 | 桥接 | |
R1路由:centos7 | 192.168.52.7/24 | 10.0.0.1/8 | NAT/vmnet6 |
R2路由:centos7克隆 | 10.0.0.2/8 | 172.20.0.7/16 | vmnet6/桥接 |
Linux主机实现路由器的功能,需要修改文件让路由主机接口间能够进行通讯;默认情况下是0。此文件是个内存中的文件,不能使用vim编辑工具修改,可以重定向覆盖文件内容。
同时防火墙服务也要关闭。
[root@centos77 ~]#echo 1 > /proc/sys/net/ipv4/ip_forward
[root@centos77 ~]#cat /proc/sys/net/ipv4/ip_forward
1
主机 | DEST | Gateway | Genmask | Iface |
---|---|---|---|---|
A | 0.0.0.0 | 192.168.52.7 | 0.0.0.0 | eth0 |
A | 192.168.52.0 | 0.0.0.0 | 255.255.255.0 | eth0 |
R1 | 192.168.52.0/24 | 0.0.0.0 | 255.255.255.0 | R1-1 |
R1 | 10.0.0.0/8 | 0.0.0.0 | 255.0.0.0 | R1-2 |
R1 | 172.20.0.0/16 | 10.0.0.2/8 | 255.255.0.0 | R1-2 |
R2 | 10.0.0.0/8 | 0.0.0.0 | 255.0.0.0 | R2-1 |
R2 | 172.20.0.0/16 | 0.0.0.0 | 255.255.0.0 | R2-2 |
R2 | 192.168.52.0/24 | 10.0.0.1/8 | 255.255.255.0 | R2-1 |
B | 172.20.0.0 | 0.0.0.0 | 255.255.0.0 | eth0 |
B | 0.0.0.0 | 172.20.0.200 | 0.0.0.0 | eth0 |
直连网段的路由不需要添加,系统直接生成,其网关为默认网关0.0.0.0。
Genmask255.255.255.255表示仅主机路由,表示通讯的网段只有一台主机
同一个广播域的两台主机,没有路由记录也不能进行通讯。
三路由实验拓扑路由表
三路由实验拓扑
主机A、B
R1、2、3路由
网段NET1、2、3、4
接口1、2、3、4、5、6
处于网络中间的路由器不能加默认路由(因为中间路由两边除了直连网段都是未知网段,添加默认路由,就会导致网络方向混乱);通讯边缘的路由器可以添加默认路由(因为到达任何未知网络都必须通过此网关)。
主机 | DEST | Gateway | Iface |
---|---|---|---|
R1 | NET1 | 0.0.0.0 | 1 |
R1 | NET2 | 0.0.0.0 | 2 |
R1 | NET3 | IP-R2-1 | 2 |
R1 | NET4 | IP-R2-1 | 2 |
R2 | NET1 | IP-R1-2 | 3 |
R2 | NET2 | 0.0.0.0 | 3 |
R2 | NET3 | 0.0.0.0 | 4 |
R2 | NET4 | IP-R3-1 | 4 |
R3 | NET1 | IP-R2-2 | 5 |
R3 | NET2 | IP-R2-2 | 5 |
R3 | NET3 | 0.0.0.0 | 5 |
R3 | NET4 | 0.0.0.0 | 6 |
netstat:显示网络连接状态
[root@CentOS8 ~]#netstat -n \\以数字显示IP和端口
[root@CentOS8 ~]#netstat -t \\tcp协议相关
[root@CentOS8 ~]#netstat -u \\udp协议相关
[root@CentOS8 ~]#netstat -w \\raw socket相关
[root@CentOS8 ~]#netstat -l \\处于监听状态
[root@CentOS8 ~]#netstat -a \\所有状态
[root@CentOS8 ~]#netstat -p \\显示相关进程及PID
[root@CentOS8 ~]#netstat -nr \\显示路由表 = route -n = ip route
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.52.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 172.20.1.52 0.0.0.0 UG 0 0 0 eth1
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
192.168.52.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
[root@CentOS8 ~]#netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n] \\显示接口统计数据
[root@CentOS8 ~]#netstat -Ieth0 -e \\等同于ifconfig eth0
Kernel Interface table
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.52.8 netmask 255.255.255.0 broadcast 192.168.52.255
inet6 fe80::20c:29ff:fe8c:e301 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:8c:e3:01 txqueuelen 1000 (Ethernet)
RX packets 1069 bytes 100734 (98.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1038 bytes 145781 (142.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@CentOS8 ~]#netstat -I=eth0 -e
Kernel Interface table
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.52.8 netmask 255.255.255.0 broadcast 192.168.52.255
inet6 fe80::20c:29ff:fe8c:e301 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:8c:e3:01 txqueuelen 1000 (Ethernet)
RX packets 1089 bytes 102474 (100.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1056 bytes 148185 (144.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@CentOS8 ~]#netstat -i \\查看各个网卡的网络吞吐量
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 1172 0 0 0 1120 0 0 0 BMRU
eth1 1500 37890 0 0 0 103 0 0 0 BMRU
lo 65536 26 0 0 0 26 0 0 0 LRU
[root@CentOS8 ~]#ifconfig -s
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 1182 0 0 0 1128 0 0 0 BMRU
eth1 1500 37903 0 0 0 103 0 0 0 BMRU
lo 65536 26 0 0 0 26 0 0 0 LRU
[root@CentOS8 ~]#watch netstat -i \\实时观察网络吞吐量
Every 2.0s: netstat -i CentOS8.yanyi99: Sat Oct 26 14:45:41 2019
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 1391 0 0 0 1316 0 0 0 BMRU
eth1 1500 40016 0 0 0 104 0 0 0 BMRU
lo 65536 26 0 0 0 26 0 0 0 LRU
[root@CentOS8 ~]#netstat -ntp \\查看TCP协议的连接
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 52 192.168.52.8:22 192.168.52.1:59169 ESTABLISHED 2348/sshd: root [pr
[root@CentOS8 ~]#netstat -ntpa 、、查看TCP所有状态
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1057/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1059/cupsd
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 2367/sshd: root@pts
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:59345 0.0.0.0:* LISTEN 1464/rpc.statd
tcp 0 52 192.168.52.8:22 192.168.52.1:59169 ESTABLISHED 2348/sshd: root [pr
tcp6 0 0 :::22 :::* LISTEN 1057/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1059/cupsd
tcp6 0 0 ::1:6010 :::* LISTEN 2367/sshd: root@pts
tcp6 0 0 :::44159 :::* LISTEN 1464/rpc.statd
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::80 :::* LISTEN 1061/httpd
CentOS6网卡名自定义文件
[root@CentOS6 network-scripts]#cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:47:3e:56", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:47:3e:60", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
CentOS6 禁用NetworkManager服务
NetworkManager和network服务相同
[root@CentOS6 ~]#chkconfig NetworkManager off \\禁用NetworkManager服务开机自启动
[root@CentOS6 ~]#service NetworkManager stop \\立即禁用NetworkManager服务
ip命令:配置Linux网络属性–代替ifconfig命令
ip link
ip address
ip address add 1.1.1.1/24 dev eth1
ip address del 1.1.1.1/24 dev eth1
ip address add 1.1.1.1/24 dev eth1 label eth1:2 -->添加标签 网卡的子接口
CentOS7|8修改网卡名
[root@CentOS8 ~]#ip link set eth1 down \\网卡禁用
[root@CentOS8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:ff:4b:0f brd ff:ff:ff:ff:ff:ff
inet 192.168.52.8/24 brd 192.168.52.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::6f8c:4489:6e52:1adb/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:0c:29:ff:4b:19 brd ff:ff:ff:ff:ff:ff
inet 172.20.52.8/16 brd 172.20.255.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
[root@CentOS8 ~]#ip link set eth1 name eth100 \\修改网卡名称
[root@CentOS8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:ff:4b:0f brd ff:ff:ff:ff:ff:ff
inet 192.168.52.8/24 brd 192.168.52.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::6f8c:4489:6e52:1adb/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth100: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:0c:29:ff:4b:19 brd ff:ff:ff:ff:ff:ff
inet 172.20.52.8/16 brd 172.20.255.255 scope global noprefixroute eth100
valid_lft forever preferred_lft forever
CentOS7|8统一网卡名称
[root@CentOS8 ~]#vim /etc/default/grub
1 GRUB_TIMEOUT=5
2 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
3 GRUB_DEFAULT=saved
4 GRUB_DISABLE_SUBMENU=true
5 GRUB_TERMINAL_OUTPUT="console"
6 GRUB_CMDLINE_LINUX="crashkernel=auto resume=UUID=129e1744-2c91-4da7-b0f5-b1bf02e05cda rhgb quiet net.ifnames=0" \\添加net.ifnames=0
7 GRUB_DISABLE_RECOVERY="true"
8 GRUB_ENABLE_BLSCFG=true
[root@CentOS8 ~]#grub2-mkconfig -o /etc/grub2.cfg -->重启
ubuntu统一网卡名称
getent hosts 查看/etc/hosts 内容
hostnamectl set-hostname -->修改主机名
**nmcli–network manager client **
nmcli device -->数据链路层
[root@CentOS8 ~]#nmcli device
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
eth1 ethernet connected eth1
lo loopback unmanaged --
[root@CentOS8 ~]#nmcli connection
NAME UUID TYPE DEVICE
eth0 384163a6-0774-458e-8e7d-4433cf7348de ethernet eth0
eth1 30a2cc8b-9a24-4b7e-8692-9985cfe0fd74 ethernet eth1
[root@CentOS8 network-scripts]#nmcli connection add con-name eth1-test ifname eth1 type ethernet ipv4.method manual ipv4.addresses 1.1.1.1/24 \\给eth1配置多个IP地址,用哪个启用哪个
Connection 'eth1-test' (4d2dfc9a-561e-4758-9ca3-75adbe321140) successfully added.
[root@CentOS8 network-scripts]#nmcli connection
NAME UUID TYPE DEVICE
eth0 384163a6-0774-458e-8e7d-4433cf7348de ethernet eth0
eth1 30a2cc8b-9a24-4b7e-8692-9985cfe0fd74 ethernet eth1
eth1-test 4d2dfc9a-561e-4758-9ca3-75adbe321140 ethernet --
[root@CentOS8 network-scripts]#ls
ifcfg-eth0 ifcfg-eth1 ifcfg-eth1-test
[root@CentOS8 network-scripts]#nmcli connection up eth1-test
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@CentOS8 network-scripts]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:ff:4b:0f brd ff:ff:ff:ff:ff:ff
inet 192.168.52.8/24 brd 192.168.52.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::6f8c:4489:6e52:1adb/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:ff:4b:19 brd ff:ff:ff:ff:ff:ff
inet 1.1.1.1/24 brd 1.1.1.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::671d:a178:e2ed:3868/64 scope link noprefixroute
valid_lft forever preferred_lft forever
网络故障排查
先查看网关;ping一下网关能不能通讯;
查看网卡是不是down状态;
查看路由表是不是出错,既是在统一网段,没有路由记录也不能上网;
路由表中到达某个网段的路径有重复,也通不了(可能metric相同,不能做选择)(添加两条默认路由上不去网“centos6”);
路由器出问题,路由器转发有问题;
DNS解析服务器是否出错(可以登陆QQ,但是不能登陆网页);
一个物理网卡绑定多个IP地址,实现虚拟主机
ip a flush dev eth1 -->删除网卡的所有IP地址
ip route 查看路由
ip route add dest via gateway dev eth0 添加路由
globe:全局有效
host:本机有效
link:针对某个链路有效
lo:回环网卡,添加的地址只能在本机有效,没有路由路径
eth*:以太网卡
virbr0:虚拟网卡
路由是核心;IP地址只是形式;网路路由通,机器就可以连接。
VLAN(虚拟局域网)划分网段
VLAN+route 实现多网段之间的连接
单臂路由:一根网线连接交换机,交换机把不同网段划分
nmcli = NetworkManager client-->网络管理客户端
nmcli connection up 启动网卡连接
nmcli connection reload 重新加载网卡设置文件
nmcli connection up eth1 启动网卡连接
cat /etc/resolv.conf -->DNS服务
/etc/sysconfig/network-scripts/ifcfg-ens192|160 -->网卡设置文件
centos6不能使用nmcli命令
setup设置网卡
service network restart 重启网络服务
开机自动执行脚本
网络组建立和查看状态 -->多网卡绑定一个IP地址
网络接口配置-bonding -->多网卡绑定一个IP地址
主机配置成网桥(桥接)
网桥:隔断冲突域,对广播域不起作用
网桥记录了每个网卡端口和哪些计算机相连的“接口–MAC表”;
网桥一端的计算机之间直接通讯,不影响另一端的计算机;
交换机的性能:避免冲突域;全双工保证网络的通讯速度;安全性;
交换机有内存空间,记录一条条的路径(计算机的端口对应Mac地址)
当内存满时,会导致数据泛洪,导致网络安全问题
ip route 查看路由
ip route add dest via gateway dev eth0 添加路由
globe:全局有效
host:本机有效
link:针对某个链路有效
lo:回环网卡,添加的地址只能在本机有效,没有路由路径
eth*:以太网卡
virbr0:虚拟网卡
路由是核心;IP地址只是形式;网路路由通,机器就可以连接。
VLAN(虚拟局域网)划分网段
VLAN+route 实现多网段之间的连接
单臂路由:一根网线连接交换机,交换机把不同网段划分
nmcli = NetworkManager client-->网络管理客户端
nmcli connection up 启动网卡连接
nmcli connection reload 重新加载网卡设置文件
nmcli connection up eth1 启动网卡连接
cat /etc/resolv.conf -->DNS服务
/etc/sysconfig/network-scripts/ifcfg-ens192|160 -->网卡设置文件
centos6不能使用nmcli命令
setup设置网卡
service network restart 重启网络服务
## 开机自动执行脚本
## 网络组建立和查看状态 -->多网卡绑定一个IP地址
## 网络接口配置-bonding -->多网卡绑定一个IP地址
## **主机配置成网桥(桥接)**
>网桥:隔断冲突域,对广播域不起作用
<img src="picture\2019-10-27_203237.png" />
>>网桥记录了每个网卡端口和哪些计算机相连的“接口--MAC表”;
网桥一端的计算机之间直接通讯,不影响另一端的计算机;
>>交换机的性能:避免冲突域;全双工保证网络的通讯速度;安全性;
交换机有内存空间,记录一条条的路径(计算机的端口对应Mac地址)
当内存满时,会导致数据泛洪,导致网络安全问题