int state GigabitEthernet0/14/0 up vrrp vr add GigabitEthernet0/14/0 vr_id 1 priority 250 10.10.10.15 unicast int state GigabitEthernet0/14/0 up vrrp vr add GigabitEthernet0/14/0 vr_id 1 priority 200 10.10.10.15 unicast 上述为有道云翻译,建议直接去阅读原文:https://lists.fd.io/g/vpp-dev/topic/how_to_config_vrrp_unicast/87993023 单播模式中建议取消accept-mode
例a,指定IP发送ARP请求[root@Blackghost ~] arping 192.168.1.11 ARPING 192.168.1.11 from 192.168.1.6 eth0 Unicast reply from 192.168.1.11 [08:00:27:7e:b8:08] 2.780ms Unicast reply from 192.168.1.11 [08:00:27:7e:b8: probes (1 broadcast(s)) Received 1 response(s) 例c,指定发送次数[root@Blackghost ~] arping -c 4 192.168.1.11 Unicast reply from 192.168.1.11 [08:00:27:7e:b8:08] 3.080ms Unicast reply from 192.168.1.11 [08:00:27:7e:b8: 08] 2.670ms Unicast reply from 192.168.1.11 [08:00:27:7e:b8:08] 1.850ms Unicast reply from 192.168.1.11
arping一开始使用广播地址,在收到响应后就使用unicast地址。 -c count表示发送指定数量的 ARP 请求数据包后就停止。 ] 0.804ms Unicast reply from 10.0.0.101 [78:E4:00:4C:9E:E9] 1.431ms Unicast reply from 10.0.0.101 [78:E4:00:4C:9E:E9] 1.019ms Unicast reply from 10.0.0.101 [78:E4:00:4C:9E:E9] 1.289ms Unicast reply from 10.0.0.101 [78:E4:00:4C:9E:E9] 0.831ms Unicast reply from 10.0.0.101 [78:E4:00:4C:9E:E9 ] 1.041ms Unicast reply from 10.0.0.101 [78:E4:00:4C:9E:E9] 1.345ms Unicast reply from 10.0.0.101
arping -I ens33 -f 172.16.0.2 ARPING 172.16.0.2 from 172.16.0.76 ens33 Unicast reply from 172.16.0.2 [38:4C:4F:89:CB:A2] 4.507ms Unicast reply from 172.16.0.2 [38:4C:4F:89:CB:A2] 3.907ms Unicast reply :4C:4F:89:CB:A2] 3.922ms Unicast reply from 172.16.0.2 [38:4C:4F:89:CB:A2] 4.108ms Unicast reply from 172.16.0.2 [38:4C:4F:89:CB:A2] 3.777ms Unicast reply from 172.16.0.2 [38:4C:4F:89:CB:A2] 4.554ms Unicast 172.16.0.2 [38:4C:4F:89:CB:A2] 3.871ms Unicast reply from 172.16.0.2 [38:4C:4F:89:CB:A2] 3.769ms Unicast
= Setting.listSetting("discovery.zen.ping.unicast.hosts", emptyList(), Function.identity(), () + "]"); } configuredHosts = LEGACY_DISCOVERY_ZEN_PING_UNICAST_HOSTS_SETTING.get = "unicast_hosts.txt"; private final Path unicastHostsFilePath; public FileBasedSeedHostsProvider (Path configFile) { this.unicastHostsFilePath = configFile.resolve(UNICAST_HOSTS_FILE); } 配置;FileBasedSeedHostsProvider主要是从指定位置读取unicast_hosts.txt文件解析hostsList UnicastZenPing的createHostsResolver
from 10.2.167.177 [54:14:A6:AC:5E:8A] 0.669ms Unicast reply from 10.2.167.177 [54:14:A6:AC:5E:8A] 0.603ms Unicast reply from 10.2.167.177 [54:14:A6:AC:5E:8A] 0.611ms Unicast reply from 10.2.167.177 [54:14:A6:AC:5E:8A] 0.597ms Unicast reply from 10.2.167.177 [54:14:A6:AC:5E:8A] 0.597ms Unicast reply from 10.2.167.177 [54:14:A6:AC:5E:8A] 0.593ms Unicast reply from 10.2.167.177 [54:14:A6:AC:5E:8A] 0.603ms Unicast reply from 10.2.167.177 [54:14:A6:AC:5E:8A] 0.584ms ok搞定。
= Setting.listSetting("discovery.zen.ping.unicast.hosts", emptyList(), Function.identity(), () + "]"); } configuredHosts = LEGACY_DISCOVERY_ZEN_PING_UNICAST_HOSTS_SETTING.get 100 ports limitPortCounts = LIMIT_FOREIGN_PORTS_COUNT; } else { // if unicast (Path configFile) { this.unicastHostsFilePath = configFile.resolve(UNICAST_HOSTS_FILE); } 配置;FileBasedSeedHostsProvider主要是从指定位置读取unicast_hosts.txt文件解析hostsList UnicastZenPing的createHostsResolver
public interface ConfiguredHostsResolver { /** * Attempt to resolve the configured unicast = Setting.intSetting("discovery.zen.ping.unicast.concurrent_connects", 10, 0, Setting.Property.NodeScope () + "]"); } return LEGACY_DISCOVERY_ZEN_PING_UNICAST_CONCURRENT_CONNECTS_SETTING.get () + "]"); } return LEGACY_DISCOVERY_ZEN_PING_UNICAST_HOSTS_RESOLVE_TIMEOUT.get ]"); executorService.set(EsExecutors.newScaling(nodeName + "/" + "unicast_configured_hosts_resolver
arping一开始使用广播地址,在收到响应后就使用unicast地址。 实例 [root@localhost ~]# arping www.baidu.com ARPING 220.181.111.147 from 173.231.43.132 eth0 Unicast reply from 220.181.111.147 00:D0:03:[bc:48:00] 1.666ms Unicast reply from 220.181.111.147 [00:D0:03: BC:48:00] 1.677ms Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.691ms Unicast reply from 1.626ms Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.292ms Unicast reply from 220.181.111.147
public interface ConfiguredHostsResolver { /** * Attempt to resolve the configured unicast = Setting.intSetting("discovery.zen.ping.unicast.concurrent_connects", 10, 0, Setting.Property.NodeScope () + "]"); } return LEGACY_DISCOVERY_ZEN_PING_UNICAST_CONCURRENT_CONNECTS_SETTING.get () + "]"); } return LEGACY_DISCOVERY_ZEN_PING_UNICAST_HOSTS_RESOLVE_TIMEOUT.get ]"); executorService.set(EsExecutors.newScaling(nodeName + "/" + "unicast_configured_hosts_resolver
response(s) sh-# arping -I eth0 192.168.0.151 -w 5 ARPING 192.168.0.151 from 192.168.0.153 eth0 Unicast reply from 192.168.0.151 [78:52:1A:4D:D0:A5] 56.882ms Unicast reply from 192.168.0.151 [78:52:1A:4D :D0:A5] 280.078ms Unicast reply from 192.168.0.151 [78:52:1A:4D:D0:A5] 92.872ms Unicast reply from 192.168.0.151 [78:52:1A:4D:D0:A5] 116.720ms Unicast reply from 192.168.0.151 [78:52:1A:4D:D0:A5] 129.921ms Unicast reply from 192.168.0.151 [78:52:1A:4D:D0:A5] 48.195ms Sent 6 probes (1 broadcast
fib_trieMain: +-- 0.0.0.0/0 3 0 4 +-- 0.0.0.0/4 2 0 2 |-- 0.0.0.0 /0 universe UNICAST 0 0 |-- 10.8.0.0 /32 link BROADCAST /24 link UNICAST 10.13.0.0/16 2 0 1 |-- 10.13.0.0 /32 link BROADCAST /16 link UNICAST host LOCAL |-- 127.255.255.255 /32 link BROADCAST |-- 169.254.0.0 /16 link UNICAST +-- 192.168.191.0/24 2 0 2 |-- 192.168.191.0 /32 link BROADCAST /24 link UNICAST
router-id 1.1.1.1 peer 3.3.3.3 as-number 100 peer 3.3.3.3 connect-interface LoopBack0 # ipv4-family unicast router-id 3.3.3.3 peer 1.1.1.1 as-number 100 peer 1.1.1.1 connect-interface LoopBack0 # ipv4-family unicast :1 as-number 300 AR1 bgp 200 router-id 10.10.10.10 peer 2222::254 as-number 100 # ipv6-family unicast 2222::254 enable AR2 bgp 300 router-id 11.11.11.11 peer 3333::254 as-number 100 # ipv6-family unicast
Samplingstarted. rx_vport_rdma_unicast_packets: 6,478,784.59 rx_vport_rdma_unicast_bytes: 24,807,016,550Bps = 198,456.13Mbps tx_vport_rdma_unicast_packets: 6,459,893.9 tx_vport_rdma_unicast_bytes: 24,692,785,131.59Bps def net_traffic_List(ib_name): CMD = ''' /usr/bin/mlnx_perf -i %s -t 10 -c 1 | grep vport_rdma_unicast_bytes
Service publicclass MessageProducerService { // RocketMQ消息主题 publicstaticfinal String TOPIC_UNICAST = "topic-unicast"; publicstaticfinal String TOPIC_BROADCAST = "topic-broadcast"; publicstaticfinal public void sendUnicastMessage(MessageEvent message) { rocketMQTemplate.convertAndSend(TOPIC_UNICAST , message); log.info("Unicast message sent: {}", message); } /** * 发送广播消息 = "topic-unicast"; publicstaticfinal String TOPIC_BROADCAST = "topic-broadcast"; publicstaticfinal
feature arc及feature注册 下面以ip4-unicast为例来介绍基本的流程: 代码位置:vnet\ipIp4_forward.c feature arc及feature的main函数启动前的注册宏 /* Built-in ip4 unicast rx feature path definition */ VNET_FEATURE_ARC_INIT (ip4_unicast, static) = { .arc_name = "ip4-unicast", .start_nodes = VNET_FEATURES ("ip4-input", "ip4-input-no-checksum"), VNET_FEATURE_INIT (ip4_policer_classify, static) = { .arc_name = "ip4-unicast", .node_name = "ip4 2、以ip4-unicast为例,vnet_feature_arc_init函数实现流程。
( devicetoken); unicast.setTicker(ticker); unicast.setTitle(title); unicast.setText (text); unicast.goAppAfterOpen(); unicast.setDisplayType(AndroidNotification.DisplayType.NOTIFICATION ); unicast.setProductionMode(); if(null ! helloworld":map.get("extrafieldvalue")); unicast.setExtraField(extrafieldkey, extrafieldvalue ); } client.send(unicast); } public static void main(String[] args) { }
但是默认配置下,unicast是本机,也就是localhost,因此只能在一台机器上启动多个node来组成一个集群。 因此现在建议在生产环境中用unicast机制,提供一个es种子node作为中转路由节点就可以了。 ---- (1)ping ping是一个node用discovery机制来发现其他node的一个过程 (2)unicast unicast discovery集群发现机制是要求配置一个主机列表,用来作为 这就是基于gossip流言式通信协议的unicast集群发现机制。 ,首先通过network.host绑定到了非回环的ip地址,从而可以跟其他节点通信 (2)通过discovery.zen.ping.unicast.hosts配置了一批unicast中间路由的node
接下来查询一下在vrf 3和vrf4中默认路由的转发表情况: vrf 3表中的默认路由转发表中可以看到基于源ip地址查询到vrf时1,vrf 1 就是接口tap1 默认的vrf表"src-address,unicast vrf 4表中的默认路由转发表中可以看到基于源ip地址查询到vrf时2,vrf 2 就是接口tap2 默认的vrf表 "src-address,unicast lookup in ipv4-VRF:2" ip4 weight=1 pref=0 exclusive: oper-flags:resolved, cfg-flags:exclusive, [@0]: src-address,unicast [@0]: dpo-load-balance: [proto:ip4 index:25 buckets:1 uRPF:34 to:[0:0]] [0] [@13]: src-address,unicast ip4 weight=1 pref=0 exclusive: oper-flags:resolved, cfg-flags:exclusive, [@0]: src-address,unicast
is: 9 Change State : Idle to Broadcast Discovery\\DHCP状态显示 Change State : Broadcast Discovery to Unicast Discovery\\广播转单播 Use Option 43: Getting AC's IP Address 10.1.32.101 Change State : Unicast discovery Sulking\\与AC连接失败 Change State : Idle to Broadcast Discovery Change State : Broadcast Discovery to Unicast reboot\\两次连接失败后自动重启 AP与AC成功连接状态变化: Use Option 43: Getting AC's IP Address 10.1.32.101 Change State : Unicast