如下VPP命令创建bond接口,模式选择LACP协议,负载均衡模式选择网络三四层。新创建的接口为BondEthernet0,添加两个子接口GigabitEtherneta/0/0和GigabitEthernetb/0/0。

vpp# create bond mode lacp load-balance l34
BondEthernet0
vpp#
vpp#
vpp# bond add BondEthernet0 GigabitEtherneta/0/0
vpp#
vpp# bond add BondEthernet0 GigabitEthernetb/0/0

查看创建的bond接口,显示成员数量为两个。随后将两个成员接口状态设置为UP。

vpp# show bond
interface name   sw_if_index  mode          load balance  active members members
BondEthernet0    24           lacp          l34           0              2
vpp#
vpp# set interface state GigabitEtherneta/0/0 up
vpp# set interface state GigabitEthernetb/0/0 up

LCP插件创建以上bond接口的对等接口,取名为be0。

vpp# lcp create BondEthernet0 host-if be0
vpp#
vpp# show interfaceName               Idx    State  MTU (L3/IP4/IP6/MPLS)     Counter          Count
BondEthernet0                     24    down         9000/0/0/0
GigabitEtherneta/0/0              13     up          9000/0/0/0
GigabitEthernetb/0/0              14     up          9000/0/0/0
GigabitEthernetc/0/0              15     up          9000/0/0/0
GigabitEthernetd/0/0              16    down         9000/0/0/0
tap19                             25     up          9000/0/0/0
vpp# show lcp
lcp default netns '<unset>'
lcp lcp-auto-subint on
lcp lcp-sync on
itf-pair: [4] BondEthernet0 tap19 be0 27 type tap

在linux中查看,创建了bond接口be0。

# ip -d link
27: be0: <BROADCAST,MULTICAST> mtu 9000 qdisc mq state DOWN mode DEFAULT group default qlen 1000link/ether 00:60:e0:6f:5a:f3 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65521tun type tap pi off vnet_hdr on multi_queue numqueues 2 numdisabled 0 persist off addrgenmode eui64 numtxqueues 256 numrxqueues 256 gso_max_size 65536 gso_max_segs 65535

接口be0的MAC地址与VPP中对等接口BondEthernet0的MAC地址相同。

MAC相同。

vpp# show hardware-interfaces BondEthernet0Name                Idx   Link  Hardware
BondEthernet0                     19     up   BondEthernet0Ethernet address 00:60:e0:6f:5a:f3
vpp#
vpp#
vpp# show hardware-interfaces GigabitEtherneta/0/0Name                Idx   Link  Hardware
GigabitEtherneta/0/0              13    up    GigabitEtherneta/0/0Ethernet address 00:60:e0:6f:5a:f3
vpp#
vpp#
vpp# show hardware-interfaces GigabitEthernetb/0/0Name                Idx   Link  Hardware
GigabitEthernetb/0/0              14    up    GigabitEthernetb/0/0Ethernet address 00:60:e0:6f:5a:f3
vpp#
vpp# set interface state BondEthernet0 up

Ubuntu配置

在另外一台Ubuntu主机上创建接口bond0,模式为802.3ad,负载均衡使用网络3/4层hash算法。

# ip link add bond0 type bond mode 802.3ad xmit_hash_policy layer3+4
#
#
# ip -d link show bond0
7: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 26:dc:49:57:fa:b3 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535 bond mode 802.3ad miimon 100 updelay 0 downdelay 0 peer_notify_delay 0 use_carrier 1 arp_interval 0 arp_validate none arp_all_targets any primary_reselect always fail_over_mac none xmit_hash_policy layer3+4 resend_igmp 1 num_grat_arp 1 all_slaves_active 0 min_links 0 lp_interval 1 packets_per_slave 1 lacp_rate slow ad_select stable tlb_dynamic_lb 1 addrgenmode eui64 numtxqueues 16 numrxqueues 16 gso_max_size 65536 gso_max_segs 65535

将接口ens35和ens36添加为bond0的子接口。

/ # ip link set ens35 down
/ # ip link set ens36 down
/ #
/ # ip link set ens35 master bond0
[82160.305319] 8021q: adding VLAN 0 to HW filter on device ens35
[82160.311192] bond0: Enslaving ens35 as a backup interface with an up link
/ #
/ # ip link set ens36 master bond0
[82172.266467] 8021q: adding VLAN 0 to HW filter on device ens36
[82172.272367] bond0: Enslaving ens36 as a backup interface with an up link
/ #
/ # ip link set ens35 up
/ # ip link set ens36 up
/ #
/ # ip link set bond0 up
[82194.363870] IPv6: ADDRCONF(NETDEV_UP): bond0: link is not ready
[82194.369815] 8021q: adding VLAN 0 to HW filter on device bond0

子接口和bond接口使用相同的mac地址。

/ # ip link show master bond0
9: ens35: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,SLAVE,UP> mtu 1500 qdisc mq master bond0 state DOWN mode DEFAULT group default qlen 1000link/ether 00:60:e0:68:9f:ee brd ff:ff:ff:ff:ff:ff
10: ens36: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,SLAVE,UP> mtu 1500 qdisc mq master bond0 state DOWN mode DEFAULT group default qlen 1000link/ether 00:60:e0:68:9f:ee brd ff:ff:ff:ff:ff:ff
/ #
/ # ip -d link show master bond0
9: ens35: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,SLAVE,UP> mtu 1500 qdisc mq master bond0 state DOWN mode DEFAULT group default qlen 1000link/ether 00:60:e0:68:9f:ee brd ff:ff:ff:ff:ff:ff promiscuity 1bond_slave state BACKUP mii_status UP link_failure_count 0 perm_hwaddr 00:60:e0:68:9f:ee queue_id 0 ad_aggregator_id 1 ad_actor_oper_port_state 69 ad_partner_oper_port_state 1 addrgenmode eui64 numtxqueues 8 numrxqueues 8
10: ens36: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,SLAVE,UP> mtu 1500 qdisc mq master bond0 state DOWN mode DEFAULT group default qlen 1000link/ether 00:60:e0:68:9f:ee brd ff:ff:ff:ff:ff:ff promiscuity 1bond_slave state BACKUP mii_status UP link_failure_count 0 perm_hwaddr 00:60:e0:68:9f:ef queue_id 0 ad_aggregator_id 2 ad_actor_oper_port_state 69 ad_partner_oper_port_state 1 addrgenmode eui64 numtxqueues 8 numrxqueues 8

测试

设置VPP接口BondEthernet0地址90.0.1.1/24,并且,设置其对等接口be0为相同的地址。

vpp# set interface ip address BondEthernet0 90.0.1.1/24

设置Ubuntu主机的bond0接口地址为90.0.1.2/24。在此主机上执行ping地址90.0.1.1的操作。

/ # ip address add dev bond0 90.0.1.2/24

如下为VPP的trace显示。可见报文在dpdk-input节点之后进入了bond-input节点。

Packet 103:23:12:144922: dpdk-inputGigabitEthernetb/0/0 rx queue 0buffer 0x4f662: current data 0, length 98, buffer-pool 0, ref-count 1, trace handle 0x2000000ext-hdr-validPKT MBUF: port 13, nb_segs 1, pkt_len 98buf_len 2176, data_len 98, ol_flags 0x180, data_off 128, phys_addr 0x8fdd9900packet_type 0x11 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0rss 0x0 fdir.hi 0x0 fdir.lo 0x0Packet Offload FlagsPKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is validPKT_RX_IP_CKSUM_NONE (0x0090) no IP cksum of RX pkt.PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is validPKT_RX_L4_CKSUM_NONE (0x0108) no L4 cksum of RX pkt.Packet TypesRTE_PTYPE_L2_ETHER (0x0001) Ethernet packetRTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headersIP4: 00:60:e0:68:9f:ee -> 00:60:e0:6f:5a:f3ICMP: 90.0.1.2 -> 90.0.1.1tos 0x00, ttl 64, length 84, checksum 0xff73 dscp CS0 ecn NON_ECNfragment id 0xc532ICMP echo_request checksum 0x1bfc id 768
03:23:12:144925: bond-inputsrc 00:60:e0:68:9f:ee, dst 00:60:e0:6f:5a:f3, GigabitEthernetb/0/0 -> BondEthernet0
03:23:12:144926: ethernet-inputIP4: 00:60:e0:68:9f:ee -> 00:60:e0:6f:5a:f3
03:23:12:144926: ip4-inputICMP: 90.0.1.2 -> 90.0.1.1tos 0x00, ttl 64, length 84, checksum 0xff73 dscp CS0 ecn NON_ECNfragment id 0xc532ICMP echo_request checksum 0x1bfc id 768
03:23:12:144927: ip4-lookupfib 0 dpo-idx 11 flow hash: 0x00000000ICMP: 90.0.1.2 -> 90.0.1.1tos 0x00, ttl 64, length 84, checksum 0xff73 dscp CS0 ecn NON_ECNfragment id 0xc532ICMP echo_request checksum 0x1bfc id 768
03:23:12:144928: ip4-receiveICMP: 90.0.1.2 -> 90.0.1.1tos 0x00, ttl 64, length 84, checksum 0xff73 dscp CS0 ecn NON_ECNfragment id 0xc532ICMP echo_request checksum 0x1bfc id 768
03:23:12:144928: ip4-icmp-inputICMP: 90.0.1.2 -> 90.0.1.1tos 0x00, ttl 64, length 84, checksum 0xff73 dscp CS0 ecn NON_ECNfragment id 0xc532ICMP echo_request checksum 0x1bfc id 768
03:23:12:144929: ip4-icmp-echo-requestICMP: 90.0.1.2 -> 90.0.1.1tos 0x00, ttl 64, length 84, checksum 0xff73 dscp CS0 ecn NON_ECNfragment id 0xc532ICMP echo_request checksum 0x1bfc id 768
03:23:12:144929: ip4-load-balancefib 0 dpo-idx 24 flow hash: 0x00000000ICMP: 90.0.1.1 -> 90.0.1.2tos 0x00, ttl 64, length 84, checksum 0x85ec dscp CS0 ecn NON_ECNfragment id 0x3ebaICMP echo_reply checksum 0x23fc id 768
03:23:12:144930: ip4-rewritetx_sw_if_index 24 dpo-idx 24 : ipv4 via 90.0.1.2 BondEthernet0: mtu:9000 next:9 flags:[] 0060e0689fee0060e06f5af30800 flow hash: 0x0000000000000000: 0060e0689fee0060e06f5af30800450000543eba0000400185ec5a0001015a0000000020: 0102000023fc03001800be766a490000000090430800000000000000
03:23:12:144931: BondEthernet0-outputBondEthernet0IP4: 00:60:e0:6f:5a:f3 -> 00:60:e0:68:9f:eeICMP: 90.0.1.1 -> 90.0.1.2tos 0x00, ttl 64, length 84, checksum 0x85ec dscp CS0 ecn NON_ECNfragment id 0x3ebaICMP echo_reply checksum 0x23fc id 768

在Ubuntu主机上,可通过PROC文件bond0查看其状态信息。

/ # cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: 00:60:e0:68:9f:ee
Active Aggregator Info:Aggregator ID: 1Number of ports: 1Actor Key: 9Partner Key: 24Partner Mac Address: 00:60:e0:6f:5a:f3Slave Interface: ens35
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:60:e0:68:9f:ee
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 1
Partner Churned Count: 1
details actor lacp pdu:system priority: 65535system mac address: 00:60:e0:68:9f:eeport key: 9port priority: 255port number: 1port state: 61
details partner lacp pdu:system priority: 65535system mac address: 00:60:e0:6f:5a:f3oper key: 24port priority: 255port number: 1port state: 63Slave Interface: ens36
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:60:e0:68:9f:ef
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: churned
Partner Churn State: churned
Actor Churned Count: 2
Partner Churned Count: 2
details actor lacp pdu:system priority: 65535system mac address: 00:60:e0:68:9f:eeport key: 0port priority: 255port number: 2port state: 69
details partner lacp pdu:system priority: 65535system mac address: 00:00:00:00:00:00oper key: 1port priority: 255port number: 1port state: 1

LCP创建bond接口相关推荐

  1. Linux BOND接口配置

    如下使用ip命令创建一个bond接口不指定参数: / # ip link add bond1 type bond 指定bond接口的mode: / # ip link add bond2 type b ...

  2. JMeter接口测试通过企业微信API记录(二)创建审批接口并测试

    JMeter的下载与使用. 此次软件的使用是通过测试企业微信的接口来使用 创建一个自己的企业来测试 https://work.weixin.qq.com/wework_admin/register_w ...

  3. jmeter web服务器协议,【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter测试SOAP协议性能测试脚本开发(示例代码)...

    目录: [阐述]:首先应该遇到了一个共同的问题,JMeter3.2之后就没有WebService(SOAP) Request,后来经过查询网上资料得知其实可以用HTTP请求来操作,结果是一样的. [步 ...

  4. 阿里云ECS开放批量创建实例接口,实现弹性资源的创建

    摘要: 为了更方便的实现弹性的资源创建,方便用户一次运行多台ECS按量实例来完成应用的开发和部署,阿里云开放了ECS的批量创建实例接口RunInstances,可以单次最多创建100台实例,避免重复调 ...

  5. ECS开放批量创建实例接口RunInstances

    摘要: 为了更方便的实现弹性的资源创建,方便您一次运行多台ECS按量实例来完成应用的开发和部署,我们开放了ECS的批量创建实例接口RunInstances.和目前的CreateInstance相比,R ...

  6. Java实训项目12:GUI学生信息管理系统 - 实现步骤 - 创建服务接口实现类

    文章目录 七.实现步骤 (八)创建服务接口实现类 1.创建学校服务接口实现类 单元测试:对CollegeServiceImpl进行单元测试 (1)编写测试方法testFindCollegeById() ...

  7. Java实训项目11:GUI学生信息管理系统 - 实现步骤 - 创建服务接口

    文章目录 七.实现步骤 (七)创建服务接口 1.创建学校服务接口 2.创建状态服务接口 3.创建学生服务接口 4.创建用户服务接口 七.实现步骤 (七)创建服务接口 服务接口调用数据访问接口,可以添加 ...

  8. 思科交换机创建子接口

    interface Ethernet0/0.20                                               //创建子接口               encapsu ...

  9. 微服务架构之公共模块式中创建API接口统一返回结果ApiResult

    微服务架构之API接口统一返回结果ApiResult 一.创建公共模块common步骤 二.在api中新建一个ApiCode枚举和ApiResult 三.ApiCode与ApiResult编码如下 四 ...

最新文章

  1. 函数重载需要注意的点
  2. 阿里某p9哭穷:300万年薪,依然挣扎在温饱线上!
  3. java的输出流包括_【转】输入/输出流 - 深入理解Java中的流 (Stream)
  4. mysql io_MySQL服务器 IO 100%的分析与优化方案
  5. 常用的Linux命令行文本处理工具总结
  6. Bag-of-words模型
  7. 3.struts2中Action的三种写法
  8. 基于PROFINET技术的STEP7组态
  9. 数理统计——随机过程
  10. 泡泡龙游戏开发系列教程(二)
  11. vue使用element-ui打包后与本地测试样式不同问题,改变element-ui原有样式方法
  12. 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记6——四大变换光照与材质
  13. 数据挖掘导论实验报告01
  14. C:\Users\用户名\Documents不可用
  15. 清理android根目录垃圾,寻找Android手机垃圾文件的根源
  16. Docker Desktop删除镜像后磁盘空间未减少
  17. java路径是什么_什么是java路径?
  18. 寻迹小车逻辑电路模块
  19. 生活中的英语 —— 新词
  20. Linux内核分析 读书笔记 (第五章)

热门文章

  1. a10 amd 安装黑苹果_AMD PRO A10-8770 R7安装黑苹果—花屏禁止安装
  2. 计算机应用技术python_超星尔雅大学计算机应用技术02PythonB章节答案,智慧树章节答案...
  3. 电脑上的小白系统没内存怎么办?
  4. 50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
  5. Windows10+Ubuntu20.04双系统 惠普暗影精灵OMEN
  6. java keyframe_JavaFX图像幻灯片中的KeyFrame和持续时间
  7. 证件照APP照片间隔排版的实现
  8. 计算机图形学-旋转彩色正方体
  9. 有人问我:尚学堂学费,先付费是不是进入的机会更大一些?
  10. RS485设备通过DTU上传数据到阿里云物联网平台