How to Launch Public Instance Using Floating IP | Cara Membuat Server Publik Menggunakan Floating IP | OpenStack Home Lab

Ach.Chusnul Chikam
5 min readJul 28, 2020

--

Pada kesempatan kali ini saya akan membahas bagaimana panduan membuat server/instance yang memiliki akses koneksi ke jaringan publik menggunakan floating IP. Melanjutkan dari tulisan sebelumnya (Instalasi Openstack Ussuri), sekarang mari kita coba untuk mengoperasikan OpenStack yang sudah jalan.

Alur Kerja:

  1. Menyiapkan image
  2. Menyiapkan flavor
  3. Menyiapkan network
  4. Menyiapkan router
  5. Menyapkan security group
  6. Menyiapkan keypair
  7. Membuat server/instance
  8. Menyiapkan dan mengalokasikan floating IP ke server/instance
  9. Tes akses jaringan publik menggunakan server/instance OpenStack

Untuk mengatur variabel environment yang diperlukan OpenStack CLI client, anda harus membuat file environment yang disebut file rc OpenStack. Jika anda menggunakan tool deployment packstack untuk instalasi OpenStack maka file rc ini akan disediakan setelah proses deployment selesai, tapi jika belum tersedia anda dapat mengunduh file rc dari dashboard OpenStack sebagai admin atau pengguna lainnya. File rc ini berisi kredensial yang digunakan oleh semua layanan OpenStack. Lakukan source file rc menggunakan perintah:

# source keystonerc_admin

Informasi tentang file rc (docs.openstack.org)

Menyiapkan image

Siapkan image dengan mengunduh terlebih dulu file image cirros lalu unggah ke glance dengan format .qcow2 menggunakan perintah openstack image seperti berikut:

# wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img
# openstack image create --disk-format qcow2 \
--container-format bare \
--public \
--file cirros-0.5.1-x86_64-disk.img \
cirros-0.5.1
# openstack image list

Menyiapkan flavor

Siapkan daftar flavor minimal mempunnyai ukuran RAM, Disk dan vCPU. Buat menjadi katalog dengan ukuran paling kecil sampai besar. Perintah untuk membuat flavor menggunakan openstack flavor seperti berikut:

# openstack flavor create --id 0 --ram 512 --vcpus 1 --disk 10 m1.tiny
# openstack flavor create --id 1 --ram 1024 --vcpus 1 --disk 20 m1.small
# openstack flavor create --id 2 --ram 1024 --vcpus 2 --disk 30 m1.medium
# openstack flavor create --id 3 --ram 2048 --vcpus 2 --disk 40 m1.large
# openstack flavor create --id 4 --ram 4096 --vcpus 4 --disk 50 m1.xlarge
# openstack flavor list

Menyiapkan network (private)

Buat private network dan subnetnya menggunakan perintah openstack network lalu openstack subnet dengan tambahan properti --network private seperti berikut:

# openstack network create private 
# openstack subnet create --network private \
--allocation-pool start=10.0.1.50,end=10.0.1.100 \
--dns-nameserver 8.8.8.8 \
--subnet-range 10.0.1.0/24 \
private_subnet

Menyiapkan network (public)

Buat public network dan subnetnya menggunakan perintah openstack network lalu openstack subnet dengan tambahan properti --network public seperti berikut:

# openstack network create \
--provider-network-type flat \
--provider-physical-network extnet \
--external \
public
# openstack subnet create --network public \
--allocation-pool start=172.24.4.151,end=172.24.4.200 \
--no-dhcp \
--subnet-range 172.24.4.0/24 \
public_subnet
# openstack network list
# openstack subnet list

Menyiapkan router

Buat router menggunakan perintah openstack router dan atur public network yang telah dibuat sebagai eksternal gateway lalu tambahkan private network ke interface router seperti berikut:

# openstack router create myrouter
# openstack router set --external-gateway public myrouter
# openstack router add subnet myrouter private_subnet
# openstack router list

Menyiapkan security group

Buat security group untuk rules ingress dengan membuka port 22, 80, 433 dan ICMP menggunakan perintah openstack security groupseperti berikut:

# openstack security group create my_secgroup 
# openstack security group rule create --protocol TCP --dst-port 22 --remote-ip 0.0.0.0/0 my_secgroup
# openstack security group rule create --protocol TCP --dst-port 80 --remote-ip 0.0.0.0/0 my_secgroup
# openstack security group rule create --protocol TCP --dst-port 443 --remote-ip 0.0.0.0/0 my_secgroup
# openstack security group rule create --protocol ICMP --remote-ip 0.0.0.0/0 my_secgroup
# openstack security group list

Menyiapkan key pair

Buat key pair menggunakan perintah openstack keypairseperti berikut:

# ssh-keygen 
# openstack keypair create --public-key ~/.ssh/id_rsa.pub my_keypair
# openstack keypair list

Membuat server /instance

Buat server/instance dengan menggunakan properti image, flavor, network, security group dan key pair yang sudah dibuat. Gunakan perintahopenstack serverseperti berikut:

# openstack server create \
--image cirros-0.5.1 \
--flavor m1.tiny \
--network private \
--security-group my_secgroup \
--key-name my_keypair \
myserver

Server yang berhasil dibuat masih belum bisa diakses menggunakan jaringan publik, oleh karena itu dibutuhkan floating IP agar server dapat terhubung ke jaringan internet.

Membuat dan mengalokasikan floating IP

Buat floating IP menggunakan alokasi subnet dari public network yang telah dibuat lalu menambahkannya ke server/instance yang diinginkan. Gunakan perintahopenstack floating ipseperti berikut:

# openstack floating ip create --project admin --subnet public_subnet public
# openstack floating ip list
# openstack server list
# openstack server add floating ip <server> <ip-address>

Tes akses publik dari server/instance

Lakukan ping dari host OS ke instance OpenStack untuk mengecek koneksi ke dalam instance lalu lakukan ssh menggunakan private key dan arahkan ke cirros@floating ip .

# ping <floating-ip-address>
# ssh -i .ssh/id_rsa cirros@<floating-ip-address>
$

Selanjutnya lakukan tes akses jaringan publik dari server/instance menggunakan perintah-perintah berikut:

$hostname
$ip a
$ping www.redhat.com
$route -n

Tampilan pada menu Instances di dashboard Openstack:

.

Tampilan console instance Openstack:

Tampilan topologi jaringan di menu Newtork:

Sekian panduan cara membuat server publik menggunakan floating IP. Selamat mencoba. Good Luck! :)

Lihat panduan lainnya

Terima kasih,
#s0mprett0_tenan

Referensi:

#OpenStack #Ussuri #RHEL8 #OpenSource#StayHealth

--

--

Ach.Chusnul Chikam

Cloud Consultant | RHCSA | CKA | AWS SAA | OpenStack | OpenShift Certified | Google Cloud ACE | LinkedIn: https://www.linkedin.com/in/achchusnulchikam