Topik ini menjelaskan cara menangani masalah munculnya pesan kesalahan "Jaringan tidak terjangkau" saat Anda mengakses alamat IP publik dari instance Elastic Compute Service (ECS) Linux.
Deskripsi masalah
Saat Anda mengakses alamat IP publik dari instance Linux ECS, pesan kesalahan Network is unreachable muncul.
Penyebab
Rute default dari instance hilang, sehingga sistem tidak dapat menemukan alamat IP tujuan paket. Hal ini menyebabkan kegagalan akses Internet.
Solusi
Untuk instance ECS dalam virtual private cloud (VPC), kami menyarankan Anda menggunakan Dynamic Host Configuration Protocol (DHCP) untuk mendapatkan alamat IP dinamis dan konfigurasi rute default. Ini mencegah sebagian besar masalah jaringan yang disebabkan oleh hilangnya rute default akibat konfigurasi IP statis yang tidak tepat.
Untuk informasi tentang cara mengubah alamat IP statis menjadi alamat IP dinamis, lihat Pemeriksaan dan perbaikan konfigurasi DHCP untuk antarmuka kontrol jaringan lokal instance Linux.
Langkah 1: Dapatkan alamat IP gateway default
Jika instance tidak dapat mengakses alamat IP apa pun selain alamat IP pada instance tersebut, dapatkan alamat IP gateway default dari instance lain yang terhubung ke vSwitch yang sama dengan instance tersebut. Lakukan langkah-langkah berikut:
Masuk ke instance sehat yang terhubung ke vSwitch yang sama dengan instance bermasalah.
Jalankan perintah berikut untuk melihat antarmuka kontrol jaringan (NIC) yang terhubung ke vSwitch dan catat alamat MAC:
ip addrOutput perintah serupa dengan yang berikut ini akan ditampilkan. NIC utama bernama eth0 terhubung ke vSwitch yang sama dengan instance bermasalah, dan alamat MAC NIC adalah
00:16:52:07:**:**.1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:**:**:**:** brd 00:00:**:**:**:** inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:52:07:**:** brd ff:ff:ff:ff:ff:ff inet 172.16.*.***/24 brd 172.16.2.255 scope global eth0 valid_lft 311974909sec preferred_lft 311974909sec inet6 fe80::216:52ff:fe07:1306/64 scope link valid_lft forever preferred_lft foreverJalankan perintah berikut untuk mendapatkan alamat IP gateway default dari server metadata instance.
CatatanJika instance bermasalah dapat melakukan ping ke alamat IP
100.100.100.200dari server metadata instance, Anda dapat menjalankan perintah berikut pada instance bermasalah untuk memilih NIC utama bernama eth0 sebagai egress default. Anda dapat memilih NIC lain sesuai dengan kebutuhan bisnis Anda.curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/[$MAC_Address]/gatewayCatatanGanti parameter
[$MAC_Address]dengan alamat MAC yang Anda peroleh pada langkah sebelumnya.
Langkah 2: Konfigurasikan rute default
Jika Anda sementara mengonfigurasi rute default, Anda tidak perlu memodifikasi konfigurasi NIC atau memulai ulang layanan jaringan. Namun, konfigurasi rute default akan menjadi tidak valid setelah sistem dimatikan atau di-restart.
Konfigurasikan rute default sementara
Jalankan perintah berikut untuk menambahkan rute default ke tabel routing:
ip route add default via [$Gateway_IP] dev [$Network]CatatanGanti parameter
[$Gateway_IP]dengan alamat IP gateway default yang Anda peroleh di Langkah 1.Ganti parameter
[$Network]dengan NIC yang memiliki alamat IP gateway default, yang Anda periksa pada instance lain yang terhubung ke vSwitch yang sama dengan instance bermasalah.
Jalankan perintah berikut untuk memeriksa tabel routing. Pastikan bahwa rute default telah ditambahkan ke tabel routing.
ip routeOutput perintah serupa dengan yang berikut ini akan ditampilkan:
default via 172.16.2.253 dev eth0 10.64.0.0/10 via 172.16.2.253 dev eth0 169.254.0.0/16 dev eth0 scope link metric 1002 172.16.2.0/24 dev eth0 proto kernel scope link src 172.16.2.248CatatanPada output perintah di atas, gateway default diatur ke
172.16.2.253dan NIC egress default diatur ke eth0 yang merupakan NIC utama.
Konfigurasikan rute default konsisten
Jika Anda ingin mengonfigurasi rute default yang konsisten, Anda harus memodifikasi file konfigurasi NIC. Agar perubahan pada file konfigurasi segera berlaku, Anda harus memulai ulang layanan jaringan, yang dapat menyebabkan gangguan jaringan. Pada contoh berikut, CentOS 7.9 digunakan. Untuk distribusi Linux lainnya, lihat dokumentasi sistem dan dokumentasi konfigurasi jaringan yang sesuai.
Buka file konfigurasi
/etc/sysconfig/network-scripts/ifcfg-eth0dari NIC yang berfungsi sebagai egress default. Masukkan informasi gateway yang dicatat pada langkah-langkah sebelumnya ke dalam file konfigurasi, lalu simpan dan tutup file. Sebagai contoh, NIC utama bernama eth0 digunakan sebagai egress default, dan alamat IP gateway adalah172.16.2.253.DEVICE=eth0 TYPE=Ethernet BOOTPROTO=static ONBOOT=yes STARTMODE=auto IPADDR=172.16.2.248 NETMASK=255.255.255.0 GATEWAY=172.16.2.253Jalankan perintah berikut untuk memulai ulang layanan jaringan:
systemctl restart network