Tüm Ürünler
Search
Belge Merkezi

Elastic Compute Service:Configure routes for ENIs

Son Güncelleme:Sep 30, 2026

ECS örneklerinin birden fazla ağ arayüzü üzerinden trafik gönderip almasını kontrol etmek için ENI'lerin rota tablolarını ve yönlendirme kurallarını yapılandırın.

ENI'ler için ilke tabanlı rotaları yapılandırma

İlke tabanlı yönlendirme, yalnızca varsayılan rotalara güvenmek yerine önceden tanımlanmış kurallara göre trafiği belirli ağ arayüzleri üzerinden iletir. Bu sayede birden fazla ENI arasında ayrıntılı trafik kontrolü sağlanır.

Kullanım senaryoları

  • Çoklu ENI ortamında iletişim: İkincil ENI'ler EIP veya NAT ağ geçitleriyle kullanıldığında, yanıt trafiği varsayılan rotanın daha yüksek önceliğe sahip olması nedeniyle birincil ENI üzerinden çıkabilir. İlke tabanlı rotalar, "giren kaynaktan çıkar" (source in-source out) ilkesini uygulayarak trafiğin aynı ENI üzerinden girip çıkmasını sağlar.

  • Trafik yük dengeleme: Varsayılan rotaların gereksinimlerinizi karşılamadığı durumlarda, yönlendirme kuralları tanımlayarak giden trafiği birden fazla ENI arasında dağıtın.

  • Erişim kontrolü: Kaynak adresleri, hedef adresler veya diğer parametrelere göre trafiği belirli arayüzlere veya yollarla kısıtlayarak ağ izolasyonu sağlayın.

Ön koşullar

Yordam

Aşağıdaki örneklerde eth1 adlı ikincil bir ENI kullanılmıştır. ENI tanımlayıcılarını ve IP adreslerini kendi değerlerinizle değiştirin.

Linux örneği

  1. Bir ENI için bir rota tablosu oluşturun ve bir rota kuralı ekleyin:

    ip -4 route add default via <Gateway of eth1> dev eth1 table 1001
    ip -4 rule add from <IP address of eth1> lookup 1001

    Örneğin, eth1 için 1001 adlı bir rota tablosu oluşturun ve 172.16.20.193 adresinden gelen paketlerin eth1 üzerinden yönlendirilmesi için bir kural ekleyin:

    ip -4 route add default via 172.16.20.253 dev eth1 table 1001
    ip -4 rule add from 172.16.20.193 lookup 1001
  2. Rota yapılandırmasını yeniden başlatmalar sırasında kalıcı hale getirin.

    Kalıcılığı sağlamak için rota komutunu örnek başlangıç yapılandırmasına ekleyin. Aksi takdirde, yeniden başlatma sonrası rota kaybolur. Yalnızca test yapıyorsanız bu adımı atlayın.

    1. /etc/rc.local dosyasını açın:

      vim /etc/rc.local
    2. Ekleme moduna girmek için i tuşuna basın, önceki adımdaki komutu ekleyin ve ardından Esc tuşuna basın. Dosyayı kaydedip kapatmak için :wq yazın ve Enter tuşuna basın.

      Not

      Ağ arayüzü tanımlayıcısını ve ağ geçidi adresini kendi değerlerinizle değiştirin.

    3. /etc/rc.local dosyasına yürütme izni verin:

      sudo chmod +x /etc/rc.local
  3. Rota tablosunun ve kuralının oluşturulduğunu doğrulayın:

    ip route list table 1001 && \
    ip rule list

    Aşağıdaki çıktı, rota tablosunun ve kuralının yapılandırıldığını onaylar:

    root@xxx:/etc/netplan# ip route list table 1001 && ip rule list
    default via 172.16.20.253 dev eth1
    0:	from all lookup local
    32765:	from 172.16.20.193 lookup 1001
    32766:	from all lookup main
    32767:	from all lookup default

Windows örneği

  1. Bir ENI için ilke tabanlı bir rota oluşturun:

    route add -p <Destination network> mask <Subnet mask> <Gateway> if <Interface index> metric <Route priority>

    Bu örnekte Ethernet 2 adlı bir ENI kullanılmaktadır. Aşağıdaki komut, 172.16.12.76 adresinden gelen tüm paketleri 172.16.12.253 adresindeki ağ geçidi üzerinden yönlendirir:

    route add -p 0.0.0.0 mask 0.0.0.0 172.16.12.253 if 6 metric 1

    Parametreler:

    • -p: Rotayı kalıcı hale getirir. -p olmadan rota geçicidir ve yeniden başlatma sonrası kaybolur.

    • Hedef ağ: 0.0.0.0 varsayılan rotayı belirtir ve belirli bir rota eşleşmediğinde kullanılır.

    • Alt ağ maskesi ve ağ geçidi: Bu değerleri görüntülemek için ipconfig komutunu çalıştırın.

      C:\Users\Administrator>ipconfig
      
      Windows IP Configuration
      
      Ethernet adapter Ethernet:
      
         Connection-specific DNS Suffix  . : cn-hangzhou.ecs.internal
         Link-local IPv6 Address . . . . . : fe80::6926:88f5:e002:7443%3
         IPv4 Address. . . . . . . . . . . : 172.16.20.241
         Subnet Mask . . . . . . . . . . . : 255.255.255.0
         Default Gateway . . . . . . . . . : 172.16.20.253
      
      Ethernet adapter Ethernet 2:
      
         Connection-specific DNS Suffix  . : cn-hangzhou.ecs.internal
         Link-local IPv6 Address . . . . . : fe80::46bd:a7fb:362e:f79f%6
         IPv4 Address. . . . . . . . . . . : 172.16.12.76
         Subnet Mask . . . . . . . . . . . : 255.255.255.0
         Default Gateway . . . . . . . . . : 172.16.12.253
    • Arayüz dizini: Dizini görüntülemek için netsh interface ipv4 show interfaces komutunu çalıştırın.

      Bu örnekte Ethernet 2'nin arayüz dizini (Idx) 6'dır.

      C:\Users\Administrator>netsh interface ipv4 show interfaces
      
      Idx     Met         MTU          State                Name
      ---  ----------  ----------  ------------  ---------------------------
        1          75  4294967295  connected     Loopback Pseudo-Interface 1
        3          15        1500  connected     Ethernet
        6          15        1500  connected     Ethernet 2
    • Rota önceliği: metric <n> biçiminde belirtilir. Daha küçük bir değer daha yüksek öncelik anlamına gelir.

  2. Rotanın rota listesinde göründüğünü doğrulamak için route print komutunu çalıştırın.

    C:\Users\Administrator>route print
    
    ===========================================================================
    Interface List
    3...00 16 3e 0a d5 39 ......Red Hat VirtIO Ethernet Adapter
    6...00 16 3e 4c 88 9c ......Red Hat VirtIO Ethernet Adapter #2
    1...........................Software Loopback Interface 1
    
    IPv4 Route Table
    
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
    0.0.0.0          0.0.0.0    172.16.12.253   172.16.12.76     15
    0.0.0.0          0.0.0.0    172.16.12.253   172.16.20.241     15
    127.0.0.0        255.0.0.0         On-link       127.0.0.1    331
    127.0.0.1  255.255.255.255         On-link       127.0.0.1    331
    127.255.255.255  255.255.255.255         On-link       127.0.0.1    331
    172.16.12.0    255.255.255.0         On-link    172.16.12.76    271
    172.16.12.76  255.255.255.255         On-link    172.16.12.76    271
    172.16.12.255  255.255.255.255         On-link    172.16.12.76    271
    172.16.20.0    255.255.255.0         On-link   172.16.20.241    271
    172.16.20.241  255.255.255.255         On-link   172.16.20.241    271
    172.16.20.255  255.255.255.255         On-link   172.16.20.255    271
    224.0.0.0        240.0.0.0         On-link       127.0.0.1    331
    224.0.0.0        240.0.0.0         On-link   172.16.20.241    271
    224.0.0.0        240.0.0.0         On-link    172.16.12.76    271
    255.255.255.255  255.255.255.255         On-link       127.0.0.1    331
    255.255.255.255  255.255.255.255         On-link   172.16.20.241    271
    255.255.255.255  255.255.255.255         On-link    172.16.12.76    271
    
    Persistent Routes:
    Network Address          Netmask  Gateway Address  Metric
    0.0.0.0          0.0.0.0    172.16.12.253       1
    ===========================================================================

Örnek

Bu örnekte, Alibaba Cloud Linux 3.2 çalıştıran bir ECS örneğinin paketleri ikincil ENI (eth1) üzerinden alması ve yanıt paketlerini birincil ENI (eth0) yerine eth1 üzerinden göndermesi için ilke tabanlı rotaların nasıl yapılandırılacağı gösterilmektedir. Güvenlik ilkeleriniz belirli ENI'ler için bir kaynak IP izin listesi içeriyorsa, eşleşmeyen trafik yolları meşru isteklerin reddedilmesine neden olur. İlke tabanlı rotalar bu sorunu çözer.

  1. Ortamı hazırlayın.

    1. Bir ECS örneği oluşturun.

      Bkz. Özel Başlatma sekmesinde bir örnek oluşturma.

    2. ECS örneğine ikincil bir ENI bağlayın.

      Bkz. İkincil bir ENI bağlama.

    3. Bir Elastik IP Adresi (EIP) başvurusunda bulunun ve bunu NAT modunda eth1 ikincil ENI'si ile ilişkilendirin.

      Bkz. Bir EIP'yi ikincil bir ENI ile ilişkilendirme.

      Bağlama işlemi tamamlandıktan sonra, ECS örneği ayrıntıları sayfasında Elastic Network Interface sekmesini tıklayın. İkincil ENI'nin durumu Bound olarak değişir ve IP Adresi sütunu atanmış genel IP adresini (EIP) ve birincil özel IP adresini gösterir.

    4. Bir test istemcisi hazırlayın.

      İnternet erişimi olan başka bir ECS örneğini veya şirket içi bir bilgisayarı test istemcisi olarak kullanın.

    5. ECS örneğinin güvenlik grubuna, test istemcisinin genel IP adresinden gelen erişime izin veren bir gelen kuralı ekleyin. Ardından, c adımında ilişkilendirilen EIP'ye bağlantıyı doğrulamak için test istemcisinde ping <EIP> komutunu çalıştırın.

      Bkz. "Güvenlik gruplarının kullanımı ve kullanım senaryoları için yönergeler" konusunun Durum 4: Belirli protokollerin trafiğinin ECS örneklerine erişimine izin verme bölümü.

  2. Test istemcisinden ECS örneğine paket gönderin:

    ping 47.xx.xx.109

    IP adresini eth1 ile ilişkilendirilmiş EIP ile değiştirin.

  3. ECS örneğinin hem eth0 hem de eth1 arayüzlerinde ICMP paketlerini izleyin.

    • eth0 üzerindeki ICMP paketlerini yakalayın:

      tcpdump -i eth0 icmp
    • Yeni bir pencere açın ve eth1 üzerindeki ICMP paketlerini yakalayın:

      tcpdump -i eth1 icmp
  4. Sonuçları görüntüleyin.

    İlke tabanlı rota yapılandırılmadı

    Paketler eth1 üzerinden girer ancak yanıt paketleri eth0 üzerinden çıkar. Örnek, eth1 üzerinde alır ve eth0 üzerinde yanıt verir.

    eth0 üzerinde paketleri yakalayın. ICMP echo reply (yanıt) paketlerini görebilirsiniz:

    [root@xxx ~]# tcpdump -i eth0 icmp
    dropped privs to tcpdump
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    14:01:55.129356 IP iZxxx > 12.xxx: ICMP echo reply, id 2048, seq 142, length 40
    14:01:56.141993 IP iZxxx > 12.xxx: ICMP echo reply, id 2048, seq 143, length 40
    14:01:57.145388 IP iZxxx > 12.xxx: ICMP echo reply, id 2048, seq 144, length 40
    14:01:58.163042 IP iZxxx > 12.xxx: ICMP echo reply, id 2048, seq 145, length 40

    eth1 üzerinde paketleri yakalayın. ICMP echo request (istek) paketlerini görebilirsiniz:

    [root@xxx ~]# 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
    14:01:55.129339 IP 12.xxx > iZxxx: ICMP echo request, id 2048, seq 142, length 40
    14:01:56.141980 IP 12.xxx > iZxxx: ICMP echo request, id 2048, seq 143, length 40
    14:01:57.145376 IP 12.xxx > iZxxx: ICMP echo request, id 2048, seq 144, length 40
    14:01:58.163030 IP 12.xxx > iZxxx: ICMP echo request, id 2048, seq 145, length 40

    eth0'ın varsayılan rotasının önceliği 100'dür ve eth1'inkinden daha yüksektir, bu nedenle paketler eth0'dan gönderilir.

    [root@i xxx          ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         172.16.20.253   0.0.0.0         UG    100    0        0 eth0
    0.0.0.0         172.16.20.253   0.0.0.0         UG    101    0        0 eth1
    172.16.20.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
    172.16.20.0     0.0.0.0         255.255.255.0   U     101    0        0 eth1

    İlke tabanlı rota yapılandırıldı

    1. İlke tabanlı rotaları yapılandırın. Bkz. bu konunun ENI'ler için ilke tabanlı rotaları yapılandırma bölümü.

      ip -4 route add default via 172.16.20.253 dev eth1 table 1001
      ip -4 rule add from 172.16.20.177 lookup 1001
    2. Test istemcisinde ping <EIP> komutunu çalıştırın.

    3. ENI'lerdeki ICMP paketlerini izleyin.

      Paketler artık eth1 üzerinden girip çıkmaktadır. Örnek, "giren kaynaktan çıkar" ilkesine göre aynı ENI üzerinden gönderim ve alım yapar.

      [root@xxx ~]# tcpdump -i eth0 icmp
      dropped privs to tcpdump
      tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
      listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
      
      [root@xxx ~]# 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
      14:15:13.249277 IP 123.xxx.xxx.4 > iZbp1gt1xxx          Z: ICMP echo request, id 2050, seq 150, length 40
      14:15:13.249293 IP iZbxxx    lh49gbqovzZ :         4: ICMP echo reply, id 2050, seq 150, length 40
      14:15:14.263769 IP 123.xxx.xxx.4 > iZbp1gt1xxx          Z: ICMP echo request, id 2050, seq 151, length 40
      14:15:14.263783 IP iZbxxx    lh49gbqovzZ :         4: ICMP echo reply, id 2050, seq 151, length 40
      14:15:15.267143 IP 123.xxx.xxx.4 > iZbp1gt1xxx          Z: ICMP echo request, id 2050, seq 152, length 40
      14:15:15.267155 IP iZbxxx    lh49gbqovzZ :         4: ICMP echo reply, id 2050, seq 152, length 40
      14:15:16.275436 IP 123.xxx.xxx.4 > iZbp1gt1xxx          Z: ICMP echo request, id 2050, seq 153, length 40
      14:15:16.275449 IP iZbxxx    lh49gbqovzZ :         4: ICMP echo reply, id 2050, seq 153, length 40

ENI'ler için varsayılan rotaları yapılandırma

ENI'leri ECS örneklerine bağladığınızda varsayılan rotalar otomatik olarak yapılandırılır. Ancak Ubuntu 18'den önceki bazı işletim sistemi sürümlerinde (örneğin Ubuntu 16), ikincil ENI'ler için varsayılan rotalar yapılandırılmayabilir ve bu durum ağ bağlantısı sorunlarına neden olur. Varsayılan bir rotayı manuel olarak yapılandırmak için aşağıdaki adımları izleyin.

Bu örnekte Ubuntu16 ve eth1 ikincil ENI'si kullanılmıştır.

  1. ENI bilgilerini görüntüleyin:

    ip a
    root@xxx:/etc/network# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00: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:3e:15:74:ee brd ff:ff:ff:ff:ff:ff
        inet 172.16.20.231/24 brd 172.16.20.255 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::216:3eff:fe15:74ee/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:46:31:f4 brd ff:ff:ff:ff:ff:ff
        inet 172.16.20.199/24 brd 172.16.20.255 scope global eth1
           valid_lft forever preferred_lft forever
        inet6 fe80::216:3eff:fe46:31f4/64 scope link
           valid_lft forever preferred_lft forever

    Çıktı, eth1'in işletim sisteminde etkin olduğunu gösterir.

  2. Rota bilgilerini görüntüleyin:

    route -n

    Çıktı, eth1'in yalnızca dahili bir rotaya sahip olduğunu ve giden bir rota olmadığını gösterir.

    root@xxx:/etc/network# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         172.16.20.253   0.0.0.0         UG    0      0        0 eth0
    172.16.20.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
    172.16.20.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

    Örnek hata durumu

    Giden bir rota olmadığında, eth1 üzerinden iletişim başarısız olur. Örneğin, İnternet erişimi için eth1 ile bir EIP ilişkilendirmek bağlantı kaybına neden olur.

    root@xxx               /etc/network# ping -I eth1 www.xxx.com
    PING www.xxx.com (1xxx12) from 172.16.20.199 eth1: 56(84) bytes of data.
    From 172.16.20.199 icmp_seq=1 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=2 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=3 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=4 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=5 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=6 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=7 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=8 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=9 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=10 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=11 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=12 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=13 Destination Host Unreachable
    From 172.16.20.199 icmp_seq=14 Destination Host Unreachable
  3. eth1 için varsayılan rotayı yapılandırın:

    ip -4 route add default via 172.16.20.253 dev eth1 metric 200
    • -4: Yalnızca IPv4 adresleri için geçerlidir.

    • 172.16.20.253: eth1'in ağ geçidi adresidir.

    • metric 200: Rota önceliğidir. Daha küçük bir değer daha yüksek öncelik anlamına gelir. Aynı hedefe birden fazla rota varsa en küçük metriğe sahip rota kullanılır.

  4. Rota yapılandırmasını yeniden başlatmalar sırasında kalıcı hale getirin.

    Kalıcılığı sağlamak için rota komutunu örnek başlangıç yapılandırmasına ekleyin. Aksi takdirde, yeniden başlatma sonrası rota kaybolur. Yalnızca test yapıyorsanız bu adımı atlayın.

    1. /etc/rc.local dosyasını açın:

      vim /etc/rc.local
    2. Ekleme moduna girmek için i tuşuna basın, önceki adımdaki komutu ekleyin ve ardından Esc tuşuna basın. Dosyayı kaydedip kapatmak için :wq yazın ve Enter tuşuna basın.

      Not

      Ağ arayüzü tanımlayıcısını ve ağ geçidi adresini kendi değerlerinizle değiştirin.

    3. /etc/rc.local dosyasına yürütme izni verin:

      sudo chmod +x /etc/rc.local
  5. eth1 için eklenen rotayı görüntüleyin:

    route -n
    root@ixxxxxxxxxx:/etc/network# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         172.16.20.253   0.0.0.0         UG    0      0        0 eth0
    0.0.0.0         172.16.20.253   0.0.0.0         UG    200    0        0 eth1
    172.16.20.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
    172.16.20.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

    Hata durumunun çözüldüğünü doğrulayın

    Varsayılan rotayı yapılandırdıktan sonra, eth1 beklendiği gibi iletişim kurar.

    root@xxx:~/etc/network# ping  -I eth1 www.xxx.com
    PING www.xxx.com (xxx) from 172.16.20.199 eth1: 56(84) bytes of data.
    64 bytes from xxx: icmp_seq=1 ttl=51 time=11.6 ms
    64 bytes from xxx: icmp_seq=2 ttl=51 time=11.6 ms
    64 bytes from xxx: icmp_seq=3 ttl=51 time=11.6 ms
    64 bytes from xxx: icmp_seq=4 ttl=51 time=11.6 ms
    ^C