1 個附加檔案
回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
[QUOTE=littlesa]先感謝linux_xp ~這篇文章對我非常的實用~
雖然我不是用Coyote Linux~我是用RedHat 9.0~
所以要使用l7-filter協定過濾~就必須重新編輯Kernel核心~
在網路上找了很多方法~最後也成功了~:D ~真happy
....
[/QUOTE]
喔喔,真高興碰到內行人,瞭解 Linux QoS 的價值
其實這篇開頭就說了,Linux QoS 是一個原理,或者技術
適用於所有的 Linux distro 版本
不過很多人卻誤以為,這是只能在 Coyote 執行的東西,殊為可惜
查網路教學,拜咕狗大神,想必很累吧
我以前也是這樣作,後來學聰明了
網路上的知識,都是片段的,出自於免費分享,自然不可能要求太多
真正要有系統的學習,必須買書來看
推薦一本書,有心學 Linux 頻寬管理,一定要看
旗標出版社,施威銘研究室出的:iptables 技術實務
關於 l7-filter,與核心編譯的實做,這本書都有說明
甚至還有 iproute2 多重路由,也就是多 wan 的知識
[quote]
不過我有幾個問題想問一下~
如果我的這台server裡面有裝samba~
[/quote]
我非常清楚的這個問題,因為我也碰到了
實做 QoS 後,會連 samba 傳輸也給限速了....冏rz
網路上(中文),或書籍,都沒有解答方法
不過在下苦思很久,終於靈光一現,想出一個辦法解決
提供給有需要的朋友參考
方法是:必須有三片網卡
其中一片是不管制流量的,稱之為:快速通道
(就是有特權的,不受流量管制)
當然,不會是只增加一片網卡這麼簡單
這其中牽涉到路由問題,必須使用到多重路由
由於過程很複雜,就不解說了
這篇底下,會附加一個閘道防火牆 script 檔
把變數填一填,即可使用
該 script 是參考書籍範例,自行修改的
我已經在自己機器使用很久了,保證沒問題
裡頭有詳細註解,若有興趣,歡迎一起討論
看這個 script 是否還有什麼需要改進的地方
或是有什麼新奇的點子,可加入什麼新功能之類的
:D
[quote]
如果我的rate 設為 0kbps ~他會出現以下的訊息~
"rate" is required.
RTNETLINK answers: Invalid argument
出現這樣是警告的訊息嗎~有成功嗎?
[/quote]
tc 指令若正常執行,不會出現任何訊息 (自己 echo 的例外)
有出現訊息的,一定是不正常,不會發生作用
這個地方的問題是
rate 不能設 0,最低只能設 1kbps
詳細原因我也不知道,可能是該程式的限制
或者語法上,最低保證頻寬或許是可以省略的,省略就代表0
回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
先再次感謝linux_xp~
這個script 真的寫的太詳細了~
晚點再好好的瞭解一下~
其實我對linux瞭解算是東湊西湊~
要不是linux_xp寫的這麼清楚~說真的~
會很想放棄頻寬的管理~
還好你知道我所問的問題~我還怕你們會看不懂~
呵呵~網路就是有這個個好處~
我所遇到的問題~別人一定也會遇到的~
不過就像你說的一樣~
找得很累~而且學到的都是片段~
iptables 技術實務這本書我會去買來研究的~
我們公司現在要買幾十萬的check point~
你分享的知識~就值十幾萬~甚至幾百萬都有~
真的太感謝了~有任何問題~我會在請教你~
謝謝~
回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
linux_xp~你好~我想問一下~三張網路卡要怎麼接呢~是其中兩張網卡(對內)~接到同一個hub上嗎?我看你給的script 檔ip~應該是這樣沒錯~
還有一個問題是
有一條類別定義如下:
tc class add dev eth1 parent 10:1 classid 10:10 htb rate 2kbps ceil 4kbps prio 2
有封包貼標籤為10
iptables -t mangle -A PREROUTING -s 192.168.1.6 -m layer7 --l7proto skype -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -s 192.168.1.6 -m layer7 --l7proto msn -j MARK --set-mark 10
那skype 和msn 所用的rate保證頻寬是各自有2kbps~
還是說總共只有2kbps呢~:confused:
回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
[QUOTE=littlesa]linux_xp~你好~我想問一下~三張網路卡要怎麼接呢~是其中兩張網卡(對內)~接到同一個hub上嗎?我看你給的script 檔ip~應該是這樣沒錯~
還有一個問題是
有一條類別定義如下:
tc class add dev eth1 parent 10:1 classid 10:10 htb rate 2kbps ceil 4kbps prio 2
有封包貼標籤為10
iptables -t mangle -A PREROUTING -s 192.168.1.6 -m layer7 --l7proto skype -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -s 192.168.1.6 -m layer7 --l7proto msn -j MARK --set-mark 10
那skype 和msn 所用的rate保證頻寬是各自有2kbps~
還是說總共只有2kbps呢~:confused:[/QUOTE]
1 對外,2 對內
對內的兩條線,可接同一台 HUB 或 Switch
忘記說,
smb.conf 要指定使用 eth2
也就是快速通道那張網卡介面,才會有效果
總共 2KB
QoS 的限速是看 class 類別的
iptables 規則貼標籤,用途只是提供 filter 過濾器去抓取
舉個例子:
-----------------------------
高速公路,ETC 通道,限速 40 公里,這叫做 ETC 類別
而有安裝 ETC 的車子 (被貼上標籤),強迫走 ETC 通道,這是規則條件
車子有很多廠牌,有 skype 牌的,msn 牌的
不過 ETC 通道只有一條,就是限速 40 公里
不管車子是什麼牌,凡符合條件就必須走這一條通道,共享頻寬
過濾器的用途,可看作是收費站那個檢查車子有沒有 ETC 的裝置
(其實這是個爛例子 :p ,因為裝 ETC 高興不走 ETC 通道也行,不過看得懂就好了,實際上封包若被貼了標籤,100% 會被 過濾器抓取,沒有例外)
1 個附加檔案
回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
linux_xp你好~
我剛剛試了你給的script~
修改完後~卻沒辦法上網~
但那台server是可以連到外面去~
內部的電腦都無法連出去~
不過samba 卻可以用~
我把script檔傳上來~
可以幫我看一下嗎?
不過我想應該是沒有設錯~
可能還有其他設定要改吧~
"eth0" 192.168.1.5 對外那張網路卡的ip~
因為我還有接一台ip 分享器~(IP是192.168.1.1)
才在接這台server的~
"eth1" 192.168.2.254 對內
"eth2" 192.168.2.253 內部區網快速通道
回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
唉~我昨天試到晚上兩點~不行了~還是要去睡~
我發現~如果我把第三個網路卡關起來~不去啟動它~
我的網路就會很正常~可以上網~如果我把第三網路卡加入~
設定好ip~結果就無法上網了~
所以錯誤點應該在第三個網路卡的設定~
我網路卡設定如下
ip 分享器 :192.168.1.1
eth0
IP :192.168.1.5
址網路遮罩:255.255.255.0
預設閘道 :192.168.1.1
eth1
IP :192.168.2.254
址網路遮罩:255.255.255.0
預設閘道 :192.168.1.1
eth2
IP :192.168.2.253
址網路遮罩:255.255.255.0
預設閘道 :
麻煩你了~
對了~我剛剛想到~
你說加上第三張網路卡會牽涉到路由問題
也就是多重路路由的設定~
那表示兩張對內的網卡~
應該要設在不同網域是吧~
如果是這樣~那就太對不起你了~
沒有注意你說的~
回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
[QUOTE=littlesa]linux_xp你好~
我剛剛試了你給的script~
修改完後~卻沒辦法上網~
但那台server是可以連到外面去~
內部的電腦都無法連出去~
不過samba 卻可以用~
我把script檔傳上來~
可以幫我看一下嗎?
不過我想應該是沒有設錯~
可能還有其他設定要改吧~
"eth0" 192.168.1.5 對外那張網路卡的ip~
因為我還有接一台ip 分享器~(IP是192.168.1.1)
才在接這台server的~
"eth1" 192.168.2.254 對內
"eth2" 192.168.2.253 內部區網快速通道[/QUOTE]
基本上設定並沒有錯誤,但網路環境配置錯誤
那支閘道防火牆 script,預設啟動 NAT
可以取代 IP 分享器,甚至取代頻寬管理器、防火牆設備
或者說,前端不能再接 IP 分享器
那台主機本身就必須擔任 IP 分享器的地位
對外網卡,必須為固定真實 IP (Public IP)
如果 server 是單純的 web、ftp、samba、mail ...之類
並不擔任閘道防火牆主機功能
應使用另一支單機防火牆 script
且只要一片網卡即可
註:對內區網限速的 QoS 配置,只能在閘道端生效
當然這樣會有一個疑慮
主機直接對外,會不會被攻擊,或資料被偷
因此那支閘道防火牆 script,有特別強調,它是 「防火牆」script
理論上,對外不開 port,尤其是 port 22 (SSH)
可以防止被 WAN 端登入操作
對外只開啟必要的 port
例如:
tcp 80 (web 服務)
tcp 443 (https)
tcp 25 (mail)
tcp 110 (pop3)
udp 53 (dns)
那麼除非該服務本身就有漏洞
例如:apache 有漏洞,或 PHP/JSP 程式寫的有 bug
才有可能被入侵
假如是這樣的話,那其實主機放前面,放後面,結果都是一樣的
即使 web 主機是放 IP分享器 或 硬體防火牆 後面
表面上好像受到保護
但事實上 IP 分享器當然也要設轉 port 或 DMZ
web 主機才能對外服務
那麼相對來講,該 web 主機不也是直接曝露在外
該 service 若有漏洞的話,還不是照樣被攻擊入侵
所以這可以說是多此一舉的
反而如果 IP 分享器不夠力,效能不好
還會影響到上網的速度,網速都給低階的 IP分享器拖垮了
但多數的資料,或書籍,都會說放 IP 分享器後面,能夠受到保護
理由是這樣子內部電腦就沒有 public IP,只有虛擬 IP (Private IP)
而 Internet 上,虛擬 IP 是無法直接連接的
這種說法,基本上並沒有錯
只不過這是針對不開 port 轉換或 DMZ 的情況下來講
如果開了 port 轉換 或 DMZ,不管主機放哪,都是直接對外
而一台 server 如果對外不開 port,又要如何對外服務呢
所以結論是,這句話只適用於單純的 client 端電腦
如果是擔任 server 服務的電腦,則不適用
養成定時更新 (update) 的習慣,才是防止服務漏洞被攻擊的不二法門
例如:yum -y update
會自動更新所有套件 (distro 必須支援 yum 更新系統)
將這個指令,寫入 crontab 排程,每日或每週自動執行
則可以避免忘記,或者不用手動,而達到全自動更新
:)
回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
嗯嗯~先謝謝你的回答~我會在了解一下這隻script~
其實我也很想把我前端的ip分享器拿走~
不過因為我是剛剛接觸linux的防火牆~
對它的設定還不是很了解~
所以還不放心把它放在跟外部連線~
(很久以前~我就是把它放在跟外部連線~結果被人竄改密碼~唉~不過那時才剛碰linux啦~什麼東不懂~連防火牆都沒架~所以被侵入是一定的)
等我了解完這隻script~對防火牆的設定了解後~我會將它放在最前面的~
我沒有申請固定的ip所以我用的是浮動的~不過我有去申請ddns~
我想不管是浮動ip或是前面有接ip分享器~這應該不是最大的問題~
這隻script應該還是有辦法改成我要的~我會試著改改看~到時我會分享我改的script~畢竟初學者在架linux~還是先架在IP分享器後~要不然會跟我一樣~一開始就被侵入~到時就有人會說~Linux怎麼這麼容易被侵入壓~哈~
回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
linux_xp
你好~
我現在把eth2 設在不同網段~
不過跟eth1接在同一個hub上~
現在是可以上網了~
我想請問一下~
smb.conf 要指定使用 eth2
是要在smb.conf上設定嗎??
我找了很久~好像沒有這樣的設定~
還是有其他的設定方法壓??
回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
[QUOTE=littlesa]linux_xp
你好~
我現在把eth2 設在不同網段~
不過跟eth1接在同一個hub上~
現在是可以上網了~
我想請問一下~
smb.conf 要指定使用 eth2
是要在smb.conf上設定嗎??
我找了很久~好像沒有這樣的設定~
還是有其他的設定方法壓??[/QUOTE]
假設
eth0 對外網卡
eth1 對內網卡,有 NAT 、QoS 的
eth2 對內網卡,快速通道
估計可能是預設閘道設錯,才導致無法上網
eth1 是內部電腦的預設閘道 default Gateway
eth2 同一網段即可,IP 任意,沒衝到即可
這是它最主要的用處
如果要分網段,其實插張網卡就行了,不需要多重路由
但是這樣內部 Client 端電腦,都要插雙網卡,或者虛擬一塊網卡
麻煩之程度,就不用說了吧..... :D
「內部區網快速通道」不受 QoS 管制
用來解決 smb 被限速的問題
只適用於像 smb 這類,可以自行調整要走哪一條介面的 service
vi /etc/samba/smb.conf
----------------------------------------
# Configure Samba to use multiple interfaces
# If you have multiple network interfaces then you must list them
# here. See the man page for details.
interfaces = eth2
-------------------------------------------
/etc/rc.d/init.d/smb restart
ssh 也可以調要走哪一條介面
vi /etc/ssh/sshd_config
-------------------------------------------
ListenAddress 0.0.0.0 # (指定監聽 eth2 的 IP)
# 監聽介面可以設多組,假如要允許 外部 to 內部 ssh
# 可以多設一組
-------------------------------------------
諸如此類,有很多 service 都可以自定監聽介面
如果不想讓閘道主機的某 service 被 QoS 限速
指定到快速通道,方可解決被限速的問題
:)
PS.
當插很多片同樣晶片的網卡時
有時候會很難搞清楚,那片到底是 eth 多少
網路線就有可能插錯格,對外孔,插到對內線...之類的
建議要把網卡的 MAC 位址,都記下來
能貼個標籤或貼紙,在網卡孔旁邊,方便辨識,這樣更好
有些網卡買的時候,會附送 MAC 貼紙,作用就是在這個地方
指令:ifconfig
可以查網卡的:介面編號,IP,MAC 位址
對照一下紀錄的 網卡 MAC,可以確認該網卡是何介面,避免插錯
:p