Score:1

ปัญหาการผูก IP ในการใช้ GRE Tunnel

ธง co

ฉันมีปัญหาเกี่ยวกับการขุดอุโมงค์และกำลังมีปัญหาในการหาทางออก ฉันมีเซิร์ฟเวอร์สองเครื่อง A: เซิร์ฟเวอร์โฮสต์เป็นเซิร์ฟเวอร์ที่มี IP เดียว และ B: เซิร์ฟเวอร์หลักเป็นเซิร์ฟเวอร์ที่จัดการแอปพลิเคชันทั้งหมดของเรา

ฉันตั้งค่าช่องสัญญาณ GRE ได้ แต่สำหรับแอปพลิเคชันต้องการ (A) เซิร์ฟเวอร์ IP ( 192.168.0.1 ) อยู่บน (B) เซิร์ฟเวอร์ Eth0 ดังนั้นแอปพลิเคชันจึงสามารถใช้ IP เป็นของตัวเองได้ (นี่เป็นสิ่งจำเป็น) อย่างไรก็ตาม เมื่อฉันพยายามเพิ่ม (A) IP ให้กับ (B) ฉันเชื่อว่ามีการกำหนดเส้นทางวนซ้ำ และฉันไม่สามารถหาวิธีทำให้ทราฟฟิกไหลได้อย่างถูกต้อง ฉันได้ลอง PREROUTE และ POSTROUTE บน iptabels แล้ว แต่ไม่ค่อยประสบความสำเร็จ ด้านล่างนี้คือการตั้งค่าที่ฉันไปถึงเมื่อทุกอย่างหยุดทำงาน

ความช่วยเหลือใด ๆ ในเรื่องนี้จะได้รับการชื่นชมอย่างมาก!

รายละเอียด:

เซิร์ฟเวอร์ A: โฮสต์:

IP สาธารณะ: 192.168.0.1
อุโมงค์ IP: 10.0.2.1

เซิร์ฟเวอร์ B: หลัก:

IP สาธารณะ: 192.168.1.2
อุโมงค์ IP: 10.0.2.2

เซิร์ฟเวอร์ A:

เพิ่มอุโมงค์

sudo ip tunnel เพิ่มโหมด test_tunnel gre local 192.168.0.1 remote 192.168.1.2 ttl 255
sudo ip addr เพิ่ม 10.0.2.1/30 dev test_tunnel
ลิงก์ sudo ip ตั้งค่า test_tunnel ขึ้น
sudo echo '101 test_tunnel_GRE' >> /etc/iproute2/rt_tables
เส้นทาง /sbin/ip เพิ่มค่าเริ่มต้นผ่าน 10.0.2.2 dev test_tunnel ตาราง test_tunnel_GRE
/sbin/iptables -t nat -A POSTROUTING -s 10.0.2.0/30 ! -o gre+ -j SNAT --to-source 192.168.0.1
/sbin/iptables -A FORWARD -d 10.0.2.2 -m state --state NEW,ESTABLISHED,RELATED -j ยอมรับ
/sbin/iptables -A FORWARD -s 10.0.2.2 -m state --state NEW,ESTABLISHED,RELATED -j ยอมรับ

ทดสอบ Tunnel IPs เพื่อ ping และดูว่าได้รับการตอบสนองหรือไม่ (ใช้งานได้)

root@A:~# ping -c4 10.0.2.2
PING 10.0.2.2 (10.0.2.2) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 10.0.2.2: icmp_seq=1 ttl=64 เวลา=50.6 ms
64 ไบต์จาก 10.0.2.2: icmp_seq=2 ttl=64 เวลา=49.6 ms
64 ไบต์จาก 10.0.2.2: icmp_seq=3 ttl=64 เวลา=49.7 ms
64 ไบต์จาก 10.0.2.2: icmp_seq=4 ttl=64 เวลา=49.7 ms

--- สถิติ ping 10.0.2.2 ---
ส่ง 4 แพ็กเก็ต ได้รับ 4 แพ็กเก็ต การสูญเสียแพ็กเก็ต 0% เวลา 3005ms
rtt นาที/เฉลี่ย/สูงสุด/mdev = 49.636/49.945/50.651/0.439 มิลลิวินาที

การทดสอบบนเซิร์ฟเวอร์ควรดู Tunnel Server IP: (ใช้งานได้)

root@A:~# ขด http://www.cpanel.net/showip.cgi --interface 10.0.2.1
192.168.0.1

เซิร์ฟเวอร์ B:

เพิ่มอุโมงค์

sudo ip tunnel เพิ่มโหมด test_tunnel gre local 192.168.1.2 remote 192.168.0.1 ttl 255
sudo ip addr เพิ่ม 10.0.2.2/30 dev test_tunnel
ลิงก์ sudo ip ตั้งค่า test_tunnel ขึ้น
sudo echo '101 test_tunnel_GRE' >> /etc/iproute2/rt_tables
/sbin/ip rule เพิ่มจาก 10.0.2.0/30 ตาราง test_tunnel_GRE
/sbin/เส้นทาง ip เพิ่มค่าเริ่มต้นผ่านตาราง 10.0.2.1 dev test_tunnel test_tunnel_GRE

ทดสอบ Tunnel IPs เพื่อ ping และดูว่าได้รับการตอบสนองหรือไม่ (ใช้งานได้)

[root@B~]# ping -c4 10.0.2.1
PING 10.0.2.1 (10.0.2.1) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 10.0.2.1: icmp_seq=1 ttl=64 เวลา=51.7 ms
64 ไบต์จาก 10.0.2.1: icmp_seq=2 ttl=64 เวลา=50.0 ms
64 ไบต์จาก 10.0.2.1: icmp_seq=3 ttl=64 เวลา=50.0 ms
64 ไบต์จาก 10.0.2.1: icmp_seq=4 ttl=64 เวลา=50.0 ms

--- สถิติ ping 10.0.2.1 ---
ส่ง 4 แพ็กเก็ต ได้รับ 4 แพ็กเก็ต การสูญเสียแพ็กเก็ต 0% เวลา 3054ms
rtt นาที/เฉลี่ย/สูงสุด/mdev = 50.023/50.458/51.721/0.746 มิลลิวินาที

การทดสอบบนเซิร์ฟเวอร์ควรดู Tunnel Server IP: (ใช้งานได้)

[root@B~]# curl http://www.cpanel.net/showip.cgi --interface 10.0.2.2
192.168.0.1

นี่คือที่ที่มันแตก:

เพิ่ม IP ไปที่ eth0:

ip เป็น 192.168.0.1/32 dev eth0
/sbin/ip rule เพิ่มจากตาราง 192.168.0.1 test_tunnel_GRE

แตกหัก

ตอนนี้ทุกอย่างหยุดทำงานทั้งสองฝั่ง ทั้งเซิร์ฟเวอร์ ping และ curl ทั้งคู่ไม่ตอบสนอง

ฉันขอขอบคุณข้อมูลที่สามารถช่วยฉันแก้ไขปัญหานี้ได้!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา