一、网络中的概念
ip: internet protocl address 互联网协议地址,用来标识网络上唯一的主机!
网络位:网络所在的区域!
主机位:区域内的主机!
举例:不同班的学生、送快递、户口本!
子网掩码:将某个IP划分成网络地址和主机地址!
子网:用来划分网络;掩码:可用的子机数!
注意:减去全0(无效),全1(广播)!
网络延迟:ping,一问一答的过程!
############################################
二、实验
1、ip的设置
(1)实验环境的答建
1)配置两台虚拟机重置-->保证原声的环境
2)通过root身份,给server添加一块网卡
3)desktop理论上不用设置网卡,默认有一块网卡
实验目的:添加有线网卡,为下面的实验做准备!
真机的相关操作
rht-vmctl reset desktop
rht-vmctl reset server
virt-manager
rht-vmctl view server
测试虚拟机网卡:ip addr show或 ifconfig来查看!
现象:网卡下面并没有网络连接,即并没有设置IP!
(2)临时设定静态IP
特点:用ifconfig 为网卡指定IP地址,这只是用来调试网络用的,并不会更改系统关于网卡的配置文件,此连接没有名字!
注意1:会覆盖当前的设置,但是重启网络后临时ip失效!
注意2:临时设置的子网掩码不能设置成类似255.255.255.0的形式,必须是数字!
ifconfig 作用:可以用来配置网络接口的IP地址、掩码、网关、物理地址等!-->给个链接!
########################################
(3)设定静态IP
方式1:多用户的图形界面
nm-connection-editor
说明1:mac实现信息访问控制,通过同轴线来传输数据(半双工)!
说明2:其它网络类型还有环形、星形(IBM不开源--->令牌的获取)等!
牢记:设置IP所设定的参数!
补充:一个网卡可以设置多个ip,方便不同的网段连接(做法:将多个ip信息写到同一个文件中)!
################
方式2:文本图形接口
黑窗口:nmtui --> network manager text ui
说明:此种方式添加网络,底层还是修改了配置文件,如果生效必须重启网络服务!
#################
方式3:nmcli的方式
#################
方式4:直接修改配置文件的方式
# Bridge Networking Interface
# (1)网卡的名字
DEVICE=eth0
# (2)网络连接接口的名称
NAME=link
# (3)网络服务开启时是否自动激活网卡
ONBOOT=yes
# (4)ip的获取方式,静态(static)
BOOTPROTO=none
# (5)连接1
IPADDR0=172.25.10.100
# (6)子网掩码--->注意等价的简便形式!
NETMASK0=255.255.255.0
# (7)一个网卡下挂多个连接,注意用数字区分,连接2
IPADDR1=172.25.2.100
PREFIX1=24
注意1:结尾不要有多余的空格!
注意2:修改完成之后必须重启网络才能生效!
说明:/etc/sysconfig/network-scripts/ifcfg-*开头的文件都会加载,如果网络起不开从这里找原因!
注意:这里的*表示的是网卡名字,不管是虚拟的还是真实的!
多个IP的机制:添加子网卡的形式来添加IP!
说明:默认ifconfig只显示第一个网卡的信息!
###########################
(4)网关和路由的实验
ip通信的判定:ping x.x.x.x 测试网络是否通畅!
问题的引入:同一个网段的可以ping通,但是不同网段的就不行?
解决思路:配置网关
网关作用:接受不合法的数据,为不在同一网段的主机提供搭桥的服务!
实验的前提
server主机:有两块网卡,分别设置为1.1.1.100/24和172.25.2.100/24 -->可以通过配置文件,然后cp修改
desktop主机:设置静态ip是1.1.1.200
测试:desktop上 "ping 172.25.2.250"能够通!
现实生活中的一个例子
借钱:A问C借钱,但是A跟C不熟,怎么办?找个跟C熟的人B搭个桥,对于C看到的就是B向他借钱(熟人好借),最后B又把原封不动的给了A,至此借钱成功!
A<--------B------->C
过程中:B在A的通信录中可信赖的熟人,我们就称B为A的网关!
服务器的设置
1)增加IP伪装的功能,封装源IP和数据,加上自己的IP作为数据头,进行数据传输!
2)增加内核(knerl)路由功能,使同一个主机上的两个网卡上的IP可以相互通信!
一、路由器(TP-LINK):必须是双网卡
(1)开启防火墙 -->firewall-cmd start firewalld
(2)开启NAT-->masquerade,先查看其状态
masquerade:地址伪装,实现自动化的snat
举例:把所有1.1.1.200IP发送的数据包SNAT成172.25.2.100的ip然后发出去,ip源伪装成跟目标ip同一网段的!
firewall-cmd --list-all -->查看masquerade默认是no
(3)添加生效-->永久的和临时的-->加不加permanent-->masquerade(伪装)
firewall-cmd --permanent --add=masquerade
(4)防火墙必须重启才能生效
firewall-cmd --reload
(4)开启内核路由功能(默认是不开启的,即禁止数据包转发)
sysctl -a |grep ip_frward -->如果是0表示没有开启
vim /etc/sysctl.conf -->添加net.ipv4.ip_forward = 1
sysctl -p -->重新加载此配置文件,此时主机中的一个网卡就可以接受另一个网卡的数据了!
sysctl
sysctl -->运行时修改系统内核的参数!
-a:显示所有内核的数值
-p:reload配置信息
NAT:Network Address Translation,网络地址转换
注意:设置防火墙和路由的规则之后,必须重新加载配置文件!
desktop的设置
1)设置网关
注意:网关设置后,也必须重新加载配置文才能生效!
补充:ip route 也能查看路由信息!
网关的设置方式:
1)配置文件的方式(全局的和局部的),要注意重启!
全局:/etc/sysconfig/network --->特点:所有没有网关的IP都会生效!
2)nmcli的方式或者图形的方式(适用于已知所需的网关)
3)修改/etc/sysconfig/network-scripts/icfg-*对应网卡配置文件的IP下的网关,只作用于当前的IP!
注意:如果有多个IP,GATEWAT加上相应的数字编号!
说明:network在RHEL8默认不会开启的,尽量学会用nmcli的方式!
测试:ping通之后,通过ssh远程登陆不在同一个网段的主机,观察登陆此台主机的ip信息!
小知识:不在同一个网段的IP如何通过SSH远程登陆!
Address Resolution Protocol:即地址解析协议,用于实现从 IP 地址到 MAC 地址的映射,即询问并记录目标IP对应的MAC地址
arp -a #查看ARP缓存状态
nmcli受NetworkManager服务控制!
######################
(5)虚拟机上网
前提:真机连上wifi网络,相当于此时主机有两个网卡,是一个路由器!
真机设置
(1)通过ifconfig-->查看最上面和最下面的网卡,以及对应的IP!
说明:内(第一个的就是自己的网卡和IP)、外(最后一个的就是所连接wifi的网卡和IP)
(2)开内核路由和masquerate(NAT)
图:省略
虚拟机设置
(1)增加网关-->和真机的ip(内)相同,表明数据传输到此网关对应的IP!
(2)sysytemctl restart network.service 重启网络,加载配置文件
(3)ping 61.135.169.121 可以ping通
注意:ping www.baidu.com不通!
虚拟机测试
本地解析
配置文件:/etc/hosts -->主机名和IP配置文件 主机名查询静态表
内容:域名和IP的映射关系
弊端:只能通过此域名访问此IP,不能访问其它域名!
解决思路:理论上我们可以将所有域名和IP映射起来,但是工程太浩大了,还是交给别人来处理,交给谁呢?
引申出:域名的解析问题
概念:DNS(Domain Name System 域名系统 ),因特网上作为域名和 IP 地址相互映射的一个分布式数据库 ,能够使用户更方便的访问互联网 ,不用去记复杂的IP!
通俗的理解:钱交给了运营商,运营商专门有一台服务器记录IP和域名的映射,当我们访问域名的时候,把域名映射映射的IP返回给我们,提供这样服务的机器叫做DNS服务器!
常见的DNS服务器
114.114.114.114 -->国内移动、电信和联通通用的DNS(常用)!!!
8.8.8.8 -->谷歌的DNS服务器
218.30.19.50 -->陕西省的DNS
特点:公共域名解析服务,不用担心因ISP运营商导致的DNS劫持等问题,而且都是免费提供给用户使用的!
DNS配置文件:/etc/resolv.conf
reslove:解析
测试:优先级的顺序,改变优先级
(1)修改/etc/hosts-->将百度的域名和IP影射,然后测试
(2)实验现象-->看百度news发现还不行
(3)修改/etc/resolv.conf -->增加域名解析服务器的地址,测试实验现象
(4)将/etc/hosts百度的域名解析成任意的IP或者自己的ip,观察优先级
(5)改变本地解析和DNS服务器的解析优先级-->修改/etc/nsswitch.conf
调整: files 和dns的顺序
结论:默认本地解析的优先级高于DNS解析!
###############
(6)有线连接的问题
1)客户端有无的情况
方式1: linux 与校园网终极解决方案(思路:Linux装一个虚拟机,虚拟机安装Windows,利用Windows的上网功能)
方式2:linux下使用命令行连接校园网(基于Java)
方式3:使用官方 Linux 客户端,没有的话就只能自己写!
2)Linux连接Windows的有线和无线的网络
(1)Windows主机的--->Windows图标+r-->打开cmd--->输入'ipconfig/all'
(2)查看"以太网适配器的本地连接"信息-->有待考证
关注:ipv4、网关、DNS
(3)Linux主机上相关的设置
修改配置文件的方式:/etc/sysconfig/network-scripts/ifcfg-br0添加IP等信息
IPADDR3=与Windows主机查看在同一网段的不冲突的IP
GATEWAY3=Windows中的ipv4
DNS3=上述的Windows的DNS或者常见的114.114.114
注意:不要修改此配置文件原有的信息!
#####################
(7)网络故障的排除
1)真机重启的问题,破坏虚拟机的网卡
现象:真机重启网络后,虚拟机在同一网段ping不通
解决思路:通过virt-manger删除当前虚拟机的网卡,然后重新给其分派一个网卡!
(1)真机"重启"网络-->restart
(2)ping-->虚拟机ping不通真机,是网卡的原因!
(3)virt-manager-->灯泡-->删除指定虚拟机的网卡,然后添加一块新的网卡,查看此虚拟机的ip信息,没有则添加
(4)ping 看是否能ping通!
说明:红帽已知的bug!
2)ip冲突
3)装系统时网络出现飞行模式,无法连接网络
原因:默认网卡是被系统内核所禁用了!
查看:网卡是否被禁用
思考:如果是yes该怎么处理!
4)真机无法连接wifi
(1)brctl show -->看真机的无线网络是否完好!标志-->第一行interfaces是不是空!
解决办法: 如果是空,cd /etc/sysconfig/network-scripts/ -->看是否有 ifcfg-Wired_connection_1(有了删除掉)
原因:默认以ifcfg-*开头的都会生效,找不到则启动不了网络!
说明:图示表示网络完好!
########################
(8)nmcli命令的详细解释!
说明:nmcli是NetworkManger服务所提供的,使用此命令此服务必须开启!
把握一点:将图形的设置引申到命令的设置!
常用的设置:connection、device 其它了解
常用的组合:从需求入手!
命令 使用
nmcli dev status 列出所有设备
nmcli dev dis <dev> 断开某个设备的所有连接
nmcli dev con eth0 查看eth0网卡上的连接信息
###########分割线##############
nmcli con show 列出所有连接
nmcli con up <name> 激活某个连接
nmcli con down <name> 关闭某个连接
nmcli con add .. 添加一个新连接
nmcli con mod <ID> 修改连接
nmcli con del <ID> 删除连接
说明:没有tab提示,则--help看是否有提示!
场景应用
(1)通过dhcp自动获取ip
nmcli connection add type ethernet con-name activelink ifname eth0 autoconnect yes
(2)设置静态ip
nmcli connection add type ethernet con-name static ifname eth0 ip4 172.25.254.10/24
(3)对连接进行操作{删除、禁用、使用、查看}
nmcli connection delete java
nmcli connection show
nmcli connection down java
nmcli connection up java
(4)对连接的修改-->细节部分(修改ip和获取ip的方式)
nmcli connection modify "java" ipv4.addresses 172.25.2.100/24
nmcli connection modify "java" ipv4.method <auto|manual>
(5)网卡的设置
nmcli device connect eth0
nmcli device disconnect eth0
nmcli device show
nmcli device status