Day34-Linux网络管理4
- 1. IP地址分类与子网划分基础
-
- 1.1 什么是IP地址
- 1.2 十进制与二进制的转换
- 1.3 IP地址的分类
- 1.4 私网地址和局域网地址
- 2. 通信类型
- 3. 子网划分讲解
-
- 3.1 为什么要划分子网?
- 3.2 什么是子网划分?
- 3.3 子网划分的作用?
- 3.4 子网划分常见问题
-
- 3.4.1 选定的子网掩码将创建多少个子网?
- 3.4.2 每个子网可包含多少台主机?
- 3.4.3 有哪些合法的子网?
- 3.4.4 每个子网的广播地址是什么?
- 3.4.5 每个子网可包含哪些主机地址?
- 4. 虚拟局域网 VLAN
- 5. Linux网络管理实践
-
- 5.1 物理层及数据链路层
-
- 5.1.1 查看网卡工作状态
- 5.1.2 查看网络接口的协商状态
- 5.1.3 更改网络接口的工作模式
- 5.1.4 恢复网卡适应的工作状态
- 5.2 查询及设置网卡参数ethtool
- 5.3 什么是arp欺骗?如果解决arp欺骗。
- 6. 网络层
-
- 6.1 网络配置
- 6.2 systemd-analyze
- 6.3 网卡配置
使用wireshark查看tcp3次握手及四次断开细节实践。
wireshark抓包新手使用教程
链接: https://www.cnblogs.com/mq0036/p/11187138.html
1. IP地址分类与子网划分基础
1.1 什么是IP地址
- 32位二进制数字序列组成的数字序列
- 采用点将32位数字进行分割为4段,每段8位的二进制数,但二进制数不便于记忆,因此转换为10进制数显示,即点分十进制
在一个网络范围内,唯一标识一台主机。
1.2 十进制与二进制的转换
1.3 IP地址的分类
简单的说,IP地址分5类,常见的地址是A、B、C类
A 1.0.0.0 到 126.0.0.0 (0.0.0.0 和127.0.0.0保留)
B 128.1.0.0 到 191.254.0.0 (128.0.0.0和191.255.0.0保留)
C 192.0.1.0 到 223.255.254.0 (192.0.0.0和223.255.255.0保留)
D 224.0.0.0 到 239.255.255.255 用于多点广播
E 240.0.0.0 到 255.255.255.254 保留(255.255.255.255用于广播)
注意:
1)ABC三类分配给互联网用户所使用
2)D类型做为组播使用(keepalived,heartbeat多播)
mcast eth1 225.0.0.1 694 1 0 #heartbeat组播配置
ucast eth1 172.16.49.133 #heartbeat单播
3)E类型作为科学研究使用,进行保留
特殊地址:
127.0.0.1 —表示回环地址,进行测试使用,验证本地的TCP协议簇安装的是否正确
0.0.0.0 —主机位全为0的称为是网络地址
255.255.255.255 —主机位全为1的称为是广播地址,即向所有人发出信息
1.4 私网地址和局域网地址
在一个企业内部可以复用,局域网地址不能进入公网,路由器不转发。
数据包出网的时候路由器会用SNAT改变局域网的地址为路由器的公网地址。
数据包回来的时候路由器会用DNAT把路由器的公网地址改变局域网的地址。
NAT:
私网地址:下面的网络地址段就是分配给专用网络地址使用的。
10.0.0.0/8 (10.0.0.0到10.255.255.255)
172.16.0.0/12 (172.16.0.0到172.31.255.255)
192.168.0.0/16 (192.168.0.0到192.168.255.255) ###192.168.0.0/16
169.254.0.0/16 (169.254.0.0到169.254.255.255)*
其他地址:用于IDC机房,办公室场景中ISP给我们分配的外网地址。
说明:
划分私网ip地址的作用主要是避免地址的枯竭,对于一般不同局域网环境中,地址实际是可以重复使用的,不必要仍保持唯一性
就类似于人的身份证和护照的关系一样
默认私网地址只在本局域网中有效识别,但一旦出局域网到达公网,就没有任何意思了
因此未解决这种问题,就出现了一个技术NAT(SNAT和DNAT),即地址的映射技术
2. 通信类型
单播(点到点) 就是点到点的通讯,例如A-B的通信方式
组播(需要配地址)也是一对多的方式,但是可以根据需要进行接收,如果不想接收可以进行过滤掉
广播(广播域) 在一定的范围内,所有成员都会收到的信息,称为广播信息,并且每个成员都要收取,都要进行处理。
#heartbeat
mcast eth1 225.0.0.1 694 1 0 #heartbeat组播配置
ucast eth1 172.16.49.133 #heartbeat单播
#KeepAlived
MASTER以IP组播(组播地址:224.0.0.18)形式发送VRRP协议包,与BACKUP保持心跳连接,若MASTER不可用(或BACKUP接收不到VRRP协议包),则BACKUP通过竞选产生新的MASTER并继续对外提供服务,从而实现高可用。
3. 子网划分讲解
3.1 为什么要划分子网?
- 会出现大量的局域网地址,同时向一个网关发送请求,引起网关设备的负载过高
- 会引起局域网内的大量广播数据传送,形成广播风暴
- 而且会非常的浪费地址空间,有可能只有两台主机或者一台,就分配一个C类地址
3.2 什么是子网划分?
通过子网划分(通过子网掩码进行划分)
可以将一个大的局域网络进行切割为多个小的局域网,这样就解决了上面说的两个问题,而得到的新的局域网络就称为子网
3.3 子网划分的作用?
1.将一个大的广播域划分成几个小的广播域环境
2. 减少网关设备所承载的负载量
3. 有效的避免ip地址的浪费,使一个大的地址空间更加弹性和更加灵活的进行分配
通过子网划分(通过子网掩码进行划分)
可以将一个大的局域网络进行切割为多个小的局域网,这样就解决了上面说的两个问题,而得到的新的局域网络就称为子网
链接: https://blog.csdn.net/dyyay521/article/details/94381876
链接: https://www.cnblogs.com/simon4you/p/11159102.html
3.4 子网划分常见问题
3.4.1 选定的子网掩码将创建多少个子网?
2^x个,其中x是子网掩码借用的主机位数。如:192.168.10.32/28,我们知道C类ip的默认子网掩码为:255.255.255.0,而由上文的CIDR知识,我们了解到这个ip的实际子网掩码是:255.255.255.240。原本最后一个字节应该是0(00000000),现在却是240(11110000)。故其借用了主机位4位来充当网络位。
3.4.2 每个子网可包含多少台主机?
2^y-2台,其中y是没被借用的主机位的位数。-2是因为,主机位全为0的部分是这个子网的网段号(Net_id),全为1的部分是这个网段的广播地址。
3.4.3 有哪些合法的子网?
算出子网的步长(增量)。一个例子是256-192 =64,
即子网掩码为192时,步长为64。从0开始不断增加剧,直到到达子网掩码值,中间的结果就是子网,即0、64、128和192,
3.4.4 每个子网的广播地址是什么?
主机位全为1就是该子网的广播地址。一般我们这样计算:广播地址总是下一个子网前面的数.前面确定了子网为0、64、128和192,例如,子网0的广播地址为63,因为下一个子网为64;子网64的广播地址为127,因为下一个子网为128,以此类推。请记住,最后一个子网的广播地址总是255
3.4.5 每个子网可包含哪些主机地址?
合法的主机地址位于两个子网之间,但全为0和全为1的地址除外。例如,如果子网号(网段号)为64,而广播地址为127,则合法的主机地址范围为65-126,即子网地址和广播地址之间的数字。
4. 虚拟局域网 VLAN
VLAN原理
虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组
这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网
优点
(1)更有效地共享网络资源。如果用交换机构成较大的局域网,大量的广播报文就会使网络性能下降。
VLAN能将广播报文限制在本VLAN范围内,从而提升了网络的效能
(2)简化网络管理。当结点物理位置发生变化时,如跨越多个局域网,通过逻辑上配置VLAN即可形成网络设备的逻辑组,
无需重新布线和改变IP地址等。这些逻辑组可以跨越一个或多个二层交换机
(3)提高网络的数据安全性。一个VLAN中的结点接收不到另一个VLAN中其他结点的帧
虚拟局域网的实现技术
(1)基于端口的VLAN
(2)基于MAC地址的VLAN
(3)基于协议的VLAN
(4)基于网络地址的VLAN
5. Linux网络管理实践
5.1 物理层及数据链路层
(1)网卡检测命令mii-tool
mii-tool #是用于查看管理物理的网络接口的状态,还可以配置网卡需要的协商方式。
[root@oldboy ~]# mii-tool
No interface specified
usage: mii-tool [-VvRrwl] [-A media,... | -F media] [-p addr] interface ...>
-V, --version display version information
-v, --verbose more verbose output
-R, --reset reset MII to poweron state
-r, --restart restart autonegotiation
-w, --watch monitor for link status changes
-l, --log with -w, write events to syslog
-A, --advertise=media,... advertise only specified media
-F, --force=media force specified media technology
-p, --phy=addr set PHY (MII address) to report
media: 1000baseTx-HD, 1000baseTx-FD,
100baseT4, 100baseTx-FD, 100baseTx-HD,
10baseT-FD, 10baseT-HD,
(to advertise both HD and FD) 1000baseTx, 100baseTx, 10baseT
5.1.1 查看网卡工作状态
mill-tool 【网卡名】 #查看物理网卡连接状态
-V 显示版本信息;
-v 显示网络接口的信息;
-R 重设MII到开启状态;
-r 重启自动协商模式;
-w 查看网络接口连接的状态变化;
-l 写入事件到系统日志;
-A 指令特定的网络接口;
-F 更改网络接口协商方式;
5.1.2 查看网络接口的协商状态
#mii-tool -v eth0
[root@oldboy ~]# mii-tool eth0
eth0: negotiated 1000baseT-FD flow-control, link ok
[root@oldboy ~]# mii-tool -v eth0
eth0: negotiated 1000baseT-FD flow-control, link ok
product info: Yukon 88E1011 rev 3
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
5.1.3 更改网络接口的工作模式
-F选项后面接1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD等参数
#mii-tool -F media [interface]
例:置网卡工作在100M半双工模式
[root@oldboy ~]# mii-tool -F 100baseTx-HD eth0
[root@oldboy ~]# mii-tool -v eth0
eth0: 1000 Mbit, half duplex, link ok
product info: Yukon 88E1011 rev 3
basic mode: 100 Mbit, half duplex ############
basic status: link ok
capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
5.1.4 恢复网卡适应的工作状态
用-r选项:
#mii-tool -r eth0
5.2 查询及设置网卡参数ethtool
ethtool是用于查询及设置网卡参数的命令。
概要:
ethtool eth0 //查询eth0网口基本设置
ethtool –h //显示ethtool的命令帮助(help)
ethtool –i eth0 //查询eth0网口的相关信息
ethtool –d eth0 //查询eth0网口注册性信息
ethtool –r eth0 //重置eth0网口到自适应模式
ethtool –S eth0 //查询eth0网口收发包统计
ethtool –s eth0 [speed 10|100|1000] //设置网口速率10/100/1000M
[duplex half|full] //设置网口半/全双工
[autoneg on|off] //设置网口是否自协商
[port tp|aui|bnc|mii] //设置网口类型
举例:
1)[root@oldboy ~]# ethtool eth1
2)[root@oldboy ~]# ethtool -i eth1
3)[root@oldboy ~]# ethtool -S eth1
4)[root@oldboy ~]# ethtool -s eth1 autoneg off speed 100 duplex full
怎样使ethtool设置永久保存在网络设备中?
方法一:
ethtool设置可通过/etc/sysconfig/network-scripts/ifcfg-eth0文件保存,从而在设备下次启动时激活选项。
例如:
ethtool -s eth0 speed 100 duplex full autoneg off
此指令将eth0设备设置为全双工自适应,速度为100Mbs。若要eth0启动时设置这些参数, 修改文件/etc/sysconfig/network-scripts/ifcfg-eth0 ,添加如下一行:
ETHTOOL_OPTS="speed 100 duplex full autoneg off"
方法二:
将ethtool设置写入/etc/rc.local中。
(查看MAC地址) #ip命令趋势,尽量用。
[root@oldboy ~]# ip link #ifconfig
1: lo: LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:5f:42:a7 brd ff:ff:ff:ff:ff:ff
3: eth1: BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:5f:42:b1 brd ff:ff:ff:ff:ff:ff
(查看ARP缓存)
[root@oldboy ~]# ip neigh
10.0.0.254 dev eth1 lladdr 00:50:56:e8:46:33 REACHABLE
10.0.0.1 dev eth1 lladdr 00:50:56:c0:00:08 REACHABLE
10.0.0.254 dev eth0 lladdr 00:50:56:e8:46:33 STALE
[root@oldboy ~]# arp -a
gateway (10.0.0.254) at 00:50:56:e8:46:33 [ether] on eth1
? (10.0.0.1) at 00:50:56:c0:00:08 [ether] on eth1
gateway (10.0.0.254) at 00:50:56:e8:46:33 [ether] on eth0
ARP缓存表就长这样!
接口: 192.168.14.251 — 0x12
Internet 地址 | 物理地址 | 类型 |
---|---|---|
192.168.14.1 | dc-da-80-17-e7-ae | 动态 |
192.168.14.3 | 10-e7-c6-ec-28-23 | 动态 |
192.168.14.6 | 54-05-db-f4-c5-b7 | 动态 |
192.168.14.8 | 00-e0-99-00-0f-eb | 动态 |
192.168.14.9 | 00-0c-29-ac-d0-ff | 动态 |
192.168.14.10 | 00-d8-61-87-1c-ad | 动态 |
维护系统的arp缓存命令arp
arp: 显示所有的表项。
arp -d address # 删除一个arp表项。
arp -s address hw_addr: #手工绑定arp地址和IP地址。
意义何在???
5.3 什么是arp欺骗?如果解决arp欺骗。
1)局域网内机器中毒,大量发广播包。说我是10.0.0.100,我的MAC是(05(网关的MAC))
2)局域网机器的ARP表里:
Internet 地址 | 物理地址 | 类型 |
---|---|---|
10.0.0.100 | dc-da-80-17-e7-ad | 动态 |
#dc-da-80-17-e7-ad实际上真实网关的mac地址。
3)后果。PC上不了网了。
arp -s 10.0.0.254 dc-da-80-17-e7-ad: #手工绑定arp地址和IP地址。
解决办法:
PC arp防火墙。
清除中毒的机器,让大家重启电脑。
选项列表
-d 删除一个arp表项
-a Use alternate BSD style output format (with no fixed columns).
-e Use default Linux style output format (with fixed columns).
-n 使用数字方式显示
-v 显示执行过程
#查看arp表
[root@oldboy ~]# arp
Address HWtype HWaddress Flags Mask Ifac服务器托管网e
gateway ether 00:50:56:e8:46:33 C eth1
10.0.0.1 ether 00:50:56:c0:00:08 C eth1
gateway ether 00:50:56:e8:46:33 C eth0
#查看arp表,并且用ip显示而非主机名称:
[root@oldboy ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
10.0.0.254 ether 00:50:56:e8:46:33 C eth1
10.0.0.1 ether 00:50:56:c0:00:08 C eth1
10.0.0.254 ether 00:50:56:e8:46:33 C eth0
添加一对IP和MAC地址的绑定:
#arp -s 10.1.1.1 00:11:22:33:44:55:66 #如果网络无法达到,那么会报告错误
ps:正常情况下无法成功,略鸡肋!!
删除一个arp表项:
#arp -d 10.0.0.54
#arp -i eth1 -d 10.0.0.1 #指定网卡删除;
指定回复的MAC地址:
#arp -i eth0 -Ds 10.0.0.2 eth1 pub
当eth0收到IP地址为10.0.0.2的请求时,将会用eth1的MAC地址回答。
This will answer ARP requests for 10.0.0.2 on eth0 with the MAC address for eth1.
arp知识重点:
- arp原理
- arp欺骗及解决办法。
- 查看arp表
6. 网络层
6.1 网络配置
基本网络配置
将Linux主机接入到网络,需要配置网络相关设置
一般包括如下内容:
- 主机名
- IP/netmask
- 路由:默认网关
- DNS服务器
主DNS服务器
次DNS服务器
1.查看及修改主机名(/etc/hostname 主机名文件):
1)hostname
hostname ##查看主机名(uname -n)
hostname oldboy ##设置主机名为oldboy,临时生效
2)vim /etc/hostname ##通过编辑配置修改主机名
3)hostnamectl
[root@oldboy ~]# hostnamectl set-hostname oldgirl ##设置主机名永久生效
[root@oldboy ~]# cat /etc/hostname
oldgirl
4)nmtui #图形设置主机名,永久生效
┌┤ 网络管理器文 ├┐
│ │
│ 请选择选项 │
│ │
│ 编辑连接 服务器托管网 │
│ 启用连接 │
│ 设置系统主机名 │ #####
│ │
│ 退出 │
│ │
│ 确定> │
│ │
└────────────────┘
C6/C7:可以关闭NetworkManager,C8主力。
systemd 入门教程:命令篇
链接: http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
6.2 systemd-analyze
systemd-analyze命令用于查看启动耗时。
#查看启动耗时
$ systemd-analyze
#查看每个服务的启动耗时
$ systemd-analyze blame
#显示瀑布状的启动过程流
$ systemd-analyze critical-chain
#显示指定服务的启动流
$ systemd-analyze critical-chain atd.service
查看linux字符集
[root@www ~]# localectl
System Locale: LANG=zh_CN.UTF-8
VC Keymap: cn
X11 Layout: cn
linux字符集配置文件
[root@www ~]# cat /etc/locale.conf
LANG="zh_CN.UTF-8"
配置linux字符集:
vim /etc/profile
export LANG="zh_CN.UTF-8"
查看与修改时区
[root@www ~]# timedatectl
Local time: Sat 2030-06-22 07:02:58 CST
Universal time: Fri 2030-06-21 23:02:58 UTC
RTC time: Fri 2030-06-21 23:02:58
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
[root@www ~]# timedatectl
list-timezones set-local-rtc set-ntp set-time set-timezone status
[root@www ~]# timedatectl set-timezone Asia/Chongqing
6.3 网卡配置
接口命名方式:
CentOS6以前eth[0,1,2,…]
CentOS7开始ens[33,34,35,…]
#调整ens33为eth0方式
安装系统时:grep菜单内核后:biosdevname=0,net.ifnames=0
安装系统后:修改内核文件,然后重新加载内核文件。
启停网卡设备
ifdown eth0 ##停止网卡设备
ifup eth0 ##启动网卡设备
systemctl restart network ##重启网络 /etc/init.d/network restart
/etc/init.d/network restart #和service network restart等价 #C6其他服务也是这么起。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
Java运算符和表达式 和C语言一样,java也有基础的运算符和表达式,用来完成一些基础的数学计算,以及逻辑运算,我们一起来学习一下吧。 算数运算符 首先,这个算数运算符与数学中即C语言的运算符的功能一样,利用这些基础操作符,可以完成一些基础的操作。 这里我给…