Router小结

Neutron的Router模型中,蕴含着三种路由:直连路由、默认静态路由和静态路由。前两种路由不需要显示地增加路由表项,也不会体现在路由表(routers)中,当增加一个Port时(add_router_interface),Neutron会自动增加一个直连路由;当增加一个外部网关信息时(external_gateway_info),Neutron会增加一个默认静态路由。
路由表中的路由也是静态路由,它与默认路由一样,都是通往外部网络。外部网络,指的是neutron管理范围之外的网络,不过,静态路由中的外部网络,一般指的是私网,而默认静态路由中的外部网络,一般指的是公网。所有,在外部网关信息中,有一个开关enable_snat,当它为true时,需要启动SNAT。
外部网关信息(external_gateway_info)中,只有外部网关IP(蕴含在subnet_id所对应的subnet的gateway_ip字段中),而无目的网段,所以被称为默认静态路由。同时,也只有创建外部网关信息时,Neutron才会自动在对应的Router上创建一个Port,其余场景都需要人主动创建Port作关联。
Float IP首先是一个SNAT/DNAT转换规则:floating_ip_address(外网/公网IP)与fixed_ip_address(内网/私网)互相转换。然后,从实现角度来讲,它才是绑定到一个Router(router_id)的端口(Port)上,以让报文在进出这个端口时,Router能对其做SNAT/DNAT转换。
下图是一个组网图,比较完整地体现了Router的功能。
Router小结_第1张图片
该图对应的路由表项如下表:
Router小结_第2张图片
另外,Router_1具备DNAT功能(绑定在Port6),它的DNAT规则是:
floating_ip_address:200.10.20.2
fixed_ip_address:10.0.20.3
Router_1的6个端口(Port5~Port10),除Port5是Neutron自动创建并绑定的以外,其余端口都是人显示增加(add_router_interface)的。当在Router_1上增加外部网关信息(external_gateway_info)和增加接口(add_router_interface)后,Neutron就会为Router_1自动增加好默认静态路由和直连路由(不体现在routes中)。与此同时,连接到Router_1的内部网络(1、2、3)也会互通。
当然,内部网络如果要和外部网络相通,还需要在内部网络(Subnet)中创建相应的路由表。

你可能感兴趣的:(Openstack,Neutron)