Neutron的Port详解

48 篇文章 11 订阅
Port资源模型,如下表所示:
Port是一个逻辑模型,但是同时我们也可以理解为其代表一个虚拟网口。所以,一个虚拟机需要绑定Port,一个路由器也需要绑定Port。既然是一个虚拟网口,那么理所当然,它就具备两个基本属性:IP地址和MAC地址。
一 IP地址
Port模型中,表示IP地址的是一个数组(fixed_ip),表明这个Port可以有多个IP地址。在这个数组中,每一个元组由两个字段组成:ip_address、subnet_id。我们可以看一个例子:
“fixed_ips”:[
        {
                “ip_address”:”10.0.0.1”
                “subnet_id”:”fhdjs-fdjs-fdsdf-fds--fd”
        }
        {
                “ip_address”:”10.0.0.1”
                “subnet_id”:”shdjs-fdjs-fdsdf-fds--fd”
        }
],
为什么Port的IP地址还需要跟subnet_id关联呢?这是因为,在Neutron模型中,IP地址不能孤立存在,它必须属于一个Subnet,这也间接地意味着,Port也必须关联一个Subnet。这同时也意味着,Port的IP地址不能随便取值,它必须在其关联的Subnet的地址范围内。
Port不仅需要间接关联一个Subnet,还必须直接属于一个Network,这是靠Port模型中的字段network_id(string类型)来表达。当一个Port属于一个Network的时候,如果这个Network有N个Subnet,理论上说,这个Port也可以有N个IP地址,每个IP地址属于其中一个Subnet。
Network、Subnet、Port这三者之间的关系,如下图:
在图中,Port与Subnet之间的关系是m:n,但是为了表达清楚,特意画了两根线。这个图表明,一个Network可以有多个Subnet,一个Subnet只能归属一个Network。同时一个Network可以有多个Port,而一个Port可以与其所在Network中的所有Subnet相关联。当然,一个Subnet也可以有多个Port。
二 MAC
一个Port可以有多个IP地址,但是一般情况下,一个Port只有一个MAC地址,这体现在mac_address这个字段,它的含义是:port的MAC地址。
三 allowed_address_pairs
这个字段是一个数组,先举个例子:
{
        “port”:{
        “allowed_address_pairs”:[
        {
                “ip_address”:”10.0.0.1”
                “max_address”:”re-34-65-34-65-34”
        }
        {
                “ip_address”:”10.1.0.1”
                “max_address”:”re-34-65-34-65-34”
       }
   ]
 }
}
allowed_address_pairs的使用场景有不少,其中一个比较典型的场景是Antispoofing。该技术是一种识别和删除有错误源地址的数据包技术。
四 其他
Port是如此重要,但是也不能凭空存在,它必须得绑定到一个实体上才有意义。Port有两个字段与实体绑定相关。其中一个是device_id,标识谁使用了这个Port,比如一个路由器。另外一个字段是device_owner,它标识使用这个Port的实体类型。比如一个虚拟机绑定了这个端口,那么这个实体类型就是compute:nova。
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值