网工路由基础(6)BGP协议

作为运行全球互联网的路由协议,边界网关协议(BGP)是帮助企业了解客户如何与其联系的关键部分。

如果想了解数字体验交付,那么必须了解全球互联网,如果企业打算对通过互联网提供或消费的关键业务应用或服务提供运营洞察,那么边界网关协议(BGP)可见性非常重要。

边界网关协议(BGP)可见性或监控存在一系列不同的声明,这些术语本身非常模糊。

因此,了解存在哪种类型的边界网关协议(BGP)监控以及如何区分它们,以及需要查找哪些关键功能非常重要。

 

边界网关协议(BGP)简介

 

边界网关协议(BGP)是一种路径向量路由协议,简单地说涉及两个主要功能:

•在自治系统(或已注册参与互联网边界网关协议结构的自治系统网络)之间建立路由对等(通信会话),以便它们可以将路由信息交换到各种前缀(网络地址)。目前有63000多个自治系统号码(ASN)。

•在所有自治系统上传播到IP前缀的路由。路由不是通过单个路由器的路径,而是通过自治系统的路径。因此,当人们查看边界网关协议(BGP)路由更新消息时,人们将看到一系列自治系统号码(ASN),这些自治系统号码(ASN)形成AS-PATH,对应于特定前缀。

边界网关协议(BGP)路由更新可以包含多个AS-PATHS作为前缀,以及多个AS-Path属性。目前,全球互联网的IPv4 BGP路由表包含768,385个前缀。

 

可见性的重要性

 

有一个关于全球互联网的假设,但有一些国家设置防火墙,也很难到达任何地方。但事实上,互联网流量所需的路径将根据其来源而有所不同,并且单个路由优势点可以引入不真实的路由。

如果想清楚了解互联网路由,有必要处理来自不同网络服务供应商(ISP)的许多不同服务,以获得全球可见性。

 

边界网关协议(BGP)的监控日益普及

 

了解全球互联网性能对于有效的网络性能监控(NPM)和数字体验监控(DEM)至关重要,与几年前形成鲜明对比的是,边界网关协议(BGP)监控正日益普及。

以前许多网络性能监控(NPM)供应商或者表示反对,或者忽略它的存在。

但随着云计算的迅速普及,用于构建应用和服务,提供客户数字体验,消费SaaS,以及WAN的现代化,边界网关协议(BGP)监控的必要性已经变得不可忽视。

全球连接性是任何具有竞争性数字组织的目标,这意味着这些企业还必须建立域间路由的专业知识,与内部路由策略、边界网关协议(BGP)策略和管理网络服务供应商(ISP)的复杂交互。

即便是那些对此持怀疑态度的供应商也已经转向了边界网关协议(BGP)的可见性。

 

关键能力

 

在深入研究可用的不同类型的边界网关协议(BGP)监控产品之前,所有这些产品都提供了对全球互联网路由行为的不同程度的洞察,了解寻找支持数字体验监控(DEM)用例的关键功能是有帮助的。

以下是时间序列历史记录所需的一些指标和可视化:

(1)独立的AS-PATH可视化,例如,链接到针对应用程序或服务URL的更高级别监视

•自动检测与监视与该URL的测试连接相关的所有前缀

(2)度量标准:

•前缀路径更改

•前缀可达性

•前缀更新

(3)跨层相关性

•边界网关协议(BGP)路由数据应与其他数据层时间序列相关,包括网络层路径、端到端网络性能指标(数据包丢失、延迟、抖动)和应用层指标(响应时间和页面负载)。

 

边界网关协议(BGP)监控:五种执行类型

 

但是,尽管边界网关协议(BGP)具有明确的协议定义,但“边界网关协议(BGP)监控”一词的含义可能会有所不同,具体取决于谁在提出索赔。

以下是将边界网关协议(BGP)路由数据作为“可见性”提供的五种方式:

1. 边界网关协议(BGP)可见性工具包:一些大型组织将使用独立执行边界网关协议(BGP)前缀监控的开源和商业工具。

但是,IT团队很难将这些问题用于解决应用程序和服务问题,因为它们通常作为数据源提供。

对于有意义的故障排除功能,IT团队需要集成该数据并与堆栈中的其他工具执行自己的关联。

从这些工具包中筛选数据也很困难,因为可以从全球互联网最不稳定的边缘填充路由问题,从而产生大量无用的噪音。

虽然这是技术上合法的边界网关协议(BGP)监控,但对普通IT团队来说并不是非常有用。

2.轻集成:该选项涉及将边界网关协议(BGP)路由属性数据的馈送集成到网络层路径中,以增强路径信息。

以下内容可能成为语义问题:

通过对单个边界网关协议(BGP)路由馈送进行前缀查找,可以简单地使用其所在的自治系统号码(ASN)的名称标记第3层路径中的各个节点。

但这几乎不能称为“边界网关协议(BGP)监视”或“边界网关协议(BGP)可视化”,因为它不能使组织可视化前缀或AS-PATHS。

3. 边界网关协议(BGP)流量分析:此方法通过匹配源IP和目标IP的前缀来增强流量数据,然后映射到这些前缀的边界网关协议(BGP)属性,从而导致监控从源自治系统(AS)到目标自治系统(AS)的流量指标,甚至通过自治系统(AS)传输。

毫无疑问,这是一个有趣的选择,如果组织将大量服务流量转移到全球互联网,则非常有用。但不是监控或可视化边界网关协议(BGP)路由的工作方式,而是专注于流量分析。

4.第三方开源工具:有一些外部开源工具,如RIPEStat BGPlay,一些监控产品链接到这些工具。这些优点是它们具有边界网关协议(BGP)前缀分析功能。

但缺点是不允许持续监控,这些工具主要提供快照视图,该快照视图未与产品工作流程的其余部分集成,因此对于企业而言并不是非常有用。

5.集成边界网关协议(BGP)路由监控:此选项意味着直接拉动收集的全局路由表和更新,并集成边界网关协议(BGP)前缀监控,可达性信息以及自治系统(AS)、自治系统(AS)路径、路径长度等的可视化,以及数字体验监控(DEM)的其他方面,它可以实时提供应用和服务运营可视性的洞察力。

这种方法可以为组织提供最准确的视角,提供来自全球互联网上许多点的边界网关协议(BGP)路由数据并利用智能算法。

 

BGP监控是真的吗?

 

确定组织是在查看真正的边界网关协议(BGP)监控还是不太有用的副本的快速入侵是搜索产品或供应商名称,加上“边界网关协议(BGP)”和“前缀”并比较结果。

这将很快揭示出谁能加快速度,并提出与数字体验交付相关的真实边界网关协议(BGP)问题;谁可以提供有关边界网关协议(BGP)路由和互联网的有用见解,以帮助组织理解其数字体验交付。

BGP40问

如何使用环回地址配置 BGP?

使用环回接口可确保邻居处于活动状态并且不受发生故障的硬件影响。 

默认情况下,如BGP 建立了 BGP 对等会话,它会使用在直接连接到 BGP 对等体的物理接口上 配置的 IP 地址作为源地址。发出 neighbor <ip 地址> update-source <接口> 命令以更改此行为,并配置 BGP 以告之路由器使用环回地址作为源地址建立对等会话。

当一些或所有属性应用于 BGP 中的一个邻居时,属性的首选顺序 是什么?

根据属性是应用于入站更新还是出站更新,优先级顺序有所不同。对于入站更新,优先级顺序是: 

1. route-map

2. filter-list

3. prefix-list、distribute-list

对于出站更新,优先级顺序是: 

1. filter-list

2. route-map|unsuppress MAP

3. advertise-map (条件通告)

4. 前缀列表|distribute-list

5. ORF前缀列表(前缀列表邻居发送我们)

注意:属性 prefix-list 和 distribute-list 互相排斥,只有一个命令(neighbor prefix-list 或

neighbor distribute-list)可应用于特定邻居的每个入站方向或出站方向。

show ip bgp 命令输出中的下一跳 0.0.0.0 有什么含义?

BGP 表中下一跳地址为 0.0.0.0 的网络表示该网络是通过将内部网关协议 (IGP) 重分配到 BGP 而 在本地创建的,或是通过 BGP 配置中的 network 或 aggregate 命令创建的。

有哪些众所周知的社区具有 BGP 社区属性? 

社区属性是一种可传递的可选属性,旨在对某些社区中的目标进行分组并应用某些策略(例如接受、设置优先级、重分配)。此表显示著名的BGP团体。

 

可采用哪些格式配置 BGP 社区属性?

在 Cisco IOS® 软件 12.0 版及更高版本中,可以三种不同的格式(即,十进制、十六进制和 AA:NN)配置社区NN.默认情况下, Cisco IOS使用更旧的十进制形式。要以 AA:NN,第一部分是 AS编号,并且第二部分是2字节编号,发出ip bgp-community new-format global configuration命令。

注意:BGP community属性是可以分配到一个特定前缀和通告对其他邻居的数值(任意)。尽管 社区属性可以采用十进制、十六进制或 AA:NN 格式表示,但它仍然是 32 位数字。例如,以下三个配置命令指定了社区 30:20(AS 30,20 号):

固定社区30:20 

固定社区0x1E0014 

固定社区1966100

不管您使用哪个命令,在路由器配置文件和 BGP 表中显示的社区都是 30:20。 

在启用自动汇总或禁用自动汇总这两种情况下,BGP 的行为有何不同?

自动汇总行为在各个 Cisco IOS 软件版本中均已发生变化。最初,默认为启用自动汇总。然而,对于Cisco Bug ID CSCdu81680(仅限注册用户),此行为已发生变化。在最新的Cisco IOS 中,默 认为禁用自动汇总。启用自动汇总后,它会在 BGP 网络的有类边界范围内汇总在本地创建的 BGP 网络。

默认情况下Auto-summary在旧有版本只启用。禁用自动汇总后,在本地引入到 BGP 表中的路由不会在其有类边界范围内进行汇总。如果路由表中存在子网并且满足以下三个条件,本地路由 表中的有类网络的所有子网将提示 BGP 将有类网络安装BGP表中。

●    路由表中网络的有类网络语句

●    该网络语句的有类掩码

●    已启用自动汇总

例如,如果路由表中的子网为 75.75.75.0(掩码 255.255.255.0),您在 router bgp 命令下配置

network 75.0.0.0 ,并且启用自动汇总,则 BGP会在 BGP 表中引入有类网络 75.0.0.0(掩码255.0.0.0)。

如果上述三个条件都不符合,除非在本地路由表中有完全匹配项,否则 BGP 不会在 BGP 表中安装任何条目。

注意:如果执行 BGP 的 AS不具备完全有类网络,Cisco 建议您在 router bgp 下发出 no auto-summary 命令,以禁用自动汇总。

如何验证 BGP 路由器是否宣布其 BGP 网络并将这些网络传播到 全局 BGP 网格? 

请使用这些命令为了检查IP块是否直接地宣布对连接的ISP: 

●    show  ip bgp neighbors [地址] advertised-routes 命令显示哪些消息正被发送。

●    show  ip bgp neighbors [地址] routes 命令显示哪些消息正被接收。

注意:show ip bgp neighbors [地址] advertise-routes 命令不考虑可能已应用的任何出站策略。在未来的 Cisco IOS 软件版本中,会更改命令输出以反映出站策略。如果有两个可选路径指向目标,BGP总是使用最佳路由进行通知。

为了验证 IP 块如何通过直接连接的 ISP 传播到全局 BGP 网格,请登录到 Internet 上的路由服 务器,并且在该路由服务器中寻找前缀的 BGP 条目。

何时以及如何重置 BGP 会话?

在更改 BGP 会话的入站/出站策略时清除该会话。发出 clear ip bgp x.x.x.x soft out 命令可清除BGP会话,以使出站策略更改生效。发出x.x.x.x命令的clearip bgp为了清除BGP会话带领 Inbound政策更改进入效果。如果邻居有软重新配置功能,您能发出clear ip bgp x.x.x.x软奇 incommand。如果设置了优化的边缘路由 (OER),则可以自动清除 BGP 会话。OER 自动清除入站 方向和出站方向的 BGP 会话。 

注意:在 Cisco IOS 软件 12.0 版及更高版本中,引入了一种新的 BGP 软重置增强功能。

什么是自治系统 (AS) 编号,如何获得一个自治系统编号?

AS 编号是全局唯一编号,用于标识 AS,并且使 AS 能够交换相邻 AS 之间的外部路由信息。AS是遵守一个明确定义的路由策略的相连 IP 网络组。

可用 AS 编号是有限的。因此,判断哪些站点需要唯一的 AS 编号而哪些站点不需要唯一的 AS 编 号至关重要。不要求唯一 AS 编号的站点应使用一个或多个留作专用的 AS 编号,范围在64512到

65535之间。请访问AS编号注册服务 网站获取AS编号。

BGP 路径选择标准是什么?

BGP 路径选择标准记录在  BGP 最佳路径选择算法中。

always-compare-med 与 deterministic-med 之间有何区别?

这些命令之间区别的完整说明记录在  bgp deterministic-med  命令与 bgp always-compare-med  命令 有何区别中。

内部 BGP (iBGP) 会话是否会修改下一跳?

iBGP 会话保存从 eBGP 对等体中获知的下一跳属性。这就是存在指向下一跳的内部路由重要性的 原因。否则,将无法到达 BGP 路由。

为了确保可以到达 eBGP 下一跳,请将下一跳所属的网络包 含到 IGP 中,或者发出 next-hop-self neighbor 命令,以强制路由器通告自己(而不是外部对等体)作为下一跳。

联盟之间的外部 BGP (eBGP) 会话是否会修改下一跳?

不,联盟子 AS 之间的 eBGP 会话不会修改下一跳属性。所有 iBGP 规则仍然适用,从而使整个 AS 作为一个实体运行。度量值和本地首选项值在联盟 eBGP对等体中仍保持不变。

在外部 BGP (eBGP) 会话中,哪个 IP 地址会作为下一跳发送?

在 eBGP 对等互联中,下一跳是宣布路由的邻居的 IP 地址。然而,当在多路访问介质(例如,以太网或帧中继)上宣布路由时,下一跳通常是连接到该介质的路由器接口的 IP 地址,也是路由的源发地。

路由反射器是否会更改反射的前缀的下一跳属性? 

默认情况下,当前缀由路由反射器反射时,不会更改下一跳属性。然而,您可以发出 neighbor next-hop-self 命令,以更改从eBGP对等体反射到任何路由反射器客户端的前缀的下一跳的属性。

怎样才能仅在我失去与我的主ISP连接时才有条件地向另一个ISP宣布前缀 ? 

默认情况下,BGP 会向外部对等体宣布其 BGP 表中的路由。BGP 条件宣布功能提供对路由宣布的 其他控制,具体取决于 BGP 表中是否存在其他前缀。通常,会传播路由,而不管是否存在不同的 路径。BGP 条件宣布功能使用non-exist-map和advertise-map configuration 命令通过路由前缀跟踪路由。如果 non-exist-map 命令中不存在路由前缀,则宣布 advertise-map 命令指定的路由。

路由器中有多大的内存空间才能从 ISP 接收完整的 BGP 路由表? 

存储 BGP 路由所需的内存量取决于诸多因素,例如路由器、可用的可选路径的数量、路由衰减、 社区、配置的最大路径数量、BGP 属性以及 VPN 配置。不了解这些参数,计算存储一定数量的 BGP 路由所需的内存量是很困难的。Cisco 通常建议路由器的 RAM 最小为 512 MB,以存储一个 BGP 对等体的完整全局 BGP 路由表。然而,了解减少内存消耗的方法以及在无需接收完整的 Internet 路由表情况下实现最佳路由的方法至关重要。

配置 BGP 对等组有哪些优点? 

指定 BGP 对等组的主要优点是,减少生成更新使用的系统资源量(CPU 和内存)。还简化了 BGP 配置,因为它只允许路由表被检查一次,并将更新复制到所有其他同步对等体组成员中。这样可以 显著降低负载,具体取决于对等组成员的数量、表中前缀的数量、通告的前缀的数量。Cisco 建议 您将对等体与相同的出站宣布策略组合到一起。

为什么两次看到同一个路由从BGP的同一对等体? 

例如: 

两个条目被看到的归结于配置的软重新配置。非限定的路径和已修改路径,在前缀的路径表里取决于Inbound政策,如果允许,存储。

什么是同步?它对IP路由表中安装的BGP路由有何影响?

如果您的 AS 将来自另一个 AS 的流量传递给第三个 AS,则在您的 AS 中的所有路由器均通过 IGP 了解该路由之前,BGP 不应通告路由。

BGP 在 IGP 在 AS 内部传播路由之前将一直处于等待状态,之后将该路由通告给外部对等体。如果已启用同步的 BGP 路由器无法验证其 IGP 中存在哪些路 由,则该路由器无法将 iBGP 学到的路由安装到其路由表中。在 router bgp 下发出 no synchronization 命令可禁用同步。这可防止 BGP 验证 IGP 中的 iBGP 路由。

如何在向外部 BGP (eBGP) 邻居发出通知的前缀上设置多出口标 识 (MED) 值,以与内部网关协议 (IGP) 的下一跳度量值相匹配? 

set metric-type internal route-map 配置命令使 BGP 通告与 IGP 度量值(与路由的下一跳相关联)相对应的 MED。此命令在 Cisco IOS 软件 10.3 版及更高版本中可用。

什么是默认 BGP ConnectRetry 计时器,可以调整 BGP ConnectRetry 计时器吗? 

默认 BGP ConnectRetry 计时器是120秒。仅在此时间后,BGP进程才进行检查,以判断是否建立被动的TCP会话。如果没有建立被动TCP会话,BGP进程就会启动新的激活TCP,尝试连接到远程BGP扬声器。在 ConnectRetry 计时器此空闲的 120 秒时间内,远程BGP对等体可以与其建立 BGP会话。现在,不能改变 Cisco IOS ConnectRetry 计时器的默认值 120 秒。

在 show ip bgp 命令输出中,r RIB-Failure 有什么含义?

当 BGP 尝试将 bestpath 前缀安装到路由信息库 (RIB)(例如,IP 路由表)中时,RIB 可能会因下列任一原因而拒绝BGP路由: 

●    有较好管理距离的路由已存在于 IGP 中。例如,如果静态路由已经存在于 IP 路由表中。

●    内存故障。

●    VPN 路由/转发 (VRF) 中路由的数量超出在 VRF 实例下配置的路由限额。

在这类情况下,拒绝对于这些原因的前缀由r show ip bgp命令输出的RIB识别和通告给对等体。此功能最先在 Cisco IOS 软件版本 12.2(08.05)T 中可用。

如何将内部 BGP (iBGP)(已知默认路由 (0.0.0.0/0))路由重分配到 EIGRP/OSPF/IS-IS?

将 iBGP 路由重分配到内部网关协议 (IGP)(增强型内部网关路由协议/开放最短路径优先/中间系统对中间系统 (EIGRP/OSPF/IS-IS)),可能会导致自治系统中的路由循环,不建议这样做。

默认情况下,禁用将 iBGP 重分配到 IGP。发出 bgp redistribute-internal  命令可启用将 iBGP 路由重分配到 IGP。必须首先采取预防措施,然后才能使用 route-maps 将特定路由重分配到IGP。

用于将 iBGP 学到的默认路由 0.0.0.0/0 重分配到 EIGRP  的配置的示例显示在下面的输出中。配置 OSPF/IS-IS 的过程与下面的输出类似。 

注意:在您配置bgp后请重新分配clear ip bgp命令在本地路由表里被输入以便清除所有路由的内部命令,保证。

如何过滤向BGP邻居发出通告的所有IP路由(默认路由

0.0.0.0/0 除外)? 

如果对同一个 bgp 邻居同时使用 Inbound filter-list、distribute-list、prefix-list 和 route-map,则可以 过滤特定路由。下面是执行顺序:

1. Filter-list

2. Router-map

3. Distribute-list(或)prefix-list

如何排除 Protocol not in this image 错误? 

获得的错误消息原因是,因为在路由器运行的Cisco IOS版本不支持BGP功能。为了解决此错误,请升级Cisco IOS对一个Cisco IOS版本该支持BGP。

调试输出中显示“BGP:timer-wheel running slow by 1 ticks”?

仅当对路由器启用 BGP 调试后,此消息才会显示。它仅仅是信息性消息,而不是错误信息。此信 息性消息与 BGP 内部计时器相关。可以通过发出 undebug all 命令来忽略此消息。

是否可以跟踪接口以及更改路由可用性? 

是,可以通过增强的对象跟踪功能来跟踪接口和路由可用性的状态变化。

IP RIB更新如何分配内存?

IP RIB 更新分配前缀,并且以区块的形式保存属性。无法释放整个块区,除非先释放块区中的各个元素。如果知道了更多的路由,则使用区块中的那些自由元素。

什么是命令发现IPv6 BGP邻居?

summary命令show  bgp ipv6的单播用于发现IPv6 BGP邻居

为什么有没有统计信息结果,当我使用debug bfd事件和debug bfd信息包命令时? 

它是正常行为,当bfd hello在子最小秒钟发送,并且,万一运行该的调试,路由器不能处理。因此,只有当飘荡发生时, bfd消息在调试被看到。这是debug bfd命令的目的:

debug bfd事件

此命令启用BFD事件记录日志所有当前配置的BFD会话的。它捕获BFD事件类似会话状态更改,远程终端触发的由本地CLI或会话配置配置更改。

debug bfd数据包

此命令启用BFD数据包记录日志所有当前配置的BFD会话的。它只获取被交换的BFD Hello数据包,当有bfd配置更改类似更改发生的会话状态时。正常BFD数据包没有由此命令捕获。

在新的BGP邻居最大前缀配置后,路由器是否必须被重新启动?

如果前缀新的最大更加大当前最大数量,那里是软没有的需要/困难清除BGP会话,并且重新加载没有要求。

当AS路径加在前面设置时, AS编号将被加在前面被添附到AS路径,并且,当更新离开往eBGP对 等体时的AS,本地AS编号被加在前面到完整AS路径。 

但是,您能容易地证实prending AS的路径是否执行与这些选项之一: 

1. 检查在对等体设备的BGP AS路径属性。这是其中一个最简单的方法证实是否路由器执行加在前面AS的PATH。

2. 运行在BGP更新的调试(在出站方向)然后检查加在前面。当您调试BGP更新时,请使用

3. 另一个选项是采取退出接口的一数据包捕获和看到什么更新在电线被发送。

如何neighbor soft-reconfiguration inbound命令作用?

neighbor soft-reconfiguration inbound命令造成路由器储存所有已接收(入站)路由策略更新,不用修 改,例如,一个重复的表在每对等体的内存存储。此方法是内存密集的和不推荐的,除非绝对必要。参考的软重置增强为了达到软重置,不用使用额外的内存。

什么执行%BGP-3-NOTIFICATION *A.B.C.D6/0 () 0平均值?

当有另一BGP会话已经建立,此消息出现。收到停止消息的路由器设法传送BGP开放信息对另一个 IP的同一对等体。此消息是装饰性的并且归结于误配置。

什么执行%IPRT-3-ROUTEINSERTERROR 错误消息平均值的? 

此错误消息表明没有适应足够的内存BGP前缀,了解从邻居。

与Cisco IOS XR的GSR是否支持VPLS-BGP自动发现功能作为路 由反射器? 

是,与Cisco IOS XR的GSR支持VPLS-BGP自动发现的路由反射器功能。

如何调试特定的VRF的路由在Cisco IOS XR环境?

请使用调试bgp Keepalive [VRF [vrf-name|所有]] vpnv4单播命令为了调试一给的VRF的路由在 Cisco IOS XR环境。以下是输出示例:

当路由在BGP被注入通过redistribute命令或网络命令时有何区别?

当您使用IGP的再分配到BGP通告路由时,然后没有需要单个指定所有子网的网络声明。并且,当路由从所有其他路由协议得到到BGP表由再分配时,原始属性()并且,当您指定网络命令然后时它 是Internal/IGP (i)。在路由选择时,最低的源代码更喜欢(IGP<EGP<Incomplete)。

如何验证转发汇总信息的Layer4?

为了查看关于转发的Layer4的汇总信息,使用show mls cef summary命令。例如:

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇