网络节点 为虚拟机提供DHCP 路由功能
quantum--->nova-network 早期版本 linux 桥接--flatDHCP
网络节点 外网--eht1--br-ex -------br-int--透明eth0=====eht0--内网
计算节点 虚拟机qbr-xxxxx--br-int-----------phy-eth0-----透明eth0=====eht0
虚拟机互联 br-tun------vpn------br-tun vxlan
实现不同租户之间网络隔离的几种技术:
vlan 4096个
gre 一种VPN 隧道 每个虚拟主机都要互相建立VPN
vxlan(默认) 1600万个
3台机器,h1是控制节点 h1安装了rabbitmq+keystone+swift+cinder+glance ,可以看前面的写的博客
h2是网络节点
[[email protected] ~(key)]# keystone user-create --name neutron --pass hequan [[email protected] ~(key)]# keystone user-role-add --user neutron --role admin --tenant services [[email protected] ~(key)]# keystone service-create --name neutron --type network --description "neutron" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | neutron | | enabled | True | | id | 6e0c0784195f40658f725f796a35bc44 | | name | neutron | | type | network | +-------------+----------------------------------+ keystone endpoint-create --service-id 6e0c0784195f40658f725f796a35bc44 --publicurl ‘http://192.168.1.5:9696‘ --internalurl ‘http://192.168.1.5:9696‘ --adminurl ‘http://192.168.1.5:9696‘ #控制节点的地址 +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | adminurl | http://192.168.1.5:9696 | | id | 85c82c7119a04f7cb2a95614e078c3c2 | | internalurl | http://192.168.1.5:9696 | | publicurl | http://192.168.1.5:9696 | | region | regionOne | | service_id | 6e0c0784195f40658f725f796a35bc44 | +-------------+----------------------------------+
[[email protected] ~(key)]# yum install openstack-neutron.noarch openstack-neutron-ml2.noarch ##在控制节点上安装 ml2是 网络核心插件,不同租户隔离 作用:实用 VLNA 还是VXLAN 分配 [[email protected] neutron(key)]# ls conf.d metadata_agent.ini plugins dhcp_agent.ini neutron.conf policy.json l3_agent.ini neutron.conf.bak rootwrap.conf [[email protected] neutron(key)]# mv neutron.conf neutron.conf.bak vim neutron.conf ###修改配置文件 [DEFAULT] verbose = True router_distributed = False debug = False state_path = /var/lib/neutron use_syslog = False use_stderr = True log_dir =/var/log/neutron bind_host = 0.0.0.0 bind_port = 9696 core_plugin =neutron.plugins.ml2.plugin.Ml2Plugin service_plugins =router auth_strategy = keystone base_mac = fa:16:3e:00:00:00 mac_generation_retries = 16 dhcp_lease_duration = 86400 dhcp_agent_notification = True allow_bulk = True allow_pagination = False allow_sorting = False allow_overlapping_ips = True advertise_mtu = False agent_down_time = 75 router_scheduler_driver = neutron.scheduler.l3_agent_scheduler.ChanceScheduler allow_automatic_l3agent_failover = False dhcp_agents_per_network = 1 l3_ha = False api_workers = 1 rpc_workers = 1 use_ssl = False notify_nova_on_port_status_changes = True notify_nova_on_port_data_changes = True nova_url = http://192.168.1.5:8774/v2 nova_region_name =RegionOne nova_admin_username =nova nova_admin_tenant_name =services nova_admin_password =hequan nova_admin_auth_url =http://192.168.1.5:5000/v2.0 send_events_interval = 2 rpc_response_timeout=60 rpc_backend=rabbit control_exchange=neutron lock_path=/var/lib/neutron/lock [matchmaker_redis] [matchmaker_ring] [quotas] [agent] root_helper = sudo neutron-rootwrap /etc/neutron/rootwrap.conf report_interval = 30 [keystone_authtoken] auth_uri = http://192.168.1.5:5000/v2.0 identity_uri = http://192.168.1.5:35357 admin_tenant_name = services admin_user = neutron admin_password = hequan [database] connection = mysql://neutron:[email protected]/neutron max_retries = 10 retry_interval = 10 min_pool_size = 1 max_pool_size = 10 idle_timeout = 3600 max_overflow = 20 [nova] [oslo_concurrency] [oslo_policy] [oslo_messaging_amqp] [oslo_messaging_qpid] [oslo_messaging_rabbit] kombu_reconnect_delay = 1.0 rabbit_host = 192.168.1.5 rabbit_port = 5672 rabbit_hosts = 192.168.1.5:5672 rabbit_use_ssl = False rabbit_userid = guest rabbit_password = guest rabbit_virtual_host = / rabbit_ha_queues = False heartbeat_rate=2 heartbeat_timeout_threshold=0 [qos] [[email protected] ml2(key)]# pwd /etc/neutron/plugins/ml2 [[email protected] ml2(key)]# grep -vE "^$|^#" ml2_conf.ini ##修改此配置文件 [ml2] type_drivers = vxlan tenant_network_types = vxlan mechanism_drivers =openvswitch path_mtu = 0 [ml2_type_flat] [ml2_type_vlan] [ml2_type_gre] [ml2_type_vxlan] vni_ranges =10:100 vxlan_group =224.0.0.1 [ml2_type_geneve] [securitygroup] enable_security_group = True [[email protected] neutron(key)]# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini plugin.ini ##创建快捷链接,在neutron目录下 [[email protected] ~(key)]# openstack-db --init --service neutron --password hequan --rootpw 123456 ##创建数据库 ERROR 1146 (42S02) at line 1: Table ‘neutron.migrate_version‘ doesn‘t exist ###这个报错忽略 Final sanity check failed. Please file a bug report on bugzilla.redhat.com against the openstack-neutron package. [[email protected] neutron(key)]# systemctl start neutron-server.service [[email protected] neutron(key)]# systemctl enable neutron-server.service 网络节点 [[email protected] ~]# hostname h2.hequan.lol eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ##做内网 inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ##绑定到外网了 inet 192.168.2.2 netmask 255.255.255.0 broadcast 192.168.1.255 [[email protected] ~]# systemctl stop NetworkManager.service [[email protected] ~]# systemctl disable NetworkManager.service 配置好 yum 可参考前面的博客 [[email protected] ~]# yum install openstack-neutron.noarch openstack-neutron-openvswitch.noarch -y [[email protected] ~]# systemctl start openvswitch [[email protected] ~]# systemctl enable openvswitch [[email protected] ~]# ovs-vsctl add-br br-ex [[email protected] ~]# ovs-vsctl add-br br-int [[email protected] ~]# ovs-vsctl add-br br-tun [[email protected] ~]# ovs-vsctl list-br br-ex br-int br-tun [[email protected] network-scripts]# ovs-vsctl add-port eth1 ovs-vsctl: ‘add-port‘ command requires at least 2 arguments [[email protected] network-scripts]# ovs-vsctl add-port br-ex eth1 [[email protected] ~]# ovs-vsctl show f03c4634-99af-4388-af85-65bbdf45f5d3 Bridge br-ex Port br-ex Interface br-ex type: internal Port "eth1" Interface "eth1" Bridge br-int Port br-int Interface br-int type: internal Bridge br-tun Port br-tun Interface br-tun type: internal ovs_version: "2.4.0" [[email protected] neutron]# mv neutron.conf neutron.conf.bak ##把上面写的 neutron.conf 复制到 这里 [[email protected] neutron]# chown root.neutron neutron.conf [[email protected] neutron]# vim dhcp_agent.ini #dhcp服务 [DEFAULT] interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver ovs_integration_bridge = br-int dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq use_namespaces = True force_metadata = False enable_isolated_metadata = False enable_metadata_network = False [AGENT] [[email protected] neutron]# vim l3_agent.ini ##路由 [DEFAULT] debug = False interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver use_namespaces = True external_network_bridge = br-ex metadata_port = 9697 agent_mode = legacy [AGENT] [[email protected] neutron]# vim metadata_agent.ini ## [DEFAULT] auth_url = http://192.168.1.5:5000/v2.0 auth_region = regionOne admin_tenant_name = service admin_user = neutron admin_password = hequan nova_metadata_ip = 192.168.1.5 nova_metadata_port = 8775 nova_metadata_protocol = http nova_metadata_insecure = False cache_url = memory://?default_ttl=5 [AGENT] [[email protected] network-scripts]# cat ifcfg-br-ex DEVICE=br-ex DEVICETYPE=ovs TYPE=OVSBridge ONBOOT=yes BOOTPROTO=none IPADDR=192.168.2.2 NETMASK=255.255.255.0 GATEWAY=192.168.2.1 DNS1=202.106.0.20 [[email protected] network-scripts]# cat ifcfg-eth1 DEVICE=eth1 DEVICETYPE=ovs TYPE=OVSPort OVS_BRIDGE=br-ex ONBOOT=yes BOOTPROTO=none [[email protected] network-scripts]# systemctl restart network [[email protected] ml2]# vim openvswitch_agent.ini [ovs] [agent] [securitygroup] 3. With VXLAN tunneling. [ovs] integration_bridge = br-int tunnel_bridge = br-tun local_ip = 192.168.1.10 ##本地ip bridge_mappings = physnet1:eth0 [agent] tunnel_types = vxlan [[email protected] ml2]# systemctl start neutron-dhcp-agent.service neutron-l3-agent.service neutron-metadata-agent.service neutron-openvswitch-agent.service systemctl enable neutron-dhcp-agent.service neutron-l3-agent.service neutron-metadata-agent.service neutron-openvswitch-agent.service [[email protected] ~(key)]# neutron agent-list +--------------------------------------+--------------------+---------------+-------+----------------+---------------------------+ | id | agent_type | host | alive | admin_state_up | binary | +--------------------------------------+--------------------+---------------+-------+----------------+---------------------------+ | 1264da88-1570-445f-ab9a-a3fb0dcc4743 | DHCP agent | h2.hequan.lol | :-) | True | neutron-dhcp-agent | | 5503e449-9373-430a-9f8f-9714d2ad1af6 | Linux bridge agent | h2.hequan.lol | :-) | True | neutron-linuxbridge-agent | | 797a7b92-f62f-4e01-b075-b1fe5868618b | Metadata agent | h2.hequan.lol | :-) | True | neutron-metadata-agent | | 8c5cd9c4-3ded-4eb5-91a2-fa420a3501a5 | L3 agent | h2.hequan.lol | :-) | True | neutron-l3-agent | +--------------------------------------+--------------------+---------------+-------+----------------+---------------------------+
时间: 2024-10-27 05:16:11