openstack-neutron(2)
neutron— 网络实践

可以通过 ip netns exec qdhcp-7bf09be4-8653-4869-84f0-33494f238627 ip a命令查看ns-ba07bb93配置:



- 控制节点三个网卡(eth0, eth1, eth2),计算节点两网卡(eth0, eth1)。
- 合并 Management 和 API 网络,使用 eth0,IP 段为 192.168.104.0/24。
- VM 网络使用 eht1。
- 控制节点的 eth2 与 External 网络连接,IP 段为 10.10.10.0/24。Linux Bridge :
Open vSwitch:
Open vSwitch 中的网络设备:br-ex:连接外部(external)网络的网桥。br-int:集成(integration)网桥,所有 instance 的虚拟网卡和其他虚拟网络设备都将连接到该网桥。br-tun:隧道(tunnel)网桥,基于隧道技术的 VxLAN 和 GRE 网络将使用该网桥进行通信。tap interface:命名为 tapXXXX。linux bridge:命名为 qbrXXXX。veth pair:命名为 qvbXXXX, qvoXXXXOVS integration bridge:命名为 br-int。OVS patch ports:命名为 int-br-ethX 和 phy-br-ethX(X 为 interface 的序号)。OVS provider bridge:命名为 br-ethX(X 为 interface 的序号)。物理 interface:命名为 ethX(X 为 interface 的序号)。OVS tunnel bridge:命名为 br-tun。三、三层网络介绍:虚拟机访问外网(1)虚拟机中访问一个外网地址192.168.253.3,并用 traceroute 命令跟踪路由查看:
(2)根据网络拓扑,由于虚机访问外网要经过本网段的网关192.168.101.1,然后经过路由的外网接口转发出去,到达192.168.253.3
查看路由命名空间:ip netns list
(3)查看路由命名空间的网络配置,查到路由连接外网的端口和ip:ip netns exec qrouter-176bd7e0-6427-46a5-906a-be6a373a29a1 ip a
路由上的外网端口正好接到外网网桥br-ex上:ovs-vsctl show 查看
4)查看路由iptables NAT 转发规则,记录对私网做的SNATip netns exec qrouter-176bd7e0-6427-46a5-906a-be6a373a29a1 iptables -t nat -Lip netns exec qrouter-176bd7e0-6427-46a5-906a-be6a373a29a1 iptables -t nat -S
规则解释: -A neutron-l3-agent-snat -o qg-8df29d32-d6 -j SNAT --to-source 192.168.253.65 记录了流入接口qg-8df29d32-d6 的数据包做SNAT(基于源地址转发),将源地址修改为192.168.253.65(5)验证:在虚机 ping 192.168.253.3 时, 可以通过 tcpdump 分别观察 router 两个 interface 的 icmp 数据包来验证 SNAT 的行为:在路由qrouter-176bd7e0-6427-46a5-906a-be6a373a29a1,可查到私有网络的网关接口qr-7b56f58b-b5,并在路由中抓取网关接口的icmp包:ip netns exec qrouter-176bd7e0-6427-46a5-906a-be6a373a29a1 tcpdump -i qr-7b56f58b-b5 -n icmp
在路由中,抓取路由的外网接口qg-8df29d32-d6的icmp包:ip netns exec qrouter-176bd7e0-6427-46a5-906a-be6a373a29a1 tcpdump -i qg-8df29d32-d6 -n icmp
外网访问虚机——floating ip原理SNAT 让 instance 能够直接访问外网,但外网还不能直接访问 instance。因为 instance 没有外网 IP。这里 “直接访问 instance” 是指通信连接由外网发起,例如从外网 SSH 实例。(1)首先将实例绑定浮动 ip192.168.253.66, floating IP 是配置在 router 的外网 interface 上的,再查看 router 的 interface 配置:
(2)在实例中ping 192.168.253.3 外网地址,在路由的qr-7b56f58b-b5 接口上,实例访问外网ip,外网ip将数据包转发回实例ip;但在路由的qg-8df29d32-d6 接口上,始终是通过 floating IP 192.168.253.66 与外网通信。
(3) 原因是在路由中iptables做了DNA T(基于目的地址转发),查看 router 的 NAT 规则:
当 router 接收到从外网发来的包,如果目的地址是 floating IP 192.168.254.66,将目的地址修改为实例的 IP 192.168.101.3。这样外网的包就能送达到实例;当实例发送数据到外网,源地址 192.168.101.3 将被修改为 floating IP 192.168.253.66;四:neutron配置文件:neutron.conf[DEFAULT]state_path = /var/lib/neutronauth_strategy = keystonecore_plugin = ml2service_plugins = routerdhcp_agent_notification = trueallow_overlapping_ips = Truenotify_nova_on_port_status_changes = truenotify_nova_on_port_data_changes = truetransport_url = rabbit://openstack:admin@controller[agent][cors][cors.subdomain][database]connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron[keystone_authtoken]auth_uri = http://controller:5000auth_url = http://controller:35357memcached_servers = controller:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = neutronpassword = neutron[matchmaker_redis][nova]region_name = RegionOneauth_url = http://controller:35357auth_type = passwordproject_domain_name = defaultproject_name = serviceuser_domain_name = defaultusername = novapassword = nova[oslo_concurrency]lock_path = $state_path/lock[oslo_messaging_amqp][oslo_messaging_kafka][oslo_messaging_notifications][oslo_messaging_rabbit][oslo_messaging_zmq][oslo_middleware][oslo_policy][qos][quotas][ssl]ml2_conf.ini[DEFAULT][ml2]type_drivers = flat,vxlantenant_network_types = vxlanmechanism_drivers = openvswitch,l2populationextension_drivers = port_security[ml2_type_flat][ml2_type_geneve][ml2_type_gre][ml2_type_vlan][ml2_type_vxlan]vni_ranges = 1:1000[securitygroup]enable_ipset = trueopenvswitch_agent.ini[DEFAULT][agent]tunnel_types = vxlanl2_population = True[ovs]tunnel_bridge = br-tunlocal_ip = 192.168.254.63bridge_mappings =[securitygroup]firewall_driver = iptables_hybridenable_security_group = true[xenapi]l3_agent.ini[DEFAULT]interface_driver = openvswitchexternal_network_bridge = br-ex[agent][ovs]metadata_agent.ini[DEFAULT]nova_metadata_ip = controllermetadata_proxy_shared_secret = METADATA_SECRET[agent][cache]dhcp_agent.ini[DEFAULT]interface_driver = openvswitchdhcp_driver = neutron.agent.linux.dhcp.Dnsmasqenable_isolated_metadata = true[agent][ovs]注意:配置完配置文件后,提前准备ovs外网用的网桥,之后同步数据库,启动服务:(控制)yum install openstack-neutron openstack-neutron-ml2 openvswitch openstack-neutron-openvswitch ebtables -ysystemctl enable neutron-server.service neutron-dhcp-agent.service openvswitch neutron-openvswitch-agent neutron-metadata-agent.servicesystemctl start neutron-server.service neutron-dhcp-agent.service openvswitch neutron-openvswitch-agent neutron-metadata-agent.serviceovs-vsctl add-br br-exovs-vsctl add-port br-ex eth2systemctl enable neutron-l3-agent.servicesystemctl start neutron-l3-agent.service(计算)yum install openvswitch openstack-neutron-openvswitch ebtables ipsetsystemctl enable openvswitch neutron-openvswitch-agentsystemctl start openvswitch neutron-openvswitch-agentsystemctl stop openvswitch neutron-openvswitch-agent
openstack-neutron(2)的更多相关文章
- Openstack Neutron OVS ARP Responder
ARP – Why do we need it? In any environment, be it the physical data-center, your home, or a virtual ...
- Openstack Neutron L2 Population
Why do we need it, whatever it is? VM unicast, multicast and broadcast traffic flow is detailed in m ...
- 深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现(一)
VPC的概念与基于vxlan的overlay实现很早就有了,标题中的"新"只是一个和传统网络的相对概念.但从前年开始,不同于以往基础网络架构的新一代SDN网络才真正越来越多的走进国 ...
- openstack neutron中涉及的网络设备
一.openstack neutron网络设备介绍 Bridge(网桥) 用于将两个LAN连接起来,主要靠的MAC地址学习机制.当网桥的Port收到包时会将包的源mac和port ID关联起来记入ma ...
- [转]OpenStack Neutron运行机制解析概要
转载自:http://panpei.net.cn/2013/12/04/openstack-neutron-mechanism-introduce/ 自从开学以来,玩OpenStack也已经3个月了, ...
- [转]OpenStack Neutron解析
1.为什么还需要linux bridge的部署方式? 2.哪一个网桥起着交换机的作用? 3.neutron如何实现私有网络的隔离 =================================== ...
- OpenStack Neutron配置虚拟机访问外网
配置完成后的网络拓扑如下: 当前环境: X86服务器1台 Ubuntu 16.04 DevStack搭建OpenStack 网络拓扑: 外部网络:192.168.98.0/24 内部网络:10.0.0 ...
- openstack neutron L3 HA
作者:Liping Mao 发表于:2014-08-20 版权声明:能够随意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 近期Assaf Muller写了一篇关于Neutro ...
- openstack Neutron分析(3)—— neutron-dhcp-agent源码分析
1.neutron dhcp3个主要部件分别为什么?2.dhcp模块包含哪些内容?3.Dnsmasq配置文件是如何创建和更新的?4.DHCP agent的信息存放在neutron数据库的哪个表中? 扩 ...
- OpenStack Neutron 之 Load Balance
OpenStack Neutron 之 Load Balance 负载均衡(Load Balance)是 OpenStack Neutron 支持的功能之一.负载均衡能够将网络请求分发到多个实际处理请 ...
随机推荐
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_6、SpringBoot2.xHTTP请求配置讲解
1.SpringBoot2.xHTTP请求配置讲解 简介:SpringBoot2.xHTTP请求注解讲解和简化注解配置技巧 1.@RestController and @RequestMapping是 ...
- IDEA分配内存无效
idea改启动内存分配, 改 C:/Users/xxx/.IntelliJIdea2018.1/confing/idea64.exe.vmoptions 或 C:/Users/xxx/.Intelli ...
- php nginx window系统 gettext方式实现UTF-8国际化多语言(i18n)
开始应用: 步骤一:搭建环境(服务器已经完成,环境已经搭建好了) 1.首先查看你的php扩展目录下是否有php_gettext.dll这个文件,如果没有,这就需要你下载一个或是从其他地方拷贝一个,然后 ...
- PL-SQL Developer 配置使用Oracle客户端连接
没有在本地安装Oracle 的用户必须下载一个instantclient(即使客户端), 路径指向这里,才能正常使用 下载 instantclient-basic-nt-11.2.0.3.0.zip ...
- (一)IDEA修改HTML不生效(未热部署)
一.问题 IDEA 版本:2018.1.2 项目类型:SpringBoot 描述 : 修改JSP文件内容时,不会热部署,需要每次都重启项目才生效. 二.解决方案 加入Springboot开发者工具,即 ...
- Js获取file上传控件的文件路径总结
总结一个获取file上传控件文件路径的方法 firefox由于保护机制只有文件名,不能获取完整路径. document.getElementById('file').onchange = functi ...
- 解决RedisDesktopManager连接不上redis问题
linux 下安装redis很简单,在此不做赘述 发现linux上启动redis,测试redis使用正常, 但使用RedisDesktopManager却连接不上,报错如下,报错信息显示:当前使用的P ...
- 预训练中Word2vec,ELMO,GPT与BERT对比
预训练 先在某个任务(训练集A或者B)进行预先训练,即先在这个任务(训练集A或者B)学习网络参数,然后存起来以备后用.当我们在面临第三个任务时,网络可以采取相同的结构,在较浅的几层,网络参数可以直接加 ...
- Andrew Ng机器学习课程10补充
Andrew Ng机器学习课程10补充 VC dimension 讲到了如果通过最小化训练误差,使用一个具有d个参数的hypothesis class进行学习,为了学习好,一般需要参数d的线性关系个训 ...
- htm5 css学习笔记整理
点击链接后退页面: <a href="javascript:history.go(-1)">回到上一个网页</a> ——修改placeholder提示的样式 ...