1.ip基础知识#
1.什么是ip?(Internet Protocol)
网络之间互连的协议(IP)是Internet Protocol的外语缩写,中文缩写为“网协”.
网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。IP地址具有唯一性,根据用户性质的不同,可以分为5类。另外,IP还有进入防护,知识产权,指针寄存器等含义。
2.什么是ip地址?(Internet Protocol Address)
(1).IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。
(2).IP地址(英语:Internet Protocol Address)是一种在Internet上的给主机编址的方式,也称为网络协议地址。常见的IP地址,分为IPv4与IPv6两大类。
(3).IP地址编址方案:IP地址编址方案将IP地址空间划分为A、B、C、D、E五类,其中A、B、C是基本类,D、E类作为多播和保留使用。
(4).IPV4就是有4段数字,每一段最大不超过255。由于互联网的蓬勃发展,IP位址的需求量愈来愈大,使得IP位址的发放愈趋严格,各项资料显示全球IPv4位址可能在2005至2010年间全部发完(实际情况是在2011年2月3日IPv4位地址分配完毕)。
(5).地址空间的不足必将妨碍互联网的进一步发展。为了扩大地址空间,拟通过IPv6重新定义地址空间。IPv6采用128位地址长度。在IPv6的设计过程中除了一劳永逸地解决了地址短缺问题以外,还考虑了在IPv4中解决不好的其它问题。
** ipv4:**
2进制32位-----10进制4段
11111110.11111110.11111110.11111110 = 254.254.254.254
ip分网络位和主机位
3.子网掩码:
(1).是用来区分网络区域,网络位和主即位
(2).子网奄码非0的位对应ip上的数字表示这个Ip的网络位
(3).子网奄码的0位对应数字是IP的主即位
(4).网络位表示网络区域
(5).主机位表示网络区域李的某台主机
4.IP通信判定
网络位一致,主机位不一致的2个IP可以直接通讯 172.25.254.1/24 = 24个1 = 3个255 = 255.255.255.0(前三段一致此ip可以与之直接通讯) 172.25.254.2/24 172.25.0.1/16 = 16个1 = 2个255 = 255.255.0.0
4. 网络设定工具
ping 检测网络是否通畅
ifconfig 查看网络接口
ifconfig device ip/掩码 临时设定ip
eg:ifconfig etho 172.25.254.100/24
ifconfig device up/down 开启/关闭网卡
eg:ifconfig eth0 down
ifconfig eth0 up
ip addr show 查看或网络接口
ip addr add 172.25.254.100/24 dev eth0 在没有IP时临时设定IP
ip addr 一般用来查看网络接口。
**注意:**device的名字是一个物理事实,存在可用,不存在不可用。
5.设定ip
1.图形界面设定ip
nm-connection-editor
nm = NetworkManager 记录网络状态
ps:使用此命令去修改设定的IP时需要做以下操作去更新ip systemctl stop NetworkManager systemctl restart network systemctl start NetworkManager
2.文本化图形界面设定 nmtui tab健移动选项
1.选择“edit a connection"进入下一步
2.删除存在的 Ethernet 再选择"Add"
3.选择“Ethernet” 进入下一步
4.profile name 随便写,Device只能写存在的网卡,一般为"eth0"
5.选择ipv4 的Automatic 选择manual 选择 show 输入ip/奄码(如172.25.254.157/24)
6.ok
这两种方式是永久设定Ip
6.命令方式设定
1.nmcli命令
nmcli device connect eth0 启用eth0网卡
nmcli device disconnect eth0 关闭
nmcli device show eth0 查看eth0网卡信息
nmcli device status eth0 查看eth0网卡服务
2.添加静态网络:
nmcli connection add type ethernet con-name 连接名字 ifname 网卡名 ip4 ip/掩码
con-name:连接名字(如westos,自己随意命名)
ifname: 网卡名(不能自己命名,一般为eth0)
3.添加动态网络:
nmcli connection add type ethernet con-name 连接名称 ifname 网卡名字 autoconnect yes #添加dhcp网络
4.删除网络:
nmcli connection delete westos 删除westos链接(等同于图形界面的删除已设定的IP)
5.修改网络:
nmcli connection modify "westos" ipv4.addresses newip/24 #改变wetos的ip
nmcli connection modify "westos" ipv4.method <auto|manual> #改变westos的工作方式为动态或者静态
修改后,重启服务更新状态:systemctl restart network
6.其他命令:
nmcli connection show 显示所有网络链接
nmcli connection down westos 关闭指定链接
nmcli connection up westos 开启指定链接
7.文件方式设定ip
网络配置文件的命名规则: ifcfg-xxxx (xxxx随意命名,但一般和网卡名字或接口名字相同,如网卡eth0的接口文件ifcfg-eth0)
编辑文件:vim /etc/sysconfig/network-scripts/ifcfg-eth0 在文件中写入:
DEVICE=xxxx ##设备名称
BOOTPROTO=dhcp|static|none ##设备工作方式(dhcp:动态 static和none:都是静态)
ONBOOT=yes ##网络服务开启时自动激活
IPADDR= ip ##设定静态网络此处填设定的ip,设定动态网络此行不需要写
PREFIX=24 ##掩码(设定动态网络不需要写掩码)
NETMASSK=255.255.255.0 #掩码(掩码第二种写法)
NAME= ##设置接口名字(可以不用写,系统自己命名)
保存退出然后重启网络服务
示例:dhcp 动态网络设定
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 ##接口使用设备
BOOTPROTO=dhcp ##网卡工作模式(动态,则不用写ip及掩码)
ONBOOT=yes ##网络服务开启时自动激活
NAME=eth0 ##网络接口名称
重启网络服务:systemctl restart network
示例:static|none 静态网络设定
static、none设定设备工作方式都为静态,二选一 vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 ##设备
BOOTPROTO=none ##设备工作方式
ONBOOT=yes ##开启网络服务激活设备
NAME=eth0 ##网络接口名称
IPADDR=172.25.254.157 ##IP
NETMASK=255.255.255.0 | PREFIX=24 ##子网掩码
重启网络服务:systemctl restart network
一块网卡配置多个ip:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NAME=eth0
IPADDR0=第一个IP
NETMASK0=第一个ip的掩码
IPADDR1=第二个IP
NETMSK1=第二个ip的掩码
...
(文件中为了规范,子网掩码书写要么全是netmask要么全是PREFIX) 重启网络服务:systemctl restart network
多个ip的查看:ip addr show eth0
8.lo 回环接口
回环接口----------类似人的神经 每个回环接口的IP都是127.0.0.1,系统内部服务之间的沟通所用IP 不要修改回环接口,否则系统内部会出错。
2.gateway 网关
1.路由器
主要功能是用来作nat的
nat:网络地址转换,分为两类
(1).dnat 目的地地址转换
(2).snat 源地址转换
2.网关 连接路由器时,路由器上和连接设备处在同一个网段的那个ip称为此设备的网关
3.把真实主机变成路由器 (1).
systemctl stop libvirtd ##先关闭libvirt放防止防火墙重启失败。
systemctl restart firewalld ##重启火墙
systemctl start libvirtd
(2).
firewall-cmd --permanent --add-masquerade ##开启地址伪装
firewall-cmd --reload ##重新加载服务
(3).
执行命令:firewall-cmd --list-all
命令输出:
public (active)
target: default
icmp-block-inversion: no
interfaces: br0 enp0s25 wlp3s0
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: yes ##yes表示地址伪装已经开启
forward-ports:
sourceports:
icmp-blocks:
rich rules:
3.设定虚拟机的网关
systemctl stop NetwrokManager ##此服务会干扰以下操作的设定,建议关闭。
方法一:设定全局网关(对所有没有设定网关的的网卡都生效)
编辑文件:vim /etc/sysconfig/network
添加内容:
GATEWAY=网关ip
ystemctl restart netwrok
方法二:单个网卡接口设定网关
编辑文件:vim /etc/sysconfig/network-scripts/ifcfg-xxxx ##网卡配置文件
添加内容:
GATEWAY=网关ip
**当网卡中设定的IP有多个时,指定对其中某一个生效:**
eg:GATEWAY0=网关ip ##对第一个IP生效
systemctl restart netwrok
4.查询网关
route -n
显示效果:(Gateway下有网关ip,而非0.0.0.0) Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.25.0.254 0.0.0.0 UG 0 0 0 eth0 172.25.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
3.dns
1.dns(域名解析服务)
(1).DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。 (2).每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议的功能。 (3).主机名到IP地址的映射有两种方式: <静态映射>,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用; <动态映射>,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。 [1 通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。
域名解析 /etc/hosts 本地解析文件 /etc/resolv.conf dns 指向文件 /etc/nsswitch.conf 确定 dns 解析的优先级
2.本地解析文件
vim /etc/hosts ip 主机名称(域名)
2.dns解析的指向文件
---> 临时(重启服务后文件李的dns的IP会被更改) vim /etc/resolv.conf nameserver dns服务器ip(114.114.114.114) 当需要某个域名的IP地址时去问这个IP
---> 永久 vim /etc/sysconfig/network-scripts/ifcfg-网卡配置文件 DNS1=114.114.114.114(这个ip指向一个dns服务器)
(当网络工作模式为dhcp时,系统会自动获得ip 网关 dns 那么 /etc/resolv.conf会被获得到的信息修改 如果不需要获得DNS信息,则在网卡配置文件中追加:PREEDNS=no)
3.设定域名解析的优先级
系统默认: /etc/hosts > /etc/resolv.conf 本地解析 优先于 dns服解析
可以修改设置优先级 vim /etc/nsswitch.conf
38 #hosts: db files nisplus nis dns 39 hosts: files dns ##files代表本地解析文件,dns代表dns服务器,那个在前面那个优先
这个三个文件即改即生效,不用重启服务
测试优先级:在本地文件中给域名配另外一个IP,然后ping域名,看出来的IP时哪一个即可判断。
ps:所有与网络管理有关的命令都可以在文件 /usr/share/doc/initscripts-x.x.xx这个文件中找到
** ###############################################
虚拟机ping不通: 1.删除设定的IP重新配置 2.虚拟机能ping同真机但ping不通外网 (1)防火墙开启(使ip地址伪装功能开启) (2)真机重新加载网卡:virt-manager --> 如果还是不通: 真机执行:sysctl -a | grep ip_forward net.ipv4.ip_forward = 0 net.ipv4.ip_forward_use_pmtu = 0 这样的话 vim /etc/sysctl.conf 文件添加:net.ipv4.ip_forward=1 sysctl -p 重启服务。使查看时这个后面的值为1
** ################################################
4.dhcp服务的配置
1.在真机上,重置两个虚拟机后,为作dhcp的服务器主机server设置网卡IP,重启网络服务使之生效。
2.编辑文件:vim /etc/yum.repos.d/rhel_dvd.repo 第5行:baseurl = http://172.25.254.250/rhel7 连接指向红帽的的软件仓
3.yum repolist list 看当前可管理的软件列表(这里如果前一步指向错误,会输出一大段erro) yum clean all 清空缓存配置并重新加载配置
yum repolist 获取软件列表
4.安装dhcp服务软件:yum install dhcp -y
5.切换目录: cd /etc/dhcp 查看文件:vim ddhcpd.conf 将文件中的一个文件目录/usr/share/doc/dhcp*/dhcpd.conf.example复制到/etc/dhcp/ddhcpd.conf 6.编辑文件:vim ddhcpd.conf a.删除35行后面所有内容 b.删除27,28行 c.设定子网,IP地址池(分配IP范围),网关(在这里因为将真机作路由器,所有是真机IP作网关)
7.重启dhcp服务:systemctl restart dhcpd 关闭server服务器的火墙:systemctl stop firewalld
8.测试: 在测试机(这里是desktop虚拟机)重启网络服务:systemctl restart network 执行命令ifconfig查看分配到的ip、网关。在日志中可以看到分配给ip的dns的域名,IP地址。在dns服务器端,/var/lib/dhcpd/dhcpd.leases这个文件专门记录了dhcp的分配ip情况。
至此,设置完毕。