网卡绑定mode 0和6的区别

老实说,对于CentOS中的双网卡绑定来说,这七种模式确实很有趣。
我曾经在一个政府项目上做过很多工作,做过几次负载平衡。
给我印象最深的是Balance-RR=0模式。

当时我们采用的是旧制度。
机房安装了两根光纤,我们要做负载均衡。
我选择了 mode=0,发现在 ping 测试期间卡 1 和卡 2 流量均已启用。
老实说,我喜欢看具体的数字,所以我拿出了一个数据包嗅探工具,发现发送到1 .1 .1 .1 的数据包实际上是在两个通道上依次发送的。
例如,第一个数据包占用卡 1 ,第二个数据包占用卡 2 ,第三个数据包又变回卡 1 ...这种轮询每个数据包的方法实际上可以实现负载平衡。
但有一个陷阱。
我记得我的一位同事当时说过,如果应用层协议特别敏感,比如某些视频流,这种轮询可能会导致问题,因为数据包的顺序会不正常。
我自己没有运行过,但它的评论非常准确。

主动备份模式mode=1 对我来说比较熟悉。
我在大学实验室做了这个。
当服务器崩溃一次时,交换机自动切换到备用网卡,不会造成任何服务中断。
这种方式简单粗暴,但是有一个要求:客户端到服务器的路径必须经过主通道,否则备份通道根本收不到数据包。
我记得有一个测试场景,我把客户端换成备份交换机,结果却ping不通。
当时我不明白为什么会出现这种情况,后来查了资料才知道是因为ARP表没有更新造成的。
这种模式具有容错性,但无需担心性能。

坦率地说,平衡异或模式很难理解。
当时我们接了一个老项目,文档写得不好,我们就说要用这个模型。
经过一番努力,我发现需要先与交换机厂家确认该端口必须支持portchannel和XOR算法。
网上查了一下,有人说这种模式通常在网关场景下有效,因为源MAC地址和目的MAC地址是固定的,哈希结果也是固定的。
当时没意识到,后来看到论坛上一位老鸟的回答说:“XOR看的是源MAC地址和目的MAC地址,如果网关是单路由器的话,MAC地址不会改变,结果当然会修正。
”这个建议让我醒悟了,但是如何优化取决于网络拓扑。
该模式确实需要交换机支持,并不是所有交换机都支持,所以要特别注意这一点。

还有其他几种模式,例如平衡 TCP、平衡 UDP 和 BondMode=4 (8 02 .3 ad)。
说实话,我和他们见面的次数比较少。
但据资料显示,balance-tcp和balance-udp适用于HTTP、FTP等应用层协议,可以基于TCP连接或UDP数据包进行负载均衡。
对于8 02 .3 ad(LACP),交换机支持堆叠并实现链路聚合,这有点类似于链路平衡-xor,但级别较低。

粗略地说,选择哪种模式取决于场景。
如果您的目标是高可用性,主动备份就足够了。
如果你同时需要负载和高可用性,balance-RR是一个不错的选择。
但要注意应用层协议的兼容性。
如果网络环境比较特殊,比如交换机支持XOR,那么Balance-XOR可能是一个很好的解决方案,但是需要很好的调试。
我记得客户端使用的是balance-xor,但是由于配置错误,所有流量都经过一个通道,最后一个通道挂掉了。
所以你必须小心这件事。

如何配置Linux双网卡负载均衡 多路径路由设置指南

等等,两年前我的测试服务器有两个光调制解调器连接双网卡,我挣扎了很长时间。
我当时用的是Debian,系统好像没有安装bonding模块,所以modprobe直接报错。
幸运的是,这是一个测试环境。
我用虚拟机模拟了一下,发现虚拟网卡默认支持bonding。
一旦设置完毕,速度立刻提升。

我记得当时设置的时候,交换机比较旧,没有LACP功能,只能使用静态聚合。
将两个网卡的IP设置为同一网段,如1 9 2 .1 6 8 .1 .1 01 和1 9 2 .1 6 8 .1 .1 02 ,然后在/etc/network/interfaces中写入: 自动绑定0 iface bond0 inet 静态 地址 1 9 2 .1 6 8 .1 .1 00 网络掩码 2 5 5 .2 5 5 .2 5 5 .0 网关1 9 2 .1 6 8 .1 .1 粘合模式0 债券-米蒙 1 00 bond-slaves eth0 eth1
重启网络后,使用ip addr show bond0,发现两个IP都出现在bond0下。
当时以为设置成功了,结果发现路由还是使用第一块网卡。
查了资料,发现需要添加策略路由。

最有问题的是iptables规则。
最初只允许来自单个网卡的流量,但结果访问外部网络时总是断开连接。
后来我发现我需要将其添加到 FORWARD 链中: -A NEXT -i bond0 -o eth0 -m state --state 相关,已建立 -j 接受 -A NEXT -i bond0 -o eth1 -m state --state RELATED, ESTABLISHED -j ACCEPT
这解决了问题。
但我突然想到,如果用Nginx来做负载均衡,是不是会更容易呢?虽然目前使用的服务器只有一张网卡,但是这个体验还是蛮实用的。

linux能否配置浏览器流量走某一个网卡

说白了,Linux 严重依赖路由规则、iptables 和空间管理来管理特定网卡上的浏览器流量。
首先,最重要的报告。
最简单、最准确的就是使用稳定射击。
例如,在我们去年运行的一个项目中,IP 1 9 2 .0.2 .1 肯定是由 example.com 网卡 eth1 i 硬连线的。
只需使用 ip route add 命令即可。
但这个系统是最阴险的。
如果解决方案更改了域名,则永远不会起作用。
还有一点就是iptables在使用iprule时更加高级。
我去年尝试过。
我记下了 HTTP 流量,然后记下了固定的拍摄表。
端口隔离基本稳定,但我熟悉 iptables 和 iprule 之间的逻辑交互。
另一个是决定性的。
它将解锁浏览器进程的空间技术。
这是从去年部署网络复制网络环境开始就一直使用的。
隔离效果不错,但是配置确实比较复杂。
Docker容器也能达到类似的效果。
只需运行浏览器并将网络挂载到容器中即可。

说实话,这很令人困惑。
起初,我以为我只需要改变规则就可以醒来。
后来我发现CDN很快就解决了,我不得不添加动态更新脚本来解决问题。
等等,还有。
使用iptables的时候需要注意。
组合规则确实会降低网络速度。
建议路由 ip route 或 trac。
提醒一下,测试时,不要忘记检查目标网络的网络连通性,避免整个网络发生冲突、崩溃。
很多人不注意这一点。
使用 iptables 时,最好先在测试环境中运行它。