瀏覽單個文章
8:5
Major Member
 

加入日期: Dec 2002
您的住址: 謎
文章: 265
回覆: 回覆: 回覆: 【求助】有誰知道怎麼做到像seednet的『帳號未開通時的連線畫面』?看不懂嗎....直接近�

引用:
Originally posted by cmwang
不過router似乎不適合做這類苦工(一般ASIC只能處理單純的packet forwarding,access list/policy routing得由CPU處理,但一般router的CPU都不是很高檔,再加上要動態update其config,後果如何要試了才知道),在學術網路等traffic大的網路上恐怕跑起來會很吃力....

是很吃力, 所以才會有用 DNS 來管制的想法.
引用:
應該是把unknown client的DNS request redirect到另一部只提供fake answer的DNS server即可(以不變動一般DNS server的實作為原則,不過router要如何分辨unknown client恐怕還是得動到policy routing,問題還是跟前面一樣)....BTW,遇到user直接打ip address恐怕就破功了(default得drop unknown traffic)...

嗯... 細節就不敘述了, 不過是可以弄到 router 不需要啟動 PBR:
從 DHCP 得到的 DNS server 是一台特定的 DNS, (不分是否登錄過與否)
那台 DNS 會依據 client ip addr.來決定行為 (例如: 使用 view)
除它之外, (dest) port 53 一律 deny, (避免使用者自己設定其他的 DNS servers)
那就可以讓 DNS 來強制使用者登錄了,
至於, 使用者直接打 IP addr... 真要管制, 也有辦法的...
引用:
弟在pczone也是建議原發文者試試transparent mode firewall配合類似TP的方式(對其現有網路架構的impact最小)....BTW,這類方式說穿了只是以mac address(頂多再加上ip address)來判斷放行與否,因為只知user上網的時點,而不知其何時offline好把ACCEPT rule拿掉,再加上在LAN中要偽造ip/mac address也不是難事,並不是很可靠,另外雖說在LAN上也能跑PPPoE,但這實在不是個好主意....

除了讓使用者自己點 logout 外, 也可以設定 idle timeout,
如果是 bridge mode, 用 forwarding table 決定是否 idle 過久 (brctl showmacs)
如果是 router mode, 用 arp table 來決定是否 idle 過久 (arp -a)
假造 ip/mac addr. 的問題, 覺得可以忽略...
(想從 linux bridge/router 來設定應該是無解, 需要原本的 L2 switches 的支援)

有一些細節要注意, 不過就不再討論了...


沒有打算請外面的公司寫的話,
使用 linux bridge, 以 iptables 來設定應該是比較可行的方法....
因為只用到一台機器, 比較單純. 而且因為是 bridge mode, 有問題就拔掉或 bypass
不過, 如果 traffic 太大的話, 效能可能會不能接受...
舊 2004-05-16, 06:03 PM #6
回應時引用此文章
8:5離線中