一、基本定义

1.IP

IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。

电脑之间要实现网络通信,就必须要有一个合法的ip地址。

IP地址=网络地址+主机地址(又称:主机号和网络号组成)

IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。

    IP类型网络位+主机位地址范围(十进制)适用场景/特征  A类地址8+24 1.0.0.0 到127.0.0.0 (第一位为0) 大型网络  B类地址16+16 128.0.0.0到191.255.255.255 (以“10”开始) 中等规模的网络  C类地址24+8 192.0.0.0到223.255.255.255 (以“110开始) 小规模的局域网络  D类地址/以“1110开始用于在IP网络中的组播  E类地址/以“11110开始保留作研究之用

2. 子网掩码

子网掩码是一个32位的2进制数 ,它必须结合IP地址一起使用。

子网掩码只有一个作用,就是将某个IP地址划分成“网络地址”和“主机地址”两部分。

子网掩码通过和IP地址的“与”运算,求出主机地址是多少。

网络位一致,主机位不一致的2个IP可以直接通讯

二、网络设定工具

1. ping命令

# ping ip :检查网络是否通畅

 # ping  -c  1  ip :ping 一次

# ping  -w  1  ip: 等待一秒

 

# ping  -c1  -w1 ip :ping一次等待一秒

2. ifconfig 命令

ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces configuring。

# ifconfig :查看或设定网络接口

# ifconfig   enp1s0   172.25.254.90   netmask   255.255.255.0 :设定ip

 # ifconfig   enp1s0  down :关闭网络接口

 # ifconfig   enp1s0   up:打开接口

 3. ip  addr 命令

# ip  addr : 显示或配置网络设备

# ip  a:显示或配置网络设备

回环接口:TCP/IP中回环设备是一个通过软件实现的虚拟网络接口,它不与任何硬件相关联。在IPv4中,其对应的IP地址一直是127.0.0.1。

重新设定ip必须先删除之前的

# ip  addr  del  dev   enp1s0  172.25.254.173/24 :删除设定的ip

 # ip  addr  add  dev  enp1s0  172.25.254.173/24 :设定ip

 总结:无论是ifconfig 还是 ip addr 设定ip都是临时的,重启系统后,ip都会消失!!

# ip addr show enp1s0 :查看网卡的信息

 4. nmcli命令

 # nmcli  device   show  enp1s0 :查看网卡信息

 # nmcli device status :查看网络服务接口信息

# nmcli   device   disconnect   enp1s0:关闭网卡

# nmcli   device   connect   enp1s0:启用网卡

#  nmcli   connection  show:显示连接

 # nmcli   connection   down   westos:关闭连接,注意:后面加的是name不是device

 # nmcli   connection   up   westos:开启连接

 # nmcli connection delete westos:删除连接

 # nmcli   connection add   type   ethernet    con-name   westos   ifname   enp1s0   ipv4.method manual     ipv4.addresses   172.25.254.173/24:添加连接

 # nmcli   connection   modify   westos   ipv4.addresses   172.25.254.100/24:更改连接

注意更改后一定要reload+up,否则更改失败

# nmcli connection reload:加载连接 # nmcli connection up westos :开启连接

 # nmcli   connection   modify   westos   ipv4.method  auto:更改连接为动态分配连接

ps:这里出现问题,无法动态分配ip ----------已经解决!!

因为在家里,没有搭建DHCP服务器,所以虚拟机无法所要ip。具体搭建DHCP服务器的步骤在本文第七!!

5. 修改配置文件设定网络

无论是图形还是命令设定网络,本质都是在配置文件中修改!

 # cd   /etc/sysconfig/network-scripts/:配置文件路径,只能在这个目录里修改!

文件名必须以“ifcfg-”开头,否则不识别!!

 动态ip配置文件设置方法:

DEVICE=enp1s0 ONBOOT=yes  :网卡开机自启动 BOOTPROTO=dhcp    :动态ip NAME=westos

静态ip配置文件设置方法:

DEVICE=enp1s0 ONBOOT=yes BOOTPROTO=none   :静态ip,相当于"manual" IPADDR0=172.25.254.173 NETMASK=255.255.255.0  :与prefix都是子网掩码的意思 IPADDR1=1.1.1.0 PREFIX1=24 NAME=westos

文件配置完毕不要忘了reload+up!!

ps:一定要用 ip  addr 查看才可以

 注意:同一块网卡不要添加多个连接,否则是无效的!!

三、路由器、网关、源地址转换的理解

两个不同网段的主机无法通信:主机A和主机B

如果要通信,必须添加路由器,路由要有多块网卡。

在路由器中设定两个网段的ip,因为是同一块内核所有可以直接通信。

A和B通信过程如下:

73---->173------>2------->1

注意:当包到达192.168.0.2时,无法直接转发给192.168.0.1,因为包的源ip为172.25.254网段。

因此,此时必须做源地址转换(SNAT:source neteork adress translation)

那么主机A是如何知道要向哪个路由器发送包呢?

因为有网关:设定了要做地址转换的ip

四、网关的设定

1.网关的设定

(1)手动设置网关

#  ip  route  add  default  via  172.25.254.73:临时添加网关,重启失效

#  ip  route  del default  via  172.25.254.73:手动删除网关

# route  -n  : 查看网关

(2)设置全局网关

# vim /etc/sysconfig/network :针对所有网卡生效

 (3)针对某块网卡设置

# cd   /etc/sysconfig/network-scripts/:进入网络配置目录,针对某块网卡进行设置

 2. 实验

首先主机可以ping通外网(百度的ip地址)!

但虚拟机无法ping通外网! 但可以ping通主机!----如果无法ping通主机,可以看前面的笔记!

 如果想虚拟机ping通外网,则主机可以充当路由器!!

在虚拟机上添加网关-----一定与虚拟机和主机ip在同一网段:一般设定为主机ip即可!!

#  ip  route  add  default  via  172.25.254.73

# route  -n  : 查看网关

 一定保证!!虚拟机可以ping网关!!

此时在ping 百度地址,发现可以ping通!

ps:这里出问题.....一直ping不通,最后解决了。

如果主机虚拟机可以互相ping通,但虚拟机无法访问外网ip地址,原因有可能是:

防火墙没有关闭:# systemctl   status  firewalld.service  : 查询防火墙状态 如果开着,可以关闭或者做伪装:firewall-cmd --add-masquerade ,这个解决了问题!!!伪装!!关闭selinux 服务:进入 /etc/selinux目录,编辑 config文件,设置SELINUX=disabled。设定网关的网卡没有生效:可以设定全局网关!或者up该网卡使其生效!

 五、DNS(地址解析设定)

1.DNS定义

DNS是域名系统(DomainNameSystem)的缩写。每一个域名都对应一个唯一的IP地址,在Internet上域名与IP地址之间是一对应的,DNS就是进行域名解析的服务器。

eg: www.baidu.com------> 14.215.177.39

2.本地域名解析

#  vim    /etc/hosts : 进入目录手动书写解析域名

实验:

虚拟机可以ping 百度的ip 地址,却无法通过www.baidu.com访问网页!

 这是因为没有做地址解析,无法将域名转换为ip地址!!

因此,可以手动在本地添加域名解析

#  vim    /etc/hosts : 进入目录手动书写解析域名

ip  域名

就能成功通过域名访问百度!!

but...还想访问qq,weibo等等怎么办? 必须一条一条写进本地解析文件,很麻烦!

并且ip地址很难记,不如域名方便。

因此我们可以利用DNS 服务器,自动解析域名,转换为ip地址!!

3. DNS指向

#  vim   /etc/resolv.conf : 设定DNS指向

nameserver  114.114.114.114 :以为使用者提供高速、稳定、可信的DNS递归解析服务,为网站提供强大抗攻击能力的权威智能DNS解析服务

设定成功后,可以自动将域名转换为ip地址!! 不需要一一对应手动添加!!

4.优先级比较

默认情况下,本地优先级高于指向优先级

但是可以通过编辑文件  /etc/nsswitch.conf 改变优先级

---------------------------------------------------------------------------------------

本地和DNS指向都可解析域名,那么哪个文件的优先级高呢?

首先在本地添加: 172.25.254.73    www.baidu.com 

然后ping   www.baidu.com,如果连接的ip是172.25.254.73,就说明本地优先级高于指向优先级!

可以看出默认情况下,本地>指向

 但是可以通过编辑文件 修改优先级!

# vim /etc/nsswitch.conf : 进入目录,找到hosts ,改变顺序即可!

 再次ping  www.baidu.com  发现ping的是真地址,说明优先级已改变!!

六、网络软件仓库的搭建

前面学习过搭建本地软件仓库,但是本地仓库只能主机自己访问,其他主机中是无法访问的。特别是在企业中,我们需要维护的系统数量庞大,如果在每个系统中各自搭建本地软件仓库会浪费大量的资源。为了节省这部分重复的资源,需要把大家都要使用的资源共享到互联网中,即建立网络软件仓库。网络软件仓库只需要在一台主机上搭建仓库,其他主机可以通过互联网直接访问!!因此不需要在每一台主机中独立建立软件资源了。

1. 搭建前的准备(主机操作)

1)安装共享软件httpd

首先确保真机本地仓库搭建ok,可以下载httpd。我们需要采用http:// 超文本传输协议这种共享方式来搭建网络仓库,提供此协议的软件是Apache,该软件的软件包名称为httpd,可以使用 #dnf install httpd -y 命令在真实主机中安装httpd,安装完成后访问真实主机IP:172.25.254.73可以看到Apache界面

 2)删除epel源

删除主机的epel源,防止对网络仓库产生影响

 3)关闭防火墙,启用共享软件Apache

# systemctl enable --now httpd:开启共享软件httpd # systemctl disable --now firewalld.service:关闭防火墙

2. 搭建步骤(共享主机操作)

1)查询挂载信息,取消本地仓库镜像的挂载

首先利用# df  查询主机挂载信息,看看8.2镜像是否挂载

如果挂载要取消,因为要重新挂载至apache的默认目录下

#  umount  /source : 取消挂载镜像

2)新建共享目录,挂载镜像

因为Apache的共享目录默认为 /var/www/html

因此新建目录 必须在该默认目录下

# mkdir   /var/www/html/westos : 新建共享目录

# mount  /westosiso/rhel-8.2-x86_64-dvd.iso   /var/www/html/westos/ :挂载镜像到共享目录

此时在真机浏览器搜索 http://172.25.254.73/westos/ 

可以看到该共享目录下的文件

 3)设置镜像开机自动挂载

在  #  /etc/rc.d/rc.local 文件中写入挂载镜像命令即可实现开机自动挂载,别忘了设置文件执行权限!!

 4)编辑配置文件

进入 /etc/yum.repos.d/目录,编辑 westos.repo文件!

ps:该地址必须真实存在,可以通过连接打开!!

 3. 搭建步骤(远程主机操作)

对于远程主机来说,想共享软件仓库,只需要编辑配置文件即可!!

# vim   /etc/resolv.conf :编辑配置文件如下,注意:该地址也必须真实存在!!

既然是共享网络仓库,远程主机与共享主机必须可以通信才可以!!虚拟机不能上外网也可以!

 到这儿,网络软件仓库就配置完成拉

#  dnf  repolist : 查看仓库信息,仓库配置成功!!

七、搭建DHCP服务器

DHCP是Dynamic Host Configuration Protocol的缩写,即动态主机配置协议。

DHCP是一个很重要的局域网的网络协议,使用UDP协议工作,主要有以下用途:

1、为内部网络或网络服务供应商自动分配IP地址;

2、为用户或者内部网络管理员作为对所有计算机作中央管理的手段;

3、为内部网络用户接受IP租约。

而DHCP服务器就是专门承载和运行DHCP服务,并帮助我们管理IP的专用服务器。

1. 安装dhcp服务

开启虚拟机westosb的快照,将其作为dhcp服务器!!

1) 修改服务器主机名

首先修改虚拟机b的主机名  # hostnamectl set-hostname dhcp_server.org

进行网络配置,确保该虚拟机有可用的ip(172.25.254.80),可以进行ssh连接

 2)配置网络软件仓库

因为要安装dhcp服务,必须要配置好软件仓库。

3)安装dhcp服务

#  dnf  search  dhcp : 搜索dhcp服务

# dnf install -y dhcp-server.x86_64 : 安装dhcp服务

ps:安装完成无法启动!!因为配置文件是空的!!还需要编辑配置文件!!

 2. 编辑配置文件

1)查询配置文件

安装好dhcp服务时,要编辑配置文件。

首先查询dhcp的配置文件是什么?

# rpm   -qc   dhcp-server :查询配置文件

 2)生成配置文件

查看配置文件发现是空的!但是里面有配置文件模板,复制模板到配置文件!

# cat   /etc/dhcp/dhcpd.conf:查看配置文件

# cp   /usr/share/doc/dhcp-server/dhcpd.conf.example    /etc/dhcp/dhcpd.conf:复制模板到配置文件

 3)编辑配置文件

# vim    /etc/dhcp/dhcpd.conf :编辑配置文件

输入 " : set  nu " 显示文件序号

27,28行注释掉36 行后面全部删除(在显示(非插入)模式下安d 删除后面的内容,按u恢复)修改域名、DNS设置分配的网段

 配置成功后,开启DHCP服务!

3. 开启dhcp服务

#  systemctl  start   dhcpd :开启dhcp服务

# systemctl status  dhcpd:查询dhcp服务状态

 4.测试dhcp服务

在虚拟机a上进行测试

首aa的固定ip为:172.25.254.173

 然后设置dhcp服务,发现成功设置!

dhcp服务器已经分配了ip:172.25.254.40

在40-70的范围内,可见dhcp服务器搭建成功

其次,还可以在dhcp服务器上查看具体ip分配信息

# # cat    /var/lib/dhcpd/dhcpd.leases

显示172.25.254.40 这个ip分配的网卡是....e6,与上匹配!!说明dhcp服务器搭建成功!

八、NAT模式、桥接模式

主机与虚拟机为独立的系统,通信要通过网卡。

虚拟机中的网卡设置,这里常用的有三种网络连接方式:桥接模式、NAT模式、仅主机模式

这里介绍NAT模式和桥接模式

本次实验,首先将真机网络恢复为默认模式!!恢复前关闭所有虚拟机!!

# westos-network   common :恢复网络为默认模式

 此时查看网卡设备  # ifconfig 

1. NAT模式

NAT模式就是地址转换模式,NAT模式下,主机与虚拟机之间必须通过虚拟路由(vibro)进行通信!虚拟机与外界通信必须经过地址转换!!

NAT就是网络地址映射,虚拟机对外访问的时候是先映射到宿主物理机上,物理机再对外进行转发,反过来,也是类似的过程。

 如上图所示,虚拟机无法与主机、其他主机直接通信,必须通过虚拟路由的地址转换才可以!!

虚拟路由有多块网卡,一段连接虚拟机(通过dhcp给虚拟机分配ip),一段连接主机。

也就是说,即使虚拟机与主机在同一网段也无法通信!!

---------------------------实验-------------------------------------

## virt-manager :  打开虚拟机控制器

此时虚拟机网卡有问题,所有删除网卡设备,重新添加!!

 选择NAT模式!!

运行虚拟机aa,当虚拟机运行时,主机网卡设备多出一块vnet0,虚拟机关闭时,vnet0消失!!

可见,vnet0就是虚拟机aa的虚拟网卡!!

 在虚拟机上查看ip,发现此时ip是172.25.254.173,与主机在同一网段,按照之前的实验,两者互相可以ping通,但是此时却无法ping 通!!

ps:之前网卡选的是share ,应该设置为网桥模式!

 然后将虚拟机aa设置为dncp模式,发现分配的ip为192.168.122.110,但是之前没有搭建这个网段的dhcp服务器!

此时ping  172.25.254.73 发现居然可以ping通,二者不再一个网段!!

 

这是因为NAT模式下,二者通过虚拟路由(vibr0)连接,而虚拟路由与虚拟机aa是统一网段!!

 当虚拟机访问外部主机时,必须先经过虚拟路由做地址伪装在经过真实主机的物理接口访问!!

这太麻烦!!因此可以设置桥接模式,使虚拟机的虚拟网卡与主机的真实物理网卡

直接连接,不用在做地址转换!!

2. 桥接模式

接模式是将虚拟机的网卡桥接到主机的真实网卡上。

桥接之后虚拟机就是物理机网络环境的一部分了,此时虚拟机就像和局域网中其他机器一样,它可以访问网络中的任何机器,网络中其他机器也可以访问虚拟机,当然虚拟机也可以上外网。所以这种模式下天然就是可以互联互通的,当然这种模式也有它的一些注意事项,

 ----------------桥接模式的设置(主机上操作)--------------------------------------------

设置前先关闭所有的虚拟机!!

1) 建立桥接共享网卡

 # cd   /etc/sysconfig/network-scripts/ :进入目录,新建 ifcfg-br0

编辑桥接网卡!!如下!!

 2)将真实网卡桥接到共享网卡

 3)保存

# # nmcli connection reload

# nmcli connection up br0

# nmcli connection up enp0s20f0u4u2

# bridge  link :保存后查看,此时已经成功建立桥接模式!!ip显示在共享网卡上,真实物理网卡没有ip

 4)重启虚拟服务

# systemctl   restart   libvirtd :重启虚拟服务!!别忘了!!

5)虚拟机设桥接模式

此时打开虚拟机aa,自动出现桥接模式!!

打开虚拟机, 此时ip仍然是172.25.254.173,ping 主机:172.25.254.73  发现可以ping通!!

证明桥接模式设置成功!!

 

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: