Jaringan overlay gerombolan Docker dengan perutean vxlan melalui openvpn

Saya telah menyiapkan gerombolan buruh pelabuhan dengan 3 node (buruh pelabuhan 18.03). Node-node ini menggunakan jaringan overlay untuk berkomunikasi.

node1:  
  laptop   
  host tun0 172.16.0.6 --> openvpn -> nat gateway
  container n1
    ip = 192.169.1.10  

node2: 
  aws ec2
  host eth2 10.0.30.62
  container n2
    ip = 192.169.1.9

node3:
  aws ec2
  host eth2 10.0.140.122
  container n3
    ip = 192.169.1.12

nat-gateway:
  aws ec2
  tun0 172.16.0.1 --> openvpn --> laptop
  eth0 10.0.30.198

Skema ini sebagian berfungsi:
1. Kontainer dapat saling melakukan ping menggunakan nama (n1,n2,n3)
2. Perintah gerombolan Docker berfungsi, layanan dapat dikerahkan

Hamparan sebagian berfungsi. Beberapa node tidak dapat berkomunikasi satu sama lain baik menggunakan tcp/ip atau udp. Saya mencoba semua kombinasi 3 node dengan udp dan tcp/ip:

masukkan deskripsi gambar di sini

Saya melakukan tcpdump pada gateway nat untuk memantau aktivitas jaringan overlay vxlan (port 4789):

tcpdump -l -n -i eth0 "port 4789"
tcpdump -l -n -i tun0 "port 4789"

Kemudian saya mencoba komunikasi tcp/ip dari node2 ke node3. Pada node3: nc -l -s 0.0.0.0 -p 8999 Pada node1: telnet 192.169.1.12 8999

Node1 kemudian akan mencoba terhubung ke node3. Saya melihat paket masuk di gerbang nat melalui antarmuka tun0:

masukkan deskripsi gambar di sini

pada antarmuka nat-gateway eth0:

masukkan deskripsi gambar di sini

tampaknya gerbang nat tidak mengirimkan balasan kembali melalui antarmuka tun0.

Iptables mengonfigurasi gerbang nat

masukkan deskripsi gambar di sini

Perutean gerbang nat

masukkan deskripsi gambar di sini

Bisakah Anda membantu saya mengatasi masalah ini?


person dwjbosman    schedule 13.04.2018    source sumber


Jawaban (1)


Saya dapat memperbaiki masalah ini menggunakan konfigurasi berikut pada gateway NAT:

masukkan deskripsi gambar di sini

Dan

masukkan deskripsi gambar di sini

  1. Tidak diperlukan penyamaran 172.16.0.0/22. Semua pekerja dan manajer akan merutekan lalu lintas mereka untuk 172.16.0.0/22 ​​melalui gateway NAT, dan ia mengetahui cara mengirim paket melalui tun0.
  2. Menyamar eth0 itu salah...

Semua container sekarang dapat melakukan ping dan membuat koneksi tcp/ip satu sama lain.

person dwjbosman    schedule 15.04.2018