Score:0

การกำหนดค่า AWS NIC

ธง us

ฉันกำลังพยายามตั้งค่าอินสแตนซ์ EC2 สำหรับกรณีการใช้งานเฉพาะ ในนั้นฉันต้องการ 2 ENI พร้อมที่อยู่ IP ที่เปิดเผยต่อสาธารณะ (ทั้งสองควรจะ pingable)

ฉันได้ทำตามขั้นตอนต่อไปนี้แล้ว:

  • แนบ 2 Network Interface จาก subnet เดียวกัน
  • เรียกใช้อินสแตนซ์
  • สร้างที่อยู่ IP แบบยืดหยุ่น 2 รายการ แนบกับการ์ด ENI แต่ละรายการของอินสแตนซ์

ฉันสามารถดูผลลัพธ์ต่อไปนี้ในส่วนอินเทอร์เฟซเครือข่ายอินสแตนซ์ของ EC2

IP สาธารณะ

แต่ฉันไม่สามารถ ping ได้ 3.104.193.180.

ของฉันอีกด้วย ที่อยู่ IP ให้ผลดังนี้. . .

ubuntu@ip-172-31-37-139:~$ ที่อยู่ไอพี
1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
    ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 ขอบเขตโฮสต์เลย
       valid_lft ตลอดไป reserved_lft ตลอดไป
    inet6 ::1/128 ขอบเขตโฮสต์
       valid_lft ตลอดไป reserved_lft ตลอดไป
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc fq_codel สถานะกลุ่ม UP เริ่มต้น qlen 1,000
    ลิงค์/อีเธอร์ 06:ce:dd:28:5b:b8 brd ff:ff:ff:ff:ff:ff
    inet 172.31.37.139/20 brd 172.31.47.255 ขอบเขต global dynamic eth0
       valid_lft 3460วินาทีที่ต้องการ_lft 3460วินาที
    inet6 fe80::4ce:ddff:fe28:5bb8/64 ลิงค์ขอบเขต
       valid_lft ตลอดไป reserved_lft ตลอดไป
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc fq_codel สถานะกลุ่ม UP เริ่มต้น qlen 1,000
    ลิงค์/อีเธอร์ 06:a6:9a:4a:98:c6 brd ff:ff:ff:ff:ff:ff
    inet 172.31.41.29/20 brd 172.31.47.255 ขอบเขต global dynamic eth1
       valid_lft 3460วินาทีที่ต้องการ_lft 3460วินาที
    ลิงค์ขอบเขต inet6 fe80::4a6:9aff:fe4a:98c6/64
       valid_lft ตลอดไป reserved_lft ตลอดไป

ดังนั้นคำถามของฉันคือ . .

  • ฉันควรทำอย่างไรเพื่อให้ IP อื่นเปิดเผย/pingable ได้
  • ฉันจะทราบelastic IP ทั้งสองของฉันจากภายในเซิร์ฟเวอร์ได้อย่างไร
Score:0
ธง my

หากต้องการรับที่อยู่ IP สาธารณะที่เชื่อมโยงกับอินเทอร์เฟซที่กำหนด ก่อนอื่น ให้รับที่อยู่ MAC จากอินเทอร์เฟซ จากนั้นดึงข้อมูลที่คุณต้องการจาก Instance Metadata Service (IMDS) ในตัวอย่างของคุณด้านบน eth1 มี หมายเลขทางกายภาพ 06:a6:9a:4a:98:c6เพื่อให้คุณได้รับที่อยู่ IPv4 สาธารณะด้วย:

ขด http://169.254.169.254/latest/meta-data/network/interfaces/macs/02:1d:90:af:65:a3/public-ipv4s

มีข้อมูลเพิ่มเติมใน เอกสาร AWS

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

AWS VPC ใช้การป้องกันการปลอมแปลงอย่างเข้มงวด นี่เป็นสิ่งที่ดี เนื่องจากปกป้อง AWS และลูกค้าจากการเข้าร่วมในการโจมตีเครือข่ายรูปแบบต่างๆ ในกรณีที่อินสแตนซ์ถูกบุกรุกด้วยเหตุผลบางประการ อย่างไรก็ตาม เป็นสิ่งที่คุณต้องคำนึงถึงเมื่อแนบ ENI หลายรายการเข้ากับอินสแตนซ์

ปัญหาคือพฤติกรรมการกำหนดเส้นทางพื้นฐานขับเคลื่อนโดยเท่านั้น ปลายทาง ของแพ็คเก็ตขาออก ซึ่งหมายความว่าการตอบกลับแพ็กเก็ตขาเข้าอาจไม่ได้ส่งผ่านอินเทอร์เฟซเดียวกับที่ได้รับแพ็กเก็ตเดิม แต่สำหรับ VPC แล้ว สิ่งนี้ถือเป็นแพ็กเก็ต "ปลอมแปลง" เนื่องจากที่อยู่ต้นทางในแพ็กเก็ตตอบกลับไม่ตรงกับที่อยู่ IP ส่วนตัวใดๆ ที่เชื่อมโยงกับ ENI

พิจารณาการกำหนดค่าอินเทอร์เฟซและตารางเส้นทางต่อไปนี้:

admin@ip-10-0-0-115:~$ ip -4 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
    inet 127.0.0.1/8 ขอบเขตโฮสต์ lo
       valid_lft ตลอดไป reserved_lft ตลอดไป
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP กลุ่มเริ่มต้น qlen 1000
    ชื่ออื่น enp0s5
    inet 10.0.0.115/24 brd 10.0.0.255 ขอบเขตโกลบอลไดนามิก ens5
       valid_lft 2801 วินาทีที่ต้องการ_lft 2801 วินาที
3: ens6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP กลุ่มเริ่มต้น qlen 1000
    ชื่ออื่น enp0s6
    inet 10.0.0.8/24 brd 10.0.0.255 ขอบเขตโกลบอลไดนามิก ens6
       valid_lft 2889 วินาทีที่ต้องการ_lft 2889 วินาที


admin@ip-10-0-0-115:~$ ip ro
ค่าเริ่มต้นผ่าน 10.0.0.1 dev ens5
10.0.0.0/24 dev ens5 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.0.0.115
10.0.0.0/24 dev ens6 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.0.0.8

ในกรณีนี้ 10.0.0.8 เป็นที่อยู่ที่กำหนดให้กับ ens6 แพ็กเก็ตขาเข้าไปยังที่อยู่ IP นี้จะได้รับผ่าน ens6 และดำเนินการตามที่คาดไว้ แต่การตอบกลับขาออกไปยังแพ็กเก็ตนั้นจะถูกกำหนดเส้นทางตามตารางเส้นทางด้านบน และจะออกทาง ens5 และถูกทิ้งโดย VPC

คุณสามารถทดสอบได้ดังนี้:

admin@ip-10-0-0-115:~$ ip ro รับ 8.8.8.8 จาก 10.0.0.8
8.8.8.8 จาก 10.0.0.8 ผ่าน 10.0.0.1 dev ens5 uid 1000
    แคช

โปรดทราบว่าอุปกรณ์เป็น ens5 แม้ว่า 10.0.0.8 จะถูกกำหนดให้กับ ens6! VPC จะยกเลิกการรับส่งข้อมูลนี้!

เพื่อให้แน่ใจว่าแพ็กเก็ตของคุณถูกส่งโดย VPC คุณต้องดำเนินการ การกำหนดเส้นทางนโยบาย. กล่าวอย่างกว้างๆ การกำหนดเส้นทางนโยบายหมายถึงสถานการณ์ที่ระบบของคุณใช้ข้อมูลเพิ่มเติมนอกเหนือจากปลายทางเพื่อทำการตัดสินใจเกี่ยวกับการกำหนดเส้นทาง ในกรณีนี้ คุณต้องคำนึงถึงที่อยู่ IP ต้นทางด้วย สิ่งที่เราต้องทำที่นี่คือให้แน่ใจว่าแพ็กเก็ตขาออกที่มีซอร์สแอดเดรส 10.0.0.8 ออกจาก ens6

โดยทั่วไปการกำหนดเส้นทางนโยบายใน Linux จะได้รับการกำหนดค่าโดยใช้ ไอพี(8) สั่งการ. ในการทำให้อินสแตนซ์ที่มีตารางเส้นทางด้านบนทำงานได้ คุณจะต้องสร้างตารางเส้นทางสำรองสำหรับ ens6 โดยเฉพาะ การจัดการตารางรองทำงานเหมือนกับการจัดการตาราง 'หลัก' เว้นแต่คุณจะระบุรหัสตารางดังนั้น ในกรณีนี้ เราสามารถเพิ่มเส้นทางไปยังเครือข่ายท้องถิ่นและเส้นทางเริ่มต้นผ่านเกตเวย์ไปยังตาราง 10,000 ดังนี้:

admin@ip-10-0-0-115:~$ sudo ip ro เพิ่ม 10.0.0.0/24 dev ens6 ตาราง 10,000
admin@ip-10-0-0-115:~$ sudo ip ro เพิ่มค่าเริ่มต้นผ่าน 10.0.0.1 ตาราง 10,000
admin@ip-10-0-0-115:~$ ip ro โชว์ตาราง 10,000
ค่าเริ่มต้นผ่าน 10.0.0.1 dev ens6
ลิงก์ขอบเขต 10.0.0.0/24 dev ens6

และสร้างกฎเพื่อกำหนดเส้นทางการรับส่งข้อมูลขาออกจาก 10.0.0.8 ตามตารางนี้:

admin@ip-10-0-0-115:~$ sudo ip rule เพิ่มจาก 10.0.0.8/32 table 10,000 pref 10,000
admin@ip-10-0-0-115:~$ กฎไอพี
0: จากการค้นหาทั้งหมดในท้องถิ่น
10,000: จาก 10.0.0.8 ค้นหา 10,000
32766: จากหลักการค้นหาทั้งหมด
32767: จากค่าเริ่มต้นการค้นหาทั้งหมด

สังเกตว่ามีกฎ 10,000 แสดงว่าทราฟฟิกจาก 10.0.0.8 จะถูกส่งผ่านตาราง 10,000

เราสามารถยืนยันสิ่งนี้ด้วย ip ro ได้รับ อีกครั้ง:

admin@ip-10-0-0-115:~$ ip ro รับ 8.8.8.8 จาก 10.0.0.8
8.8.8.8 จาก 10.0.0.8 ผ่าน 10.0.0.1 dev ens6 ตาราง 10,000 uid 1,000
    แคช

สังเกตว่ามันกำหนดเส้นทางตามตาราง 10000 แต่ที่สำคัญมันจะส่งผ่านอุปกรณ์ ens6!

Amazon Linux ตั้งค่ากฎการกำหนดเส้นทางนโยบายเช่นนี้โดยอัตโนมัติเมื่อคุณแนบ ENI หลายรายการกับอินสแตนซ์ของคุณ ฉันไม่รู้ว่าอูบุนตูมีหรือไม่ ดังนั้นคุณอาจต้องทำการวิจัยเล็กน้อยในส่วนนั้นและอาจใช้ระบบอัตโนมัติของคุณเองสำหรับสถานการณ์เฉพาะของคุณ

โพสต์คำตอบ

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