http://wiki.mikrotik.com/wiki/Packet_Flow
http://mum.mikrotik.com/presentations/US09/megis_qos.pdf
簡單說:
設備-有兩個端口WAN 和 LAN ,而flow基本上都是成對的
A.
當一個packet從 WAN端進入forward會經過哪些table?
in-interface=WAN → preroute →global-in →Mangle forward →Mangle postroute
→globan-out → out-interface = LAN
*也就是這封包會同時經過
1.glob-in/global out
2.preroute
3.forward
4.in-interface=WAN/out-interface = LAN
B.
當一個packet從Lan端進入會經過哪些tables?
in-interface=LAN → preroute →global-in →Mangle forward →Mangle postroute
→globan-out → out-interface = WAN
1.glob-in/global out
2.preroute
3.forward
4.in-interface=LAN/out-interface = WAN
C.
問題1是:
如果
/ip firewall mamgle add chain=forward action=mark-packet
src-address=192.168.0.0/24 proto=tcp port=80 new-packet-mark=tcp_up
(我要queue tree作用在global中~該選global-in 還 glob-out呢?)
問題2是:
/ip firewall mamgle add chain=preroute action=mark-packet
src-address=192.168.0.0/24 port=80 new-packet-mark=tcp_up
(我要queue tree作用在global中~該選global-in 還 glob-out呢?)
問題3是:
如果
/ip firewall mamgle add chain=forward action=mark-packet
src-address=192.168.0.0/24 proto=tcp port=80 new-packet-mark=tcp_up
(我要queue tree作用在interface中~該選WAN 還 LAN呢?)
問題4是:
如果
/ip firewall mamgle add chain=preroute action=mark-packet
src-address=192.168.0.0/24 proto=tcp port=80 new-packet-mark=tcp_up
(我要queue tree作用在interface中~該選WAN 還 LAN呢?)
問題5是: interface=local是指啥呢? 指interface address ip是local的interface?
--
2011/06/13補充
A.如果要標記一個上傳封包可以用下面方式(同問題四)
/ip firewall mangle
add chain=preroute action=mark-packet
src-address=192.168.0.0/24 new-packet-mark=src_mark
-而且只有用在"出口"端才有效
B.如果要標記下載封包則要怎標記呢?
/ip firewall mangle
add chain=forward action=mark-packet
dst-address=192.168.0.0/24 new-packet-mark=dst_mark
C.你或許會想說那是不是要上下傳都標記一次?其實有其他法
/ip firewall mangle
add chain=preroute action=mark-connection src-address=192.168.0.0/24
new-connection=src_con
add chain=preroute action=mark-packet connection-mark=src_con
new-packet-mark=src_mark
-用在wan端會發現可以控制上傳
-用在lan端會發現可以控制下載
-(1).為何上下傳都可以控制呢?
根據TCP交握,發起端是192.168.0.0/24,從外面又回到發起的pc是一條線,而整條線的
封包都被mark了!
-(2).為何用在wan會變成控制上傳,lan會下載呢?
根據之前所說的會成為這張圖,http://0rz.tw/yHFTY,
由下往上看,
進入網卡後→開始追蹤連結→才經過prerouting→又經過dnat→然後global-in→
forward→postrouting→global-out→snat→最後才到interface
因為流量管控一律是出口的interface
D.為何不直接用 prerouting dst-192.168.0.0/24的packet,呢?
-根據http://0rz.tw/yHFTY,會發現外部封包回來經過preroute表的時候,dst沒有
dst-192.168.0.0/24,但是會發現經過dnat,進入forward前會變成區網ip,所以可
以標記forward鍊表!
E.那為何標記連線不用preroute dst-192.168.0.0/24的connection呢?
-因為下載連線追蹤是發生在snat之前,所以不會有dst-192.168.0.0/24的連線,
但是換成forward dst-192.168.0.0/24的connection 則可以!
F.假設標記forward dst-192.168.0.0/24 connection該怎使用?
-(1)
/ip firewall mangle
add chain=forward action=new-connection-mark dst-address=192.168.0.0/24
new-connection-mark=dst_con
add chain=forward action=new-packet-mark connection-mark=dst_con
new-packet-mark=dst_ogc
-(2)
/ip firewall mangle
add chain=forward action=new-connection-mark dst-address=192.168.0.0/24
new-connection-mark=dst_con passthrough=yes
add chain=forward action=new-packet-mark connection-mark=dst_con
dst-address=192.168.0.0/24 new-packet-mark=dst_ogc passthrough=no
add chain=forward action=new-packet-mark connection-mark=dst_con
src-address=192.168.0.0/24 new-packet-mark=dst_ogc passthrough=no
-(3)
/ip firewall mangle
add chain=forward action=new-connection-mark dst-address=192.168.0.0/24
new-connection-mark=dst_con passthrough=yes
add chain=forward action=new-packet-mark connection-mark=dst_con
dst-address=192.168.0.0/24 new-packet-mark=dst_ogc passthrough=no
add chain=preroute action=new-packet-mark connection-mark=dst_con
src-address=192.168.0.0/24 new-packet-mark=dst_ogc passthrough=no
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.72.144.90
※ 編輯: kingofsdtw 來自: 203.72.144.93 (06/13 23:27)