目录
一、多网卡绑定
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡,类似于网络中的vrrp的虚拟路由。直接给两块网卡设置同一IP地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。
Bonding 聚合链路工作模式
mod= | 概念 | 负载均衡 | 容错能力 | 性能问题 |
0 (轮询) | 将数据轮流从每个物理接口中发出 | 所有链路处于负载均衡状态 | 增加带宽,支持容错 | 客户端可能会收到错序的数据包,导致重新发送,降低网络吞吐量 |
1 主备策略 | 只有一个物理接口处于开启状态,其他都装死,只有开启的接口凉凉了,其他的才会争夺启动 | 无负载均衡 | 只有一个物理接口处于开启状态,其他都装死,只有开启的接口凉凉了,其他的才会争夺启动 | 提供高网络连接的可用性,但资源利用率低 |
2 平衡策略 | 聚合口数据报文按源目MAC、源目IP、源目端口进行异或HASH运算得到一个值,根据该值查找接口转发数据报文 | 基于指定的传输HASH策略传输数据包 | 增加带宽,支持容错 | 该模式将限定流量,以保证到达特定对端的流量总是从同一个接口上发出。 |
3 广播策略 | 一个报文会复制两份往bond下的两个接口分别发送出去 | 有很好的容错机制 | 当有对端交换机失效,感觉不到任何downtime,但此法过于浪费资源 | |
4 动态链接聚合 | 在动态聚合模式下,聚合组内的成员端口上均启用LACP(链路汇聚控制协议)协议,其端口状态通过该协议自动进行维护 | 基于指定的传输HASH策略传输数据包 | 增加带宽,支持容错 | 需要交换机支持LACP协议 |
5 适配器传输负载均衡 | 在每个物理接口上根据当前的负载(根据速度计算)分配外出流量 | 如果正在接收数据的物理接口口出故障了,另一个物理接口接管该故障物理口的MAC地址。 | 需要ethtool支持获取每个slave的速率 | |
6 适配器适应性负载均衡 | 该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡,而且不需要任何switch(交换机)的支持 | 接收负载均衡是通过ARP协商实现的 | bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个物理接口的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。 | 先把第一个eth0占满,在使用第二的eth0 |
常用的模式为 0,1,3,6
mode 1、5、6 不需要交换机设置
mode 0、2、3、4需要交换机设置
bonding链路聚合操作
方法一:手动编辑配置文件
使用虚拟机进行模拟
1)添加一个网卡
2)切换到/etc/sysconfig/network-scripts/下
[root@heitui ~]#cd /etc/sysconfig/network-scripts/
3)编辑bond0的配置文件
[root@heitui network-scripts]#vim ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.3.100
NETMASK=255.255.255.0
GATEWAY=192.168.3.2
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
4)编辑网卡的配置文件
[root@heitui network-scripts]#vim ifcfg-ens33
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@heitui network-scripts]#vim ifcfg-ens36
BOOTPROTO=static
NAME=ens36
DEVICE=ens36
ONBOOT=yes
MASTER=bond0
SLAVE=yes
5)重启network服务
[root@heitui ~]#systemctl restart network
6)使用下列命令查看
[root@heitui ~]#cat /proc/net/bonding/bond0
方法二:使用命令自动生成配置文件
1)同方法一 的第一步
2)使用命令生成配置文件
[root@heitui ~]#nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.3.254/24
# 添加bonding接口
[root@heitui ~]#nmcli con add type bond-slave ifname ens33 master bond0
[root@heitui ~]#nmcli con add type bond-slave ifname ens36 master bond0
# 添加从属接口
3)启动从属接口绑定(必须先启动从属接口)
[root@heitui ~]#nmcli con up bond-slave-ens33
[root@heitui ~]#nmcli con up bond-slave-ens36# 启动从属接口绑定
4)启动绑定
[root@heitui ~]#nmcli con up mybond0
# 启动绑定
5)使用命令验证
[root@heitui ~]#cat /proc/net/bonding/bond0
二、DNS服务
1、DNS查询原理
1)先查本机的缓存记录,如果有直接返回结果
2)如果没有,在查本地的hosts文件,如果有记录直接返回结果
3)如果没有,通过本地dns域名服务器查询,如果有直接返回结果
4)如果没有,向根域服务器求助,根域服务器通过迭代的方式查询顶级域服务器
5)顶级域服务器同样通过迭代的方式查询二级域服务器
6)通过迭代的方式找到权威服务器之后
7)权威服务器通过递归的方式找到结果,把结果发送给本地域名服务器
8)本地域名服务器将结果记录下来,然后将结果发送给客户端
2、DNS正向解析
1)下载DNS服务器软件bind,powerdns,dnsmasq,unbound,coredns
-
bind:服务器
-
bind-libs:相关库
-
bind-utils: 客户端
-
bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/
以bind为例
[root@heitui ~]#yum install -y bind bind-utils.x86_64
2)编辑配置文件
[root@heitui ~]#vim /etc/named.conf
[root@heitui ~]#vim /etc/named.rfc1912.zones
3)切换到/var/named/目录下
[root@heitui ~]#cd /var/named/
[root@heitui named]#ls
4)复制模板文件到当前文件夹内,并命名为 ”heitui.com.zone“(该命名必须与/etc/named.rfc1912.zones配置文件中自己写的一致,多一个空格也不行)
[root@heitui named]#cp -a named.localhost heitui.com.zone
# 在复制的时候必须加-a或者-p选项,保留文件的权限
5)配置heitui.com.zone文件
[root@heitui named]#vim heitui.com.zone
刚打开的文件内容如下 :
修改后的文件内容如下:
上诉内容解释
$TTL 1D | 统一的ttl定义一天,不写D,则是1秒 |
@(紫色) | 表示当前的DNS区域名 |
IN | internet记录 |
SOA | 起始授权记录 |
代表当前服务器的名称,建议修改成上图样式 | |
rname.invalid | 邮箱地址 |
0 ; serial | 是否有更新 版本号 更新文件 手动把 0 加1 |
1D ; refresh | 刷新时间 拉取时间 |
1H ; retry | 失败后一个小时 后再试一次 |
1W ; expire | 过期时间,老是拉取不了,1周以后过期 |
3H ) ; minimum | 老是去查错误的解析地址,3小时内的缓存下,用户再查直接返回找不到 |
NS | 专用于标明当前区域的DNS服务器,服务器类型为域名服务器 |
A | 作用,域名解析成IP地址 |
AAAA | IPV6 |
资源记录
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
- SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。
- A(internet Address):作用,域名解析成IP地址
- AAAA(FQDN): --> IPV6
- PTR(PoinTeR):反向解析,ip地址解析成域名
- NS(Name Server):,专用于标明当前区域的DNS服务器,服务器类型为域名服务器
- CNAME : Canonical Name,别名记录
- MX(Mail eXchanger)邮件交换器
- TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等
SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。
$TTL 1D #有效解析记录的生存周期
@ in SOA benet.com. admin.benet.com. ( #“@"符号表示当前的DNS区域名
0 ; serial #更新序列号,可以是10位以内的整数
1D ; refresh #刷新时间,重新下载地址数据的间隔
1H ; retry #重试延时,下载失败后的重试间隔
1W ; expire #失效时间,超过该时间仍无法下载则放弃#
3H) ; minimum #无效解析记录的生存周期,
NS benet.com. #记录当前区域的DNS服务器的名称
A 192.168.3.10 #记录主机IP地址
IN MX 10 mail.benet.com. #MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.3.10 #记录正向解析www.benet.com对应的IP
mail IN A 192.168.3.11 #MX为邮件交换记录,数字越大优先级低
ftp IN CNAME www #CNAME使用别名,ftp 是www的别名
* IN A 192.168.3.100 #泛域名解析,“*"代表任意主机名
6)启动DNS服务
[root@heitui named]#systemctl start named
# DNS服务的软件名叫named
7)修改本机的DNS
方法一:修改网络配置文件
[root@heitui named]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
方法二:直接将DNS写入到/etc/resolv.conf文件内
[root@heitui named]#echo "nameserver 192.168.3.100" > /etc/resolv.conf
8)重启网卡服务
[root@heitui named]#systemctl restart network
9)测试
[root@heitui named]#host www.heitui.com
[root@heitui named]#host db.heitui.com
也可以使用下方命令测试
[root@heitui named]#nslookup www.heitui.com
[root@heitui named]#nslookup db.heitui.com
3、主从复制
主服务器地址:192.168.3.100
从服务器地址:192.168.3.101
在上面正向解析的操作下做主从复制
1)在从服务器上下载DNS服务软件
[root@server1 ~]#yum install -y bind bind-utils.x86_64
2) 编辑配置文件
[root@server1 ~]#vim /etc/named.conf
[root@server1 ~]#vim /etc/named.rfc1912.zones
3)修改自己网卡的DNS
[root@heitui named]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
4)重启网卡,并启动DNS服务软件
[root@server1 ~]#systemctl restart network
[root@server1 ~]#systemctl start named
5)修改主服务器的配置
[root@heitui ~]#vim /etc/named.rfc1912.zones
[root@heitui ~]#cd /var/named/
[root@heitui named]#vim heitui.com.zone
6)重新加载主服务器
[root@heitui named]#rndc reload
7)使用从服务器测试
[root@server1 ~]#host www.heitui.com
[root@server1 ~]#host db.heitui.com
[root@server1 ~]#dig -t axfr heitui.com
4、分离解析
要求:两块网卡,一块网卡内网IP,一块网卡外网IP,win7内网测试,win10外网测试
ens33:内网192.168.3.100/24
ens36:外网12.34.56.78/24
1)添加一张网卡
2)安装DNS服务软件
3)编辑配置文件/etc/named.conf和/etc/named.rfc1912.zones
[root@heitui ~]#vim /etc/named.conf
[root@heitui ~]#vim /etc/named.rfc1912.zones
4)拷贝模板,进行编辑
[root@heitui named]#cp -a named.localhost heitui.com.lan
# 编辑内网
[root@heitui named]#vim heitui.com.lan
#拷贝内网配置文件,并改名heitui.com.wan
[root@heitui named]#cp -a heitui.com.lan heitui.com.wan
# 修改配置
[root@heitui named]#vim heitui.com.wan
5)修改网卡配置文件
[root@heitui named]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 网卡1
[root@heitui named]#cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36
[root@heitui named]#vim /etc/sysconfig/network-scripts/ifcfg-ens36
6)重启网卡服务,重新加载DNS服务
[root@heitui named]#systemctl restart network
# 重启网卡服务
[root@heitui named]#rndc reload
#重新加载DNS服务
7)使用win7内网测试
先将win7的IP地址改为内网IP,且dns服务器指向192.168.3.100
然后win+r键,输入cmd打开终端
最后输入命令测试
nslookup www.heitui.com
nslookup sftp.heitui.com
8)使用win10外网测试
先将win10的IP地址改为外网IP,且dns服务器指向12.34.56.78
然后使用win+r键,输入cmd打开终端
最后输入命令测试
nslookup www.heitui.com
nslookup db.heitui.com