ช่วยด้วยครับ ทำ loadbalane ดู IPTV แล้วมีปัญหาครับ

วิธีการติดตั้ง และปรับแต่งอุปกรณ์ Mikrotik
ให้รองรับการทำงานที่หลากหลายความต้องการ
การติดตั้ง HotSpot Server, การติดตั้ว Load Balanced ฯลฯ

ช่วยด้วยครับ ทำ loadbalane ดู IPTV แล้วมีปัญหาครับ

โพสต์โดย godmoonoy เมื่อ พฤหัสฯ. 31 มี.ค. 2016 1:04 pm

ใช้สคริป ตามนี้ครับ
ผมดูช่องต่างประเทศไม่ได้ครับ
สงสัยว่ามันจะเข้าออกคนละทาง
มีทางดักจับ ให้วิ่งเฉพาะ Wan 1 ไหมครับ







โค้ด: เลือกทั้งหมด
#|
#|
#| Define all parameters
#|
#|

#| WAN1
:global wanAddress1 192.168.2.9/24
:global wanNetwork1 192.168.2.0
:global wanNetwork1Subnet 192.168.2.1/24
:global wanBroadcast1 192.168.2.255
:global wanGateway1 192.168.2.1

#| WAN2
:global wanAddress2 192.168.1.9/24
:global wanNetwork2 192.168.1.0
:global wanNetwork2Subnet 192.168.1.1/24
:global wanBroadcast2 192.168.1.255
:global wanGateway2 192.168.1.1

#| LAN
:global localAddress 192.168.100.1/24
:global localNetwork 192.168.100.0
:global localNetwork2 192.168.100.0/24
:global localBroadcast 192.168.100.255
:global localGateway 192.168.100.1
:global localDNS 192.168.100.1
:global localPool 192.168.100.100-192.168.100.200

:global dnsServer 8.8.8.8,8.8.4.4

#|
#|
#| Assign interace's name
#|
#|
/interface set "ether1" name="PORT1_WAN"
/interface set "ether2" name="PORT2_WAN"
/interface set "ether3" name="PORT3_LAN"
/interface set "ether4" name="PORT4_LAN"
/interface set "ether5" name="PORT5_LAN"


#|
#|
#| Assign master port switch
#|
#|
/interface ethernet set PORT4_LAN,PORT5_LAN master-port=PORT3_LAN


#|
#|
#| Assign ipaddress to our interfaces
#|
#|

#| Port 1 -> WAN 1
/ip address add address=$wanAddress1 network=$wanNetwork1 broadcast=$wanBroadcast1 interface=PORT1_WAN

#| Port 2 -> WAN 2
/ip address add address=$wanAddress2 network=$wanNetwork2 broadcast=$wanBroadcast2 interface=PORT2_WAN

#| Port 3 -> Local LAN
#| Port 4 -> Local LAN
#| Port 5 -> Local LAN
/ip address add address=$localAddress network=$localNetwork broadcast=$localBroadcast interface=PORT3_LAN


#|
#| 1,2
#| Mark incoming package on input's chain
#|
/ip firewall mangle add chain=input in-interface=PORT1_WAN action=mark-connection new-connection-mark=PORT1_WAN_conn
/ip firewall mangle add chain=input in-interface=PORT2_WAN action=mark-connection new-connection-mark=PORT2_WAN_conn


#|
#| 3,4
#| Mark routing package on output's chain
#|
/ip firewall mangle add chain=output connection-mark=PORT1_WAN_conn action=mark-routing new-routing-mark=to_PORT1_WAN
/ip firewall mangle add chain=output connection-mark=PORT2_WAN_conn action=mark-routing new-routing-mark=to_PORT2_WAN


#|
#| 5,6
#| Accept all packages if they come from local
#|
/ip firewall mangle add chain=prerouting dst-address=$wanNetwork1Subnet action=accept in-interface=PORT3_LAN
/ip firewall mangle add chain=prerouting dst-address=$wanNetwork2Subnet action=accept in-interface=PORT3_LAN

#|
#| 7,8
#| Do the load balance package
#|
/ip firewall mangle add chain=prerouting dst-address-type=!local in-interface=PORT3_LAN per-connection-classifier=both-addresses:2/0 action=mark-connection new-connection-mark=PORT1_WAN_conn passthrough=yes
/ip firewall mangle add chain=prerouting dst-address-type=!local in-interface=PORT3_LAN per-connection-classifier=both-addresses:2/1 action=mark-connection new-connection-mark=PORT2_WAN_conn passthrough=yes

#|
#| 9,10
#| Mark output network for packages
#|
/ip firewall mangle add chain=prerouting connection-mark=PORT1_WAN_conn in-interface=PORT3_LAN action=mark-routing new-routing-mark=to_PORT1_WAN
/ip firewall mangle add chain=prerouting connection-mark=PORT2_WAN_conn in-interface=PORT3_LAN action=mark-routing new-routing-mark=to_PORT2_WAN


#|
#| Add routing table
#|
/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway1 routing-mark=to_PORT1_WAN check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway2 routing-mark=to_PORT2_WAN check-gateway=ping

/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway1 distance=1 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway2 distance=2 check-gateway=ping


#|
#|
#| Assign NAT
#|
#|
/ip firewall nat add chain=srcnat out-interface=PORT1_WAN action=masquerade
/ip firewall nat add chain=srcnat out-interface=PORT2_WAN action=masquerade


#|
#|
#| Assign allow DNS
#|
#|
/ip dns set allow-remote-requests=yes cache-max-ttl=1w cache-size=5000KiB max-udp-packet-size=512 servers=$dnsServer


#|
#|
#| Assign DHCP server
#|
#|
/ip pool add name=default-dhcp ranges=$localPool
/ip dhcp-server add name=default address-pool=default-dhcp interface=PORT3_LAN disabled=no
/ip dhcp-server network add address=$localNetwork2 gateway=$localGateway dns-server=$localDNS
godmoonoy
 
โพสต์: 1
ลงทะเบียนเมื่อ: พฤหัสฯ. 31 มี.ค. 2016 12:35 pm

Re: ช่วยด้วยครับ ทำ loadbalane ดู IPTV แล้วมีปัญหาครับ

โพสต์โดย jadeson เมื่อ อังคาร 05 เม.ย. 2016 8:36 am

godmoonoy เขียน:ใช้สคริป ตามนี้ครับ
ผมดูช่องต่างประเทศไม่ได้ครับ
สงสัยว่ามันจะเข้าออกคนละทาง
มีทางดักจับ ให้วิ่งเฉพาะ Wan 1 ไหมครับ







โค้ด: เลือกทั้งหมด
#|
#|
#| Define all parameters
#|
#|

#| WAN1
:global wanAddress1 192.168.2.9/24
:global wanNetwork1 192.168.2.0
:global wanNetwork1Subnet 192.168.2.1/24
:global wanBroadcast1 192.168.2.255
:global wanGateway1 192.168.2.1

#| WAN2
:global wanAddress2 192.168.1.9/24
:global wanNetwork2 192.168.1.0
:global wanNetwork2Subnet 192.168.1.1/24
:global wanBroadcast2 192.168.1.255
:global wanGateway2 192.168.1.1

#| LAN
:global localAddress 192.168.100.1/24
:global localNetwork 192.168.100.0
:global localNetwork2 192.168.100.0/24
:global localBroadcast 192.168.100.255
:global localGateway 192.168.100.1
:global localDNS 192.168.100.1
:global localPool 192.168.100.100-192.168.100.200

:global dnsServer 8.8.8.8,8.8.4.4

#|
#|
#| Assign interace's name
#|
#|
/interface set "ether1" name="PORT1_WAN"
/interface set "ether2" name="PORT2_WAN"
/interface set "ether3" name="PORT3_LAN"
/interface set "ether4" name="PORT4_LAN"
/interface set "ether5" name="PORT5_LAN"


#|
#|
#| Assign master port switch
#|
#|
/interface ethernet set PORT4_LAN,PORT5_LAN master-port=PORT3_LAN


#|
#|
#| Assign ipaddress to our interfaces
#|
#|

#| Port 1 -> WAN 1
/ip address add address=$wanAddress1 network=$wanNetwork1 broadcast=$wanBroadcast1 interface=PORT1_WAN

#| Port 2 -> WAN 2
/ip address add address=$wanAddress2 network=$wanNetwork2 broadcast=$wanBroadcast2 interface=PORT2_WAN

#| Port 3 -> Local LAN
#| Port 4 -> Local LAN
#| Port 5 -> Local LAN
/ip address add address=$localAddress network=$localNetwork broadcast=$localBroadcast interface=PORT3_LAN


#|
#| 1,2
#| Mark incoming package on input's chain
#|
/ip firewall mangle add chain=input in-interface=PORT1_WAN action=mark-connection new-connection-mark=PORT1_WAN_conn
/ip firewall mangle add chain=input in-interface=PORT2_WAN action=mark-connection new-connection-mark=PORT2_WAN_conn


#|
#| 3,4
#| Mark routing package on output's chain
#|
/ip firewall mangle add chain=output connection-mark=PORT1_WAN_conn action=mark-routing new-routing-mark=to_PORT1_WAN
/ip firewall mangle add chain=output connection-mark=PORT2_WAN_conn action=mark-routing new-routing-mark=to_PORT2_WAN


#|
#| 5,6
#| Accept all packages if they come from local
#|
/ip firewall mangle add chain=prerouting dst-address=$wanNetwork1Subnet action=accept in-interface=PORT3_LAN
/ip firewall mangle add chain=prerouting dst-address=$wanNetwork2Subnet action=accept in-interface=PORT3_LAN

#|
#| 7,8
#| Do the load balance package
#|
/ip firewall mangle add chain=prerouting dst-address-type=!local in-interface=PORT3_LAN per-connection-classifier=both-addresses:2/0 action=mark-connection new-connection-mark=PORT1_WAN_conn passthrough=yes
/ip firewall mangle add chain=prerouting dst-address-type=!local in-interface=PORT3_LAN per-connection-classifier=both-addresses:2/1 action=mark-connection new-connection-mark=PORT2_WAN_conn passthrough=yes

#|
#| 9,10
#| Mark output network for packages
#|
/ip firewall mangle add chain=prerouting connection-mark=PORT1_WAN_conn in-interface=PORT3_LAN action=mark-routing new-routing-mark=to_PORT1_WAN
/ip firewall mangle add chain=prerouting connection-mark=PORT2_WAN_conn in-interface=PORT3_LAN action=mark-routing new-routing-mark=to_PORT2_WAN


#|
#| Add routing table
#|
/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway1 routing-mark=to_PORT1_WAN check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway2 routing-mark=to_PORT2_WAN check-gateway=ping

/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway1 distance=1 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway2 distance=2 check-gateway=ping


#|
#|
#| Assign NAT
#|
#|
/ip firewall nat add chain=srcnat out-interface=PORT1_WAN action=masquerade
/ip firewall nat add chain=srcnat out-interface=PORT2_WAN action=masquerade


#|
#|
#| Assign allow DNS
#|
#|
/ip dns set allow-remote-requests=yes cache-max-ttl=1w cache-size=5000KiB max-udp-packet-size=512 servers=$dnsServer


#|
#|
#| Assign DHCP server
#|
#|
/ip pool add name=default-dhcp ranges=$localPool
/ip dhcp-server add name=default address-pool=default-dhcp interface=PORT3_LAN disabled=no
/ip dhcp-server network add address=$localNetwork2 gateway=$localGateway dns-server=$localDNS


ลองทำ 1.11 วิธีการเซต WAN Protocol Bindingดูครับ
เป็นการเซตให้ เครื่องที่ต้องการให้ออกเฉพาะ WAN ที่ต้องการนั้นๆก่อนเสมอ จะกว่า wan นั้นจะดาวน์ จึงย้ายไป wan อื่นที่ Active
SYS2U.COM 24-Hour Online IT Store
ซิสทูยู เฟสบุ๊ค - http://www.facebook.com/SYS2UOnline

ภาพประจำตัวสมาชิก
jadeson
 
โพสต์: 619
ลงทะเบียนเมื่อ: อังคาร 03 ก.พ. 2009 4:50 pm


ย้อนกลับไปยัง วิธีการติดตั้งและปรับแต่งอุปกรณ์ Mikrotik

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 12 ท่าน

cron