Linux多网卡绑定与DNS服务搭建

目录

一、多网卡绑定

 Bonding 聚合链路工作模式

bonding链路聚合操作

方法一:手动编辑配置文件

方法二:使用命令自动生成配置文件

二、DNS服务

1、DNS查询原理

2、DNS正向解析

3、主从复制

4、分离解析


一、多网卡绑定

        将多块网卡绑定同一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区域名
INinternet记录
SOA起始授权记录
代表当前服务器的名称,建议修改成上图样式
rname.invalid邮箱地址
0       ; serial是否有更新  版本号 更新文件 手动把 0 加1
1D      ; refresh刷新时间 拉取时间
1H      ; retry失败后一个小时 后再试一次
1W      ; expire过期时间,老是拉取不了,1周以后过期
3H )    ; minimum老是去查错误的解析地址,3小时内的缓存下,用户再查直接返回找不到
NS专用于标明当前区域的DNS服务器,服务器类型为域名服务器
A作用,域名解析成IP地址
AAAAIPV6

 资源记录

记录类型: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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux网卡绑定与交换机链路聚合是一种将多个物理网卡绑定为一个逻辑接口的技术,在高负载环境下提高网络带宽和可靠性。以下是关于如何配置Linux网卡绑定和交换机链路聚合的指导: 1. Linux网卡绑定配置: a. 确保服务器上安装了所需的驱动程序和工具,如bonding模块和ifenslave b. 在/etc/modules文件中添加bonding模块:modprobe bonding c. 创建一个新的网络接口,如bond0:编辑/etc/network/interfaces文件,并添加以下行: auto bond0 iface bond0 inet static address 192.168.xxx.xxx netmask 255.255.255.0 gateway 192.168.xxx.xxx slaves eth0 eth1 bond-mode 4 bond-miimon 100 bond-downdelay 200 bond-updelay 200 bond-lacp-rate 1 bond-xmit-hash-policy layer2+3 bond-primary eth0 d. 保存文件并重启网络服务:service networking restart 2. 交换机链路聚合配置: a. 登录交换机的管理界面 b. 创建一个新的聚合组:选择一个可用的组号,并指定组的工作模式为链路聚合(LACP或者Static) c. 添加相应的物理接口到聚合组中:将服务器上用于多网卡绑定的物理接口添加到交换机的聚合组中 d. 配置组的其他参数:根据需求,可以配置链路聚合组的一些其他参数,如备用接口、链路优先级等 e. 保存并应用配置,确保交换机和服务器的配置一致 配置完成后,多个物理网卡将作为一个逻辑接口(bond0)运行,向外提供网络连接。交换机链路聚合将这些物理链路合并成一个逻辑链路,提供更高的带宽和可靠性。需要注意的是,配置过程中需要确保服务器和交换机的配置参数一致,否则可能会导致链路无法正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值