博客
关于我
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。
你可能感兴趣的文章
NFS安装配置
查看>>
NFS服务器配置-服务启动与停止
查看>>
NFS的安装以及windows/linux挂载linux网络文件系统NFS
查看>>
NFS的常用挂载参数
查看>>
NFS网络文件系统
查看>>
NFS远程目录挂载
查看>>
nft文件传输_利用remoting实现文件传输-.NET教程,远程及网络应用
查看>>
NFV商用可行新华三vBRAS方案实践验证
查看>>
ng build --aot --prod生成文件报错
查看>>
ng 指令的自定义、使用
查看>>
ng6.1 新特性:滚回到之前的位置
查看>>
nghttp3使用指南
查看>>
【Flink】Flink 2023 Flink 自动化运维的大规模落地实践
查看>>
Nginx
查看>>
nginx + etcd 动态负载均衡实践(一)—— 组件介绍
查看>>
nginx + etcd 动态负载均衡实践(三)—— 基于nginx-upsync-module实现
查看>>
nginx + etcd 动态负载均衡实践(二)—— 组件安装
查看>>
nginx + etcd 动态负载均衡实践(四)—— 基于confd实现
查看>>
Nginx + Spring Boot 实现负载均衡
查看>>
Nginx + Tomcat + SpringBoot 部署项目
查看>>