AWS Site-to-Site VPN'deki hataların çoğu adres hatasıdır ve tek bir paket hareket etmeden önce yapılır. Tünelin dış adresleri IPsec eşlerine ulaşır, iç adresler aralarındaki yönlendirme bağlantısını oluşturur ve korunan önekler o bağlantının amacıdır. Bir rolü diğerine kopyalayın, tünel açılır ama hiçbir şey yönlendirilmez. BGP müşteri ağ geçidinde kullandığım oku-denetle-yapılandır sırası şudur ve değerler bellekten değil, indirilen cihaz yapılandırmasından alınır.

Üç adres rolü, tek tünel

Dış adresler geneldir ve IPsec eşlerine aittir: AWS tarafında her tünel için bir tane, sizin tarafınızda ise müşteri ağ geçidinin erişilebilir kimliği, gerçekte sahip olduğunuz NAT düzenine göre uyarlanmış. İç adresler özeldir ve mantıksal bağlantıya aittir; AWS bunu 169.254.0.0/16'dan alınan /30 olarak belgeler. Korunan önekler, o bağlantı üzerinden yönlendirdiğiniz ve duyurduğunuz VPC, yerinde veya transit ağlardır.

Bir LAN önekini tünel arabiriminin adresi olarak atamak bu hatanın klasik biçimidir. Arabirim yapılandırılmış görünür, LAN duyurulmaz ve karşı tarafın ona rotası yoktur. Tünel kendi iç ping'ini bile geçebilir ama her uygulama adı zaman aşımına uğrar. Tünel seçenekleri başvurusu iç CIDR kısıtlarını, hangi adres aralığından gelmesi gerektiği dahil listeler.

Değerleri indirilen yapılandırmadan okuyun

Bağlantıdan kendi cihaz modeliniz için yapılandırmayı indirin ve ardından adres tablosunu doğruluk kaynağı olarak kabul edin. Konsol her tünel için aynı değerleri gösterir: dış IP, iç CIDR ve AWS tarafındaki BGP eş adresi. İki tünel ayrı nesnelerdir; ayrı dış uç noktaları ve ayrı iç /30'ları vardır, her ikisi de aynı korunan ağları taşısa da.

aws ec2 describe-vpn-connections --vpn-connection-ids vpn-0123456789abcdef0 \
  --query 'VpnConnections[0].Options.TunnelOptions[].[OutsideIpAddress,TunnelInsideCidr]'
aws ec2 describe-customer-gateways --customer-gateway-ids cgw-0123456789abcdef0 \
  --query 'CustomerGateways[0].[IpAddress,BgpAsn]'

İndirilen dosya ile canlı konsol uyuşmuyorsa dosya eskidir. Adresleri elle düzenlemek yerine yeniden indirin, çünkü iç çift ile eşin yapılandırılmış komşusu arasındaki uyumsuzluk sessiz bir BGP arızasıdır.

Bağlantıyı doğru adresle kurun

Linux ağ geçidinde tünel bir VTI veya XFRM arabirimidir ve iç /30 o arabirime konur. İki tünel iki arabirim ve iki BGP komşusu demektir, her AWS uç noktası için bir tane. AWS'nin indirilen cihaz yapılandırmasına bastığı kural, sanal özel ağ geçidini her iç /30'un ilk adresine, müşteri ağ geçidinizi de ikincisine koyar; böylece yüksek adresi alır ve düşük olanla eşleşirsiniz. Burada hiçbir şey LAN adresi gerektirmez.

ip tunnel add tun0 mode vti local 203.0.113.10 remote 18.230.1.1 key 42
ip addr add 169.254.10.2/30 dev tun0
ip link set tun0 up mtu 1400
ip tunnel add tun1 mode vti local 203.0.113.10 remote 18.230.2.1 key 43
ip addr add 169.254.10.6/30 dev tun1
ip link set tun1 up mtu 1400

Cihaz modelinizin dosyası ters eşlemeyi basıyorsa onun sayılarını kullanın ve kuralı koruyun: arabirimdeki adres sizindir, eş adresi AWS'ye aittir. Bunu ters yapmak, asla Established'a ulaşmayan bir tünel üretir, çünkü yapılandırdığınız komşu, kendi arabiriminizin zaten tuttuğu adrestir.

İşareti ve VTI anahtarını IKE daemon'unun alt SA'yı arabirime bağlamak için kullandığıyla hizalı tutun, yoksa trafik tünele gelir ama inecek arabirim yoktur. MTU'yu yola ve IKE daemon'unun kendi ayarlarına göre denetleyin, başka bir siteden sayı kopyalamayın.

Rotaları doğrulamadan önce BGP'yi doğrulayın

IPsec'in açılması yalnızca eşlerin bir güvenlik ilişkisi üzerinde anlaştığını kanıtlar, başka bir şeyi değil. BGP oturumu iç bağlantı üzerinde ayrı bir müzakeredir, bu yüzden komşu durumunu ve önek sayaçlarını okuyun, sonra duyurmayı planladığınızla karşılaştırın.

ip -s addr show dev tun0
vtysh -c 'show bgp summary'
vtysh -c 'show bgp neighbors 169.254.10.1'
vtysh -c 'show ip bgp neighbors 169.254.10.1 advertised-routes'

Established durumu ve sıfır alınan önek, tünel değil ilke veya duyuru sorunudur. Tüm denetimi ikinci tünelde yineleyin; çalışan birinci tünel adreslerin makul olduğunu söyler, ikinci tünelin yapılandırıldığını değil.

Yönlendirilmiş bir paketi izleyin, sonra durun

Oturum önekleri taşımaya başladığında rotayı ağ geçidinden iki yönde de sınayın: kaynak adresi, sonraki atlama ve trafiğe izin veren güvenlik ilkesi. BGP oturumu açıkken uygulamanızın gereksindiği belirli önek filtrelenmiş, özetlenmiş veya yanlış arabirime yönlendirilmiş olabilir.

Reachability Analyzer, AWS tarafındaki araçtır; bir kaynak, bir hedef ve bir yol alır ve desteklenen bir yapılandırmada hangi bileşenin bunu engellediğini bildirir. VPC'den müşteri ağ geçidinizin adresine kadar olan yolu sınamak için kullanın, bir uygulama ana bilgisayarından değil. Yapılandırmayı analiz eder ve yerinde bir güvenlik duvarından paket geçirmez, bu yüzden hükmünü kendi arabirim sayaçlarınızdan ve paket yakalamalarınızdan ayrı tutun.

Her tünel için dış çifti, iç /30'u ve duyurulan önekleri tek bir tabloya kaydedin. Bir sonraki değişikliği gözden geçirilebilir yapan o tablodur.

İlgili makaleler