10.1 什么是IP
10.1.1 IP简介
Internet Protocol Address,网络协议地址,也就是在因特网上给主机编码的方式
- 协议名称:tcp/ip
- 协议版本:ipv4
- ip地址:2^32, 即ip是由32位0或1组成,例,111111111.111111111.11111111.11111111(二进制)==255.255.255.255 (十进制)
10.1.2 子网掩码
- 子网掩码是用来划分网络区域的,指明了一个ip地址的哪些位标识的是网段,哪些是主机
- 子网掩码非0的位对应的ip上的数字表示这个ip的网络位,0位对应IP的数字是的主机位
- 网络位表示网络区域(即位置区域)
- 主机位表示网络区域里某台主机(即区域内具体某台主机)
10.1.3 IP通信
网络位相同,主机位不同的两个ip可以直接通信,例如:
IP1:192.168.43.10/24等价于192.168.43.10/255.255.255.0
IP2:192.168.43.11/24
IP1和IP2掩码都是24位,它们的网段都为192.168.43,所以可以直接通信
实验1:IP相关命令
- ip addr show | ifconfig ##查看ip地址
- ping ##检测网络通畅
- -c 1 ##只ping1次
- -w 1 ##等待1秒
- ifconfig device ip netmask ##为网卡配置IP以及子网掩码
- ip addr show ##查看ip
- ip addr del dev ens160 192.168.43.11/24 ##删除ip
- ip addr add 192.168.43.11/24 dev ens160 ##添加ip
实验2:永久方式更改IP
1. 图形方式
- nm-connection-editor
- nmtui
nm-connection-editor
nmtui
2. 命令方式
- nmcli device status ##查看设备状态
- nmcli device disconnect ens160 ##关闭设备
- nmcli device connect ens160 ##开启设备
- nmcli connection show ##查看连接信息
- nmcli connection down "Ethernet connection 1" ##关闭连接
- nmcli connection up "Ethernet connection 1" ##打开连接
- nmcli connection modify "Ethernet connection 1" ip4 192.168.43.21/24 ##添加ip,添加完成后必须要重启连接才能生效
- nmcli connection delete "Ethernet connection 1" ##删除连接
- nmcli connection add con-name eth0 ifname ens160 type ethernet ip4 192.168.43.11/24 ##添加连接
- connection add con-name eth0 ifname ens160 type ethernet ipv4.method auto ##添加dhcp网络
3. 文件方式
- 配置目录:/etc/sysconfig/network-scripts/
- 配置文件:ifcfg-任意名称
dhcp:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
systemctl restart NetworkManager
nmcli connection down ens160
nmcli connection up eth0
静态网络:
vim /etc/sysconfig/network-scripts/ifcfg-eth1
systemctl restart NetworkManager
nmcli connection down eth0
nmcli connection up eth1
10.2 DHCP服务
在server1中
1.配置静态网络
2.把镜像接入光驱
3.查看光驱挂载位置
df
4. 查找dhcp安装包
cd /run/media/root/RHEL-8-1-0-BaseOS-x86_64/BaseOS/Packages/
ls dhcp*
5. 安装dhcp
rpm -ivh dhcp-server-4.3.6-30.el8.x86_64.rpm
ps:开始使用的是rhel8.1的镜像安装dhcp服务,一直有问题,最后换成可8.0镜像挂载重新安装dhcp服务
6. 配置dhcp文件
cd /etc/dhcp/
ls
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim dhcpd.conf
7. 重启服务
systemctl restart dhcpd.service
8. 测试
在client1中设定网络为dhcp
重启网络服务,因为我真实主机使用的手机热点,所以自动分配的不是我设定的dhcp连接,断开热点后,重启服务获取到的IP为192.168.43.100时我在server1端dhcp设定的IP池
在server1端查看分配出去的地址,以及IP地址绑定的物理地址
10.3 网关
路由器上和客户主机处在同一个网段的ip叫做客户主机的网关
10.3.1 网关设定方式
命令方式:<临时>
- ip route add default via 192.168.43.100 ##添加默认网关
- ip route del default via 192.168.43.100 ##删除默认网关
文件方式:<永久>
1. 修改系统全局网关
vim /etc/sysconfig/network
systemctl restart NetworkManager
nmcli connection down 链接名称
nmcli connection up 链接名称
2. 修改网卡设定网关
vim /etc/sysconfig/network-scripts/ifcfg-westos
systemctl restart NetworkManager
nmcli connection down 链接名称
nmcli connection up 链接名称
实验:
1. 在client1中添加一块网卡使client1主机为双网卡主机
2. 设定client1主机网卡地址为:
网卡1:192.168.43.100/24(和windows主机处在统一个网段)
网卡2:172.25.254.100/24(server1主机处在统一个网段)
3.在client1中打开内核路由功能
sysctl -a |grep ip_forward
net.ipv4.ip_forward = 0表示内核路由功能未开启,在这里我的显示是开启内核路由的,如果是未开启的按下面操作:
vim /etc/sysctl.conf
sysctl -p ##设定更改立即生效
4.在client1中打开地址伪装功能
systemctl start firewalld
firewall-cmd --list-all
masquerade: no表示地址伪装功能未开启
firewall-cmd --permanent --addmasquerade
firewall-cmd --reload
测试:
1. 在server1中设定本机ip:172.25.254.10
ping 192.168.43.51 ##测试能否和windows主机通信
显然无法通信
2. 添加本机网关为 172.25.254.100
ip route add default via 172.25.254.100
3. 再次测试
ping 192.168.43.51
可以通信
10.4 DNS
dns: 负责作域名转换成ip这个工作的主机叫做dns服务器(地址解析)
vim /etc/resolv.conf ##dns服务器指向文件临时
vim /etc/hosts ##叫做本地解析文件
vim /etc/sysconfig/network-scripts/ifcfg-eth160 ##dns的永久设定 DNS1=114.114.114.114
重启网络服务
实验:
1. 设定主机ip和windows在一个网段
2. 设定主机网关和windows相同
3. 在windows中ping www.baiud.com 查看百度ip
4. 在linux中ping百度ip
5. 在linux中ping www.baidu.com
6. 编写本地解析文件
vim /etc/hosts
ping www.baidu.com
ping baidu.com
7. 编写DNS配置文件
vim /etc/resolv.conf
ping baidu.com
10.5 网桥
1. 删除原连接
nmcli connection delete System\ ens160
2. 新建连接
vim /etc/sysconfig/network-scripts/ifcfg-ens160
3. 新建网桥
vim /etc/sysconfig/network-scripts/ifcfg-br0
4. 重启网络
bridge link show
创建虚拟机时网络可以选择桥接