经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
Linux采用双网卡bond、起子接口的方式
来源:jb51  时间:2018/11/8 9:28:35  对本文有异议

什么是bond

网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。

适用场景

服务器两张网卡需要做bond,并且bond后网卡需配置不同网段的地址,用于走不同流量,这个时候就可以采用起子接口的方式。

实验场景

设备

  • 服务器:Server_A

  • 核心交换机:Switch_A、Switch_B

交换机连接方式:堆叠

服务器网卡:enp176s0f0、enp176s0f1做bond

IP段划分

  • 业务段
         VLAN 201:10.10.51.0/24

  • 公网
          VLAN 401:111.20.200.88/27

要求

服务器Server_A上联的两台核心交换机Switch_A和Switch_B采用堆叠方式,Server_A的enp176s0f0和enp176s0f1光口分别互联Switch_A和Switch_B;现要求enp176s0f0和enp176s0f1做bond,地址10.10.51.16走业务流量,地址111.20.200.90走公网流量,交换机端口做捆绑eth-trunk并透传VLAN201和VLAN401。

网卡配置脚本

  1. # 停掉NetworkManager服务
  2. systemctl stop NetworkManager.service 
  3. systemctl disable NetworkManager.service
  4.  
  5. # 备份
  6. cp /etc/sysconfig/network-scripts/ifcfg-enp176s0f0{,.bak}
  7. cp /etc/sysconfig/network-scripts/ifcfg-enp176s0f1{,.bak}
  8.  
  9. # 将网卡协议改为none并设备未开机自启动,并做双网卡配置
  10. sed -'s/BOOTPROTO=dhcp/BOOTPROTO=none/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f0
  11. sed -'s/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f0
  12. echo "MASTER=bond0" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f0
  13. echo "SLAVE=yes" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f0
  14.  
  15. sed -'s/BOOTPROTO=dhcp/BOOTPROTO=none/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f1
  16. sed -'s/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f1
  17. echo "MASTER=bond0" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f1
  18. echo "SLAVE=yes" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f1
  19.  
  20. # 配置网卡bond0
  21. echo "DEVICE=bond0
  22. TYPE=Ethernet
  23. ONBOOT=yes
  24. BOOTPROTO=static" >/etc/sysconfig/network-scripts/ifcfg-bond0
  25.  
  26. # 写模块文件,bond模式为mode 0
  27. echo "alias bond0 bonding
  28. options bond0 miimon=100 mode=0" >/etc/modprobe.d/bond.conf
  29. # 加载模块
  30. modprobe bonding
  31.  
  32. # 起子接口bond0.201
  33. echo "DEVICE=bond0.201
  34. TYPE=Vlan
  35. PHYSDEV=bond0
  36. ONBOOT=yes
  37. BOOTPROTO=static
  38. REORDER_HDR=yes
  39. IPADDR=10.10.51.16
  40. GATEWAY=10.10.51.1
  41. NETMASK=255.255.255.0
  42. DNS1=114.114.114.114
  43. DNS2=8.8.8.8
  44. VLAN=yes
  45. VLAN_ID=201" >/etc/sysconfig/network-scripts/ifcfg-bond0.201
  46.  
  47. # 起子接口bond0.401
  48. echo "DEVICE=bond0.401
  49. TYPE=Vlan
  50. PHYSDEV=bond0
  51. ONBOOT=yes
  52. BOOTPROTO=static
  53. REORDER_HDR=yes
  54. IPADDR=111.20.200.90
  55. GATEWAY=111.20.200.89
  56. NETMASK=255.255.255.0
  57. DNS1=114.114.114.114
  58. DNS2=8.8.8.8
  59. VLAN=yes
  60. VLAN_ID=401" >/etc/sysconfig/network-scripts/ifcfg-bond0.401
  61.  
  62. # 加载模块并重启主机
  63. modprobe 8021q
  64. reboot

关键点

交换机侧如果起eth-trunk,那么服务器侧则必须起子接口

交换机侧和服务器侧要么都起lacp协商,要么都不起,否则将造成端口不同

交换机侧eth-trunk口配置示例

  1. [HH2B108-H01-2-HW9006X-SW001-Eth-Trunk12]display this 
  2. #
  3. interface Eth-Trunk12
  4. port link-type trunk
  5. port trunk allow-pass vlan 201 401
  6. #
  7. return

服务器侧起lacp协议使用bond模式4,示例如下

  1.  # more /etc/modprobe.d/bond.conf
  2.  alias bond0 bonding
  3.  options bond0 miimon=100 mode=4 lacp_rate=1

子接口配置文件中"DEVICE=bond0.401“中的VLAN号一定要和需要透传的VLAN号保持一致

配置子接口后一定要重启服务器才能生效!!!

总结:

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对w3xue的支持。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号