ฉันได้ตั้งค่ากลุ่มนักเทียบท่าด้วย 3 โหนด (นักเทียบท่า 18.03) โหนดเหล่านี้ใช้เครือข่ายซ้อนทับเพื่อสื่อสาร
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
รูปแบบการทำงานบางส่วน:
1. คอนเทนเนอร์สามารถ ping ซึ่งกันและกันโดยใช้ชื่อ (n1, n2, n3)
2. คำสั่ง Docker swarm ใช้งานได้ สามารถใช้บริการต่างๆ ได้
การซ้อนทับใช้งานได้บางส่วน บางโหนดไม่สามารถสื่อสารระหว่างกันได้โดยใช้ tcp/ip หรือ udp ฉันลองการรวมกันของ 3 โหนดด้วย udp และ tcp/ip:
ฉันทำ tcpdump บนเกตเวย์ nat เพื่อตรวจสอบกิจกรรมเครือข่าย vxlan ที่ซ้อนทับ (พอร์ต 4789):
tcpdump -l -n -i eth0 "port 4789"
tcpdump -l -n -i tun0 "port 4789"
จากนั้นฉันลองใช้การสื่อสาร tcp/ip จาก node2 ถึง node3 บน node3: nc -l -s 0.0.0.0 -p 8999 บน node1: telnet 192.169.1.12 8999
Node1 จะพยายามเชื่อมต่อกับ node3 ฉันเห็นแพ็กเก็ตเข้ามาบน nat-gateway ผ่านอินเทอร์เฟซ tun0:
บนอินเทอร์เฟซ nat-gateway eth0:
ดูเหมือนว่า nat-gateway ไม่ได้ส่งการตอบกลับผ่านอินเทอร์เฟซ tun0
iptables กำหนดค่า nat-gateway
การกำหนดเส้นทางของ nat-เกตเวย์
คุณช่วยฉันแก้ปัญหานี้ได้ไหม?