问题标签 [routetable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - Terraform AWS - 如何将默认路由更改为从 nat-gateway 到 ec2 的现有路由表?
我有一个私有子网,默认路由指向 nat 网关。两者都是由 terraform 创建的。
现在我有另一个代码来提高 ec2 以在我的 VPC 中用作 NAT(因为 cloud-nat-gateway 变得非常昂贵)。我正在尝试将我的 rtb 中的默认路由更改为这个新的 ec2 并收到以下错误:
错误:应用计划时出错:
发生 1 个错误:* module.ec2-nat.aws_route.defaultroute_to_ec2-nat:发生 1 个错误:* aws_route.defaultroute_to_ec2-nat:创建路由时出错:RouteAlreadyExists:由 0.0.0.0/0 标识的路由已存在。状态码:400,请求 ID:408deb59-d223-4c9f-9a28-209e2e0478e9
我知道这条路线已经存在,但是如何将这条已经存在的路线更改为新目标?在这种情况下,我的新 ec2 网络接口?
谢谢你的帮助。
以下是我正在使用的代码:
terraform - AWS 路由表的 Terraform 模板
我创建了一个路由表,其中包含引用现有 Internet 网关 ( IGW ) 的路由规则,并且该路由表与通过 TF 模板创建的新 VPC 相关联。但是,相同的 IGW 已附加到另一个VPC。当我应用模板时,它会引发以下错误,
这是因为互联网网关只能连接到单个 VPC 并且必须驻留在同一个 VPC 中吗?还是由于任何其他原因导致此错误?
networking - 尝试最长前缀匹配
假设我有一个包含以下字段的 route_table_entry 结构:
我想为最长前缀匹配算法构建一个 Trie,如下所示:
好吧,我不确定这是否是存储它的最佳方式,但我应该在 Trie 中存储什么?我将如何考虑获得最大掩码?首先,我使用 routing_table 结构来执行此操作,该结构针对前缀进行排序,然后针对掩码进行递减,并使用易于找到的二进制搜索。但是使用 Trie 时,如何考虑在搜索前缀时获得具有最高掩码的前缀?
amazon-web-services - AWS VPC 无法删除到不存在 IP 范围的路由规则
我整个上午都在研究这个问题,但它似乎超出了我对 AWS VPC 的了解。
我们有一个旧的 AWS 账户,里面有一系列的 VPC。这些是多年前创建的。我担心的 VPC 很容易有 6 年的历史,如果不是更老的话。现有的 VPC 有:
eu-west-1
(爱尔兰)
- I1:
172.31.0.0/16
- I2:
172.102.0.0/16
- I3:
172.201.0.0/16
- I4:
192.168.96.0/20
us-west-2
(俄勒冈)
- O1:
192.168.0.144/20
我正在使用的 VPC 是I1:172.31.0.0/16
。
I1
和O1
被窥视。
是的,我现在有一个新帐户,我在俄勒冈州创建了一个新的 VPC。让我们称之为
- NO1:
10.1.0.0/20
我已经看过了O1
和NO1
。对等工作正常,路由表也可以。
当我凝视时,问题就来I1
了NO1
。
- 创建对等连接很好。
- 向
NO1
路由表添加规则工作正常。
我担心的是:当我去修改路由表时,I1
我看到了以下规则。
172.31.0.0/16
local
active
(这是为此 VPC 设置的 IP 范围,预计)10.0.0.0/8
local
active
(这是我的问题)0.0.0.0/0
inet
active
- 其他一些现有规则...
我不明白这个10.0.0.0/8
规则。完整的 IP 范围正在内部路由,并且:
- 这不在 VPC 的 IP 范围内
- 万一我遗漏了什么,我检查了我能找到的所有 VPC 和子网。该IP范围没有任何内容。
当我去修改路由表时172.31.0.0/16
,10.0.0.0/8
规则不能被删除,所以我只能假设它们是默认创建的。
active
我的问题是,当 IP 范围“不存在”时,这条规则怎么可能?为什么我不能删除这个?我从来没有见过这个范围被默认添加到路由表中,这可能是 AWS 很久以前就做过的事情吗?
我已将规则10.1.0.0/20
路由流量添加到我的对等 VPC。我希望因为它更具体,它会正常工作。我这样想是对的吗?
amazon-vpc - AWS 路由表优先级
我的子网附加到具有以下两条路由的路由表:
它们都是与另外两个账户中的 VPC 的 vpc 对等互连。在这种情况下,由于 CIDR 块范围相同,当发送数据包到 10.25.25.25 时,将使用哪个路由?
如果无法通过上述设置正确控制流量(单个子网路由到具有相同范围的两个 CIDR 块),推荐的方法是什么?使用两个子网并让每个子网都路由到 VPC 对等互连?
amazon-web-services - AWS VPC:路由表如何将本地流量重定向到正确的子网和实例?
这是一个AWS典型的VPC,它由以下组件组成
- 两个子网
- 互联网网关
- 路由表
- 实例
想象一个场景
step1,subnet1中的instance(私有IP 172.31.0.5)向IP 172.31.16.5(subnet2中)发送一个数据包。
step2,数据包到达路由表,路由表将数据包重定向到目标local
。
step3,发生了一些神奇的事情。
step4,instance(172.31.16.5)收到数据包。
以下问题是关于step3中的魔法的。
- 本地在这个地方是什么意思?VPC 网络?
- vpc和子网的拓扑是什么?
- 路由表如何知道哪个子网应该是接收此数据包的正确子网?
- 路由表如何知道哪个实例应该是接收此数据包的正确实例?
- 路由表如何将数据包重定向到实例(172.31.16.5)?
- 如果我想更好地理解它,我应该先学习什么样的背景知识?
amazon-web-services - AWS 路由表中的路由决策
在AWS中,如果你能看一下上图,我知道如果子网中的任何实例附加到路由表,试图命中(10.0.0.0-10.0.255.255)之间的IP地址应该去本地,它不应该去互联网。假设我在 VPC 的公有子网中有实例的公有 IP 地址,它正在尝试访问 IP 地址为 10.0.0.5/32 的外部域的公有 IP 地址。
在那种情况下,路由是如何发生的,无论是本地还是互联网?
amazon-web-services - AWS:VPC、子网、NACL、安全组、IGW、路由表等
我已经看了好几个小时的教程,读到眼睛都要流血了,但我似乎无法理解 Amazon VPC 是如何工作的。我按照教程多次创建和删除了带有 EC2 实例的整个 VPC 环境,但是一旦我去创建一个没有教程的环境,我就迷路了。
我试图提出一个类比来帮助我更好地理解。我到目前为止是这样的:
VPC就像一个Club。在俱乐部的前面,您有一个 入口,即IGW。在俱乐部内部,您有不同的区域;一般区域是公共子网, 管理区域是私有子网。
在一般区域内,您将有一个舞池/酒吧,相当于一个EC2 实例和一个接收区,管理人员可以在其中接收来自外部世界的交付和诸如此类的东西,即NAT。
然后在Management Area中,您将拥有一个Office、另一个EC2 Instance和您的Inventory,就像您的RDS一样。
到目前为止,我认为这是一个有点准确的类比,但是一旦我开始尝试在 SG、NACL、RT 等方面工作,我意识到我并没有完全掌握。
谁能帮我完成这个类比或提供一个更好的类比?我无计可施。
amazon-web-services - 使用 Terraform 过滤以查找 AWS VPC 中的非主路由表
aws_route_table
为了使下面的 Terraform 数据源成功返回在 VPC 中未指定为主路由表的路由表,必须使用什么特定语法?
VPC 中只有一个非主路由表。因此,main=false
如果过滤器语法正确,过滤器应该识别它。
上述代码当前产生的错误是:
错误:您的查询未返回任何结果。请更改您的搜索条件,然后重试