Score:-2

ปัญหาการเชื่อมต่อกับ 127.x.x.x ซีรีส์

ธง gt

ถามสิ่งนี้ในวิศวกรรมเครือข่ายในการแลกเปลี่ยนสแต็กและถูกเปลี่ยนเส้นทางที่นี่

ฉันมีเซิร์ฟเวอร์สองสามตัวที่มีการกำหนดค่าด้านล่าง

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

eno1: 127.15.0.1/16 ขอบเขตทั่วโลก
eno2: 5.0.0.1/24

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

แท้จริง: 127.0.0.1/16 (มี /8 ฉันเปลี่ยนซับเน็ตมาสก์โดยใช้ 'ip addr del 127.0.0.1/8 dev lo; ip addr เพิ่ม 127.0.0.1/16 dev lo')
eno2: 5.0.0.2/24

eno1 ของเซิร์ฟเวอร์ 1 เชื่อมต่อกับเครือข่าย L2 ที่แตกต่างกันโดยสิ้นเชิงและแยกออกจากกันโดยสิ้นเชิง

อินเทอร์เฟซ eno2 ของทั้งสองเซิร์ฟเวอร์เชื่อมต่อกับเครือข่าย L2 เดียวกัน ตอนนี้ฉันต้องเข้าถึง 127.15.0.1 จากเซิร์ฟเวอร์ 2

Server1 ถูกปรับใช้มานานแล้วและฉันไม่มีสิทธิ์เปลี่ยนการกำหนดค่าใด ๆ ฉันไม่รู้ว่าทำไมบางคนถึงใช้ซับเน็ต 127.x.x.x ที่มีขอบเขตทั่วโลก ไม่แน่ใจว่าเป็นการกำหนดค่าที่ถูกต้องหรือไม่ แต่ฉันต้องอยู่กับมัน ฉันมีสิทธิ์ควบคุมอย่างสมบูรณ์บนเซิร์ฟเวอร์ 2 และฉันสามารถเปลี่ยนแปลงอะไรก็ได้

เซิร์ฟเวอร์ทั้งสองใช้ลินุกซ์

การเชื่อมต่อระหว่าง 5.0.0.1 <-> 5.0.0.2 นั้นดี

ความพยายามครั้งแรกของฉันคือการเพิ่มเส้นทางในเซิร์ฟเวอร์ 2 ตามด้านล่าง

ip เพิ่ม 127.15.0.1/32 ผ่าน 5.0.0.1 ส่ง Ping 127.15.0.1 จากเซิร์ฟเวอร์ 2 ฉันเห็นคำขอ ping และตอบกลับใน tcpdump บน server2 แต่คำสั่ง ping แสดงการสูญเสีย 100%

ฉันปิดใช้งาน rp_filters

sysctl.cnf:

net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.lo.rp_filter=0
net.ipv4.conf.eno2.rp_filter=0

รีบูตหลังจากอัปเดต sysctl.conf

และฉันก็ล้าง iptables ออก (iptables -F)

ผลลัพธ์เดียวกัน ฉันคิดว่าอาจเป็นเซิร์ฟเวอร์ 2 ที่ไม่ชอบใช้ซีรีส์ 127.x.x.x ดังนั้นฉันจึงเพิ่มกฎด้านล่างในเซิร์ฟเวอร์ 2

iptables -t nat -A OUTPUT -d 5.0.0.1 -j DNAT --to-ปลายทาง 127.15.0.1

กฎนี้ควรจะแทนที่ ip ปลายทางเป็น 127.15.0.1 หากแพ็กเก็ตถูกกำหนดให้เป็น 5.0.0.1

ส่ง Ping 5.0.0.1 จากเซิร์ฟเวอร์ 2 Iptables แทนที่ ip ปลายทางด้วย 127.15.0.1 (ยืนยันสิ่งนี้บน server1 tcpdump) Server1 ตอบกลับ แต่การตอบกลับถูกทิ้งอีกครั้ง

ฉันหมดความคิด ณ จุดนี้ ฉันลบ server1 เพื่อบำรุงรักษาและแทนที่ 127.15.0.1/26 ด้วย 192.168.1.1/16 การเชื่อมต่อทำงานได้ดีในกรณีนี้ (มีและไม่มี iptables) ตอนนี้คำถามคือปัญหาเกิดจากการใช้ 127.x.x.x หรือไม่ ถ้าใช่ มีวิธีแก้ไหมครับ?? ถ้าไม่ ฉันจะลองทำอะไรได้อีก

หมายเหตุ: การกำหนดค่านี้เคยใช้งานได้มาก่อน เราเพิ่งสูญเสียเซิร์ฟเวอร์ 2 (ซึ่งมี Linux รุ่นเก่า) และฉันกำลังสร้างมันขึ้นมาใหม่ทั้งหมด นอกจากนี้ windows ยังไม่อนุญาตให้ใช้ 127.x.x.x กับอินเทอร์เฟซอื่นที่ไม่ใช่ลูปแบ็ค ไม่แน่ใจว่าเหตุใด Linux จึงอนุญาตบนอินเทอร์เฟซที่ไม่ใช่ lo อาจมีเหตุผล!

เพื่อสรุปฉันมีคำถามเหล่านี้:

  1. Windows ปฏิเสธการกำหนดค่าทันทีเมื่อเราพยายามกำหนดค่า 127.x.x.x แต่ Linux อนุญาตและนั่นก็ด้วยขอบเขตส่วนกลาง มีกรณีการใช้งานนี้หรือไม่?
  2. ในกรณีนี้ server2 ส่งคำขอไปยัง 127.x.x.x และ server1 กำลังส่งการตอบกลับจริง ถ้า 127.x.x.x เป็นเพียง โฮสต์ภายในทำไมพวกเขาถึงส่งแพ็กเก็ตบนลิงค์ ??
Zac67 avatar
ru flag
127.0.0.0/8 สงวนไว้สำหรับ *host-internal* loopback และห้ามใช้ในเครือข่ายท้องถิ่น โปรดดูที่ RFC 5735 มีช่วงที่อยู่อื่นที่ใช้งานได้ตาม RFC 1918
RBK050 avatar
gt flag
ขอขอบคุณ. ฉันไม่อยากพูดหยาบคายแต่ฉันรู้แล้ว ดังที่ได้กล่าวไปแล้วในคำถาม เมื่อฉันเปลี่ยน subnet เป็น private/public subnets มันใช้งานได้ ฉันกำลังแก้ไขคอนฟิก ฉันได้สรุปข้อสงสัยของฉันในตอนท้ายของคำถาม น่าสนใจที่จะได้รับมุมมองของคุณเกี่ยวกับเรื่องนี้
anx avatar
fr flag
anx
แม้ว่าคุณจะไม่มีสิทธิ์เข้าถึงเซิร์ฟเวอร์อื่น แต่จะเหมาะสมหากผู้รับผิดชอบในการบำรุงรักษา a) อธิบายด้วยตัวเอง b) แสดงการกำหนดค่าที่เกี่ยวข้องให้คุณ ดังนั้นคุณจึงไม่ต้องสงสัย *ทำไม* สิ่งนี้ถึงใช้งานได้มาก่อน และ c ) แก้ไขปัญหานี้
Ron Maupin avatar
us flag
ที่อยู่ในบล็อกลูปแบ็ค `127.0.0.0/8` ไม่สามารถปรากฏบนเครือข่ายใดๆ ได้ทุกที่ ดู [คำตอบนี้](https://networkengineering.stackexchange.com/a/40156/8499) สำหรับ RFC ที่เกี่ยวข้อง ช่วงนั้นเป็นที่รู้จักโดย IPv4 เอง และการใช้งาน IPv4 ใดๆ ที่อนุญาตให้ทราฟฟิกที่ส่งไปยังที่อยู่ในช่วงนั้นออกจากโฮสต์นั้นเป็นการใช้งาน IPv4 ที่มีข้อบกพร่อง การรับส่งข้อมูลที่ส่งไปยังที่อยู่เหล่านั้นคือ _required_ เพื่อวนกลับภายในโฮสต์ต้นทาง
Ron Maupin avatar
us flag
_[RFC 1122 ข้อกำหนดสำหรับโฮสต์อินเทอร์เน็ต -- เลเยอร์การสื่อสาร](https://tools.ietf.org/html/rfc1122#section-3.2.1.3)_: "_ที่อยู่ย้อนกลับของโฮสต์ภายใน ที่อยู่ของแบบฟอร์มนี้ต้องไม่ปรากฏ นอกโฮสต์"_
RBK050 avatar
gt flag
ผ่อนคลายพวก ฉันทราบดีเกี่ยวกับ RFCs ฉันแค่อยากรู้ว่า linux รองรับหรือไม่ และดูเหมือนว่ามันจะไม่ โปรดดูที่คำตอบ ฉันไม่สนับสนุนให้ใครใช้มัน แค่อยากรู้ว่ามีความเป็นไปได้ไหม
Score:0
ธง fr
anx

การตั้งค่าสถานะ sysctl ของ Linux ที่

/sys/net/ipv4/conf/*/route_localnet

อนุญาตให้ปิดการรักษาที่สมเหตุสมผลสำหรับแพ็กเก็ตดังกล่าว

route_localnet - บูลีน

อย่าพิจารณาที่อยู่ย้อนกลับเป็น ต้นทางหรือปลายทางของดาวอังคารขณะเดินสาย สิ่งนี้ทำให้สามารถใช้ 127/8 สำหรับวัตถุประสงค์ในการกำหนดเส้นทางท้องถิ่น เริ่มต้น FALSE

เนื่องจากมีคนที่มีเหตุผลไม่กี่คนที่เคยทำสิ่งนี้ สิ่งนี้อาจใช้ได้หรือไม่ได้ในทุกวันนี้ (ฉันทดสอบครั้งล่าสุดเมื่อไม่กี่ปีก่อน)

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

RBK050 avatar
gt flag
สิ่งนี้ได้ผล รายการ proc นี้เป็นสาเหตุของมนต์ดำ หลังจากตั้งค่านี้ การเชื่อมต่อใช้งานได้ ฉันสามารถโน้มน้าวให้ทีมของฉันใช้ IP ส่วนตัวได้ ขอขอบคุณ

โพสต์คำตอบ

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