找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: dgclan

太美老大以及众位高人有空来一下:)

[复制链接]
 楼主| 发表于 2006-8-8 00:10:40 | 显示全部楼层
說明:
--------------------------------
這邊的 eh1 是對外網卡,eth0 是對內網卡
若與您的實際環境不同,請自行修改

主要過程:
1.清除網卡上的所有佇列規則 (不論有或沒有)
2.定義網卡的佇列規則
3.定義各類別
4.定義各類別的佇列規則
5.定義過濾器

rate 後面的數字:保證頻寬
ceil 後面的數字:最大頻寬
單位只有:KByte/s ,不過上面要寫 kbps,因為這是 HTB 的規定語法

prio 後面的數字:優先權,數字愈低愈高,0最大

classid 後面的編號:完整類別編號
parent 後面的編號:父類別,或者佇列規則,亦即該項目上一層的物件


這裡列出了 7 個類別,可以自行新增或減少

default 類別,可有可無
較嚴謹的頻寬管制,可取消 default 類別,以避免內部有人鑽漏洞
一般情況,則建議設 default 比較好


註1:可參考前面的「類別規劃示意圖」,比較容易了解此處的設定用意

註2:這段參考用原始碼,只是一個範例,必須修改後,才能符合您的環境



iptables 指令,過濾器 (編輯自定義防火牆規則) :

代碼:
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-8 00:11:24 | 显示全部楼层
  1. # uploads
  2. # 設定上傳方面,先利用 iptables 給封包貼標籤,再交由 fw 過濾器進行過濾

  3. iptables -t mangle -A PREROUTING -s 192.168.1.6 -m layer7 --l7proto dns -j MARK --set-mark 10
  4. iptables -t mangle -A PREROUTING -s 192.168.1.6 -m layer7 --l7proto smtp -j MARK --set-mark 20
  5. iptables -t mangle -A PREROUTING -s 192.168.1.6 -m layer7 --l7proto http -j MARK --set-mark 30

  6. iptables -t mangle -A PREROUTING -s 192.168.1.1 -j MARK --set-mark 40
  7. iptables -t mangle -A PREROUTING -s 192.168.1.2 -j MARK --set-mark 50
  8. iptables -t mangle -A PREROUTING -s 192.168.1.3 -j MARK --set-mark 60

  9. # downloads
  10. # 下載方面

  11. iptables -t mangle -A POSTROUTING -d 192.168.1.6 -m layer7 --l7proto dns -j MARK --set-mark 10
  12. iptables -t mangle -A POSTROUTING -d 192.168.1.6 -m layer7 --l7proto smtp -j MARK --set-mark 20
  13. iptables -t mangle -A POSTROUTING -d 192.168.1.6 -m layer7 --l7proto http -j MARK --set-mark 30

  14. iptables -t mangle -A POSTROUTING -d 192.168.1.1 -j MARK --set-mark 40
  15. iptables -t mangle -A POSTROUTING -d 192.168.1.2 -j MARK --set-mark 50
  16. iptables -t mangle -A POSTROUTING -d 192.168.1.3 -j MARK --set-mark 60
复制代码



說明:
--------------------
iptables 會去檢查封包,看它來自哪裡,或者 Layer-7 協定是哪種的 ,然後貼上標籤
之後 fw 過濾器,會依照標籤上的數字,來給封包歸類別

IP:電腦的 IP

Layer-7 協定種類:
此部份是採用 l7-filter 直接做過濾,例如:dns,smtp,http
P2P 下載的封包,也可以管制
l7-filter 詳細用法請參考 Coyote 的教學文章,補充說明

mark 後面的數字:「類別」的編號

註:這段參考用原始碼,只是一個範例,必須修改後,才能符合您的環境


#############################################################################
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-8 00:11:38 | 显示全部楼层
Linux QoS 設定,看似複雜,然其實可以做到非常彈性化 (可程式化)

其效能是取決 CPU、RAM、網卡晶片,可由使用者自行決定組裝等級
若使用高等配備,並不會輸給一台幾萬元的昂貴硬體路由器
且在價格上,更具優勢

昔日網路上的中文 Linux QoS 資料,非常稀少
即使是現在,雖然市面上已有幾本 Linux QoS 相關中文書籍了
但網路上的 Linux QoS 的中文討論,仍是寥寥可數
故小弟今日貼此一篇,望能拋磚引玉之效,開創 Linux QoS 風潮

Linux QoS 的技術
基礎的像此篇管制小型網路頻寬之應用
進階的可以配合 l7-filter 做 service 的頻寬管制
到深入一點,複雜一點的
更可以藉由 iproute2 多重路由,達到多WAN的架構


歡迎有興趣的朋友,一起加入研究討論的行列
若有任何心得,請發表此篇後面
謝謝
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-8 00:11:54 | 显示全部楼层
##########################################
補充 01: 2005/10/04
##########################################

FW 過濾器使用方法補充說明

附加說明:如何限制 P2P 下載?

Linux QoS 有三要素:佇列規則,類別,過濾器

佇列規則是實際負責 QoS 的單位
類別是定義 「頻寬大小」的單位
而過濾器,顧名思義,就是用來過濾封包,判斷封包該屬於哪個類別的單位

換句話說,要限制 P2P....等等之類,關鍵就在於「過濾器」
只要「過濾器」有辦法把 P2P 的封包抓出來,那麼要管制它就不難了


FW 實際上是靠 iptables 給封包貼標籤
然後 FW 再依照標籤編號,給封包歸類別
所以下面講的,其實是 iptables 的語法.....


iptables 語法簡單講解:
------------------------------------
iptables -t mangle -A PREROUTING -s 192.168.1.1 -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -d 192.168.1.1 -j MARK --set-mark 10

-t mangle:指定使用 mangle 表格 (QoS 要用這個表格)
-A:新增一條規則

PPRROUTING:上傳方向,是內部電腦傳出去的,後面加 -s 來源端
POSTROUTING:下傳方向,是外面網路傳進來的,後面 -d 目的地

-s:來源端
-d:目的地

-j mark:處理動作,給予貼標籤
--set-mark:貼什麼標籤,數字指定於後

※ 重要:
在 Linux下, 所有的指令和檔名,都有分英文大小寫
PREROUTING 和 prerouting 所代表的意義是不同的,後者是錯誤語法

--------------------------------------


iptables 給封包貼標籤時,「比對規則」有以下六種基本型態:
(基本型態可混搭,變成更嚴謹的複雜型態)


1.針對 IP 過濾
iptables -t mangle -A PREROUTING -s 192.168.1.1 -j MARK --set-mark 10

2.針對「網段」過濾
iptables -t mangle -A PREROUTING -s 192.168.1.0/24 -j MARK --set-mark 10

3.針對 MAC 過濾
iptables -t mangle -A PREROUTING -m --mac-source 00:00:AA:BB:CC:EE -j MARK --set-mark 10

4.針對 PORT 過濾
iptables -t mangle -A PREROUTING -p tcp --sport 80 -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -p tcp --dport 80 -j MARK --set-mark 10

iptables -t mangle -A PREROUTING -p udp --sport 53 -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -p icmp -j MARK --set-mark 10

5.針對 「網卡介面」過濾 (假如對內有多片網卡的話,-i 進入方向, -o 出去方向)
iptables -t mangle -A PREROUTING -o eth0 -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -i eth0 -j MRAK --set-mark 10


6. l7-filter 過濾
iptables -t mangle -A PREROUTING -m layer7 --l7proto bittorrent -j MARK --set-mark 10
( BT上傳方向的封包,給予貼標籤 10 )

iptables -t mangle -A POSTROUTING -m layer7 --l7proto edonkey -j MARK --set-mark 10
( 驢子 下載方向的封包,給予貼標籤 10 )


若要管制 P2P 下載,就是把 bittorrent 和 edonkey 兩個 L7 協定
各設置 上傳/下載,共4條過濾器規則
並把這4條規則的封包,通通給予貼某一個類別的標籤,例如:90
讓過濾器把 P2P 的封包,丟給該類別 10:90 去處理即可

註:此部份僅是設定「過濾器」,實際在處理 QoS 的是「佇列規則」、「類別」,所以另一邊也必須有相對應的設定。例如:必須定義 10:90 這個類別的頻寬,整個 P2P 管制的 QoS 才會生效。


附錄:Coyote 可用 l7-filter 協定一覽表



----------------------------------------------------------------------------------
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-8 00:12:08 | 显示全部楼层
########################################
補充 02: 2005/11/03
########################################

淺談 Coyote 防火牆之工作原理
從底層 iptables 的角度來看



Coyote 的防火牆,預設政策為「允許通過」

預設政策的意思是:
假如封包不符合任何使用者訂立的規則,則以預設政策來處理。




iptables 的 filter 表格,內建只有三個鏈 (Chain):
INPUT、FORWARD、OUTPUT

而 iptables 允許使用者新增自訂鏈
Coyote 在設計上,會自動新增一些自訂鏈

在「WEB 管理介面」中
有關防火牆方面的設定,其實是以 Coyote 自訂的鏈 來處理
以下會進一步說明:




上圖所示
在高級防火牆配置中,有兩種類型:
-------------------------------------
1.Admin (管理)
2.Access (訪問)



1.Admin (管理) 實際上是寫入 Coyote 的自訂鏈:remote-admin

此 remote-admin 自訂鏈,是被安排在 INPUT 鏈中

這說明了,所謂的類型 Admin (管理),是和 Coyote 本機有關的
它是用來管制誰能夠從遠端登入 Coyote 主機,進行操作




2.Access (訪問) 實際上是寫入 Coyote 的自訂鏈: access-acl

此 access-acl 自訂鏈:是被安排在 FORWARD 鏈中

所以它是和 NAT 有關係的
用來管制外部網路,和內部網路電腦的連線

至於 Internet Interface (int-if) 和 Internet (int-net) 選項的差別

如上圖所示,從 source (來源)端,我們可以看出:

Internet Interface (int-if),實際結果是 anywhere,和 any 選項是一樣的

Internet (int-net),則是指 ISP 的閘道端


經測試後發現
ISP 閘道端,並不等於 Internet (泛指網際網路 0.0.0.0)
阻擋 LAN 內電腦的封包,進入 ISP 閘道端
並無法阻擋其進入網際網路
所以這是一個詭異的選項,它實際上並沒有太大作用

若要從 WEB 管理介面設定防火牆
建議外部網路的選項,選擇 Internet Interface (int-if) 或者 any
才能真正起到保護作用


在終端模式下,查詢 iptables 設定明細表的指令為:
----------------------------------------------
iptables -L (預設查詢 filter 表格)
iptables -t nat -L (指定查詢 nat 表格)
iptables -t mangle -L (指定查詢 mangle 表格)


######################################

其它補充....待續
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-8 00:12:25 | 显示全部楼层
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-8 00:47:20 | 显示全部楼层
簡體中文 轉 繁體中文,建議的用詞:

字符 = 字元
內核 = 核心
轉發 = 轉換
激活 = 啟動
掩碼 = 遮罩
遠程 = 遠端
模塊 = 模組
進程 = 程序
接口 = 組態 修正: 接口 (Interface) = 介面
內存 = 記憶體
串口 = 連接埠
計算機 = 主機
網關 = 閘道器
端口(port) = 埠
重新加載(reload) = 重新載入
子網掩碼 = 子網路遮罩
域 = 網域
主機名 = 主機名稱
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-11 12:13:15 | 显示全部楼层
谢谢hzl88688 老大

Email已收到 还有几个问题倒是一并发上来请教一下
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-11 22:19:47 | 显示全部楼层
具体Conlimit L7 package设置怎么老出错?

我的设置
设置192.168.123.1 连接数为5

具体设置

[ 本帖最后由 dgclan 于 2006-8-11 22:22 编辑 ]
rt1.JPG

Conlimit Rule

Conlimit Rule
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-11 22:22:49 | 显示全部楼层
Start Conlimit
rt3.JPG
rt4.JPG
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-11 22:24:22 | 显示全部楼层
最后显示


Starting conlimit: Configuring ...
iptables: Unknown error -1
Working!


具体设置那里错了?
routeros
回复

使用道具 举报

发表于 2006-8-11 22:46:55 | 显示全部楼层
原帖由 dgclan 于 2006-8-11 22:24 发表
最后显示


Starting conlimit: Configuring ...
iptables: Unknown error -1
Working!


具体设置那里错了?
Capture-1.jpg
routeros
回复

使用道具 举报

发表于 2006-8-11 23:58:44 | 显示全部楼层
前面给你的版本有点问题,iptable不支持工作,你留下EMAIL,我再发个给你试试!

[ 本帖最后由 hzl88688 于 2006-8-12 00:48 编辑 ]
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-12 16:49:46 | 显示全部楼层
xufangqing@sina.com

QQ:75006392

我看到加载的模块

ip_nat_ftp              2128   0 (unused)
ip_conntrack_mms        2480   1
ip_conntrack_h323       1865   1
ip_conntrack_irc        2440   1
ip_conntrack_ftp        3120   1

其中 FTP功能怎么用?我怎么连接它呢?

[ 本帖最后由 dgclan 于 2006-8-12 18:09 编辑 ]
routeros
回复

使用道具 举报

 楼主| 发表于 2006-8-13 14:45:50 | 显示全部楼层
已经收到 装好
还有几个问题:
rt5.JPG
rt6.JPG
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-5 23:36 , Processed in 0.086671 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表