返回顶部
首页 > 资讯 > 服务器 >如何实现RedHat服务器网卡阵列配置
  • 444
分享到

如何实现RedHat服务器网卡阵列配置

2023-06-10 06:06:13 444人浏览 薄情痞子
摘要

这篇文章主要介绍“如何实现RedHat服务器网卡阵列配置”,在日常操作中,相信很多人在如何实现RedHat服务器网卡阵列配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现RedHat服务器网卡阵列配置

这篇文章主要介绍“如何实现RedHat服务器网卡阵列配置”,在日常操作中,相信很多人在如何实现RedHat服务器网卡阵列配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现RedHat服务器网卡阵列配置”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

网卡阵列配置
1.修改vi /etc/rc.d/rc.local文件,增加以下内容(注意这里添加的是eth0、eth2两个网口)

代码如下:


ifenslave bond0 eth0 eth2
#如果一块网卡失效,系统会按照/etc/rc.d/rc.local里顺序启动网卡,起到失效保护作用。
echo "0" >>/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
setsebool ftpd_disable_trans 1
service vsftpd restart
route add -net 224.0.0.0/4 dev bond0
#添加路由来设定发送规则


2.修改配置文件/etc/sysconfig/network-scripts
新增ifcfg-bond0文件,内容如下:
DEVICE=bond0             #设备名称
BOOTPROTO=static         #不启用DHCP
ONBOOT=yes               #开机自启动
IPADDR=192.168.101.X     #网卡阵列的ip地址
NETMASK=255.255.255.0    #掩码
GATEWAY=192.168.101.1    #网关
修改ifcfg-eth0,ifcfg-eth2文件,根据实际配置文件新增修改部分如下:

代码如下:


MASTER=bond0
SLAVE=yes
BOOTPROTO=static         #配置静态地址,不开启DHCP
ONBOOT=yes               #开机网卡自启动


3.修改/etc/modprobe.d/dist.conf(按esc用:$回车抵达最后一行在末尾添加下面两句)

代码如下:


alias bond0 bonding


(Bonding只能提供链路监测,从主机到交换机的链路是否连通,如果只是交换机对外的链路down掉,而交换机本身没有故障,bonding会认为没有故障而继续使用)

代码如下:


options bond0 miimon=100 mode=1


(miimon用来进行链路监测,每100ms监测一次链路连接状态,如果一条不同转入另一条线路;mode的值表示工作模式,共有1,2,3,4四种模式
Mode=0表示load balancing(round-robin)为负载均衡模式
Mode=1表示fault- tolerance(active-backup)为冗余模式,主备工作模式)

代码如下:


alias net-pf-10 off         #关闭ipv6支持,可以不加


对于级联小交换机

代码如下:


alias bond0 bonding
options bond0 mode=1 arp_interval=500 arp_ip_target=192.168.101.254 arp_validate=all primary=eth0


#通过定时器,每个slave接口不断发送ARP包来不断更换交换机端口与Mac的对应关系
使得每个网卡都在进行工作。这个ARP的发送规则是:
每arp_interval(MS)间隔向arp_ip_target发送arp请求,可以向多个arp_ip_target发送arp请求。

增加/etc/udev/rules.d/50-hwinterfaces.rules
(定网卡物理地址,SYSFS{address}==""双引号中输入物理地址)

代码如下:


KERNEL=="eth*",SYSFS{address}=="",NAME="eth0"
KERNEL=="eth*",SYSFS{address}=="",NAME="eth2"
KERNEL=="eth*",SYSFS{address}=="",NAME="eth3"
KERNEL=="eth*",SYSFS{address}=="",NAME="eth4"
KERNEL=="eth*",SYSFS{address}=="",NAME="eth5"


防止机器网卡的mac地址发生漂移

查看网卡阵列的配置情况

代码如下:


#ifconfig -a|grep HWaddr


查看网卡mac信息,如果bond0,eth0,eth2硬件地址一致,则配置成功

代码如下:


#cat /proc/net/bonding/bond0


查看bond0工作状态

网卡常用操作方法笔记
1.bond0上的mac地址修改成一致,这些网卡接在同一台交换机上,那么该交换机的arp表同一mac地址对应的端口有多个,交换机无法判断数据包发往的端口,所以要求交换机的相应端口采取聚合模式,聚合后的端口采用同一mac地址。
2.使网卡配置马上生效,不用重启机器,命令

代码如下:


#service network restart或
#/etc/rc.d/init.d/network restart


必须关闭NetworkManager服务

代码如下:


#service NetworkManager stop      //当前环境下关闭服务
#chkconfig NetworkManager off     //开机启动关闭服务


3.重新启动网卡,命令

代码如下:


#ifconfig bond0 down/ifdown bond0
#ifconfig eth0 down/ifdown eth0
#ifconfig eth2 down/ifdown eth2
#ifenslave bond0 eth0
#ifenslave bond0 eth2
#ifconfig bond0 up/ifup bond0
#ifconfig eth0 up/ifup eth0
#ifconfig eth2 up/ifup eth2


4. Bonding的模式一共有7种:

代码如下:


#defineBOND_MODE_ROUNDROBIN     0.balance-rr模式,网卡的负载均衡模式
#defineBOND_MODE_ACTIVEBACKUP    1.active-backup模式,网卡的容错模式
#defineBOND_MODE_XOR             2.balance-xor模式,需要交换机支持
#defineBOND_MODE_BROADCAST      3.broadcast模式
#defineBOND_MODE_8023AD         4.IEEE 802.3ad动态链路聚合模式,需要交换机支持#defineBOND_MODE_TLB             5.自定义传输负载均衡模式
#defineBOND_MODE_ALB             6.网卡虚拟化方式


bonding模块的所有工作模式可以分为两类:多主型工作模式和主备型工作模式,balance-rr 和broadcast属于多主型工作模式而active-backup属于主备型工作模式。(balance-xor、自适应传输负载均衡模式 (balance-tlb)和自适应负载均衡模式(balance-alb)也属于多主型工作模式,IEEE 802.3ad动态链路聚合模式(802.3ad)属于主备型工作模式。
(1)BOND_MODE_ROUNDROBIN模式下,bonding对于发送和接收数据的处理逻辑是不一致的,对于数据的接收,bonding基本不做任何处理,纯粹依靠交换机端口与MAC的变化来实现交替接收数据。发送的话,交换机会根据数据的源MAC来学习端口和MAC之间的关系,所以bonding 做到的就是选择不一样的网卡发送。
(2)网卡的容错模式(mode =BOND_MODE_ACTIVEBACKUP),容错模式的配置方法和负载均衡模式基本差不多,只不过修改一下/etc/modprobe.conf即可。

arp检测模式
观察交换机端口上所学习到的MAC地址,发现MAC会在两个端口上反复切换在BOND_MODE_ROUNDROBIN模式下,bonding对于发送和接收数据的处理逻辑是不一致的,对于数据的接收,bonding基本不做任何处理,纯粹依靠交换机端口与MAC的变化来实现交替接收数据。发送的话,交换机会根据数据的源MAC来学习端口和MAC之间的关系,所以bonding 做到的就是选择不一样的网卡发送。
对于数据的发送,

代码如下:


static inline voidbond_set_mode_ops(struct net_device *bond_dev, int mode)
{
switch(mode) {
case BOND_MODE_ROUNDROBIN:
bond_dev->hard_start_xmit =bond_xmit_roundrobin;
break;
...


bond的发送函数被注册为bond_xmit_roundrobin。通过bond_xmit_roundrobin的实现可以发现。

代码如下:


static int bond_xmit_roundrobin(structsk_buff *skb, struct net_device *bond_dev)
{
ead_lock(&bond->curr_slave_lock);
slave = start_at = bond->curr_active_slave;
read_unlock(&bond->curr_slave_lock);
bond_for_each_slave_from(bond, slave, i,start_at) {
if(IS_UP(slave->dev) &&
(slave->link == BOND_LINK_UP) &&
(slave->state ==BOND_STATE_ACTIVE)) {
res =bond_dev_queue_xmit(bond, skb, slave->dev);
write_lock(&bond->curr_slave_lock);
bond->curr_active_slave= slave->next;
write_unlock(&bond->curr_slave_lock);
break;
}


bond_xmit_roundrobin会通过curr_active_slave指针所指向的设备来进行发送,当然 curr_active_slave会在调用bond_dev_queue_xmit完成实际的发送之后指向下一个slave设备。 bond_dev_queue_xmit实际是调用通用的发送函数dev_queue_xmit来进行的,它传递给dev_queue_xmit的是一个 skb,在传递之前skb->dev就被指定为了当前的slave设备,这样内核就会找到对应的真实网卡设备来进行发送,最后 curr_active_slave指针的轮询切换,实现了bonding的负载均衡工作模式。
从这种模式可以看到,bonding实现了一个类似网卡驱动的模块,对应的bond0设备是一个纯粹的虚设备,数据发送虽然说经过了它,但通过一系列调用,转了一圈之后才回到真正的网卡设备那里进行发送,无疑会消耗一定的系统性能。
简单用100Mbps速率的UDP数据包测试了一下BOND_MODE_ROUNDROBIN模式。
测试过程中发现接收端会有较多的乱序包,观察交换机端口情况,端口之间的切换频率不规则,这个和交换机的配置或者性能应该有很大联系,有必要的话需要进一步研究。数据的正确性和时序性能否保证需要进一步仔细测试。

mii链路检测方式
与之前arp检测方式不同。这两种链路检测方式在各种mode下都是可以使用的,但要注意不能同时使用。
bonding的mii检测实现。首先和arp-monitor一样,mii也是定时器触发

代码如下:


if(bond->params.miimon) {  
init_timer(mii_timer);
mii_timer->expires= jiffies + 1;
mii_timer->data  = (unsigned long)bond_dev;
mii_timer->function = (void*)&bond_mii_monitor;
add_timer(mii_timer);
}


bond_mii_monitor函数其本质的原理就是检测网卡的链路状态,bonding定义网卡有4个链路状态:BOND_LINK_UP:
正常状态(处于该状态的网卡是是潜在的发送数据包的候选者)
BOND_LINK_FaiL:网卡出现故障,向状态BOND_LINK_DOWN 切换中
BOND_LINK_DOWN:失效状态
BOND_LINK_BACK:网卡恢复,向状态BOND_LINK_UP切换中
从上到下,表示了网卡链路从正常到失效再到恢复状态。bond_mii_monitor函数就是依次检查网卡的链路状态是否处于这些状态,然后通过标记 do_failover变量来说明当前是否需要切换slave网卡。代码篇幅较大,但逻辑还是很清晰的,故此处不罗列了。
在BOND_MODE_ACTIVEBACKUP模式下,两块网卡其实有一块是不工作的,被设置为IFF_NOARP的状态。同时,bond虚设备,还有 slave设备的MAC地址均一致,所以这张网卡不会被外界察觉存在。交换机也不存在想该端口发包的情况。当bond的mii检测发现当前的active 设备失效了之后,会切换到这个备份设备上。
在bond_change_active_slave函数中

代码如下:


if (bond->params.mode ==BOND_MODE_ACTIVEBACKUP) {
if (old_active) {
bond_set_slave_inactive_flags(old_active);
}
if (new_active) {
bond_set_slave_active_flags(new_active);
}
}


这个就是在BOND_MODE_ACTIVEBACKUP模式下的切换逻辑,很简单,需要注意的是,在 bond_set_slave_inactive_flags(old_active)中,需要将接口的状态设置为IFF_NOARP,不然交换机就可能 会把数据包发送到一个错误的端口上。

到此,关于“如何实现RedHat服务器网卡阵列配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 如何实现RedHat服务器网卡阵列配置

本文链接: https://lsjlt.com/news/259640.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何实现RedHat服务器网卡阵列配置
    这篇文章主要介绍“如何实现RedHat服务器网卡阵列配置”,在日常操作中,相信很多人在如何实现RedHat服务器网卡阵列配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现RedHat服务器网卡阵列配置...
    99+
    2023-06-10
  • RHEL7系统中服务器如何配置网卡服务
    这篇文章主要讲解了“RHEL7系统中服务器如何配置网卡服务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“RHEL7系统中服务器如何配置网卡服务”吧!1、 创建网络会话RHEL和CentOS系...
    99+
    2023-06-05
  • 服务器挂载磁盘阵列如何设置
    要挂载磁盘阵列到服务器上,需要按照以下步骤进行设置: 确保磁盘阵列已经被正确连接到服务器上,并且已经被识别和配置好。 打开服...
    99+
    2024-04-09
    服务器
  • 阿里云服务器如何配置两个网卡
    阿里云服务器是一种基于虚拟化技术的计算服务,提供了多种计算和存储资源。在使用阿里云服务器的过程中,我们可能会遇到需要同时使用两个网卡的情况。那么,如何配置阿里云服务器的两个网卡呢?下面就来详细说明。 阿里云服务器的两个网卡配置,主要是为了满...
    99+
    2023-11-19
    阿里 网卡 两个
  • centos云服务器配置双网卡
    打开终端,输入以下命令以进入centos 6的根网卡配置页面: root centos6 在终端中,输入以下命令以配置双网卡: sudo ip address[port] # 添加一个可用的端口号 sudo netmas...
    99+
    2023-10-27
    服务器配置 双网卡 centos
  • 云服务器如何设置网卡
    设置云服务器的网卡通常需要进行以下步骤:1. 登录到云服务器的操作系统。2. 打开终端或命令行界面。3. 输入命令`ifconfig...
    99+
    2023-08-22
    云服务器
  • 美国服务器配置磁盘阵列有什么用
    美国服务器配置磁盘阵列的作用:1、能够给美国服务器提供大容量存储空间,满足大数据网站的实现;2、能够提高美国服务器的数据传输能力,从而使美国服务器文件上传速度更加快速;3、给美国服务器配置磁盘阵列具备强大的容错性,从而降低了服务器受故障磁盘...
    99+
    2024-04-02
  • 云服务器怎么配置虚拟网卡
    虚拟网卡(Virtual Host)是一种用于连接到云服务器的专用网络连接。可以通过以下几种方式配置虚拟网卡: 将虚拟网卡的IP地址映射到云服务器的IP地址:为了保证云服务器能够正确识别虚拟网卡,建议将虚拟网卡的IP地址映射到与云服务器...
    99+
    2023-10-26
    网卡 服务器
  • 云服务器如何配置网络
    云服务器是一种虚拟服务器,通常用于在云中托管应用程序和数据。在配置云服务器网络之前,需要确定您的应用程序和数据的位置、存储和处理等方面。以下是一些建议,可以帮助您完成配置云服务器的过程: 确定您的应用程序和数据:确保您的应用程序和数据在...
    99+
    2023-10-26
    服务器 网络
  • 如何配置云服务器网络
    配置云服务器网络需要考虑多种因素,下面列出了一些常见的配置方法: 确定数据中心位置:首先需要确定云计算服务提供商的数据中心位置,因为有些服务可能需要连接到这些位置。 确定网络协议:云服务器网络需要使用TCP/IP协议,需要根据服务提供商...
    99+
    2023-10-27
    服务器 网络
  • 云服务器怎么配置虚拟网卡的网络设置
    虚拟网卡的网络设置是一个比较复杂的问题,以下是一些常见的虚拟网卡配置方式以及需要注意的事项: 虚拟网卡的类型及设置方法: 虚拟网卡可以是不同类型的,例如Microsoft Virtual PC、Samba、Linux或OpenWRT等,...
    99+
    2023-10-27
    网卡 服务器 网络
  • 服务器从安装到配置阵列RAID1+RAID5 安装Windows Server 2019
    有粉丝请求写一篇服务器从0开始安装的教程,所以今天就给安排上了——从RAID的配置开始,以及如何在WinPE里面载入阵列卡驱动、磁盘分区、安装系统等,另外 ,...
    99+
    2022-11-13
    RAID1 RAID5 2019
  • oracle如何实现网络配置
    这篇文章主要介绍oracle如何实现网络配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!网络配置的方法:1、tnsname客户端--A 直接修改文件  &nbs...
    99+
    2024-04-02
  • 云服务器怎么配置虚拟网卡的网络
    虚拟网卡的网络配置可以基于您的云服务器提供商的网络配置工具或者第三方虚拟网卡管理软件来进行。以下是一些可能需要考虑的基本信息: 虚拟网卡类型:虚拟网卡有多种不同的类型,如NFS网卡、Web Cards等等。您需要确定您使用的虚拟网卡是哪...
    99+
    2023-10-26
    网卡 服务器 网络
  • 云服务器怎么配置虚拟网卡的
    虚拟网卡(Virtual Real Network Card)是一种虚拟化技术,可以使用计算机上的硬件设备实现虚拟网络连接和网络拓扑的改变。 以下是配置虚拟网卡的基本步骤: 选择虚拟网卡设备:首先需要选择一种适合您的工作负载的虚拟网卡设...
    99+
    2023-10-26
    网卡 服务器
  • 云服务器如何配置web服务器网络
    云服务器是一种虚拟的数据中心服务器,通常通过公共云平台(如Amazon Web Services 或 Google Cloud)提供给客户和开发者,使其能够运行在多个不同的设备上。下面是如何配置云服务器网络的步骤: 安装所需的软件和服务...
    99+
    2023-10-26
    服务器 网络 web
  • 如何配置服务器的内网IP
    配置服务器内网IP的方法:1、编辑网卡配置文件,修改IPADDR和NETMASK,如然后重启网卡;2、修改网卡中addresses的ip地址和掩码;3、修改网卡的address和netmask并重启;4、在服务器系统中运行所配置的网卡即可。...
    99+
    2023-02-08
    配置服务器 服务器
  • 云服务器怎么配置虚拟网卡设备
    虚拟网卡设备是一个可以插在网卡中的设备,用于连接到服务器或其他计算机。虚拟网卡设备可以由以下几种类型的网卡或网卡组件来构成: 网卡:网卡可以是标准、高性能、高速、可扩展等多种类型。通常,网卡的类型包括:Nicira Cable Mode...
    99+
    2023-10-26
    网卡 服务器 设备
  • 云服务器怎么配置虚拟网卡的ip
    虚拟网卡的IP可以使用网卡自带的IP地址来配置,也可以使用第三方的IP地址来创建虚拟网卡的IP地址,具体需要根据您所使用的操作系统和计算机的型号进行选择。 以下是一个示例的配置: 在网卡的操作系统中选择一个支持虚拟网卡的操作系统 在网络...
    99+
    2023-10-26
    网卡 服务器 ip
  • 服务器网卡如何选择
    选择服务器网卡时,可以考虑以下几个方面: 速度和带宽:根据服务器的网络需求,选择适当的速度和带宽的网卡,如千兆以太网、万兆以太网...
    99+
    2024-04-29
    服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作