引用:
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 太大的話, 效能可能會不能接受...