#############################
#####网络管理以及DHCP服务#####
#############################
##linux下的网络管理与网络配置##
1.什么是IP ADDRESS
internet protocol ADDRESS
ipv4 --> internet protocol version
2*32 ip是由32位01组成
11111110.11111110.11111110.11111110 = 254.254.254.254
2.子网掩码netmask
用来划分网络区域
子网掩码非0的位对应的ip上的数字表示这个ip的网络位
子网掩码0位对应的ip数字表示这个ip主机位 24=255.255.255.0
值得注意的是:
网络位表示网络区域, 主机位表示网络区域里某台主机
3.ip通信判定
网络位一致,主机位不一致的2个IP可以直接通讯 例如:172.25.254.227与172.25.254.127之间
172.25.254.1/24 24=255.255.255.0
172.25.254.2/24 子网掩码 24个一
临时更改ip
172.25.0.0/16 16=255.255.0.0
##16位比24位包含的主机多,16位不稳定
4.网络设定工具
ping ##检测网络是否通畅
ifconfig ##查看或设定网络接口
ifconfig eth0 ##查看网卡下的IP信息
ip addr ##检测或设定网络接口(临时 systemctl restart network就没了)网络服务
ip addr show ##检测
ip addr add ip/24 dev device ##设定ip(在没有ip时设定)
5.图形方式设定ip
nm-connection-editor 图形界面更改(永久)
ifconfig eth0
删除原有eth0,点击添加
输入网络名称,选择网卡设备
选择IPv4以及静态设置IP选项后,Add添加网络地址以及子网掩码,点击save保存设置
6.命令方式设定网络
nmcli ##使用前提NetWorkMansge必须开启(statue查看)
nmcli device connect eth0 ##启用eth0网卡(以太网第一块网卡)
nmcli device disconnect eth0 ##关闭eth0网卡
nmcli device show eth0 ##查看网卡信息
nmcli device status eth0 ##查看网卡服务
nmcli connection show
nmcli connection down eth0
nmcli connection up eth0
nmcli connection delete redhat
nmcli connection add type ethernet con-name redhat ifname eth0 ip4 172.25.254.216/24
nmcli connection modify redhat ipv4.method auto
nmcli connection modify redhat ipv4.method manual
nmcli connection modify redhat ipv4.addresses 172.25.254.126
7.管理网络配置文件
网络配置目录 注:在用系统文件配置网络时徐进入目录
cd /etc/sysconfig/network-scripts/
网络配置文件的命名规则
vim ifcfg-eth0
DEVICE=xxxx ##设备名称
BOOTPROTO=dhcp|static|none ##设备工作方式
ONBOOT=yes ##开启时自动**网卡
IPADDR=172.25.254.100 ##ip地址
PREFIX=24 ##子网掩码
NETMASK=255.255.255.0 ##子网掩码
NAME=redhat ##定义名字,不定义自动加system(不是必须的)
systemctl restart network
我们不妨来做个示例:
静态网络设定文件 首先还原实验环境
cd /etc/sysconfig/network-scripts/
一块网卡上配置多个IP
DEVICE=eth0
ONBOOT=yes
IPADDR0=172.25.254.116
PREFIX0=24
IPADDR0=172.25.0.116
PREFIX1=24
NAME=redhat
BOOTPROTO=none
ip addr show eth0 ##注:此命令查看多个IP
8.网关设置管理
对于网关和路由的定义:
路由器
主要功能是用来作nat的
dnat 目的地地址转换
snat 源地址转换
网关gateway
路由器上和自己处在同一个网段的那个ip
我们来模拟一个实验环境来更形象的介绍网关的定义:
#把真实主机变成路由器
systemctl stop libvirtd ##关闭libvirtd虚拟服务
systemctl restart firewalld ##重启火墙
systemctl start libvirtd ##开启libvirtd虚拟服务
firewall-cmd --list
firewall-cmd --permanent --add-masquerade ##显示success
firewall-cmd --reload
firewall-cmd --list-all
public (default, active)
interfaces: br0 enp0s25 wlp3s0
sources:
services: dhcpv6-client ssh
ports:
masquerade: yes <<<地址伪装功能开启,真实主机变成路由器 no->yes
forward-ports:
icmp-blocks:
rich rules:
可见我们的真实主机时可以上网的
#设定虚拟机网关
测试:
虚拟机与主机连通
虚拟机与百度的地址不通
设置全剧网关
vim /etc/sysconfig/network ##全局网关(针对所有没有设定网关的网卡生效)
GATEWAY=172.25.254.27 ##加上网关
测试:
可见当添加网关后通过真实主机虚拟机能实现上网功能
设置指定配置网关
vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY0=172.25.254.27 ##网卡中有多个ip时需要指定ip生效
GATEWAY=172.25.254.27 ##当网卡中的ip只有一个时
可见,这样也可以实现上网。
9.DNS设计管理
DNS全名Domain name srver == 域名解析服务 ##就是一个用户地址的多个IP用一个域名表示
例如:
ip 域名
220.181.111.188等 www.baidu.com
vim /etc/hosts ##本地解析文件(只能打开百度网页的首页,其他节点不能打开)
实验如下:
vim /etc/hosts
由此可见修改本地解析文件只能打开一个网页节点
下面我们来做修改DNS只想文件的实验来:
vim /etc/resolv.conf ##dns的指向文件
nameserver 218.30.19.50 ##当需要某个域名的ip地址时去问218.30.19.50
vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##网卡配置文件加
DNS=218.30.19.50
由此可见:网卡配置文件加载域名后可以不止实现只上一个网站
但值得注意:
当网络工作模式为 dhcp 时
系统会自动获得ip 网关 dns
那么/rtc/resolv.conf会被获得到的信息修改
如果不需要获得dns信息
在网卡中配置文件中加入
PEERDNS=no
10.设定解析的优先级
系统默认:/etc/hosts > /etc/resolv.conf
vim /etc/nsswitch.conf
39 hosts: files dns ##/etc/hosts优先
vim /etc/nsswitch.conf
39 hosts: dns files ##/etc/resolv.conf dns优先
#####dhcp服务######
[[email protected] ~]# yum install -y dhcp
安装dhcp软件包
[[email protected] dhcp]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
查看dhcpd服务配置文件
[[email protected] dhcp]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite '/etc/dhcp/dhcpd.conf'? y
拷贝配置文件
编辑配置文件
[[email protected] dhcp]# vim /etc/dhcp/dhcpd.conf
7 option domain-name "redhat.com";
8 option domain-name-servers 172.25.254.0;
27 #subnet 10.152.187.0 netmask 255.255.255.0 { ##修改为注释
28 #} ##修改为注释
32 subnet 172.25.254.0 netmask 255.255.255.0 {
33 range 172.25.254.200 172.25.254.210;
34 option routers 172.25.254.27;
35 }
35行之后全部删除
[[email protected] dhcp]# systemctl start dhcpd
[[email protected] dhcp]# systemctl status dhcpd
dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled)
Active: active (running) since Thu 2017-11-02 11:34:44 CST; 3s ago
Docs: man:dhcpd(8)
man:dhcpd.conf(5)
Main PID: 3024 (dhcpd)
让我们来做一个实验来验证以上结果:
在做此实验之前我们要确保提供服务的server主机装有dhcp服务,另外保证另一台client主机是动态获取ip地址的。
我们先在server里做yum源的指向,来指向一个有镜像的主机,编辑rhel_dvd.repo文件
做完以上操作我们来安装DHCP服务
编辑 dhcp.conf文件
粘贴标注行并且覆盖源文件
编辑dhcpd.conf,以下为修改的内容:
注:35行以后全部删除
可见:
现在我们用另一台主机client来做测试:
不难看出我们实验成功获取了server主机提供的IP
用cat /var/lib/dhcpd/dhcpd.leases查看有哪些主机链接
###################################