หน้า 1 จากทั้งหมด 1

เทคนิคการเซ็ตพอร์ต LAN ให้มีมากกว่า 1 ไอพี (ซับเน็ต)

โพสต์โพสต์แล้ว: 02 ธ.ค. 2020 13:52
โดย nuiz
บทความนี้จะแนะนำเทคนิคการเซ็ตพอร์ต LAN บน Issabel ให้มีมากกว่า 1 ไอพี (แยกคนละ Subnet) จะมีเป็น 10 เป็น 100 ไอพีก็น่าจะได้ครับ แต่ผมยังไม่เคยลองสักที มากสุดก็แค่ 2 ไอพีครับ (2 ซับเน็ต)

เซ็ตเพื่อ...
มีลูกค้าท่านหนึ่งเจอปัญหาว่า ต้องเชื่อม Issabel เข้ากับทั้งเน็ตเวอร์คของตัวเอง 192.168.1.0/24 และมี SIP Trunk ของ TOT เข้ามาด้วย ซึ่งทั้ง 2 เน็ตเวอร์คนี้มันคนละ IP กันครับ ถ้าในเครื่องมี 2 LAN ก็ไม่มีปัญหาอะไร แต่ถ้ามี 1 LAN หล่ะจะทำยังไง ซื้อการ์ด LAN เพิ่มก็น่าจะเป็นคำตอบ

แต่มีวิธีอื่นมั๊ยนอกจากซื้อการ์ด LAN เพิ่ม มีครับ... ตามบทความนี้เลย

คอนฟิก Sub Interface ของ LAN เพิ่ม
บน CentOS ทุกเวอร์ชั่น (Issabel 4 เป็น CentOS 7) ไฟล์คอนฟิกเน็ตเวอร์จะอยู่ในไดเร็คตอรี่ /etc/sysconfig/network-scripts ครับ ไฟล์อาจจะเป็น ifcfg-eth0 หรือชื่ออื่นก็ได้ แต่ที่ผมเจอก็ ifcfg-eth0 นี่แหล่ะครับ ส่วนเครื่อง FreePBX อาจจะเป็นชื่ออื่น

ให้สร้างไฟล์ ifcfg-eth0:1 (จะเป็นไฟล์ ifcfg-eth0:100 หรือ ifcfg-eth0:1000 ก็ได้นะครับ ) ขึ้นมาครับ โดยก๊อบจากไฟล์ ifcfg-eth0 เดิมเลยก็ได้แล้วเปลี่ยนชื่อใหม่

cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth0:1

จากนั้นก็ใช้โปรแกรม vi หรือ nano หรือ WinSCP แก้ IP ในไฟล์ ifcfg-eth0:1 ครับ

สมมติว่า TOT ตั้งซับเน็ตนี้ให้เราใช้ IP 172.31.100.32/29 โดยมี 172.31.100.33 เป็น Router และ 172.31.100.34 เป็น PBX

เอาแค่บรรทัดพวกนี้ก็พอครับ บรรทัดอื่นลบทิ้งได้ เครื่องหมาย " " ถ้าของเดิมไม่มีก็ไม่ต้องใส่นะครับ

TYPE="Ethernet"
BOOTPROTO="none"
NAME="eth0:1"
DEVICE="eth0:1"
ONBOOT="yes"
IPADDR="172.31.100.34"
NETMASK="255.255.255.248"

เซฟไฟล์แล้วก็สั่ง Up อินเตอร์เฟส eth0:1 นี้ได้เลยครับ

ifup eth0:1

ตรวจสอบอินเตอร์เฟสในเครื่อง
คำสั่ง ifconfig ก็จะเห็นประมาณนี้
โค้ด: เลือกทั้งหมด
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.52  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::a00:27ff:fecd:ea90  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:cd:ea:90  txqueuelen 1000  (Ethernet)
        RX packets 1633  bytes 130734 (127.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 471  bytes 31091 (30.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.31.100.34  netmask 255.255.255.0  broadcast 172.31.100.255
        ether 08:00:27:cd:ea:90  txqueuelen 1000  (Ethernet)

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.52  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::a00:27ff:fe59:8cca  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:59:8c:ca  txqueuelen 1000  (Ethernet)
        RX packets 4439  bytes 424636 (414.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 837  bytes 168729 (164.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1469  bytes 440435 (430.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1469  bytes 440435 (430.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


สร้าง Sub Interface แล้ว จะเชื่อมต่อสายแลนของ Office และสายแลนจากเร้าท์เตอร์ของ TOT ยังไง
เอามาต่อบน Switch ตัวเดียวกันเลยครับ ถ้า Traffic เล็กๆน้อยก็ไม่มีผลกระทบเท่าไหร่ครับ แต่ถ้า Traffic เยอะๆก็อาจจะมีผลกระทบได้ ลองดูก่อนครับ จะได้ไม่ต้องซื้อการ์ด LAN เพิ่ม

ทำ Routing ยังไง
default route หรือ default gateway เราจะให้อยู่บนอินเตอร์เฟสหลัก eth0 ครับ (สมมติ) ในไฟล์ ifcfg-eth0 จึงมีบรรทัด GATEWAY อยู่ด้วย แต่บนอินเตอร์เฟส eth0:1 นี่ เราห้ามใส่บรรทัด GATEWAY นะครับ แล้วเราจะทำ route ไปยัง SIP Server ของ TOT ยังไง ให้เพิ่ม Static Route ครับ

สมมติว่า IP ของเร้าท์เตอร์ TOT คือ 172.31.100.33 และ IP ของ SIP Server TOT อยู่เน็ตเวอร์ค 172.30.145.0/24

เทสก่อนด้วยคำสั่ง CLI นี้

/sbin/route add -net 172.30.145.0/24 gw 172.31.100.33

แล้วลอง Ping ไอพี 172.30.145.254 ดูครับ ถ้า Ping เจอแสดงว่าเวอร์คแล้ว

จากนั้นใส่คำสั่งนี้ไว้ในไฟล์ /etc/rc.d/rc.local เพื่อให้สร้าง Static route นี้ทุกครั้งที่เปิดเครื่อง และถ้าจะให้ชัวร์ยิ่งขึ้นว่า route จะไม่หาย ก็ให้รันคำสั่งนี้ใน Crontab ด้วยนะครับ รันทุก 5 นาทีเลยก็ได้

*/5 * * * * /sbin/route add -net 172.30.145.0/24 gw 172.31.100.33

รันคำสั่งนี้ซ้ำๆจะไม่มีผลอะไรครับ ถ้ามันมีอยู่แล้วก็แค่ฟ้องเฉยๆครับ ไม่ทำให้ route ถูกลบทิ้ง จะช่วยชีวิตได้ถ้าสาย LAN หลุดหรือรีเซ็ต Switch ครับ

เปิดบริการ อบรม Issabel/FreePBX/Elastix ด้วยคอร์สพิเศษ ให้ติดตั้ง คอนฟิกคล่อง ใช้งานคล่อง ได้ใน 3 วัน
เทคนิคการใช้งาน Firewall + GeoIP บน Issabel
เทคนิคการใช้งาน Caller ID Lookup Sources จาก MySQL
เทคนิคการใช้งาน Caller ID Lookup Sources จาก Internal Phonebooks
เทคนิคการติดตั้ง Asterisk 17.x + DAHDI 3.1.0 บน CentOS 7