diff options
| author | Bruce Ashfield <bruce.ashfield@windriver.com> | 2014-05-23 23:49:49 -0400 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@windriver.com> | 2014-05-23 23:49:49 -0400 |
| commit | 649327f80dc331943d448e87f73ecaadcc78a22a (patch) | |
| tree | 2d640deedbc19b925f5539a31da26f2f7a6249c8 /meta-openstack/Documentation/README.networking_vlan | |
| parent | fb1d6f23fa01c0217ed3f6778d8033dd0030db2a (diff) | |
| download | meta-cloud-services-649327f80dc331943d448e87f73ecaadcc78a22a.tar.gz | |
docs: move more READMEs into Documentation
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Diffstat (limited to 'meta-openstack/Documentation/README.networking_vlan')
| -rw-r--r-- | meta-openstack/Documentation/README.networking_vlan | 382 |
1 files changed, 382 insertions, 0 deletions
diff --git a/meta-openstack/Documentation/README.networking_vlan b/meta-openstack/Documentation/README.networking_vlan new file mode 100644 index 0000000..6d48e2b --- /dev/null +++ b/meta-openstack/Documentation/README.networking_vlan | |||
| @@ -0,0 +1,382 @@ | |||
| 1 | Networking - VLAN network | ||
| 2 | ========================= | ||
| 3 | |||
| 4 | Description | ||
| 5 | ----------- | ||
| 6 | The vlan network will have the VMs on one of two vlan networks | ||
| 7 | (DMZ_SUBNET - 172.16.0.0/24, INSIDE_SUBNET - 192.168.100.0/241). We | ||
| 8 | will continue to use the management network (192.168.7.0/24) for | ||
| 9 | controller/compute communications. The dhcp-agent will provide the VMs | ||
| 10 | addresses within each subnet and within its provisioned ranges. This | ||
| 11 | type of network is more typical of a deployed network since network | ||
| 12 | traffic can be contained to within the assigned vlan. | ||
| 13 | |||
| 14 | |||
| 15 | Assumptions | ||
| 16 | ----------- | ||
| 17 | It is assumed you have completed the steps described in | ||
| 18 | README.networking and have provisioned the host vSwitch as well as | ||
| 19 | created the br-eth0 bridges on the controller and compute nodes. | ||
| 20 | |||
| 21 | At this point you should be able to ping 192.168.7.4 from 192.168.7.4 | ||
| 22 | and vise versa. | ||
| 23 | |||
| 24 | You have built your controller image including the cirros image (for | ||
| 25 | which you have already added the image to glance as myFirstImage). | ||
| 26 | |||
| 27 | You have run 'source /etc/nova/openrc' | ||
| 28 | |||
| 29 | Configuration updates | ||
| 30 | --------------------- | ||
| 31 | On the host Open vSwitch add an IP for 192.168.100.1/22 | ||
| 32 | sudo ip address add 192.168.100.1/24 broadcast 192.168.100.255 dev br-int | ||
| 33 | sudo ip address add 172.16.0.1/24 broadcast 172.16.0.255 dev br-int | ||
| 34 | |||
| 35 | On the controller and (all) compute nodes you must edit the file | ||
| 36 | /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini | ||
| 37 | |||
| 38 | In the [OVS] section set | ||
| 39 | network_vlan_ranges = ph-eth0:200:200,ph-eth0:300:300 | ||
| 40 | bridge_mappings = ph-eth0:br-eth0 | ||
| 41 | |||
| 42 | (*** on compute nodes edit local_ip as well [192.168.7.4]***) | ||
| 43 | |||
| 44 | Restart some services to allow these changes to take effect: | ||
| 45 | /etc/init.d/neutron-openvswitch-agent reload | ||
| 46 | (on controller) | ||
| 47 | /etc/init.d/neutron-server reload | ||
| 48 | /etc/init.d/neutron-dhcp-agent reload | ||
| 49 | (on compute) | ||
| 50 | /etc/init.d/nova-compute reload | ||
| 51 | |||
| 52 | |||
| 53 | Create the net and subnet | ||
| 54 | ------------------------- | ||
| 55 | neutron net-create --provider:physical_network=ph-eth0 \ | ||
| 56 | --provider:network_type=vlan --provider:segmentation_id=200 \ | ||
| 57 | --shared INSIDE_NET | ||
| 58 | Created a new network: | ||
| 59 | +---------------------------+--------------------------------------+ | ||
| 60 | | Field | Value | | ||
| 61 | +---------------------------+--------------------------------------+ | ||
| 62 | | admin_state_up | True | | ||
| 63 | | id | 587e29d0-eb89-4c0d-948b-845009380097 | | ||
| 64 | | name | INSIDE_NET | | ||
| 65 | | provider:network_type | vlan | | ||
| 66 | | provider:physical_network | ph-eth0 | | ||
| 67 | | provider:segmentation_id | 200 | | ||
| 68 | | shared | True | | ||
| 69 | | status | ACTIVE | | ||
| 70 | | subnets | | | ||
| 71 | | tenant_id | b5890ba3fb234347ae317ca2f8358663 | | ||
| 72 | +---------------------------+--------------------------------------+ | ||
| 73 | |||
| 74 | neutron net-create --provider:physical_network=ph-eth0 \ | ||
| 75 | --provider:network_type=vlan --provider:segmentation_id=300 \ | ||
| 76 | --shared DMZ_NET | ||
| 77 | Created a new network: | ||
| 78 | +---------------------------+--------------------------------------+ | ||
| 79 | | Field | Value | | ||
| 80 | +---------------------------+--------------------------------------+ | ||
| 81 | | admin_state_up | True | | ||
| 82 | | id | 498fa1f2-87de-4874-8ca9-f4ba3e394d2a | | ||
| 83 | | name | DMZ_NET | | ||
| 84 | | provider:network_type | vlan | | ||
| 85 | | provider:physical_network | ph-eth0 | | ||
| 86 | | provider:segmentation_id | 300 | | ||
| 87 | | shared | True | | ||
| 88 | | status | ACTIVE | | ||
| 89 | | subnets | | | ||
| 90 | | tenant_id | b5890ba3fb234347ae317ca2f8358663 | | ||
| 91 | +---------------------------+--------------------------------------+ | ||
| 92 | |||
| 93 | neutron subnet-create INSIDE_NET 192.168.100.0/24 \ | ||
| 94 | --name INSIDE_SUBNET --no-gateway \ | ||
| 95 | --host-route destination=0.0.0.0/0,nexthop=192.168.100.1 \ | ||
| 96 | --allocation-pool start=192.168.100.100,end=192.168.100.199 | ||
| 97 | Created a new subnet: | ||
| 98 | +------------------+----------------------------------------------------------+ | ||
| 99 | | Field | Value | | ||
| 100 | +------------------+----------------------------------------------------------+ | ||
| 101 | | allocation_pools | {"start": "192.168.100.100", "end": "192.168.100.199"} | | ||
| 102 | | cidr | 192.168.100.0/24 | | ||
| 103 | | dns_nameservers | | | ||
| 104 | | enable_dhcp | True | | ||
| 105 | | gateway_ip | | | ||
| 106 | | host_routes | {"destination": "0.0.0.0/0", "nexthop": "192.168.100.1"} | | ||
| 107 | | id | 2c1a77aa-614c-4a97-9855-a62bb4b4d899 | | ||
| 108 | | ip_version | 4 | | ||
| 109 | | name | INSIDE_SUBNET | | ||
| 110 | | network_id | 587e29d0-eb89-4c0d-948b-845009380097 | | ||
| 111 | | tenant_id | b5890ba3fb234347ae317ca2f8358663 | | ||
| 112 | +------------------+----------------------------------------------------------+ | ||
| 113 | |||
| 114 | neutron subnet-create DMZ_NET 172.16.0.0/24 --name DMZ_SUBNET \ | ||
| 115 | --no-gateway --host-route destination=0.0.0.0/0,nexthop=172.16.0.1 \ | ||
| 116 | --allocation-pool start=172.16.0.100,end=172.16.0.199 | ||
| 117 | Created a new subnet: | ||
| 118 | +------------------+-------------------------------------------------------+ | ||
| 119 | | Field | Value | | ||
| 120 | +------------------+-------------------------------------------------------+ | ||
| 121 | | allocation_pools | {"start": "172.16.0.100", "end": "172.16.0.199"} | | ||
| 122 | | cidr | 172.16.0.0/24 | | ||
| 123 | | dns_nameservers | | | ||
| 124 | | enable_dhcp | True | | ||
| 125 | | gateway_ip | | | ||
| 126 | | host_routes | {"destination": "0.0.0.0/0", "nexthop": "172.16.0.1"} | | ||
| 127 | | id | bfae1a19-e15f-4e5e-94f2-018f24abbc2e | | ||
| 128 | | ip_version | 4 | | ||
| 129 | | name | DMZ_SUBNET | | ||
| 130 | | network_id | 498fa1f2-87de-4874-8ca9-f4ba3e394d2a | | ||
| 131 | | tenant_id | b5890ba3fb234347ae317ca2f8358663 | | ||
| 132 | +------------------+-------------------------------------------------------+ | ||
| 133 | |||
| 134 | |||
| 135 | Boot the image and test connectivity | ||
| 136 | ------------------------------------ | ||
| 137 | (note with our current config you might only be able to run 2 instances at | ||
| 138 | any one time, so you will end up juggling them to test connectivity) | ||
| 139 | |||
| 140 | nova boot --flavor=m1.small --image=myFirstImage \ | ||
| 141 | --nic net-id=587e29d0-eb89-4c0d-948b-845009380097 INSIDE_INSTANCE | ||
| 142 | +--------------------------------------+-----------------------------------------------------+ | ||
| 143 | | Property | Value | | ||
| 144 | +--------------------------------------+-----------------------------------------------------+ | ||
| 145 | | OS-DCF:diskConfig | MANUAL | | ||
| 146 | | OS-EXT-AZ:availability_zone | nova | | ||
| 147 | | OS-EXT-SRV-ATTR:host | - | | ||
| 148 | | OS-EXT-SRV-ATTR:hypervisor_hostname | - | | ||
| 149 | | OS-EXT-SRV-ATTR:instance_name | instance-00000009 | | ||
| 150 | | OS-EXT-STS:power_state | 0 | | ||
| 151 | | OS-EXT-STS:task_state | scheduling | | ||
| 152 | | OS-EXT-STS:vm_state | building | | ||
| 153 | | OS-SRV-USG:launched_at | - | | ||
| 154 | | OS-SRV-USG:terminated_at | - | | ||
| 155 | | accessIPv4 | | | ||
| 156 | | accessIPv6 | | | ||
| 157 | | adminPass | 7itgDwsdY8d4 | | ||
| 158 | | config_drive | | | ||
| 159 | | created | 2014-04-10T14:31:21Z | | ||
| 160 | | flavor | m1.small (2) | | ||
| 161 | | hostId | | | ||
| 162 | | id | 630affe0-d497-4211-87bb-383254d60428 | | ||
| 163 | | image | myFirstImage (f22d3ab8-96a5-46db-a029-7d59156c8e31) | | ||
| 164 | | key_name | - | | ||
| 165 | | metadata | {} | | ||
| 166 | | name | INSIDE_INSTANCE | | ||
| 167 | | os-extended-volumes:volumes_attached | [] | | ||
| 168 | | progress | 0 | | ||
| 169 | | security_groups | default | | ||
| 170 | | status | BUILD | | ||
| 171 | | tenant_id | b5890ba3fb234347ae317ca2f8358663 | | ||
| 172 | | updated | 2014-04-10T14:31:21Z | | ||
| 173 | | user_id | 1dfcb72ef6a7428d8dd7300bc7f303d9 | | ||
| 174 | +--------------------------------------+-----------------------------------------------------+ | ||
| 175 | |||
| 176 | nova boot --flavor=m1.small --image=myFirstImage \ | ||
| 177 | --nic net-id=587e29d0-eb89-4c0d-948b-845009380097 INSIDE_INSTANCE2 | ||
| 178 | +--------------------------------------+-----------------------------------------------------+ | ||
| 179 | | Property | Value | | ||
| 180 | +--------------------------------------+-----------------------------------------------------+ | ||
| 181 | | OS-DCF:diskConfig | MANUAL | | ||
| 182 | | OS-EXT-AZ:availability_zone | nova | | ||
| 183 | | OS-EXT-SRV-ATTR:host | - | | ||
| 184 | | OS-EXT-SRV-ATTR:hypervisor_hostname | - | | ||
| 185 | | OS-EXT-SRV-ATTR:instance_name | instance-0000000a | | ||
| 186 | | OS-EXT-STS:power_state | 0 | | ||
| 187 | | OS-EXT-STS:task_state | scheduling | | ||
| 188 | | OS-EXT-STS:vm_state | building | | ||
| 189 | | OS-SRV-USG:launched_at | - | | ||
| 190 | | OS-SRV-USG:terminated_at | - | | ||
| 191 | | accessIPv4 | | | ||
| 192 | | accessIPv6 | | | ||
| 193 | | adminPass | BF9p6tftS2xJ | | ||
| 194 | | config_drive | | | ||
| 195 | | created | 2014-04-10T14:32:07Z | | ||
| 196 | | flavor | m1.small (2) | | ||
| 197 | | hostId | | | ||
| 198 | | id | ff94ee07-ae24-4785-9d51-26de2c23da60 | | ||
| 199 | | image | myFirstImage (f22d3ab8-96a5-46db-a029-7d59156c8e31) | | ||
| 200 | | key_name | - | | ||
| 201 | | metadata | {} | | ||
| 202 | | name | INSIDE_INSTANCE2 | | ||
| 203 | | os-extended-volumes:volumes_attached | [] | | ||
| 204 | | progress | 0 | | ||
| 205 | | security_groups | default | | ||
| 206 | | status | BUILD | | ||
| 207 | | tenant_id | b5890ba3fb234347ae317ca2f8358663 | | ||
| 208 | | updated | 2014-04-10T14:32:08Z | | ||
| 209 | | user_id | 1dfcb72ef6a7428d8dd7300bc7f303d9 | | ||
| 210 | +--------------------------------------+-----------------------------------------------------+ | ||
| 211 | |||
| 212 | root@controller:~# nova list | ||
| 213 | +--------------------------------------+------------------+--------+------------+-------------+----------------------------+ | ||
| 214 | | ID | Name | Status | Task State | Power State | Networks | | ||
| 215 | +--------------------------------------+------------------+--------+------------+-------------+----------------------------+ | ||
| 216 | | 630affe0-d497-4211-87bb-383254d60428 | INSIDE_INSTANCE | ACTIVE | - | Running | INSIDE_NET=192.168.100.100 | | ||
| 217 | | ff94ee07-ae24-4785-9d51-26de2c23da60 | INSIDE_INSTANCE2 | ACTIVE | - | Running | INSIDE_NET=192.168.100.102 | | ||
| 218 | +--------------------------------------+------------------+--------+------------+-------------+----------------------------+ | ||
| 219 | |||
| 220 | nova boot --flavor=m1.small --image=myFirstImage \ | ||
| 221 | --nic net-id=498fa1f2-87de-4874-8ca9-f4ba3e394d2a DMZ_INSTANCE | ||
| 222 | +--------------------------------------+-----------------------------------------------------+ | ||
| 223 | | Property | Value | | ||
| 224 | +--------------------------------------+-----------------------------------------------------+ | ||
| 225 | | OS-DCF:diskConfig | MANUAL | | ||
| 226 | | OS-EXT-AZ:availability_zone | nova | | ||
| 227 | | OS-EXT-SRV-ATTR:host | - | | ||
| 228 | | OS-EXT-SRV-ATTR:hypervisor_hostname | - | | ||
| 229 | | OS-EXT-SRV-ATTR:instance_name | instance-0000000d | | ||
| 230 | | OS-EXT-STS:power_state | 0 | | ||
| 231 | | OS-EXT-STS:task_state | scheduling | | ||
| 232 | | OS-EXT-STS:vm_state | building | | ||
| 233 | | OS-SRV-USG:launched_at | - | | ||
| 234 | | OS-SRV-USG:terminated_at | - | | ||
| 235 | | accessIPv4 | | | ||
| 236 | | accessIPv6 | | | ||
| 237 | | adminPass | SvzSpnmB6mXJ | | ||
| 238 | | config_drive | | | ||
| 239 | | created | 2014-04-10T14:42:53Z | | ||
| 240 | | flavor | m1.small (2) | | ||
| 241 | | hostId | | | ||
| 242 | | id | 0dab2712-5f1d-4559-bfa4-d09c6304418c | | ||
| 243 | | image | myFirstImage (f22d3ab8-96a5-46db-a029-7d59156c8e31) | | ||
| 244 | | key_name | - | | ||
| 245 | | metadata | {} | | ||
| 246 | | name | DMZ_INSTANCE | | ||
| 247 | | os-extended-volumes:volumes_attached | [] | | ||
| 248 | | progress | 0 | | ||
| 249 | | security_groups | default | | ||
| 250 | | status | BUILD | | ||
| 251 | | tenant_id | b5890ba3fb234347ae317ca2f8358663 | | ||
| 252 | | updated | 2014-04-10T14:42:54Z | | ||
| 253 | | user_id | 1dfcb72ef6a7428d8dd7300bc7f303d9 | | ||
| 254 | +--------------------------------------+-----------------------------------------------------+ | ||
| 255 | |||
| 256 | nova boot --flavor=m1.small --image=myFirstImage \ | ||
| 257 | --nic net-id=498fa1f2-87de-4874-8ca9-f4ba3e394d2a DMZ_INSTANCE2 | ||
| 258 | ... | ||
| 259 | |||
| 260 | nova console-log INSIDE_INSTANCE2 | ||
| 261 | --- | ||
| 262 | ...skip | ||
| 263 | Starting network... | ||
| 264 | udhcpc (v1.18.5) started | ||
| 265 | Sending discover... | ||
| 266 | Sending select for 192.168.100.102... | ||
| 267 | ...skip | ||
| 268 | |||
| 269 | ping | ||
| 270 | --- | ||
| 271 | |||
| 272 | You should also be able to ping instances on the same subnet but not | ||
| 273 | those on the other subnet. The controller and compute can not ping | ||
| 274 | instances on either network (with metadata implemented the controller | ||
| 275 | should be able to, but currently the metadata agent is not available.) | ||
| 276 | |||
| 277 | dump-flows | ||
| 278 | ---------- | ||
| 279 | (note the 'vlan' tags) | ||
| 280 | root@compute:~# ovs-ofctl dump-flows br-int | ||
| 281 | NXST_FLOW reply (xid=0x4): | ||
| 282 | cookie=0x0, duration=1640.378s, table=0, n_packets=3, n_bytes=788, idle_age=1628, priority=3,in_port=6,dl_vlan=300 actions=mod_vlan_vid:2,NORMAL | ||
| 283 | cookie=0x0, duration=2332.714s, table=0, n_packets=6, n_bytes=1588, idle_age=2274, priority=3,in_port=6,dl_vlan=200 actions=mod_vlan_vid:1,NORMAL | ||
| 284 | cookie=0x0, duration=2837.737s, table=0, n_packets=22, n_bytes=1772, idle_age=1663, priority=2,in_port=6 actions=drop | ||
| 285 | cookie=0x0, duration=2837.976s, table=0, n_packets=53, n_bytes=5038, idle_age=1535, priority=1 actions=NORMAL | ||
| 286 | |||
| 287 | |||
| 288 | |||
| 289 | The final Open vSwitch configs | ||
| 290 | ------------------------------ | ||
| 291 | |||
| 292 | Controller | ||
| 293 | --- | ||
| 294 | root@controller:~# ovs-vsctl show | ||
| 295 | 524a6c84-226d-427b-8efa-732ed7e7fa43 | ||
| 296 | Bridge br-tun | ||
| 297 | Port "gre-2" | ||
| 298 | Interface "gre-2" | ||
| 299 | type: gre | ||
| 300 | options: {in_key=flow, local_ip="192.168.7.2", out_key=flow, remote_ip="192.168.7.4"} | ||
| 301 | Port br-tun | ||
| 302 | Interface br-tun | ||
| 303 | type: internal | ||
| 304 | Port patch-int | ||
| 305 | Interface patch-int | ||
| 306 | type: patch | ||
| 307 | options: {peer=patch-tun} | ||
| 308 | Bridge "br-eth0" | ||
| 309 | Port "eth0" | ||
| 310 | Interface "eth0" | ||
| 311 | Port "br-eth0" | ||
| 312 | Interface "br-eth0" | ||
| 313 | type: internal | ||
| 314 | Port "phy-br-eth0" | ||
| 315 | Interface "phy-br-eth0" | ||
| 316 | Bridge br-int | ||
| 317 | Port patch-tun | ||
| 318 | Interface patch-tun | ||
| 319 | type: patch | ||
| 320 | options: {peer=patch-int} | ||
| 321 | Port "tapafbbdd15-e7" | ||
| 322 | tag: 1 | ||
| 323 | Interface "tapafbbdd15-e7" | ||
| 324 | type: internal | ||
| 325 | Port "int-br-eth0" | ||
| 326 | Interface "int-br-eth0" | ||
| 327 | Port "tapa50c1a18-34" | ||
| 328 | tag: 2 | ||
| 329 | Interface "tapa50c1a18-34" | ||
| 330 | type: internal | ||
| 331 | Port br-int | ||
| 332 | Interface br-int | ||
| 333 | type: internal | ||
| 334 | ovs_version: "2.0.0" | ||
| 335 | |||
| 336 | |||
| 337 | Compute | ||
| 338 | --- | ||
| 339 | root@compute:~# ovs-vsctl show | ||
| 340 | 99d365d2-f74e-40a8-b9a0-5bb60353675d | ||
| 341 | Bridge br-tun | ||
| 342 | Port br-tun | ||
| 343 | Interface br-tun | ||
| 344 | type: internal | ||
| 345 | Port "gre-1" | ||
| 346 | Interface "gre-1" | ||
| 347 | type: gre | ||
| 348 | options: {in_key=flow, local_ip="192.168.7.4", out_key=flow, remote_ip="192.168.7.2"} | ||
| 349 | Port patch-int | ||
| 350 | Interface patch-int | ||
| 351 | type: patch | ||
| 352 | options: {peer=patch-tun} | ||
| 353 | Bridge br-int | ||
| 354 | Port br-int | ||
| 355 | Interface br-int | ||
| 356 | type: internal | ||
| 357 | Port "int-br-eth0" | ||
| 358 | Interface "int-br-eth0" | ||
| 359 | Port patch-tun | ||
| 360 | Interface patch-tun | ||
| 361 | type: patch | ||
| 362 | options: {peer=patch-int} | ||
| 363 | Port "tap78e1ac37-6c" | ||
| 364 | tag: 2 | ||
| 365 | Interface "tap78e1ac37-6c" | ||
| 366 | Port "tap315398a4-cd" | ||
| 367 | tag: 1 | ||
| 368 | Interface "tap315398a4-cd" | ||
| 369 | Bridge "br-eth0" | ||
| 370 | Port "phy-br-eth0" | ||
| 371 | Interface "phy-br-eth0" | ||
| 372 | Port "eth0" | ||
| 373 | Interface "eth0" | ||
| 374 | Port "br-eth0" | ||
| 375 | Interface "br-eth0" | ||
| 376 | type: internal | ||
| 377 | ovs_version: "2.0.0" | ||
| 378 | |||
| 379 | |||
| 380 | References | ||
| 381 | ---------- | ||
| 382 | http://developer.rackspace.com/blog/neutron-networking-vlan-provider-networks.html \ No newline at end of file | ||
