概述
openstack 中ovs-vlan 转换
我们生产中得openstack ,使用得网络时linux brige 与openvswitch 网络组合而成,我们走得数据网络使用得网络时ovs 网络
openstack 中得网络neutron 创建得网络或者neutron 管理得网络我们一般称为: 租户网络
一般neutron 创建出来得network 如果不手动指定vlan得话,我们创建出来的网络会在租户网络池自己划分一个可用得vlan 段。
我们在环境的中通过neutron 创建一个网络。创建完网络后我们可以在ovs 下的br-int 下回发现多出来一个port 口
我们创建好的neutron 网络,都会在br-int 出去。那我们创建好的neutron 网络在br-int 的口是否可以进行同信的那?
默认的话,我们br-int 下的port 口都会有tag 标记,这个tag 就是为了隔离我们在br-int 下的port 口的
注意: Open vSwitch 中的 tag 是内部 VLAN,用于隔离网桥中的 port,与物理网络中的 VLAN 没有关系。
Ovs 如何实现vlan隔离
与 Linux Bridge 不同,Open vSwitch 并不通过 eth1.100, eth1.101 等 VLAN interface 来隔离不同的 VLAN
Ovs 上所有创建好的网络都是挂载在br-int 下的
Ovs 是通过流规则(flow rule)来指定如何对br-int 的数据流做转发,来实现vlan 的隔离
当数据进出br-int ,flow rule 可以修改添加或者是剥离掉数据包的vlan tag, neutron 负责创建这些流规则(flow rule)并且把他们配置到br-int 上
查看flow rule 命令: ovs-ctrl dump-flow 网桥名
Priority 规则的优先级,值越大优先级越高。Ovs会按照优先级从高到低应用规则。
in_port inbound 端口编号,每个 port 在 ovs中会有一个内部的编号(查看prot编号root@cic-1:~# ovs-ofctl show br-int)
dl_vlan 数据包的原始vlan id
在我们的环境的网络br-int 到br-prv 数据流量进行了vlan 的转换如何
Actions 对数据包的操作
NORMAL 此规则的含义是:根据 vlan 和 mac 进行转发。
eg:
查看ovs 下得br-int 下得流规则
ovs-ofctl dump-flows br-int
cookie=0xa975ebb1a678388e, duration=242850.115s, table=0, n_packets=8285, n_bytes=535156, priority=3,in_port="int-br-prv",dl_vlan=3203 actions=mod_vlan_vid:1,NORMAL
(当数据流带有vlan 3229 进入br-int 时会将vlan 3229 转换成tag 2 )
cookie=0xa975ebb1a678388e, duration=242850.082s, table=0, n_packets=8079, n_bytes=517056, priority=3,in_port="int-br-prv",dl_vlan=3229 actions=mod_vlan_vid:2,NORMAL
cookie=0xa975ebb1a678388e, duration=71524.138s, table=0, n_packets=2422, n_bytes=157504, priority=3,in_port="int-br-prv",dl_vlan=3234 actions=mod_vlan_vid:3,NORMAL
cookie=0xa975ebb1a678388e, duration=242934.589s, table=0, n_packets=1279776, n_bytes=75885080, priority=2,in_port="int-br-prv" actions=drop
cookie=0xa975ebb1a678388e, duration=242934.704s, table=0, n_packets=333, n_bytes=28322, priority=0 actions=NORMAL
cookie=0xa975ebb1a678388e, duration=242934.697s, table=23, n_packets=0, n_bytes=0, priority=0 actions=drop
cookie=0xa975ebb1a678388e, duration=242934.690s, table=24, n_packets=0, n_bytes=0, priority=0 actions=drop
查看ovs 网络中br-prv 得流规则
ovs-ofctl dump-flows br-prv
cookie=0xa88ce574b188ab3e, duration=243865.883s, table=0, n_packets=229, n_bytes=18336, priority=4,in_port="phy-br-prv",dl_vlan=1 actions=mod_vlan_vid:3203,NORMAL
cookie=0xa88ce574b188ab3e, duration=243865.849s, table=0, n_packets=31, n_bytes=1358, priority=4,in_port="phy-br-prv",dl_vlan=2 actions=mod_vlan_vid:3229,NORMAL
cookie=0xa88ce574b188ab3e, duration=72539.905s, table=0, n_packets=59, n_bytes=7528, priority=4,in_port="phy-br-prv",dl_vlan=3 actions=mod_vlan_vid:3234,NORMAL
cookie=0xa88ce574b188ab3e, duration=243950.344s, table=0, n_packets=14, n_bytes=1100, priority=2,in_port="phy-br-prv" actions=drop
cookie=0xa88ce574b188ab3e, duration=243950.394s, table=0, n_packets=1303905, n_bytes=77409686, priority=0 actions=NORMAL
检查ovs 网桥 br-int 下得网络下的信息状态
ovs-ofctl show br-int
OFPT_FEATURES_REPLY (xid=0x2): dpid:000036e26a127340
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
1(int-br-prv): addr:e2:dd:6e:09:a9:25
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
4(tapab1bac7c-60): addr:00:00:00:00:00:00
config: PORT_DOWN
state: LINK_DOWN
speed: 0 Mbps now, 0 Mbps max
5(tap1ec33f32-c8): addr:00:00:00:00:00:00
config: PORT_DOWN
state: LINK_DOWN
speed: 0 Mbps now, 0 Mbps max
6(tape86c7b63-5f): addr:00:00:00:00:00:00
config: PORT_DOWN
state: LINK_DOWN
speed: 0 Mbps now, 0 Mbps max
LOCAL(br-int): addr:36:e2:6a:12:73:40
config: PORT_DOWN
state: LINK_DOWN
speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
查看neutron 网络,我们网络创建出来随机划分3229 vlan
neutron net-show yb
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| availability_zone_hints | |
| availability_zones | nova |
| created_at | 2019-11-26T04:14:19 |
| description | |
| id | 6bde373e-a26e-4eb2-9407-8964fd0eb041 |
| ipv4_address_scope | |
| ipv6_address_scope | |
| mtu | 1500 |
| name | yb |
| port_security_enabled | True |
| provider:network_type | vlan |
| provider:physical_network | default |
| provider:segmentation_id | 3229 |
| qos_policy_id | |
| router:external | False |
| shared | False |
| status | ACTIVE |
| subnets | 79540426-3d24-4aab-b649-30913a15da22 |
| tags | |
| tenant_id | 04b8cf9ab1c647abb0d9721a3484d799 |
| updated_at | 2019-11-26T04:14:19 |
| vlan_transparent | False |
+---------------------------+--------------------------------------+
最后
以上就是拼搏帅哥为你收集整理的openstack 中ovs-vlan 转换openstack 中ovs-vlan 转换的全部内容,希望文章能够帮你解决openstack 中ovs-vlan 转换openstack 中ovs-vlan 转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复