博客
关于我
Router的外部网关
阅读量:195 次
发布时间:2019-02-28

本文共 1622 字,大约阅读时间需要 5 分钟。

Router使用字段external_geteway_info表达外部网关信息,那么这个外部网关指的是什么呢?如下图:
图中,位于Neutron管理的内部网络中有一个虚拟机(VM)的IP地址是10.10.10.10,它要访问位于外部网络(公网)的网站 ,(IP地址是104.20.110.33),需要经过公网中的路由器Router_2才能到达。Router_2通过Port2直接与Neutron网络节点中Router_1的Port1相连(中间通过Bridge等相连)。这个路由器Router_2才是真正意义的外部网关。Router_2的接口Port2的IP地址182.24.4.1就是Neutron网络的外部网关IP。
Router_2根本不在neutron的管理范围,而且Neutron也不需要真正管理它。从路由转发的角度讲,它只需在Router_1中建立一个路由表项即可。
Destinateion next_hop out interface
104.20.110.0/24 182.24.4.1 Port1(182.24.4.6)
不过从对Router1_1管理的角度来将,不仅仅是增加一个路由表项目那么简单,于是Neutron提出了external_geteway_info这个模型,它由network_id、enable_snat、external_fixed_ips等几个字段组成,它的取值如下:
“external_geteway_info”:{        “enable_snat”:true,        “external_fixed_ips”:[        {                        “ip_address”:”182.24.4.6”                        “subnet_id”:”4323-4325gf-323-543-324”        }],“network_id”:”fhdjs-34hj3-4h3j23-432j”}
这其中的“ip_address”:”182.24.4.6”,表示的就是Router_1的Port1的IP地址,“subnet_id”: ”4323-4325gf-323-543-324”中的gateway_ip就是Router_2的Port2的IP地址(假设gateway_ip=182.24.4.1)。
Neutron为模型external_gateway_info取的名字非常有意思,也非常准确,它并不是直接取名外部网关(external_gateway),而是取名外部网关信息(external_gateway_info),一字之差,蕴含了Neutron的管理理念:
1 Neutron只能管理自己的网络,只能管理上图的Router_1,不能管理Router_2;
2 Neutron也不需要管理Route_2,它只需知道外部网关IP即。而它知道外部网关IP的方法是通过相关Subnet间接获取(获取Subnet的gateway_ip字段)。
也正是从这个意义上讲,如果external_gateway_info中的enable_snat字段假设取值为“True”的话,SNAT真正生效的地点在Router_1的Port1,而不是Router_2的Port2。SNAT的示意图如下:
图中VM访问 ,它初始发出的报文头中,源IP是它自己的IP:10.10.10.10,待报文从Router_1的Port1出去时,源IP就变成了Port1的IP地址:182.24.4.6。这就完成了SNAT转换。
最后强调一下,external_gateway_info中的字段network_id所代表的Network,它的字段“router:external”取值必须为true,这表明这个Network是外部网关所在的Network。
你可能感兴趣的文章
MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
查看>>
MySQL中的GROUP_CONCAT()函数详解与实战应用
查看>>
MySQL中的IO问题分析与优化
查看>>
MySQL中的ON DUPLICATE KEY UPDATE详解与应用
查看>>
mysql中的rbs,SharePoint RBS:即使启用了RBS,内容数据库也在不断增长
查看>>
mysql中的undo log、redo log 、binlog大致概要
查看>>
Mysql中的using
查看>>
MySQL中的关键字深入比较:UNION vs UNION ALL
查看>>
mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
查看>>
mysql中的字段如何选择合适的数据类型呢?
查看>>
MySQL中的字符集陷阱:为何避免使用UTF-8
查看>>
mysql中的数据导入与导出
查看>>
MySQL中的时间函数
查看>>
mysql中的约束
查看>>
MySQL中的表是什么?
查看>>
mysql中穿件函数时候delimiter的用法
查看>>
Mysql中索引的分类、增删改查与存储引擎对应关系
查看>>
Mysql中索引的最左前缀原则图文剖析(全)
查看>>
MySql中给视图添加注释怎么添加_默认不支持_可以这样取巧---MySql工作笔记002
查看>>
Mysql中获取所有表名以及表名带时间字符串使用BetweenAnd筛选区间范围
查看>>