Bir ECS örneğinin her biri ayrı bir genel IP adresi gerektiren birden çok hizmeti barındırması gerekiyorsa, NAT modunu kullanarak birden çok EIP'yi örneğin ENI'lerine bağlayabilirsiniz.
Hem birincil hem de ikincil ENI'lere birden çok EIP bağlayabilirsiniz. Ağ tasarımınıza göre seçim yapın. Bu konuda örnek olarak ikincil bir ENI kullanılmıştır.
Çalışma mantığı
Birden çok EIP bağlama: Birden çok özel IP adresine sahip ikincil bir ENI'yi bir ECS örneğine ekleyin. Ardından, EIP'leri NAT modunda özel IP adresleriyle birebir eşleşecek şekilde bağlayın.
-
Simetrik trafik yollarını sağlamak için ilke tabanlı yönlendirmeyi yapılandırın:
Gelen trafik: Harici bir istek bir EIP'ye ulaştığında, sistem trafiği otomatik olarak bu EIP'ye bağlı olan özel IP adresine iletir.
Giden trafik: ECS örneğinde ilke tabanlı yönlendirme yapılandırın. Yönlendirme ilkesi, bir paketin kaynak IP adresini (özel IP adresi) kullanarak sonraki atlamasını ve çıkış arayüzünü (ikincil ENI) belirler. Bu sayede yanıt trafiği doğru EIP üzerinden dışarı çıkar; simetrik yönlendirme korunur ve çoklu ENI ortamlarındaki çakışmalar önlenir.
Kullanım notları
-
Bir ECS örneğine ekleyebileceğiniz ENI sayısı ve bir ENI'ye atayabileceğiniz ikincil özel IP adresi sayısı, örnek ailesine göre değişir.
Örneğin,
ecs.c6.largeörnek türüne sahip bir ECS örneğine en fazla 2 esnek ağ arayüzü (ENI), yani bir birincil ENI ve bir ikincil ENI bağlanabilir; her ENI en fazla 6 özel IP adresini destekler. Hem birincil hem de ikincil ENI, birincil özel IP adresine 1 EIP ve ikincil özel IP adreslerine 5 EIP bağlamayı destekler. -
NAT modunda, EIP'ler ENI'lere NAT kullanılarak bağlanır. Bu mod, NAT Uygulama Düzeyi Ağ Geçidi (NAT ALG) kullanan protokolleri desteklemez.
EIP'leri hem birincil hem de ikincil ENI'lere bağlayabilirsiniz.
Eşleme birebir olduğundan, bağlayabileceğiniz EIP sayısı ENI üzerinde kullanılabilir olan özel IP adresi sayısıyla sınırlıdır.
VPC'niz merkezi internet erişimi için bir IPv4 ağ geçidi kullanıyorsa, ECS örneğinin internete erişebilmesi için trafiği IPv4 ağ geçidine yönlendiren bir rota yapılandırdığınızdan emin olun.
Yordam
Adım 1: Birden çok EIP bağlama
-
Birden çok özel IP adresine sahip ikincil bir ENI'yi ECS örneğine ekleyin.
Zaten bir ikincil ENI'niz varsa, bunu doğrudan ECS örneğine bağlayabilirsiniz.
ECS konsolundaki ENI'ler sayfasına gidin. Üst gezinme çubuğunda, ECS örneğinizin bulunduğu bölgeyi seçin.
-
ENI Oluştur öğesine tıklayın.
Diğer parametreler için varsayılan değerleri koruyun. ENI oluşturulduktan sonra, ENI'nin özel IP adreslerini eklemek, silmek veya değiştirmek için ENI'nin Operation sütununda ENI IP Adreslerini Yönet seçeneğine tıklayabilirsiniz.
ECS örneğinin ait olduğu VPC'yi, vSwitch'i ve güvenlik grubunu seçin.
Birincil Özel IP Adresi: vSwitch'ten kullanılmayan bir IP adresi belirtebilirsiniz. Bir IP adresi belirtmezseniz, sistem vSwitch'teki kullanılabilir adreslerden rastgele birini atar. Bu adres oluşturulduktan sonra değiştirilemez.
İkincil Özel IPv4 Adresi: Otomatik Ata seçeneğini belirleyin ve atamak istediğiniz ikincil özel IP adresi sayısını girin.
Hedef ENI'nin Operation sütununda, Bind to Instance seçeneğine tıklayın ve hedef ECS örneğini seçin.
-
İkincil özel IP adreslerini tanıması için işletim sistemini yapılandırın.
Bu konuda örnek olarak Alibaba Cloud Linux 3.2 kullanılmıştır. Diğer işletim sistemleri için bkz. İkincil özel IP adreslerini tanıması için işletim sistemi yapılandırma .
-
ECS örneğinde oturum açın ve ağ arayüzü bilgilerini görüntülemek ve onaylamak için
ip akomutunu çalıştırın.Arayüz tanımlayıcıları:
eth0(birincil ENI),eth1(ikincil ENI).Ağ kartı durumu:
state UPdeğeri, ağ kartının normal çalıştığını ve örnek içinde etkin olduğunu gösterir. Ağ kartı durumustate DOWNise, Linux işletim sistemini ağ kartını tanıyacak şekilde yapılandırmanız gerekir.
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000 link/ether 00:xxx:ff altname enp0s5 altname ens5 inet 192.168.0.3/24 brd 192.168.0.255 scope global dynamic noprefixroute eth0 valid_lft 1892159940sec preferred_lft 1892159940sec inet6 xxx/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000 link/ether 00:xxx:ff altname enp0s7 altname ens7 inet 192.168.0.252/24 brd 192.168.0.255 scope global dynamic noprefixroute eth1 valid_lft 1892159958sec preferred_lft 1892159958sec inet6 xxx/64 scope link noprefixroute valid_lft forever preferred_lft forever -
İkincil bir özel IP adresini yapılandırmak için
nmcli conkullanın.cloud-init tarafından otomatik ağ yapılandırmasını devre dışı bırakmak ve yapılandırmanın yeniden başlatmadan sonra kaybolmasını önlemek için
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgkomutunu çalıştırın venetwork: {config: disabled}yapılandırmasını ekleyin.-
eth1ağ bağlantısı adını görüntülemek içinnmcli con showkomutunu çalıştırın.[root@ixxx Z ~]# nmcli con show NAME UUID TYPE DEVICE System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0 Wired connection 1 c8c8d113-cd19-3945-a292-1a89d8bab4e8 ethernet eth1 -
İkincil ENI için ikincil özel IPv4 adreslerini ve varsayılan ağ geçidini yapılandırmak için aşağıdaki komutları çalıştırın.
Varsayılan ağ geçidini görüntülemek için
route -nkomutunu çalıştırabilirsiniz.sudo nmcli con modify "<eth1_connection_name>" ipv4.addresses <secondary_private_IPv4_address_1>,<secondary_private_IPv4_address_2> sudo nmcli con modify "<eth1_connection_name>" ipv4.gateway <default_gateway>sudo nmcli con modify "Wired connection 1" ipv4.addresses 192.168.0.1/24,192.168.0.2/24 sudo nmcli con modify "Wired connection 1" ipv4.gateway 192.168.0.253
-
Değiştirilen ağ bağlantısını etkinleştirmek için
sudo nmcli con up "<eth1 network connection name>"komutunu çalıştırın.Connection successfully activatedbenzeri bir ileti, yapılandırmanın başarılı olduğunu gösterir. İkincil özel IP adresini görüntülemek içinip akomutunu tekrar çalıştırın.eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000 link/ether 00:xxx:ff altname enp0s7 altname ens7 inet 192.168.0.1/24 brd 192.168.0.255 scope global noprefixroute eth1 valid_lft forever preferred_lft forever inet 192.168.0.2/24 brd 192.168.0.255 scope global secondary noprefixroute eth1 valid_lft forever preferred_lft forever inet 192.168.0.252/24 brd 192.168.0.255 scope global secondary dynamic noprefixroute eth1 valid_lft 1892159981sec preferred_lft 1892159981sec inet6 fe80::xxx/64 scope link noprefixroute valid_lft forever preferred_lft forever
-
-
Birden çok EIP oluşturun ve bunları ikincil ENI'nin özel IP adreslerine bağlayın.
-
EIP satın alma sayfasına gidin.
Burada yalnızca ilgili parametreler listelenmiştir. Ayrıntılı kılavuz için bkz. EIP seçme .
Billing Method: Kullandıkça öde yöntemi, iş yükü dalgalanan hizmetler için uygundur. Abonelik yöntemi, uzun vadeli ve kararlı iş yükleri için idealdir. Bu konuda Pay-as-you-go kullanılmaktadır.
Bölge ve Kullanılabilirlik AlanıBölge: ECS örneğinizle aynı bölgeyi seçin.
Hat Türü: Bu seçenek yalnızca bazı bölgelerde kullanılabilir.
Koruma: Bu seçenek yalnızca kullandıkça öde faturalama yöntemini kullanan BGP (Çoklu ISP) EIP'ler için kullanılabilir.
Adres Havuzu: Mevcut bir IP adresi havuzunuz varsa, EIP'leri bu havuzdan tahsis edebilirsiniz.
Miktar: Bağlamayı planladığınız EIP sayısını girin.
-
EIP'leri ikincil ENI'nin özel IP adreslerine birebir eşlemeyle bağlayın.
Esnek IP Adresleri sayfasına gidin. Üst gezinme çubuğunda, EIP'lerin bulunduğu bölgeyi seçin.
Her EIP için, Actions sütununda Associate with Resource seçeneğine tıklayın. ENI öğesini seçin ve ardından karşılık gelen ikincil özel IP adresini seçin.
-
Adım 2: İlke tabanlı yönlendirmeyi yapılandırma
Simetrik trafik yollarını sağlamak için ECS örneğinde ilke tabanlı yönlendirme yapılandırın.
-
ECS örneğinde oturum açın ve ikincil ENI
eth1için varsayılan bir rota ekleyin:table 1001adlı bir rota tablosu ve özel IP adresi için karşılık gelen bir yönlendirme ilkesi oluşturun.ip -4 route add default via <default_gateway> dev eth1 metric 1001 && \ ip -4 route add default via <default_gateway> dev eth1 table 1001 && \ ip -4 rule add from <secondary_eni_private_ipv4_address_1> lookup 1001 && \ ip -4 rule add from <secondary_eni_private_ipv4_address_2> lookup 1001 && \ ip -4 rule add from <secondary_eni_private_ipv4_address_3> lookup 1001 -
Oluşturulan rota tablosunu ve ilke tabanlı rotaları görüntülemek için
ip route list table 1001 && ip rule listkomutunu çalıştırın.[root@iZ ~]# ip route list table 1001 && ip rule list default via 192.168.0.253 dev eth1 0: from all lookup local 32763: from 192.168.0.2 lookup 1001 32764: from 192.168.0.1 lookup 1001 32765: from 192.168.0.252 lookup 1001 32766: from all lookup main 32767: from all lookup default -
Yapılandırmanın yeniden başlatmalarda kalıcı olmasını sağlamak için rotaların başlangıçta otomatik olarak güncellenmesini yapılandırın.
vim /etc/rc.localkomutunu çalıştırın ve bir rota tablosu ile ilke tabanlı yönlendirme oluşturma komutlarını dosyaya ekleyin.Çalıştırma izinleri eklemek için
sudo chmod +x /etc/rc.localkomutunu çalıştırın.
Adım 3: Yapılandırmayı doğrulama
Giden IP adreslerini doğrulama
ECS örneğinde oturum açın, curl --interface <ikincil ENI'nin özel IP adresi> https://ifconfig.me komutunu çalıştırın ve her özel IP adresinden gönderilen trafik için genel giden IP adresinin karşılık gelen EIP olduğunu doğrulayın.
[root@iZbxxx ~]# echo $(curl --silent --interface 192.168.0.2 https://ifconfig.me)
47.xxx.xxx.13
[root@iZbxxx ~]# echo $(curl --silent --interface 192.168.0.1 https://ifconfig.me)
121.xxx.xxx.23
[root@iZbxxx ~]# echo $(curl --silent --interface 192.168.0.252 https://ifconfig.me)
121.xxx.xxx.175
Simetrik trafik yollarını doğrulama
İnternete erişebilen başka bir test ECS örneğinde oturum açın ve
ping <ikincil ENI'ye bağlı EIP>komutunu çalıştırın.Aynı anda, bu ECS örneğinde oturum açın ve
eth1üzerindeki ICMP paketlerini yakalamak içintcpdump -i eth1 icmpkomutunu çalıştırın.
Paketin eth1 üzerinden geldiğini ve yine eth1 üzerinden döndüğünü görebilirsiniz; bu da gelen ve giden trafik yollarının tutarlı olduğunu gösterir.
[root@iZbp1xxx_uv2Z ~]# tcpdump -i eth1 icmp
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
10:14:34.410905 IP 47.xxx.xxx.250 > iZbpxxx_uv2Z: ICMP echo request, id 19, seq 1, length 64
10:14:34.410944 IP iZbpxxx_juv2Z > 47.xxx.xxx.250: ICMP echo reply, id 19, seq 1, length 64
10:14:35.412272 IP 47.xxx.xxx.250 > iZbpxxx_juv2Z: ICMP echo request, id 19, seq 2, length 64
10:14:35.412307 IP iZbpxxx_juv2Z > 47.xxx.xxx.250: ICMP echo reply, id 19, seq 2, length 64
10:14:36.413675 IP 47.xxx.xxx.250 > iZbpxxx_uv2Z: ICMP echo request, id 19, seq 3, length 64
10:14:36.413707 IP iZbpxxx_juv2Z > 47.xxx.xxx.250: ICMP echo reply, id 19, seq 3, length 64
Üretim ortamında dikkat edilmesi gerekenler
Risk önleme: Bu çözüm tek bir ECS örneği kullanır. Yüksek kullanılabilirlik için bir yük dengeleyici kullanın. Örneği yeniden başlatmanın veya ağ yapılandırmalarını değiştirmenin hizmet kesintilerine neden olabileceğini unutmayın.
İzleme ve uyarı: Anomalileri hızla tespit etmek için ikincil ENI'deki ağ trafiği, CPU kullanımı ve bellek kullanımı gibi temel ölçümler için izleme ve uyarılar ayarlayın.
Güvenlik sıkılaştırma: En az ayrıcalık ilkesini kullanarak ikincil ENI için güvenlik grubunu yapılandırın. Yalnızca hizmetleriniz için gerekli olan bağlantı noktalarına ve kaynak IP adreslerine izin verin.
Faturalama
-
-
EIP yapılandırma ücreti (genel IP saklama ücreti):
kullandıkça öde EIP: İkincil bir ENI'ye bağlandığında, internet trafiği olmasa bile bir yapılandırma ücreti (genel IP saklama ücreti) tahsil edilir.
Abonelik EIP: Yapılandırma ücreti tahsil edilmez.
-
İnternet trafiği ücreti:
kullandıkça öde EIP: Ücretler seçilen faturalama yöntemine (bant genişliğine göre ödeme veya trafiğe göre ödeme) göre tahsil edilir.
Abonelik EIP: Ücretler tepe bant genişliğine göre tahsil edilir.
-
Diğer kaynaklar: ECS örnekleri gibi kaynaklar, standart faturalama kurallarına göre faturalandırılır. İkincil ENI'ler ücretsizdir.