增加Router接口

当我们创建一个Router的外部网关信息(external_gateway_info)的时候,Neutorn会自动在相应的Router实例上创建一个端口,如下图:
不过也只有这一种场景,Neutorn会自动创建端口,其他时候,只能调用Router模型中提供的API增加Router接口,这个API如下:
#Add interface to router
/v2.0/routers/{router_id}/add_router_interface
它的请求参数,如下表所示。
表中的router_id体现在url中,subnet_id、port_id是体现在请求参数体中的参数,subnet_id、port_id两个参数只能选择1个,不能同时填写。当然,至少也得填写1个,不然就没意义了。
无论是传入哪个参数,Neutron都会在router_id所代表的Router实例上增加一个端口(Port),如下图所示:
图中表示的是调用了两次接口add_router_interface,第一次传入的参数是port_id(创建了Port1),第二次传入的参数是subnet_id(创建了Port2)。
传入port_id非常直接明了,因为一个Port本身就具有IP地址,所以上图中的Port1的IP地址(10.10.10.1)本身就是传入参数的port_id所代表的Port的IP地址。
传入subnet_id还需要绕一点弯。Subnet模型中有一个字段gataway_ip,它表示这个Subnet的网关IP。Neutron就是选取这个IP作为增加在Router上的端口的IP地址。图中的Port2的IP地址(10.10.20.1)就是subnet_id所代表的Subnet的gateway_ip。
无论是传入port_id,还是传入subnet_id,Router都会绑定一个端口。
Router增加了端口,背后还有另一层深意,那就是自动创建了路由表项,如下表所示:
在Router上增加一个端口,潜台词是这个端口背后的Subnet的所有流量都能从这个端口进入路由器,这同时也意味着,从这个端口出去的流量能够达到其背后的Subnet。这样的路由,称为直连路由。这种直连路由不需要Neutron在Router上创建路由表项,Router自己会处理。
另外,在创建外部网关信息(external_gateway_info)的时候,neutron会自动在Router上增加一个相应的路由表项。我们把这个路由,称为静态路由。
同时,在Router模型,有一个字段routers,代表这个Router的路由表。但是,无论是增加Router的外部网关信息(external_gateway_info)所产生的默认静态路由,还是只增加Router的接口(add_router_interface)所产生的直连路由,neutron都不会在这个Router的路由表中增加相应的表项。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值