Linux下的网络环境部署
部署网络的意义:只有配置好网络才能上网,计算机有网络才有意义,使得网络达到效果。
一、有关IP
-
ip address = internet protocol address 官方叫做网络进程地址
-
ipv4 = internet protocol version 4
-
tcp/ip协议实际上是个协议簇
-
TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。
-
TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层
-
ip地址32位,由32个0和1组成
-
11111111.11111111.11111111.11111111==254.254.254.254
-
每个IP地址长32bit,,0和1均是1比特bit;0|1=1bit 比特
-
8个bit是1个字节byte;8bit=byte 字节
-
日常快递的发送有两个重要的信息:什么地方(是一个集合)+什么人,对应在网络中,是网络位+主机位
-
一个网络地址由网络位(区域).主机位(哪个主机)构成,一共32位(二进制)
-
怎么定义网络位和主机位,使用到子网掩码!
-
子网掩码中1的个数对应表示网络位数,剩下的位数表示该网络区域的主机个数(表示网络位的开启用1表示,网络位不开启用0表示)
-
若子网掩码为:11111111.11111111.00000000.00000000==255.255.0.0
表示网络区域为前十六位,也就是IP地址的网络位为前16位,后16位是主机位。 -
若子网掩码是255.255.0.0
那么主机位为:254.254.0.1–254.254.254.253(共2^16-2)
主机位全0没意义,主机位全1表示广播地址 -
可直接通信的条件:同一个网络区域(网络位相同)的不同主机。不在同一区域,需要借助工具才能通信。
-
172.25.254.1/24=172.25.254.1/255.255.255.0
172.25.254.1表示 这个网络区域的第1个主机
此ip可以通信的地址:例如172.25.254.10(网段为172.25.254即可)
扩展:ipv4和ipv6的区别(IPv6和IPv4都属于“互联网协议”)
- 地址空间不同,IPv4中规定IP地址长度为32,而IPv6中IP地址的长度为128。
- 安全性不同,IPv6的安全性更高,在使用IPv6网络中,用户可以对网络层的数据进行加密并对IP报文进行校验,这极大地增强了网络安全。
- 协议扩充不同,IPv6允许协议进行扩充而IPv4不允许
- IPv6的地址空间更大。
(1)IPv4中规定IP地址长度为32,即有2^32-1个地址。
(2)IPv6中IP地址的长度为128,即有2^128-1个地址。 - IPv6使用新的头部格式,简化和加速了路由选择过程,因为大多数的选项不需要由路由选择。
实验一:关于IP命令
ip addr show 或者ifconfig | 查看IP地址 |
---|---|
ping | 检测网络是否畅通 |
ping -c1 172.25.254.10 | 只ping 一次(但网络不存在时,要等很久) |
ping -w1 172.25.254.10 | ping时设定等待时间(网路不存在时) |
查看网络状况
ping 192.168.43.11
ping -c1 192.168.43.11
ping -c1 192.168.43.12
ping -w1 192.168.43.12
ping -w5 192.168.43.12
实验二:临时设定ip地址
< ifconfig方式>
修改网络IP地址: ifconfig ens33 192.168.43.111 netmask 225.255.255.0
ip addr show ens33
< ip addr方式>
man ip addr 查看ip addr的用法
(1) ip addr del dev ens33 192.168.43.111/24 删除ip
(2) ip addr add dev ens33 192.168.43.11/24 添加ip
(3)** ip addr更改ip 需要先添加后删除。**
实验三:永久设定ip地址
- 命令方式更改ip
- 图形方式更改ip
- 文件方式更改Ip
< 3.文件更改IP>
静态网络
(1) vim /etc/sysconfig/network-scripts/ifcfg-ens33 进入配置文件,配置文件内容如下:
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.43.10
NETMASK=255.255.255.0
NAME=westos
(2)重启网络
rhel7:systemctl restart network
rhel8:systemctl restart NetworkManager
nmcli connection down 老的连接
nmcli connection up 新的连接
dhcp
(1) vim /etc/sysconfig/network-scripts/ifcfg-ens33 进入配置文件,配置文件内容如下:
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=dhcp
NAME=westos
(2)重启网络
rhel7:systemctl restart network
二、dhcp服务器的搭建
实验思路:
1 配置静态网络
2 把光盘塞入光驱
3 df 查看光驱挂载位置
4进入 cd /run/media/root/RHEL-8-0-0-BaseOS-x86_64/BaseOS/Packages/
5 安装dhcp-server
ls dhcp-*
rpm -ivh dhcp-server-4.3.6-30.el8.x86_64.rpm
6启动服务
systemctl status dhcpd
启动失败 是因为配置文件没有配置
需要配置文件
配置目录:cd /etc/dhcp/
ls 显示文件 其中 dhcpd.conf是配置文件
编写配置文件
vim dhcpd.conf 是空的
7 生成配置文件
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
文件内容就存在了
扩展 显示行号追加
第7行:域名设定
8行:dns
27 28 行需要删除
36行一下内容全部删除
32行网段 设定网段192.168.43.0 255.255.255.0
33 地址池 分配地址范围
34行网关 网关
所有的字段都要有分号
8 重启服务启动成功systemctl start dhcpd
9 测试:
7中配置dhcp网络 看能不能或得网络
7中:
删除网卡 ens33 就是改成dhcp服务
重启网络服务 restart network
ifconfig 看获得的范围是不是在设定内100-200
10.查看硬件地址验证实验结果
三、网关
- 路由器上和客户主机处于同一个网段的ip叫做客户机主机的网关(核心词汇:路由器上的)
- a主机:192.168.0.11 b主机:172.25.254.11
ab 直接网线连接,是不可能直接通信的 因为不在一个网络区域。引入路由器 既能和a沟通,也能和b沟通 - 网关:控制谁的数据包可以扔进来,可以扔进来的数据包,可以对他进行转换!
路由器和主机处于同一个网络的网段叫做网关
图解路由器
- 若a主机有数据包要发送,因为主机a的地址是192.168.0.11,所以他的数据包的包头是192开头的。
- 此数据包想发送到主机b,网线直接通信失败。引入路由器。
- 将主机a和b接在同一个内核上,该内核具有内核路由功能,借助这个功能,192.168.0.1和172.25.254.1可以实现通信
- 数据包可以传递到红色的网卡上,但包头仍然是192
- 为了让它能和172.25.254.11通信,外层包裹了一层172.25.254.1(包裹了网卡地址),ab主机之间便可以完成通信
实验一:不同网段的主机实现通信
实验思路:
1 实验环境设置为:rhel7是路由器,实现真机和rhel8之间的通信
2在rhel7中设置:
第一步:添加两个网卡,一个可以实现和真机通信,一个实现和rhel8通信
(1)添加网卡,注意事项:桥接模式。添加后可以ifconfig查看
(2)文件设置静态ip
(3)重启网路
第一步完成后,rhel7既能和真机通信以及和rhel8通信
第二步:rhel7开启路由功能
(1)查看路由功能是否开启sysctl -a |grep ip_forward
(2)可以看到net.ipv4.ip_forwadrd=0表示内核路由功能未开启
(3)开启路由功能,编辑文件vim /etc/sysctl.conf并写入net.ipv4.ip_forwadrd=0
(4)sysctl -p 开启。开启后设定更改立即生效
(5)查看路由功能是否开启sysctl -a |grep ip_forward
第三步:rhel7中打开地址伪装功能
(1)打开火墙
(2)查看命令 其中默认值为no (地址伪装功能未开启)
(3)执行命令(伪装功能打开)
(4)重启
完成上述三个步骤rhel7双网卡主机开启路由器功能
第四步:测试
(1)rhel8中设定ip:172.25.254.10
(2)ping 192.168.0.3 测试能否和真实主机通信。测试结果为不能,因为没有添加网关。
(3)添加本机网关ip route add default via 172.25.254.100。(表示意思是有数据从这个网卡进出)
(4)查询网关是否存在route -n
(5)ping 主机 可以通信(实现了不同网络区域的主机之间的通信)
实验过程
第一步:设定rhel7主机两块网卡地址:
192.168.43.100 (和windows处在同一个网段)
172.25.254.100 (和rhel8处在同一个网段)
添加网卡步骤:最下方小光盘右键—选择设置—点击添加—选择网络适配器----网络连接方式选择:桥接NAT
此时rhel7可以和真机和rhel8通信
rhel8 IP为:172.25.254.10
第二步:rhel7中打开路由功能
(1)sysctl -a | grep ip_forward 查看内核路由功能是否开启
(2)net.ipv4.ip_forward = 0 表示内核路由功能没有开启
(3)开启内核路由功能
vim /etc/sysctl.conf 进入配置文件(配置文件中原不存在内容)
配置文件中写入:net.ipv4.ip_forward = 1
(4)sysctl -p 设定更改立即生效
第三步:rhel7中打开地址伪装功能
(1)systemctl start firewalld.service 开启防火墙
(2) firewall-cmd --list-all 查看伪装功能是否开启
若显示masquerade=0,则表示没有开启
(3)firewall-cmd --permanent --add-masquerade添加地址伪装功能
(4)firewall-cmd --reload 重启服务
第四步:rhel8中添加网关
(1)ip route add default via 172.25.254.100 添加本机网关
(2)route -n 查询网关
(3)ping 主机 进行验证
实验二、网关的设定方式
<临时方式>
ip route add default via 172.25.254.100
ip route del default via 172.25.254.100
<永久方式>
- 1修改系统全局网关
- 2修改网卡设定网关
1修改系统全局网关
(1) 修改配置文件vim /etc/sysconfig/network
配置文件中本来没有内容,写入要添加的网关:
GATEWAY=172.25.254.100
(2)重启网络systemctl restart NetworkManager
(3)nmcli connection show 查询网关
(4)nmcli connection down westos (westos为连接名字)关掉此连接
(5)nmcli connection up westos 打开此连接
(6)route -n 可看到有了网关
2修改网卡设定网关
(1)修改配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens160
写入内容:
DEVICE=ens160
ONBOOT=yes
BOOTPROTO=none
NAME=westos
IPADDR=172.25.254.10
NETMASK=255.255.255.0
GATEWAY=172.25.254.100
(2)重启网络systemctl restart NetworkManager
(3)nmcli connection show 查询网关
(4)nmcli connection down westos (westos为连接名字)关掉此连接
(5)nmcli connection up westos 打开此连接
(6)route -n 可看到有了网关
四、dns地址解析
- 我们上网时,例如去百度,是输入域名(www.baidu.com),而不是ip地址
- 因为网络喜欢数字对数字敏感,而我们人对名称更敏感和方便
- 网络中真正通信的是ip
- 负责将域名转换ip这个工作的主机叫做dns服务器(地址解析)
- 把地址转换成IP叫DNS
- 地址解析分为:本地解析和问别人(eg.114.114.114.144电信dns服务器)
实验思路:
1 设定主机ip和window在一个网段
2 设定主机网关和windows网关相同
3 在win 中 ping百度 查看百度ip
4 在linux中ping www.baidu.com可以
5在linux中ping www.baidu.com不可以
6 编写/etc/hosts 内容信息为:
183.232.231.172 www.baidu.com
ping www.baidu.com 可以
ping www.qq.com不可以
7vim /etc/resolv.conf 追加内容:
nameserver 114.114.114.144 (其中114.114.114.114为电信dns服务器)
ping www.qq.com 可以
实验过程
第一步:设定主机ip和window在一个网段+设定主机网关和windows网关相同.(可以ping通百度IP,但ping不同域名)
(1)vim ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=none
NAME=westos
IPADDR=192.168.43.10
NETMASK=255.255.255.0
GATEWAY=192.168.43.1
(2)rhel7重启网络
systemctl stop NetworkManager
systemctl restart network
route -n
(2) 2.1修改配置文件 vim /etc/hosts 可以 ping www.baidu.com单不能ping www.qq.com。2.2修改配置文件 vim /etc/resolv.conf 可以ping www.qq.com。(两个配置文件内容如下)
五、网桥的设定
- 网桥:网络桥接
- 网络桥接的功能:两端连接虚拟机和真实主机的物理网卡,使得虚拟机和真实主机处于一个平行的网络当中,虚拟机便可以通过控制bro接口来控制物理网卡,是数据直接通信。
- 通过路由器使得两个网段可以相互通信,此实验使用rhel7充当路由器,真机和rhel8分别代表192和172这两个网段
网桥图解:
1.在linux 系统中,有网卡和内核
2.内核中会开启程序,例如虚拟机
3 虚拟机上同样有网卡和内核
4.虚拟机要上网,需要通过虚拟机的网卡,虚拟机的网卡是虚拟的,是用程序写出来的,数据通往网卡出去必须是通过真实的网卡才能出去
5 虚拟机的内核不能控制真实主机的网卡,需要借助真机内核,并发送到网卡中去!
6 从图中可以看出,但是虚拟机的网络和真机的网络是断开的,不能通信的。所有的通信必须依赖内核,因此内核负载会很庞大。(不可逾越的鸿沟)
7 因此物理机的网卡使用权通过内核共享出来,真实物理内核上开启一个接口,此接口是桥接br0,相当于一个桥,两端连接虚拟机和真实主机的物理网卡,使得虚拟机和真实主机处于一个平行的网络当中,虚拟机便可以通过控制bro接口来控制物理网卡,是数据直接通信。(桥接的功能)
如何打开桥接接口:
举例rhel7中实验过程
1.原始物理网卡连接删除
2 网卡配置文件
DEVICE=ens160
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0
真机物理网卡和虚拟机网卡都使用桥接接口,添加桥接接口
3.修改桥接接口配置文件br0
信息(地址为虚拟机配置地址192.168.43.10)
DEVICE=westos
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.10
NETMASK=255.255.255.0
TYPE=Bridge
4 重启服网络务
5 bridge link show 桥接接口出现