博客
关于我
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主从复制及排错
查看>>
mysql主从复制及故障修复
查看>>
MySQL主从复制的原理和实践操作
查看>>
webpack loader配置全流程详解
查看>>
mysql主从复制,读写分离,半同步复制实现
查看>>
MySQL主从失败 错误Got fatal error 1236解决方法
查看>>
MySQL主从架构与读写分离实战
查看>>
MySQL主从篇:死磕主从复制中数据同步原理与优化
查看>>
mysql主从配置
查看>>
MySQL之2003-Can‘t connect to MySQL server on ‘localhost‘(10038)的解决办法
查看>>
MySQL之CRUD
查看>>
MySQL之DML
查看>>
Mysql之IN 和 Exists 用法
查看>>
MYSQL之REPLACE INTO和INSERT … ON DUPLICATE KEY UPDATE用法
查看>>
MySQL之SQL语句优化步骤
查看>>
MYSQL之union和order by分析([Err] 1221 - Incorrect usage of UNION and ORDER BY)
查看>>
Mysql之主从复制
查看>>