CCIE-10-IPv6-TS

目录

  • 实验条件
    • 网络拓朴
  • 环境配置
  • 开始Troubleshooting
    • 问题1. R25和R22邻居关系没有建立
    • 问题2. 去往R25网络的下一跳地址不存在、不可用
    • 问题3. 去往目标网络的下一跳地址不存在、不可用

实验条件

网络拓朴

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

环境配置

在我的资源里可以下载(就在这篇文章的开头也可以下载)
在这里插入图片描述

开始Troubleshooting

检查所有接口的配置

Phone#show ipv int br
Ethernet0/0            [up/up]FE80::A8BB:CCFF:FE02:30002001:CC1E:BEEF:25::100
Ethernet0/1            [administratively down/down]unassigned
Ethernet0/2            [administratively down/down]unassigned
Ethernet0/3            [administratively down/down]unassignedR25#show ipv int br
Ethernet0/0            [up/up]FE80::A8BB:CCFF:FE02:20002001:CC1E:BEEF:25::1
Ethernet0/1            [up/up]FE80::A8BB:CCFF:FE02:20102001:CC1E:BEEF:2225::18
Loopback0              [up/up]FE80::A8BB:CCFF:FE02:20002001:CC1E:BEEF::2225
R25#R22#show ipv int br
Ethernet0/0            [up/up]unassigned
Ethernet0/1            [up/up]FE80::A8BB:CCFF:FE01:F0102001:CC1E:BEEF:2225::17
Ethernet1/0            [up/up]FE80::A8BB:CCFF:FE01:F0012001:CC1E:ABCD:2622::13

其它的两台路由器没有密码,应该是不需要调整的,
直接ping Server4的IPv6地址

Phone#ping 2001:BEEF:CAFE::26
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:BEEF:CAFE::26, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
Phone#traceroute 2001:BEEF:CAFE::26
Type escape sequence to abort.
Tracing the route to 2001:BEEF:CAFE::261 2001:CC1E:BEEF:25::1 !U  !U  !U 
Phone#

ping包出现U表示目标不可达的意思, 就是路由器在查询路由表的时候没有目标网络的路由表,而且也没有默认路由,这时就回给源路由器一个目标不可达,源路由器就显示一个U的标记;

数据包到达了网关R25之后就没有下一跳的路由了,查询R25的路由相关配置

R25#show ipv route      
IPv6 Routing Table - default - 6 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static routeB - BGP, HA - Home Agent, MR - Mobile Router, R - RIPH - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interareaIS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMOND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - RedirectRL - RPL, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2la - LISP alt, lr - LISP site-registrations, ld - LISP dyn-eidlA - LISP away, a - Application
LC  2001:CC1E:BEEF::2225/128 [0/0]via Loopback0, receive
C   2001:CC1E:BEEF:25::/64 [0/0]via Ethernet0/0, directly connected
L   2001:CC1E:BEEF:25::1/128 [0/0]via Ethernet0/0, receive
C   2001:CC1E:BEEF:2225::/64 [0/0]via Ethernet0/1, directly connected
L   2001:CC1E:BEEF:2225::18/128 [0/0]via Ethernet0/1, receive
L   FF00::/8 [0/0]via Null0, receive
R25#show run | s router          
router bgp 65101bgp log-neighbor-changesneighbor 123.1.2.17 remote-as 12345!address-family ipv4neighbor 123.1.2.17 activateexit-address-family!address-family ipv6network 2001:CC1E:BEEF::2225/128network 2001:CC1E:BEEF:25::/64neighbor 123.1.2.17 activateexit-address-family

没有目标的路由信息,路由协议采用的是BGP协议, 查看一下BGP邻居状态情况

R25#show ip bgp summary
BGP router identifier 202.65.1.5, local AS number 65101
BGP table version is 1, main routing table version 1Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
123.1.2.17      4        12345       0       0        1    0    0 never    Idle

发现R25和R22的邻居关系没有起来、查询R22的路由表信息,发现在R22上有和R26的邻居关系且有目标网络的路由信息且能ping通到目标网络。

R22#show ipv route
IPv6 Routing Table - default - 6 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static routeB - BGP, HA - Home Agent, MR - Mobile Router, R - RIPH - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interareaIS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMOND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - RedirectRL - RPL, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2la - LISP alt, lr - LISP site-registrations, ld - LISP dyn-eidlA - LISP away, a - Application
B   2001:BEEF:CAFE::/64 [20/0]via FE80::A8BB:CCFF:FE02:10, Ethernet1/0
C   2001:CC1E:ABCD:2622::/64 [0/0]via Ethernet1/0, directly connected
L   2001:CC1E:ABCD:2622::13/128 [0/0]via Ethernet1/0, receive
C   2001:CC1E:BEEF:2225::/64 [0/0]via Ethernet0/1, directly connected
L   2001:CC1E:BEEF:2225::17/128 [0/0]via Ethernet0/1, receive
L   FF00::/8 [0/0]via Null0, receive
R22#show ip bgp summary
BGP router identifier 134.22.22.22, local AS number 12345
BGP table version is 6, main routing table version 6
5 network entries using 720 bytes of memory
5 path entries using 420 bytes of memory
2/2 BGP path/bestpath attribute entries using 320 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1484 total bytes of memory
BGP activity 6/0 prefixes, 6/0 paths, scan interval 60 secsNeighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
123.1.2.18      4        65101       0       0        1    0    0 never    Idle (Admin)
123.3.3.3       4        12345       0       0        1    0    0 never    Idle
123.5.5.5       4        12345       0       0        1    0    0 never    Idle
134.21.21.21    4        12345       0       0        1    0    0 never    Idle
134.56.78.14    4        10001      22      19        6    0    0 00:15:40        5
R22#ping 2001:BEEF:CAFE::26
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:BEEF:CAFE::26, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
R22#

那么只需要解决R22和R25的邻居关系且把目标的网络让R25接收就可以达到我们的目标。

问题1. R25和R22邻居关系没有建立

之前看了R25的BGP配置没有发现异常、继续检查R22的BGP配置

R22#show run | s router bgp
router bgp 12345bgp router-id 134.22.22.22bgp log-neighbor-changesneighbor PEER peer-groupneighbor PEER remote-as 12345neighbor 2001:CC1E:ABCD:2622::12 remote-as 10001neighbor 123.1.2.18 remote-as 65101neighbor 123.1.2.18 shutdownneighbor 123.3.3.3 peer-group PEERneighbor 123.5.5.5 peer-group PEERneighbor 134.21.21.21 peer-group PEERneighbor 134.56.78.14 remote-as 10001!address-family ipv4neighbor PEER next-hop-selfno neighbor 2001:CC1E:ABCD:2622::12 activateneighbor 123.1.2.18 activateneighbor 123.3.3.3 activateneighbor 123.5.5.5 activateneighbor 134.21.21.21 activateneighbor 134.56.78.14 activateneighbor 134.56.78.14 route-map MED outexit-address-family!        address-family ipv6neighbor 2001:CC1E:ABCD:2622::12 activateneighbor 123.1.2.18 activateneighbor 123.1.2.18 route-map NEXT-HOP outexit-address-family
R22#

发现邻居关系被 Shutdown了,no shutdown就可以了


R22#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R22(config)#router bgp 12345
R22(config-router)#no neighbor 123.1.2.18 shutdown
R22(config-router)#
%BGP-5-ADJCHANGE: neighbor 123.1.2.18 Up 
R22(config-router)#do show ip bgp summary
BGP router identifier 134.22.22.22, local AS number 12345
BGP table version is 6, main routing table version 6
5 network entries using 720 bytes of memory
5 path entries using 420 bytes of memory
2/2 BGP path/bestpath attribute entries using 320 bytes of memory
2 BGP AS-PATH entries using 48 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1508 total bytes of memory
BGP activity 8/0 prefixes, 8/0 paths, scan interval 60 secsNeighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
123.1.2.18      4        65101       6       8        6    0    0 00:00:10        0
123.3.3.3       4        12345       0       0        1    0    0 never    Idle
123.5.5.5       4        12345       0       0        1    0    0 never    Idle
134.21.21.21    4        12345       0       0        1    0    0 never    Idle
134.56.78.14    4        10001      27      25        6    0    0 00:20:47        5
R22(config-router)#

发现R22和R25的邻居关系已经正常,查看BGP路由信息

R22(config-router)#do show bgp ipv6 unicast        
BGP table version is 2, local router ID is 134.22.22.22
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not foundNetwork          Next Hop            Metric LocPrf Weight Path*>   2001:BEEF:CAFE::/642001:CC1E:ABCD:2622::120 10001 i*    2001:CC1E:BEEF::2225/128::FFFF:123.1.2.180             0 65101 i*    2001:CC1E:BEEF:25::/64::FFFF:123.1.2.180             0 65101 i
R25#show bgp ipv6 unicast 
BGP table version is 3, local router ID is 202.65.1.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not foundNetwork          Next Hop            Metric LocPrf Weight Path*    2001:BEEF:CAFE::/64::FFFF:123.1.2.170 12345 10001 i*>   2001:CC1E:BEEF::2225/128::                       0         32768 i*>   2001:CC1E:BEEF:25::/64::                       0         32768 i
R25#

问题2. 去往R25网络的下一跳地址不存在、不可用

修改去往R25网络的下一跳地址,查询到R25上有配置了一个route-map 下一跳地址是R25的E0/1

R25#show run | s router
router bgp 65101bgp log-neighbor-changesneighbor 123.1.2.17 remote-as 12345!address-family ipv4neighbor 123.1.2.17 activateexit-address-family!address-family ipv6network 2001:CC1E:BEEF::2225/128network 2001:CC1E:BEEF:25::/64neighbor 123.1.2.17 activateexit-address-family
R25#show route-map
route-map NEXT-HOP, permit, sequence 10Match clauses:Set clauses:ipv6 next-hop 2001:CC1E:BEEF:2225::18Policy routing matches: 0 packets, 0 bytes
R25#

next-hop 2001:CC1E:BEEF:2225::18 这个IP地址是R25的 e0/1口,那说明这个route-map是为了修改BGP邻居访问network 2001:CC1E:BEEF::2225/128network 2001:CC1E:BEEF:25::/64时指定下一跳为自己的e0/1口,那说明这个route-map应该配置在out的方向上

R25#conf t
R25(config)#router bgp 65101
R25(config-router-af)#address-family ipv6
R25(config-router-af)#neighbor 123.1.2.17 route-map NEXT-HOP out
R25(config-router-af)#do show run | s router bgp
router bgp 65101bgp log-neighbor-changesneighbor 123.1.2.17 remote-as 12345!address-family ipv4neighbor 123.1.2.17 activateexit-address-family!address-family ipv6network 2001:CC1E:BEEF::2225/128network 2001:CC1E:BEEF:25::/64neighbor 123.1.2.17 activateneighbor 123.1.2.17 route-map NEXT-HOP outexit-address-family
R25(config-router-af)#

在R22的路由器上,查询BGP表

R22#show bgp ipv6 unicast
BGP table version is 4, local router ID is 134.22.22.22
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not foundNetwork          Next Hop            Metric LocPrf Weight Path*>   2001:BEEF:CAFE::/642001:CC1E:ABCD:2622::120 10001 i*>   2001:CC1E:BEEF::2225/1282001:CC1E:BEEF:2225::180             0 65101 i*>   2001:CC1E:BEEF:25::/642001:CC1E:BEEF:2225::180             0 65101 i
R22#show ipv route
IPv6 Routing Table - default - 8 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static routeB - BGP, HA - Home Agent, MR - Mobile Router, R - RIPH - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interareaIS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMOND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - RedirectRL - RPL, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2la - LISP alt, lr - LISP site-registrations, ld - LISP dyn-eidlA - LISP away, a - Application
B   2001:BEEF:CAFE::/64 [20/0]via FE80::A8BB:CCFF:FE02:10, Ethernet1/0
C   2001:CC1E:ABCD:2622::/64 [0/0]via Ethernet1/0, directly connected
L   2001:CC1E:ABCD:2622::13/128 [0/0]via Ethernet1/0, receive
B   2001:CC1E:BEEF::2225/128 [20/0]via FE80::A8BB:CCFF:FE02:2010, Ethernet0/1
B   2001:CC1E:BEEF:25::/64 [20/0]via FE80::A8BB:CCFF:FE02:2010, Ethernet0/1
C   2001:CC1E:BEEF:2225::/64 [0/0]via Ethernet0/1, directly connected
L   2001:CC1E:BEEF:2225::17/128 [0/0]via Ethernet0/1, receive
L   FF00::/8 [0/0]via Null0, receive

下一跳已经正常,且已经加进路由表中

问题3. 去往目标网络的下一跳地址不存在、不可用

修改去往目标网络的下一跳地址,查询到R22上的BGP有配置了一个route-map NEXT-HOP

R22#show run | s router bgp
router bgp 12345bgp router-id 134.22.22.22bgp log-neighbor-changes
......!address-family ipv6......neighbor 123.1.2.18 route-map NEXT-HOP outexit-address-family
R22#show route-map NEXT-HOP
route-map NEXT-HOP, permit, sequence 10Match clauses:Set clauses:Policy routing matches: 0 packets, 0 bytes
R22#

却是什么都没有配置、这导致R25去往目标网络时的下跳变成了::FFFF:123.1.2.17这个无效地址,因此配置一下set next-hop解决这个问题(ipv4建邻居,传ipv6路由和ipv6建邻居,传ipv4路由的下一跳都会出现问题需要手动修改)

R22#conf t
R22(config)#route-map NEXT-HOP permit 10
R22(config-route-map)#set ipv next-hop 2001:CC1E:BEEF:2225::17
R22(config-route-map)#do show route-map NEXT-HOP
route-map NEXT-HOP, permit, sequence 10Match clauses:Set clauses:ipv6 next-hop 2001:CC1E:BEEF:2225::17Policy routing matches: 0 packets, 0 bytes
R22(config-route-map)#

在R25上查看BGP路由表

R25#show bgp ipv6 unicast        
BGP table version is 4, local router ID is 202.65.1.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not foundNetwork          Next Hop            Metric LocPrf Weight Path*>   2001:BEEF:CAFE::/642001:CC1E:BEEF:2225::170 12345 10001 i*>   2001:CC1E:BEEF::2225/128::                       0         32768 i*>   2001:CC1E:BEEF:25::/64::                       0         32768 i
R25#show ipv route 
IPv6 Routing Table - default - 7 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static routeB - BGP, HA - Home Agent, MR - Mobile Router, R - RIPH - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interareaIS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMOND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - RedirectRL - RPL, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2la - LISP alt, lr - LISP site-registrations, ld - LISP dyn-eidlA - LISP away, a - Application
B   2001:BEEF:CAFE::/64 [20/0]via FE80::A8BB:CCFF:FE01:F010, Ethernet0/1
LC  2001:CC1E:BEEF::2225/128 [0/0]via Loopback0, receive
C   2001:CC1E:BEEF:25::/64 [0/0]via Ethernet0/0, directly connected
L   2001:CC1E:BEEF:25::1/128 [0/0]via Ethernet0/0, receive
C   2001:CC1E:BEEF:2225::/64 [0/0]via Ethernet0/1, directly connected
L   2001:CC1E:BEEF:2225::18/128 [0/0]via Ethernet0/1, receive
L   FF00::/8 [0/0]via Null0, receive
R25#

去往目标网络的下一跳已经正常,现在测试一下网络是否连通

Phone#ping 2001:BEEF:CAFE::26
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:BEEF:CAFE::26, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Phone#traceroute 2001:BEEF:CAFE::26
Type escape sequence to abort.
Tracing the route to 2001:BEEF:CAFE::261 2001:CC1E:BEEF:25::1 0 msec 0 msec 1 msec2 2001:CC1E:BEEF:2225::17 0 msec 0 msec 1 msec3 2001:CC1E:ABCD:2622::12 0 msec 1 msec 0 msec4 2001:BEEF:CAFE::26 1 msec 1 msec 0 msec
Phone#

网络通了,目标达成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/599927.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【leetcode】动态规划::前缀和

标题:【leetcode】前缀和 水墨不写bug 正文开始: (一)简单前缀和 描述 给定一个长度为n的数组a1​,a2​,....an​. 接下来有q次查询, 每次查询有两个参数l, r. 对于每个询问, 请输出al​al1​....ar​ 输入描述: 第一…

yarn集群部署

yarn集群部署案例 我们来基于一个案例讲解yarn集群部署 我们要部署yarn集群,需要分别部署HDFS文件系统及YARN集群 Hadoop HDFS分布式文件系统,我们会启动: NameNode进程作为管理节点DataNode进程作为工作节点SecondaryNamenode作为辅助 同…

微信小程序实现滚动标签

使用scroll-view标签可实现组件滚动标签 1、list中 list.wxml代码如下: <!--pages/list/list.wxml--> <navigation-bartitle"小程序" back"{{false}}"color"black" background"#FFF"></navigation-bar><scroll-…

Kibana管理ES生命周期

希望通过Kibana界面管理ES索引的生命周期 版本&#xff1a;7.15.2 创建索引模板 创建索引模板方便匹配索引&#xff0c;对匹配到的一批索引采用同一套生命周期管理策略&#xff0c;例如开发环境的所有索引以dev-开头&#xff0c;可以创建样式为dev-*的索引模板以匹配开发环境…

13 Python进阶:pip及其他常用模块

pip 是 Python 包管理工具&#xff0c;它提供了对 Python 包的查找、下载、安装、卸载的功能。 包地址&#xff1a; https://pypi.org/ 最新的 Python 版本已经预装了 pip。 pip 各种命令 查看是否已经安装 pip 可以使用以下命令&#xff1a; pip --version下载安装包使用…

42.基于SpringBoot + Vue实现的前后端分离-服装销售平台管理系统(项目 + 论文)

项目介绍 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的交换和信息流通显得特别重要。因此&#xff0c;开发合适的服装销售平台成为企业必然要走的一步棋。开发合适的服…

医疗器械FDA | 常见的网络安全材料发补问题都有哪些?

FDA网络安全资料发补咨询点此​​获取https://work.weixin.qq.com/ca/cawcde5ee29d239046 ————————--- 01 安全文档编写问题 FDA网络安全文档编写格式、内容、可读性等未满足官方要求&#xff0c;则将可能被要求发补整改编写后的文档。 02 安全管理问题 a. 网络安…

websocket实践

文章目录 背景WebSocket API使用场景优点 实例步骤 1: 设置 WebSocket 服务器步骤 2: 创建客户端 HTML 页面步骤 3: 测试 WebSocket 通信注意事项实际操作 参考资料 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它使得浏览器和服务器只需建立一个连接&#xff0c;…

怎么保证缓存与数据库的最终一致性?

目录 零.读数据的标准操作 一.Cache aside Patten--旁路模式 二.Read/Write Through Pattern--读写穿透 三.Write Back Pattern--写回 四.运用canal监听mysql的binlog实现缓存同步 零.读数据的标准操作 这里想说的是不管哪种模式读操作都是一样的&#xff0c;这是一种统一…

Linux安装最新版Docker完整教程

参考官网地址&#xff1a;Install Docker Engine on CentOS | Docker Docs 一、安装前准备工作 1.1 查看服务器系统版本以及内核版本 cat /etc/redhat-release1.2 查看服务器内核版本 uname -r这里我们使用的是CentOS 7.6 系统&#xff0c;内核版本为3.10 1.3 安装依赖包 …

每日OJ题_两个数组dp①_力扣1143. 最长公共子序列

目录 力扣1143. 最长公共子序列 解析代码 力扣1143. 最长公共子序列 1143. 最长公共子序列 难度 中等 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样…

能不能换DB吗?--抽象工厂模式

1.1 就不能不换DB吗&#xff1f; 都是换数据库惹的祸。 "我们团队前段时间用.net的C#来开发好一个项目&#xff0c;是给一家企业做的电子商务网站&#xff0c;是用SQL Server作为数据库的&#xff0c;应该说上线后除了开始有些小问题&#xff0c;基本都还可以。而后&#…