Већина грешака у AWS Site-to-Site VPN су грешке у адресама и праве се пре него што се помери иједан пакет. Спољашње адресе тунела стижу до IPsec партнера, унутрашње адресе чине рутирајућу везу између њих, а заштићени префикси су оно чему та веза служи. Копирајте једну улогу у другу и тунел се подиже док се ништа не рутира. Ево низа прочитај-провери-конфигуриши који користим на клијентској капији са BGP, са вредностима из преузете конфигурације уређаја, а не из памћења.

Три улоге адреса, један тунел

Спољашње адресе су јавне и припадају IPsec партнерима: једна по тунелу на страни AWS-а, и достижни идентитет клијентске капије на вашој страни, прилагођен оном NAT распореду који заиста имате. Унутрашње адресе су приватне и припадају логичкој вези, коју AWS документује као /30 извучен из 169.254.0.0/16. Заштићени префикси су VPC, локалне или транзитне мреже које рутирате и оглашавате преко те везе.

Додељивање LAN префикса као адресе интерфејса тунела класичан је облик ове грешке. Интерфејс изгледа конфигурисан, LAN се не оглашава, а супротна страна нема руту за њега. Тунел може чак да прође сопствени унутрашњи ping, док свако име апликације истиче. Референца опција тунела наводи ограничења унутрашњег CIDR-а, укључујући опсег адреса из којег мора да дође.

Читајте вредности из преузете конфигурације

Преузмите конфигурацију за свој конкретни модел уређаја са везе, а затим њену табелу адреса третирајте као извор истине. Конзола приказује исте вредности по тунелу: спољашњи IP, унутрашњи CIDR и адресу BGP партнера на страни AWS-а. Два тунела су одвојени објекти са одвојеним спољашњим крајњим тачкама и одвојеним унутрашњим /30, иако оба носе исте заштићене мреже.

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]'

Ако се преузета датотека и жива конзола не слажу, датотека је застарела. Преузмите поново уместо да адресе мењате ручно, јер неслагање између унутрашњег пара и конфигурисаног суседа партнера је тихи BGP квар.

Изградите везу са исправном адресом

На Linux капији тунел је интерфејс VTI или XFRM, а унутрашњи /30 иде на тај интерфејс. Два тунела значе два интерфејса и два BGP суседа, по један за сваку AWS крајњу тачку. Конвенција коју AWS штампа у преузетој конфигурацији уређаја ставља виртуелну приватну капију на прву адресу сваког унутрашњег /30, а вашу клијентску капију на другу, тако да узимате вишу адресу и суседујете са нижом. Ништа овде не захтева LAN адресу.

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

Ако датотека за ваш модел уређаја штампа обрнути пар, користите њене бројеве и држите се правила: адреса на интерфејсу је ваша, адреса партнера припада AWS-у. Обрнуто даје тунел који никада не достиже Established, јер је конфигурисани сусед адреса коју ваш сопствени интерфејс већ држи.

Држите ознаку и VTI кључ усклађене са оним што IKE демон користи за везивање подређене SA за интерфејс, иначе саобраћај стиже на тунел без интерфејса где да слети. Проверавајте MTU према путу и према сопственим подешавањима IKE демона, уместо да копирате број са другог сајта.

Проверите BGP пре него што проверите руте

Подизање IPsec-а доказује да су се партнери сагласили о безбедносној асоцијацији и ништа више. BGP сесија је одвојено преговарање преко унутрашње везе, зато читајте стање суседа и бројаче префикса, па их упоредите са оним што сте намеравали да огласите.

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 са нула примљених префикса је проблем политике или оглашавања, не тунела. Поновите целу проверу на другом тунелу; први тунел који ради каже вам да су адресе веродостојне, не да је други тунел уопште конфигурисан.

Пратите рутиран пакет и затим станите

Када сесија носи префиксе, тестирајте руту у оба смера од капије: изворну адресу, следећи хоп и безбедносну политику која дозвољава саобраћај. BGP сесија може бити подигнута док је конкретан префикс који је вашој апликацији потребан филтриран, сажет или усмерен ка погрешном интерфејсу.

Reachability Analyzer је алатка на страни AWS-а која узима извор, одредиште и пут и извештава која је компонента у подржаној конфигурацији то блокирала. Користите је за тестирање пута од VPC-а до адресе ваше клијентске капије, а не са хоста апликације. Она анализира конфигурацију и не шаље пакет кроз локални заштитни зид, зато држите њену пресуду одвојено од сопствених бројача интерфејса и снимака пакета.

Запишите спољашњи пар, унутрашњи /30 и оглашене префиксе за сваки тунел у једну табелу. Та табела чини следећу измену прегледном.

Повезани чланци