กำหนดว่าเซิร์ฟเวอร์ใดในสภาพแวดล้อม VM เพื่อส่งต่อการร้องขอโดยยึดตามส่วนหัวของโฮสต์บนอะแดปเตอร์เครือข่ายหนึ่ง [ปิด]


-1

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

มีใครรู้บ้างไหมว่าฉันจะทำสิ่งนี้ให้สำเร็จภายในสภาพแวดล้อม ESXi เดียวกันได้อย่างไร


1
สิ่งนี้ไม่มีอะไรเกี่ยวข้องกับการจำลองเสมือน คุณจะส่ง / ส่งต่อคำขอไปยังเว็บเซิร์ฟเวอร์ที่โฮสต์เว็บไซต์ที่เกี่ยวข้อง
joeqwerty

@ joeqwerty ฉันไม่เห็นด้วยอย่างเคารพ มันเกี่ยวกับการจำลองเสมือนจริงทั้งหมด เซิร์ฟเวอร์ ESXi (โฮสต์) เป็นด่านแรกในการป้องกันเมื่อดักจับทราฟฟิกเครือข่ายที่ส่งต่อไปยังเกสต์ OS
Erutan409

2
อืมมม ... ไม่นะ ESXi ไม่ใช่ไฟร์วอลล์หรือเราเตอร์ ฟิสิคัล NIC บนโฮสต์ ESXi เป็นเพียงช่องทางสำหรับการรับส่งข้อมูลบนเครือข่ายทางกายภาพเพื่อเข้าถึงเครื่องเสมือนและในทางกลับกัน โฮสต์ ESXi ไม่มีการกำหนดเส้นทางไฟร์วอลล์หรือ NAT สำหรับเครื่องเสมือน การรับส่งข้อมูลที่กำหนดไว้สำหรับเว็บไซต์ที่ทำงานบนเว็บเซิร์ฟเวอร์ที่ใช้งานในเครื่องเสมือนของคุณจะมีลักษณะการทำงานเช่นเดียวกับเว็บเซิร์ฟเวอร์จริง
joeqwerty

โปรดอ่านคำถามของฉันอีกครั้งหรือใช้สิ่งนี้เพื่อความชัดเจน: ฉันจะโฮสต์เว็บไซต์สาธารณะหลายแห่งจากเซิร์ฟเวอร์ ESXi (โฮสต์) แบบสแตนด์อโลนที่มี 4+ แขกของระบบปฏิบัติการและ ONE NIC ไม่ใช่เว็บไซต์สาธารณะทั้งหมดที่จะถูกโฮสต์บนระบบปฏิบัติการของผู้เยี่ยมชมคนเดียวกัน ดังนั้นฉันกำลังมองหาวิธีแก้ปัญหาที่จะแยกส่วนหัวของโฮสต์สำหรับคำขอของเว็บไซต์ / URL ดังกล่าวข้างต้นและส่งต่อ / ส่งคำขอเหล่านั้นไปยังระบบปฏิบัติการเกสต์ที่เหมาะสม เราเตอร์เซิร์ฟเวอร์นี้อยู่เบื้องหลังจะส่งต่อการรับส่งข้อมูลพอร์ต 80 ทั้งหมดไปยังเซิร์ฟเวอร์ ESXi นี้ ชัดเจนกว่านี้ไหม
Erutan409

1
nginx, haproxy, วานิช ... ลองพวกเขาทั้งหมดและดูว่าคุณชอบอะไร
Michael Hampton

คำตอบ:


3

สร้าง VM ใหม่ภายในสภาพแวดล้อม ESXi ของคุณที่รัน nginx และใช้โมดูลพร็อกซีเพื่อกำหนดปริมาณการใช้งานของคุณ:

server {
    listen       80;
    server_name  hostname1 hostname2 hostname3 ... hostnameN;
    if ($http_host = hostname1) {
        proxy_pass http://192.168.0.1;
    }
    if ($http_host = hostname2) {
        proxy_pass http://192.168.0.2;
    }
    if ($http_host = hostname3) {
        proxy_pass http://192.168.0.3;
    }
    #...
    if ($http_host = hostnameN) {
        proxy_pass http://192.168.0.N;
    }
}

Sauce: โมดูล ngx_http_proxy_module


โซลูชันนี้มีน้ำหนักเบาพอที่เวลาตอบสนองของเซิร์ฟเวอร์ยังคงสมเหตุสมผลหรือไม่
Erutan409

คุณจะต้องมีสิ่งที่จะส่งต่อภายนอกของคุณ: 80 ไปยัง VMs ภายในของคุณ: 80
84104

0

คำขอสำหรับเว็บไซต์ได้รับการแก้ไขเป็นที่อยู่ IP

ปริมาณข้อมูลจะถูกส่งไปยังเครือข่ายของคุณ

ไฟร์วอลล์ / เราเตอร์ของคุณแปลที่อยู่ IP สาธารณะเป็นที่อยู่ IP ส่วนตัว (ขึ้นอยู่กับการกำหนดค่าการแปลที่อยู่ IP ของคุณ)

ไฟร์วอลล์ / เราเตอร์ของคุณจะทำการ ARP สำหรับที่อยู่ MAC ของที่อยู่ IP ที่เป็นปัญหา

เครื่องเสมือนที่เกี่ยวข้องตอบรับคำขอ ARP

ไฟร์วอลล์ / เราเตอร์ของคุณจะส่งปริมาณข้อมูลไปยังที่อยู่ MAC

สวิตช์ของคุณส่งต่อปริมาณการใช้งานไปยังพอร์ตสวิตช์ที่เหมาะสม (ขึ้นอยู่กับตารางที่อยู่ MAC)

ทราฟฟิกทราฟฟิกไปยังโฮสต์ ESXi pNIC (ไม่มีการเจือปน)

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


ฉันคิดว่าฉันรู้ว่าการยกเลิกการเชื่อมต่ออยู่ที่ไหน: "ไฟร์วอลล์ / เราเตอร์ของคุณแปลที่อยู่ IP สาธารณะเป็นที่อยู่ IP ส่วนตัว (ขึ้นอยู่กับการกำหนดค่าการแปลที่อยู่ IP ของคุณ)" ใช่เราเตอร์ของฉันกำลังส่งต่อการรับส่งข้อมูลพอร์ต 80 ทั้งหมดไปยัง IP เฉพาะบน LAN ของฉัน ขั้นตอนอื่น ๆ เหมาะสมแล้ว "ไฟร์วอลล์ / เราเตอร์ของคุณทำการ ARP สำหรับที่อยู่ MAC ของที่อยู่ IP ที่เป็นปัญหา" ไม่มีไฟร์วอลล์อยู่ในสถานที่และเราเตอร์ของฉันไม่สามารถรู้ได้ว่าจะส่งปริมาณข้อมูลไปที่ระดับใด ดังนั้นคำถามเริ่มต้นของฉัน
Erutan409

ใช่มี IP สาธารณะเดียวเท่านั้นที่มีอยู่สำหรับการเข้าชมเว็บทั้งหมด ฉันคิดว่า Aaron Mason อยู่ในเส้นทางที่ถูกต้องกับสิ่งที่ฉันกำลังมองหา
Erutan409

อุ่ย ฉันลบความคิดเห็นนั้นแล้ว ที่อยู่ IP สาธารณะนี้เดียวถูกกำหนดให้กับ ESXi โฮสต์ NIC หรือไม่
joeqwerty

ISP / IP สาธารณะ -> เราเตอร์: 80 -> ส่งต่อไปยังโหนดบนเครือข่าย (โฮสต์ ESXi) -> แขก 1+ OS ที่สามารถตอบสนองคำขอเว็บ
Erutan409

นอกจากนี้โปรดทราบว่าการตั้งค่านี้ไม่ได้สำหรับแอปพลิเคชันที่สำคัญทางธุรกิจ นี่เป็นเว็บไซต์ส่วนตัวของฉันและเพื่อเรียนรู้เทคโนโลยี VMWare มิฉะนั้นสภาพแวดล้อมจะดูแตกต่างกันมาก
Erutan409
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.