原因见上去,阿里云不支持VPC中转流量,VPC1和VPC2都在国内,VPC3在香港,如果按阿里云的做法,必须付费2次国际隧道的钱,才可以实现三个VPC互通。明显很浪费钱。

所以我们只能在三个VPC,各创建一个ROS,分别建立隧道,并起OSPF,这三个ROS的设置有几个要点:

以下所有的设置,前提三个VPC已经在阿里云上创建好VPC高速通道,同时在各自的路由表已经把对端的IP,发送到到VPC路由器的端口上去(这句话大家好好体会下,在阿里云实施高速通道的时候)

1、R1:到R2的局域网IP,默认路由器必须强制指到自己的默认网关,一般是x.x.x.253,否则后面OSPF无法实施,会一会起一会断;

2、R2:到R1和R3的局域网IP,默认路由器必须强制指到自己的默认网关,一般是x.x.x.253,否则后面OSPF无法实施,会一会起一会断;

3、R3:到R2局域网IP,默认路由器必须强制指到自己的默认网关,一般是x.x.x.253,否则后面OSPF无法实施,会一会起一会断;

4、R1和R2之间起隧道IP,R2和R3之间也起隧道IP,两两互联

5、宣告R1,R2,R3的局域网IP以及隧道IP进OSPF

6、R1,R2,R3都必须设置nat,伪装为 ether1的出口IP,否则无法访问ROS下面的其他ECS服务器。

现在引入一个新的问题,我这个时候在VPC1的R1局域网下,再创建一个ROS,R0,要求使用静态路由表的方式去访问,R1,R2,R3。

所以我们在R0上添加路由表,设定目的地址为R3的局域网IP段172.31.47.225/20,下一跳为R1的IP 10.100.0.146。

这个时候出现问题了!从R0上去ping 172.31.47.225,发现在R1的接口上抓包,死活看不到icmp的包过来!!!

说明了一个问题!!!

虽然在阿里云上,是同一个IP段,在同一个安全组,但是你的数据包,发送的目的地址172.31.47.225并不属于VPC1也不属于VPC2,那么阿里云认为你传递的不是阿里云ECS范围的IP包,阿里云会检查你数据包的目的地址,而直接丢弃!!!!

所以,你在R1的接口,根本抓不到任何icmp的包文过来。而是被阿里云直接丢弃了,或者是直接发给默认网关了(因为tracert出来全是*,我也不知道阿里云把数据发到哪去了),根本不会按照你的ROS的静态路由表的下一跳走!!!

所以,唯一的解决方案就是:

1、在R0和R1之间建立一个IP隧道,让发往172.31.47.225的包,下一跳发送到R1的隧道IP去;

2、一定要做nat伪装,所有的数据,必须伪装成R0的隧道IP去访问,OSPF的网络!否则,数据回包无法回到R0来!

3、在R1的OSPF宣告一定要把新加的隧道IP加进去,否则R2,R3的数据回不到R0来,想想为什么?因为没有R0和R1之间的隧道路由!

我提了工单,阿里云的工单回复,其实还有花大钱解决的方案:

工程师 69361 号 : 您好,根据您的场景,这边联系后端核实了,是不支持vpc传递互通的,您还需要在账号1 杭州和账号2的香港做跨账号vpc互通或者使用云企业网才可以的,谢谢

都是要钱滴。。。。。。不在乎钱的主,可以忽略这篇文章。

阿里云线上ROS静态路由转发,有大坑。的更多相关文章

  1. 关于 tp5.0 阿里云 oss 上传文件操作

    tp5.0 结合阿里云oss 上传文件 1.引入 oss 的空间( composer install 跑下第三方拓展包及核心代码包) 备注:本地测试无误,放到线上有问题  应该是移动后的路劲(相对于服 ...

  2. 在阿里云服务器上配置CentOS+Nginx+Python+Flask环境

    在阿里云服务器上配置CentOS+Nginx+Python+Flask环境 项目运行环境 阿里云(单核CPU, 1G内存, Ubuntu 14.04 x64 带宽1Mbps), 具体购买和ssh连接阿 ...

  3. 阿里云主机上安装jdk

    今天继续安装jdk到阿里云服务上,大家要看一下阿里云是32位还是64位的,如果是32位下载32位的包,如果是64位的下载64位的包 我的就是64位的,开始我还不知道是怎么区分32/64位的,原来X64 ...

  4. 阿里云vps上mysql挂掉的解决办法

    阿里云vps上mysql挂掉的解决办法 4条回复 用阿里云的vps用作blog服务器,系统很稳定,已经100多天一直运行正常,大概从上个月开始发现blog的mysql会有时挂掉,会收到短信通知.之前没 ...

  5. 阿里云服务器上安装mysql的心路历程(博友们进来看看哦)

    在阿里云花了100买了一台云服务器,配置如下: CPU: 1核 内存: 512MB 数据盘: 0G 带宽: 1Mbps 阿里云服务器安装mysql搞得我想吐血,搞了一个多星期,现在才搞好,而且,还有许 ...

  6. 阿里云容器服务--配置自定义路由服务应对DDOS攻击

    阿里云容器服务--配置自定义路由服务应对DDOS攻击 摘要: 容器服务中,除了slb之外,自定义路由服务(基于HAProxy)也可以作为DDOS攻击的一道防线,本文阐述了几种方法来应对普通规模的DDO ...

  7. 关于阿里云ESC上go语言项目编译6l: running gcc failed: Cannot allocate memory

    (1)前段时间将自己的阿里云服务器上的系统由centos 6.5换为了ubuntu 14,其他的硬件配置都没有发生改变,将服务器上的数据恢复并且重新安装了golang的编译环境后,发现使用go bui ...

  8. 在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问--解决办法

    在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问的原因是阿里云平台为了安全设置了安全组策略,必须我们授权的端口,其他计算机才能通过http访问 解决办法:(这里以阿里轻量应用服务器为 ...

  9. jdbc连接阿里云服务器上的MySQL数据库 及 数据库IP限制

    问题1:Jdbc 如何连接阿里云服务器上的MySQL数据库? 解决: 上截图: 其中IP是阿里云服务器的公网IP地址. 问题2:   刚开始接手开发的时候,使用Navicat连接阿里云服务器上的数据后 ...

随机推荐

  1. UVA11077 Find the Permutations

    题意 PDF 给出1~n的一个排列,可以通过一系列的交换变成{1,2,-,n}.比如{2,1,4,3}需要两次交换.给定n和k,统计有多少个排列至少需要k次交换才能变成{1,2,-,n}. 分析 将给 ...

  2. day11hadoop高可用和Hive

    PS:视频一直就是在演示   高可用(比较偏运维一点) PS:Active是对外提供服务的,standBy是从属备用的:但是他们是怎样保证同步的数据的呢?一个运行中zookeeper上的第三方那个工具 ...

  3. 日志信息log

    #include<syslog.h> //建立一个到系统日志的连接 //ident参数指向字符串,syslog()输出的每条信息都会包含这个字符串,这个参数的取值通常是程序名 //log_ ...

  4. 常用C语言time时间函数

    常见的时间函数有time( ).ctime( ).gmtime( ).localtime( ).mktime( ).asctime( ).difftime( ).gettimeofday( ).set ...

  5. windows知识

    文章目录 系统 修改远程桌面的端口号 IE选项中reset web setting不可用(灰色)的解决办法 重装系统后,修改默认程序安装目录.我的文档.桌面 路径 Keep network addre ...

  6. 有用的proc文件系统文件

    1. /proc/iomem I/O内存映射 2. /proc/meminfo 系统内存信息

  7. 高级openg 混合,一个完整程序

    1.当片段着色器处理完一个片段之后,模板测试(stencil test)会开始执行,和深度测试一样,它也可能会丢弃片段,接下来,被保留的片段会进入深度测试2.每个窗口库都需要为你配置一个模板缓冲,但是 ...

  8. MySQL 的日期类型有5个,分别是: date、time、year、datetime、timestamp。

    类型 字节 格式 用途 是否支持设置系统默认值 date 3 YYYY-MM-DD 日期值 不支持 time 3 HH:MM:SS 时间值或持续时间 不支持 year 1 YYYY 年份 不支持 da ...

  9. xshell 5中文破解版下载

    xshell 5破解版是一款功能强大的终端模拟软件,支持Telnet.Rlogin.SSH.SFTP.Serial等远程协议,让用户能通过互联网直接连接远程主机.用户通过xshell 5破解版能轻松和 ...

  10. Window下Tomcat单机部署多应用

    1. 新增tomcat相关环境变量 如上图,有两个tomcat,tomcat1和tomcat2 2.修改catalina.bat 文件 第一个tomcat不变 第二个tamcat的catalina.b ...