Posts

Showing posts from May, 2022

为 Openstack 创建 PXE 启动映像

  Openstack 不支持启动无盘 PXE 启动 VM,我们必须创建具有 PXE 启动功能的映像才能实现此目的。 1.创建一个小的空磁盘文件,创建dos文件系统。 dd if=/dev/zero of=pxeboot.img bs=1M count=4 mkdosfs pxeboot.img 2.让它可以通过syslinux引导 losetup /dev/loop0 pxeboot.img mount /dev/loop0 /mnt syslinux --install /dev/loop0 3.安装iPXE内核并制作系统.cfg在启动时加载它 wget http://boot.ipxe.org/ipxe.iso mount -o loop ipxe.iso /media cp /media/ipxe.krn /mnt cat > /mnt/syslinux.cfg <<EOF DEFAULT ipxe LABEL ipxe KERNEL ipxe.krn EOF umount /media/ umount /mnt 4.现在我们已经准备好了pxeboot.img,让我们注册它来一瞥 source nceprc glance image-create --name NG-AS --is-public true --disk-format raw --container-format bare < pxeboot.img

linux下内网IPv4如何NAT到ipv6,并连通IPv6的实现

Image
 网络拓扑图如下: ·        eth0为网关WAN口,接入广域网。 ·        eth1为网关LAN口,接入局域网。 主要配置: 1. linux服务器接口的ipv6地址配置 # sysctl net.ipv6.conf.all.forwarding=1     //打开ipv6转发功能; #ip addr add 2001:250:1006:5066::100/64 dev eth1  //配置lan口ipv6地址,即内网的网关,前64位与wan口的相同;  #ip addr add 2001:250:1006:5066:216:d3ff:fe25:93ff/64 dev eth0     // 配置wan口ipv6地址,即从广域网获得的IPv6地址; # ip -6 route add ::/0 via 2001:250:1006:5066::1 dev eth0 metric 256  //添加默认路由,即广域网所给的网关; 2.配置radvd为局域网自动配置网络信息 安装radvd  #yum install radvd  配置/etc/radvd.conf        interface eth1 {         AdvSendAdvert on;         MinRtrAdvInterval 30;         MaxRtrAdvInterval 100;         prefix 2001:250:1006:5066::/64         {                 AdvOnLink on;                 AdvAutonomous on;                 AdvRouterAddr on;         }; }; 打开radvd:  #radvd  此时局域网内的计算机应该已经获得了 2001:250:1006:5066: 开头的IPv6地址。由于没有向ISP申请单独的IPv6地址块,这里不可能在外网上添加路由,同时,由于内网与外网同属一个子网(2001:250:1006:5066/64),也不可能想外网广播路由信息包,这样会造成路由混乱。Linux 提供了一个 proxy_ndp 选项,可以让外网的ndp请求穿过网关。 3.配置npd6  #sysctl net.

NAT-PT - 原理

Image
操作 NAT-PT的工作原理是捕获,转换和发送从IPv6到IPv4网络的数据包(反之亦然)。输出数据包的目标 IPv4 地址由接收的 IPv6 数据包中目标的最后四个字节确定。请看下图。PC1 上的一个用户,一个内部纯 IPv6 主机打开一个 Internet 浏览器,然后转到 www.google.com。他的计算机首先对其 DNS 服务器执行查询。 NAT-PT 捕获数据包,并在 PC1 的 IPv6 地址与其池中的某个 IPv4 地址之间创建新的绑定,并转换数据包。NAT-PT 看到 DNS 查询并将 AAAA 请求转换为 A 请求。最后,它为新创建的 IPv4 数据包找到路由,并将其排队到相应的出站接口。 DNS 服务器接收查询并发送答复。 NAT-PT 捕获流量并查找映射的 IPv6 地址。它还会查看 DNS A 资源记录并将其转换为 AAAA 记录。它通过添加一个特殊的“NAT-PT前缀”(通过“naptd-confmaker”配置,默认值为2000:ffff::)到 IPv4 地址的开头。最后,它为新创建的 IPv6 数据包找到路由,并将其排队到相应的出站接口。 从这里,PC1 启动与 www.google.com 的连接。 NAT-PT捕获数据包并在PC1的IPv6地址与其池中的IPv4地址之一之间创建新的绑定,转换数据包,查找路由,然后...等。 Google的Web服务器回复初始SYN数据包。 NAT-PT 捕获流量并查找映射的 IPv6 地址。最后,它为新创建的 IPv6 数据包找到路由,并将其排队到相应的出站接口。 以上总结了纯 IPv6 和纯 IPv4 主机如何通信的基础知识。连接的其余部分以相同的方式发生。NAT-PT 维护三个“转换”池,一个用于 TCP,一个用于 UDP,一个用于 ICMP。默认情况下,TCP 转换在捕获 RST 或 FIN 数据包后 5 分钟后或 24 小时不活动后超时。UDP 转换在 1 小时后过期,ICMP 在 30 秒后过期。 先决条件 NAT-PT 要求 iptable 和 ip6tables 都能正常工作。这是由于NAT-PT在用户空间中运行的事实引起的。这有两个重要的副作用: 1. TCP 重置。 在数据包从 IPv6 转换并使用出站接口的 IPv4 地址作为转换的全局 IPv4 地址发送到 IPv4 端

用于 Openstack Glance/Cinder/Instance-store 的 NFS 后端

在这篇文章中,让我们介绍如何将NFS配置为Openstack Glance,Cinder和共享实例存储的统一存储后端,我们还将看看它是如何工作的。 设置:1 个控制器和 2 个计算节点。控制器也充当 NFS 服务器。 OS+Openstack: RHEL7 + Juno 控制器: 192.168.255.1 HPDL36 计算: 192.168.255.2 HPDL37 计算: 192.168.255.3 HPDL38 在控制器服务器上设置 NFS 服务器 创建 3 个文件夹作为实例存储、概览和灰烬的共享源,授予足够的访问权限: mkdir /nfsshare; chmod 777 /nfsshare mkdir /nfsshare_glance; chmod 777 /nfsshare_glance mkdir /nfsshare_cinder; chmod 777 /nfsshare_cinder 创建 /etc/导出 /nfsshare   *(rw,no_root_squash) /nfsshare_cinder *(rw,no_root_squash) /nfsshare_glance *(rw,no_root_squash) 启动 NFS 服务器 systemctl start rpcbind systemctl start nfs systemctl start nfslock 设置 NFS 客户端 一目了然 将 NFS 共享挂载到控制器节点上,一目了然: mount HPDL36:/nfsshare_glance /var/lib/glance/images 新星实例存储 在 2 个计算节点上挂载 NFS 共享,用于共享实例存储 mount HPDL36:/nfsshare /var/lib/nova/instances 煤渣 煤渣卷服务将处理安装,我们不需要在这里进行手动安装。 设置开放堆栈 由于 Glance 和 Nova 将这些 NFS 挂载的文件夹用作本地文件系统,因此默认的 Openstack 配置将起作用。只有 Cinder 需要 NFS 后端的特殊配置: 将 NFS 共享条目创建到文件中 /etc/cinder/nfsshare HPDL36:/nfsshare_cinder 更改文件的所有权和访问权限: cho

ML2/VXLAN 的工作原理

Image
我的设置: 1 个控制器节点 + 2 个计算节点 RDO Havana 2013.2.2, CentOS 6.5, OpenVSwitch 1.11.0 VXLAN 本地 IP: 控制器:10.142.255.101 计算-1:10.142.255.102 计算-2:10.142.255.103 1. 使用 ML2 设置 VXLAN 打包安装后,默认情况下不安装ML2,我们必须手动配置它。 在控制器节点上: yum install  openstack-neutron-ml2 python-pyudev 编辑 /etc/neutron/neutron.conf core_plugin =neutron.plugins.ml2.plugin.Ml2Plugin service_plugins=neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,neutron.services.loadbalancer.plugin.LoadBalancerPlugin 更改链接 plugin.ini unlink /etc/neutron/plugin.ini ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini 编辑 /etc/neutron/plugin.ini [ml2] type_drivers = vxlan tenant_network_types = vxlan mechanism_drivers = openvswitch [ml2_type_flat] [ml2_type_vlan] [ml2_type_gre] [ml2_type_vxlan] vni_ranges = 1001:2000 vxlan_group = 239.1.1.1 [database] sql_connection = mysql://neutron:83105f1d6ded47cc@10.142.0.101/neutron_ml2 [securitygroup] firewall_driver = dummy_value_to_enable_security_groups_in_serve