จะกำหนดได้หรือไม่ว่าต้องการให้โปรแกรมใช้งาน internet ผ่าน interface ใด
Submitted by on 21 April, 2008 - 00:25.
ถ้าหากเรื่องเรามีการเชื่อมต่อมากก่า 1 eth จะมีการกำหนดอย่างไรว่าการใช้งาน internet จะผ่าน interface ไหน
เช่น squid ใช้ข้อมูล internet ผ่าน eth1
wget ใช้ข้อมูล internet ผ่าน eth2













Re: จะกำหนดได้หรือไม่ว่าต้องการให้โปรแกรมใช้งาน internet ผ่าน in
น่าจะพอมีแนวทางนะครับ แต่ผมยังไม่เคยทำ
หลักการ
ข้อมูลเรื่อง Netfilter & iproute - marking packets น่าจะพอช่วยได้ครับ :P
http://lartc.org/howto/lartc.netfilter.html
ตัวอย่าง:
ข้อมูล (สมมติ)
เตรียมพร้อม
ตามที่บอกครับ กำหนดให้ eth2 เป็น default route (route หลัก)
เตรียมการสำหรับ squid
เพิ่ม option
เตรียมจัดการ filter
จัดการ route
ทดสอบดู โดยการทำ DNS Query ใช้ nslookup โดยจะต้องผ่าน และการ query จะผ่าน eth2 ซึ่งเป็น default route
และการดึงข้อมูลของ squid จะต้องผ่าน eth1 ตามการ filter ที่กำหนดเข้าไป
ปล. ผมยังไม่เคยลองจริง ๆ ยังไม่กล้ารับประกันว่าใช้งานได้หรือไม่ แต่แนวคิดก็เป็นเช่นนี้ครับผม
___
Neutron: Linux Addict!
Re: จะกำหนดได้หรือไม่ว่าต้องการให้โปรแกรมใช้งาน internet ผ่าน in
แล้วถ้าหากเป็นโปรแกรมอื่นละครับที่ไม่ใช่ squid แบบนี้ก็ไม่สามารถกำหนดได้ใช่มั้ยครับ
เช่น
ใช้ firefox ให้ออก eth0
ใช้ pidgin ให้ออก eth1
Re: จะกำหนดได้หรือไม่ว่าต้องการให้โปรแกรมใช้งาน internet ผ่าน in
ตรวจสอบรูปแบบอื่นๆ ก็ได้ครับ เช่น Filter ตาม Port
port 80 เป็น Web
ส่วน port อื่น ๆ ต้องลองหาข้อมูลเพิ่มเติมครับ
___
Neutron: Linux Addict!
Re: จะกำหนดได้หรือไม่ว่าต้องการให้โปรแกรมใช้งาน internet ผ่าน in
แบบนั้นใช้ iptable กำหนด port นิครับ ถ้าเรามี browser สองตัวละครับ opera กับ firefox จะแยกให้ออกคนละ interface ยังไง?
Re: จะกำหนดได้หรือไม่ว่าต้องการให้โปรแกรมใช้งาน internet ผ่าน in
ดูไปแล้ว ... ชีวิตจะยุ่งยากเกินไปหรือเปล่าครับ :P
ปกติการทำ Routing จะมองเรื่อง Services เป็นหลักครับ แยกย่อยขนาดที่แจ้งมา ผมไม่แน่ใจเหมือนกันว่าจะทำได้หรือเปล่า
อาจจะทำได้ แต่ยังมองไม่เห็นประโยชน์ที่ชัดเจน
ตอนนี้ก็เลยงง ๆ ว่า จขก. ต้องการจะทำ Load Balance หรือเปล่า ? เพราะถ้าเป็น Load Balance จะมีวิธีการจัดการอีกแบบครับ
___
Neutron: Linux Addict!
Re: จะกำหนดได้หรือไม่ว่าต้องการให้โปรแกรมใช้งาน internet ผ่าน in
ไม่ได้ต้องการทำ Load Balance ครับ แต่มีโปรแกรมอยู่ตัวนึงที่ต้องการให้การใช้งาน internet ของมันออกไปทาง interface eth2
ซึ่งเชื่อมต่อไปหลาย ip หลาย port
Re: จะกำหนดได้หรือไม่ว่าต้องการให้โปรแกรมใช้งาน internet ผ่าน in
อืม... กรณีนี้ จนปัญญาเหมือนกันครับ
___
Neutron: Linux Addict!
Re: จะกำหนดได้หรือไม่ว่าต้องการให้โปรแกรมใช้งาน internet ผ่าน in
เพิ่งนึก Idea ออกครับ อาจจะลองใช้ l7-filter
เช็คดูว่า application ไหนกำลังจะขอเชื่อมต่อเน็ตครับ
แต่วิธีนี้จะยุ่งยากมาก ๆ หลักการจะคล้าย ๆ กับการ Block BitTorrent ครับ
คือ เช็คให้ได้ว่า ที่ต่อเข้ามาเป็น โปรแกรม BitTorrent กรณีเราคือ
เช็คให้ได้ว่า เป็นโปรแกรมที่เราต้องการ
___
Neutron: Linux Addict!
Re: จะกำหนดได้หรือไม่ว่าต้องการให้โปรแกรมใช้งาน internet ผ่าน in
ขอบคุณครับ ผมคิดได้อีกวิธีนึงถ้าเราเปิด socks ในเครื่องเราแล้วบังคับให้มันออกไปทาง interface ที่กำหนดน่าจะได้นะครับแต่ในที่นี่โปรแรกมนั้นต้องตั้ง proxy ได้ด้วย :(
Re: จะกำหนดได้หรือไม่ว่าต้องการให้โปรแกรมใช้งาน internet ผ่าน in
:)
___
Neutron: Linux Addict!
Post new comment