被來自歐洲的IRCnet 的駭客組織入侵!
一篇在 tw.bbs.comp.network 版上的討論
這本來是在新聞組上的討論文章﹐覺得內容或許對注重安全的朋友會有所參考。
於是也就收錄下來了。
討論內容沒辦法非常深入的探討系統的安全設定﹐但起碼能給大家一個最基本的概念﹐
尤其是 ssh 的工作原理。
以下為討論內容﹕
* ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
"sonny" 撰寫於郵件
news:0A9K30F$000184T$1@bbs.openfind.com.tw...
> ※ 引述《kola.bbs@bbs.ncku.edu.tw (喔喔喔,有人送我手機)》之銘言:
> > : > 請教先進們,我原本安裝 RH7.2 時,在 firewall 設定上是使用內定值,如果系
統重
> > 1. 若不需要對外服務,只需要對內,網路硬體在舖設時,就不要有對外的網路
> > ex. 其它電腦一樣在nat下,而不要放在真實IP
> > 2. telnet關掉,全面改用SSH/SSH2 等安全性較加的加密終端機軟體
> 請教一下...
> 換成 ssh/ssh2 這些比較安全的終端機軟體, 只能說, 您在'內部' telnet 的時候
> 密碼不會被都看到而已啊...
這個‘內部’一詞我不是很理解~~
難道到了‘外部’就會被看到嗎﹖ ﹖﹖
不妨將 ssh 的 server key, host key 和 session key 的應用原理弄清楚﹐
再來評估 ssh 的安全性﹐應該會比較有心得的。
> 如果說, 您的密碼很簡單...然後又有開 telnet
> 那用暴力法, 慢慢 try 您的密碼, 還是可以試出來的啊...不是嗎?!
> 這樣說對嗎?!
不怎麼對~~~
因為直接以 login 的方式來 try 是非常幼稚和缺乏效率的入侵﹐
通常使用暴力法的時候是取得了密碼的密文之後﹐再用工具將之破解﹐
然後再使用破解之後的密碼嘗試 login 。
但無論如何﹐請不要使用 123456 作為您的 root 密碼就是了﹗
凡是 craklib 不能通過的密碼﹐請都不要使用﹐
而且透過 chage 的設定﹐限定密碼的有效期﹐
並修改 /etc/login.defs 和 /etc/security 目錄下面各檔來加強其他限制﹐
另外﹐將 PAM 弄熟識是個不錯的主意。
>
> > 3. 使用較安全的FTP Services soft,如“ProFTPD”,不開放任何暱名帳號。
>
> 說到匿名帳號, 這是我用 iis 的經驗...
> 匿名帳號就應該只有讀檔案的權限, 不是嗎?!
> 有人居然可以用匿名帳號進來, 然後建立一些我砍不掉的目錄...
> 像是 %%%ADF 等這些目錄...然後把我硬碟灌暴了...^_^|||
> 現在那些目錄都還留著(因為砍不掉^_^)
>
> 奇怪, 難道匿名帳號是假的啊?!?!
任何程式在‘未被發現漏洞之前’都可以宣稱是安全的﹐
但沒有任何程式可以‘保證’不帶任何漏洞﹐越複雜的程式﹐越是如此。
如果一個程式能夠引起 race condition 或 buffer overflow 的話﹐
就算它只是用來顯示 hello world 也有可能會危害到系統的安全。
所以﹐請儘量避免用 root (administrator) 這些賬號來工作﹐
同時非常小心處理 suid/sgid 的程式﹐無必要一律拿掉。
在 linux 上﹐請常使用如下命令找出系統的 suid/sgid 程式﹕
find / -perm +u+s -exec ls -l {} \;
並定期加以比對﹐以掌握其變化情況。
同樣的﹐在 /home 目錄下面找到 device file 也不是一個好現像...
>
>
> > 4. 加設FireWall,將除Ftp、ssh、www之外的ports關於關閉。
>
> 再一個疑問...
> 如果說, 我有一個 port 7777 沒有用 firewall 檔掉...
> 也沒有任何 service 在聽這個 port, 難道駭客還是可以從這個 port 進來?!?!
您得確定對方的木馬程式沒有啟動並使用 7777 這個 port ...
不過﹐一般而言﹐大於 1024 的 port 是很難過濾的﹐
除非是一些 well-known port 並確定是允許連線的﹐
否則利用 firewall 將送給 high port 的 sync 封包攔下來吧。
>
> --
>
> > 另,請不要用“直接拒絕連線”,設成不給對方回應就好了,不然就有點像
> > 脫褲子放屁,讓人知道你這裡有台電腦不讓進 :p
> > 5. 勤看log,每天系統寄給root的一定要看。
> > 6. 勤勞點的話,加裝一些安全監控軟體,去比較如:/usr/local/bin /bin /sbin裡
的
> > 檔案有沒被改掉過。
> > 諸如此類,應該可以稍稍提升安全性,但並不決對。
請多利用 tripwire, logwatch, 或寫 script 來輔助您對系統的監控﹐
並養成仔細檢查 log 檔的習慣。
關於前面提到的 /home 目錄備份問題﹐
由於目前沒辦法確定系統上確切遭到修改的程式有哪些﹐
以及遭植入後門的程式究竟特性是如何的﹐
所以不敢保證其風險性的不存在。
如果確定不允許 users 在 /home 底下執行程式或建立 dev 等危險動作﹐
不妨修改 fstab ﹐將 /home 的 options 為 defaults 補上如下設定﹕
noexec,nosuid,nodev
作為對外的主機﹐能分開多台機器將服務‘單一化’是值得鼓勵的﹐
越多的服務要付出的代價就是越多的入侵機會。
無論如何﹐設定 xinetd, iptables, portsentry 等工具來強化連線的保護﹐
“這是一定要的啦~~”...
安全問題是個大項目﹐除了小心還是小心啦~~
個人意見﹐僅供參考。
--
======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗
"怕屎的尼克屎" 撰寫於郵件
news:3ll5XY$8HI@bbs.kimo.com.tw...
>
> nat是很不錯, 但小弟建議如果非必要, 使用squid, 及部份服務的轉送, 不然還是
> 很危險的, 也可以試著關掉icmp
>
其他建議都不錯﹐唯獨這個 icmp 的建議我不認同。
因為 icmp 在底層的網路傳送設備間起著非常重要的作用﹐
但因為是底層設備需要﹐一般‘user’是很容易忽略的﹐
除非用一些 icmp 工具的時候﹐例如 ping 和 traceroute 之類的。
但您花時間看看 icmp type 和 error code ﹐
再分別了解它們各自的作用﹐您將不會再決定輕易的將 icmp 攔下來了﹐
越是複雜的網路環境﹐icmp 越是重要﹐請不要忽略它。
--
======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗
"sonny" 撰寫於郵件
news:0A9MTVR$0002OIQ$1@bbs.openfind.com.tw...
>
> 我不是質疑 ssh 的安全性...
> 我的意思是說, ssh 在您和 server 做溝通的時候, 訊息是加密的...
> 所以, 不會被竊取到重要資料...
>
> 但是, 如果沒有使用 ssh 的話, 最差是什麼樣的情形呢?!
>
> 如果, 您想使用 sniffer 這類的軟體, 來抓到封包的話,
> 那先決條件是大家都必須在同一個 lan 上, 不是嗎?!
絕對不是﹗
請看後面的解釋。
>
> 如果, 沒有人企圖從 '內部' 偷看您的密碼的話,
> 那...外部的人有可能偷聽到密碼嗎?!
那如果沒有人企圖從 '外部' 偷看您的密碼的話呢﹖
>
> 這麼說好了, 用 sinffer 可以很容易聽 192.168.x.x 的所有電腦,
> 如果我的 ip 是 192.168.x.x 的話...
前提條件是﹕封包是否到達 192.168.x.x 的所有電腦。
我建議您去研究一下 CSMA/CD 的工作原理﹐
同時再比較一下 hub 和 switch 在 ethernet 上的差別。
(可參考﹕ http://www.study-area.org/tips/hub_switch.htm )
>
> 那現在如果說我的 ip 是 24.x.x.x, 我可以聽到 168.x.x.x 的電腦的封包嗎?
>
> Hmmm.....
>
> 好像可以ㄏㄜ...
> 不然為什麼會需要建立 secure tunner?!
是的﹐可以的﹐看條件﹕
1) 如果在同一個 broadcast domain 上
2) 雖不在 broadcast domain 但封包會路由經過竊聽機器
這個假設前提不錯﹐我們不妨將之延伸到‘極端’的狀態如何﹖
也就是﹐在內部網路﹐只有閣下一台機器﹐沒有 hub ﹐
使用 crossover cable 連接 router ﹐或直接撥接上網~~~
那按照閣下的理論﹐可以得出﹕
使用和不使用 ssh 沒什麼分別。
理由是﹕
ssh 只針對‘內部’竊聽才有用﹐外部無須‘secured tunnel’。
親愛的 sonny 先生﹐您是否真的這樣以為呢﹖
如果是﹐我可以老實告訴您﹕這樣的概念是錯的﹗
封包之所以會被竊聽﹐是因為封包經過了安裝有竊聽軟體的機器﹐
這機器不必管它在哪裡﹐封包只要經過它就有可能被攔截下來。
比方說﹕
在您的 router 上、
在您 router 的另一端、
在 ISP 到 backbone 的線路、
在您連線的遠端主機所在的 ISP 、
在 ISP 與 ISP 之間的任何一個中間結點(只要封包經過)
在....
實在有太多地方可以得到封包。
有時間﹐不妨研究一下 man in the middle 那樣的入侵技術﹐
您會發現﹕外部的網路一點也不可靠。
下面是給您個人的一個習題﹕
在您的個人機器上安裝一個 sniffer 軟體﹐
分別使用 ssh 和 telnet 對外做連線﹐然後觀測所擷取的片段來比較。
我知道您已經了解結果了﹐我只是要提醒您﹕
您會想到‘同一內部網路’上有人竊聽﹐難道本機就沒這個可能嗎﹖
(尤其是 multi-user 作業系統)
--
======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗
"walter" 撰寫於郵件
news:3llcNW$JTX@bbs.cis.nctu.edu.tw...
> 我有一個問題想請教一下, 我個人有點懷疑 ssh 的安全性,
> 原因是我們常用的指令只有那幾個: ls, cd, ...
> 雖然用數學方法驗證很難被 decode, 可是 hacker 可不會那
> 麼笨用數學去 decode 吧! 是不是封包欄下來分析就可以知道
> 哪些碼是 ls, 哪些是 cd? 被編碼的資料量太少很危險。
> 除非同樣的資料每次都被編成不同的碼。
我在前面提到過了﹕
>> 不妨將 ssh 的 server key, host key 和 session key 的應用原理弄清楚﹐
>> 再來評估 ssh 的安全性﹐應該會比較有心得的。
簡單而言﹐ssh 的每一個連線都使用到以上三把 key 作為加密的建立和應用。
換句話說﹐連線中的任何資料﹐包括 ls, cd, passwd 這些‘內容’
(在封包中為 payrool) 也都是經過加密的。
記住﹐這個過程不光是 authtication 是加密的﹐
而是每一個資料都是加密的。
p.s.
我有一個疑問﹕閣下有實際抓過 ssh 的封包來看嗎﹖
--
======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗
"allex" 撰寫於郵件
news:3llej9$8PS@bbs.csie.nctu.edu.tw...
>
> 呃.. 我想上一位的意思是
> ls, cd 這些常用的命令為封包中的內容
> 不管 ssh 在連線中用了多少把的 key
> 相同的內容經過鄉同的 key 加密
> 出來的結果應該是相同的
> 那 這會不會讓 sniffer 找到明文與密文的 pattern
> 進而取到這些key???
> 我是沒有看過 ssh 的封包內容啦..
> 只是想說這樣的情況也不是沒有...
> (雖然現代加密法這?反解的機會越來越小... )
>
哦﹐那我大致了解了﹐的確﹐我誤會了 walter 兄的意思了﹐實在抱歉。
不過﹐我認為兩位不必擔心﹐因為以目前的非對稱 key 加密演算法來說﹐
只要 key 長度不太短(不取決於資料 pattern 長度)﹐要破解都非常困難。
參考別人對 DES 加密的破解成本之計算﹐如下﹕
駭客種類 花費 40bit 56bit 168bit
-------- ---- ----- ----- ------
個人 US$400 5小時 38年 無法估計
專業駭客 US$1萬 12分鐘 556天 10^19(10的19次方)年
智慧組織 US$1千萬 0.02秒 21分鐘 10^17年
更何況 ssh 所使用了三把 keys (請參考另文)﹐
長度分別為 1024, 768, 256 , 而且其中 768-bit 的 RSA 是每小時換一次的﹐
相信目前就算用大型電腦來破解﹐也沒辦法在一小時內破解。
當然﹐如果能將所有封包 copy 下來﹐
再慢慢進行﹐也是有可能的。
只是﹐如果以目前的 PC 能力(算您 P4 3G 好了)﹐
要破解每小時都在換 key 的 ssh 封包﹐沒幾千年恐怕做不到﹐
不過﹐那時候﹐所破解出來的資料還是否具有參考價值﹐那就另當別論了...
--
======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗
大家好﹕
從這個討論中﹐我發現似乎很多人對 ssh 的連線原理還不很清楚﹐
我這裡不妨就自己已知的一些概念和大家說說﹐
不保證完全正確﹐但希能有住大家的理解﹐更歡迎指出不正確之處。
ssh 之所以大行其道﹐而且被認為‘目前不可破解’的原因﹐
必須透過了解 ssh 在加密 key 之應用才能領會。
這裡﹐我們不需要再討論加密演算法了﹐相信大家對演算法一定很有信心的﹐
同時我們也知道作為加密的 key 長度越長﹐破解難度就越高﹐
所以大家應該知道要破解 1024-bit RSA/DSA 加密需要多長時間﹖
我猜目前沒有哪台機器能在 60分鐘 內破解 768-bit 的 RSA 加密吧﹖
如果這個 key 再加上另外其他 keys 一起使用呢﹖就更難了~~
好了﹐當我們對演算法有足夠信心之後﹐
再讓我們分別看看 ssh 連線所使用到的 keys 有哪些 ﹕
* Host_Key﹕1024-bit RSA 或 DSA 非對稱加密
可以用 ssh-keygen 在任何時候產生一對 key ﹐
分別為 /etc/ssh/ssh_host_key.pub 和 /etc/ssh/ssh_host_key ﹔
其中的 public Host_Key 給對方加密使用﹐己方使用 private key 解密。
* Server_Key﹕768-bit RSA 非對稱加密
不存在硬碟上﹐每次在 sshd 啟動的時候隨機產生(關閉 sshd 則消失)﹐
並且每 60分鐘(預設)會更換一次﹔
其中的 public Server_Key 給對方加密使用﹐己方使用 private key 解密。
* Session_Key﹕256-bit Blowfish 或 IDEA 單向加密
在得到對方的 public Host_Key 和 public Server_Key 之後﹐
隨機產生﹐並連同得到的 Host_Key 和 Server_Key 一起加密﹐
以作為後面所有連續的加密之需。
Okay ﹐當我們認識了上面三把 key 之後﹐再讓我們看看 ssh 的連線過程﹕
1) ssh client 連到 server 端 tcp port 22(預設)﹐並提出連線請求﹔
2) server 端回應 Host_Key 和 Server_Key 給 client ﹔
3) client 端會對 Host_Key 進行驗證﹐以確定出現在 known_hosts 中,
否則﹐會提示您是否接受 (按 yes 三鍵為接受)﹔
4) 通過驗證之後﹐client 隨機產生 Session_Key﹐
並分別與收到的兩把 keys 作加密(先 Host_Key 再 Server_Key)﹐
然後用來處理後面的每一個連線。
5) 進入身份驗證階段﹐通常有如下數種方式﹕
* Rhost
* Rhost & RSA
* RSA
* Password
6) 驗證成功後﹐正式進行 ssh 連線﹐直至結束。
許多朋友﹐通常卡在 authentication 這關﹐
或許會誤會 ssh 只用來加密 authentication 而已﹐
事實上是錯誤的理解。下面讓我們再看看 sshd 在驗證的時候的流程﹕
1) 檢查 tcpwrapper 設定(hosts.allow / hosts.deny)﹐
如果成功則進入下一步﹐失敗則拒絕。
2) 進行 Host_Key 驗證﹐如果成功(或接受)﹐則進入下一步﹔
3) 嘗試 Rhost 驗證﹐如果成功﹐則通過驗證﹐否則進入下一步﹔
4) 嘗試 Rhost & RSA 驗證﹐如果成功﹐則通過驗證﹐否則進入下一步﹔
5) 嘗試 RSA 驗證( ssh v2 取消了﹖這個我不確定﹐參考 vpn howto 要留意。)
如果成功﹐則通過驗證﹐否則進入下一步﹔
6) 最後嘗試 password 驗證﹐如果成功﹐通過驗證﹐否則拒絕連線。
以上為個人的簡單整理﹐不知道是否有錯誤﹐歡迎指正。謝謝﹗
--
======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗
"AOL Server Page" 撰寫於郵件
news:3llh0T$8e8@bbs.yzu.edu.tw...
> ※ 引述《allex.bbs@bbs.csie.nctu.edu.tw (allex)》之銘言:
> > > 我有一個疑問﹕閣下有實際抓過 ssh 的封包來看嗎﹖
> > 呃.. 我想上一位的意思是
> > ls, cd 這些常用的命令為封包中的內容
> > 不管 ssh 在連線中用了多少把的 key
> > 相同的內容經過鄉同的 key 加密
> > 出來的結果應該是相同的
> 以目前比較好的加密演算法而言,都會盡量讓內容不一樣。
> 所以雖然我們眼睛看到的是相同的內容。但是在加密過程中
> 他未必會是一樣的。因為加密演算法有時會放入一些隨機的
> 資料。
嗯~~ 透過比對明碼和密碼的方式來找到的 key ﹐
通常只能在破解對稱 key 加密法﹐也就是加密和解密都用相同的 key ﹐
但 ssh 中所使用的三把 keys 中﹐有兩把是非對稱 key ﹐
就算將 public key 給找出來﹐也是不能破解﹐
況且﹐在非對稱 key 加密中﹐public key 本來就是公開的。
所以﹐我個人對 ssh 是有絕對的信心的。
真的覺得目前的預設值不夠﹐
隨便將 server key 的 regeneration 時間縮短﹐
或將任何一個 key 的長度加大﹐
就足以增加數個次方量的破解時間了。
--
======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗
"sonny" 撰寫於郵件
news:0A9P9UA$00027QM$1@bbs.openfind.com.tw...
> ※ 引述《"網中人" 》之銘言:
>
> 所以說, 假設我的 ip 是 168.168.168.168 好了,
> 依照我們的假設, 駭客不可能直接聽到這台機器的封包,
> 首先, 他先要破我的 ROUTER, 可是我沒有 ROUTER 啊,
> 所以, 要破 router 就等於破這台 server.
> 就算有 router, 可是 router 只是一台小小的 box ...
> 您可以在這台 router 上面安裝 sniffer 嗎?!
> (還是有其他的方式呢?!)
小心﹗駭客就在您身邊﹗
假如駭客就是您的 ISP 呢﹖
另外﹐您真的確定 router 不具備 sniffing 功能嗎﹖
(我是不確定啦~~)
>
> 再來, 駭客必須知道我的封包會 rout 到哪裡去,
> 然後, 在破那台機器, 才可以聽到我的封包...
> 難道他可以改變我的 rout 的路徑?!?!
> 告訴我先到他的機器, 再幫我把封包送到別的 node 上?!?!
剛纔說過了﹐如果駭客在 ISP 那端等著您呢﹖
另外﹐另外駭客們未必對您的所有資訊都感興趣﹐
只要認為有用的就可以了。
比方說﹐駭客對某銀行的線上交易系統感興趣﹐
他會想方設法在銀行網站的對外連線上進行竊聽﹐
而閣下的封包是其中的級小數﹐
因為他們在意的不只是閣下一個人啦﹐
但如果您的連線沒加密﹐那就得逞了。
但如果使用了加密呢﹖難道您還認為‘內部’和‘外部’有差嗎﹖
>
> ISP A 到 ISP B 的途中, 那這個成本就更大了啊...
一句話﹕
賠本生意沒人做﹐殺頭勾當夠膽為。
>
> 這樣說好了, 要聽到別人的封包, 先決條件是不是一定要和
> 別人的機器在同一個'實體線路上'
> 這樣才可以聽到別人的封包...
> 是嗎?!
要我說多少遍呢﹖
是否在‘實體網路上’不是條件﹐更不是先決條件。
只要封包到了機器這邊就可以了﹐
就象剛纔舉例的銀行網路一樣﹐
只要您的封包到達那邊﹐是否和您在‘實體網路上’﹐
根本不是條件﹐更不是先決條件。
如果在同一實體網路﹐用 hub 來接﹐
所有機器都抓得到‘所有’封包﹐
但如果用 switch 來接﹐那麼只有送到本機的(包括廣播)封包才抓得到。
我前面給了您一個 link ﹐不知道看完沒有﹖(還是根本沒看﹖)
>
> 就好像, 您現在的 ip 是 168.x.x.x 然後把 sniffer 指定聽 24.x.x.x
> 這台電腦, 一定不又有任何封包經過您這台電腦的...
> 不是嗎?!
好吧﹐您跟我說說﹕
用 hub 來接 168.x.x.x 跟 24.x.x.x 的網路﹐
然後和用 switch 來接有什麼分別﹖
如何﹐先回答﹐後討論~~
等您有答案之後﹐不妨做個實驗﹕
用 hub 分別接 4 台電腦﹕
兩台在 168.x.x.x 網路中﹐確定可以相互連線﹔
另外兩台在 24.x.x.x 網路中﹐確定可以相互連線﹔
然後再確定 168.x.x.x 和 24.x.x.x 的電腦不能相互連線。
那您會認為 168.x.x.x 是抓不到 24.x.x.x 的封包了﹖
我歡迎您將結果告訴我。
然後﹐在不修改網路設定的情況下﹐單純將 hub 替換為 switch ﹐
然後再看看 168.x.x.x 是否能抓 24.x.x.x 的封包﹖
這時候﹐再請您重新回答這個問題﹕
比較一下 hub 和 switch 在 ethernet 上的差別。
(這其實是我在前幾篇討論中所提出的問題了﹐可惜您沒有回應。)
>
> 謝謝...
不客氣~ 討論而已﹐道理和觀念是越辯越清楚的﹐
我記不起在過去討論中有多少次糾正了個人的錯誤觀念了﹐
更是非常慶幸自己將錯誤的觀念說出來而得到別人的指正﹐
為此我對所有曾經指正過我的朋友至以萬二分感謝﹗
否則﹐可能至今還抱著錯誤而不自知~~
所以﹐我不保證我所說的就正確﹐但我希望大家能將道理說明白﹐
而不需要憑‘想像力’來猜測。
這也是我喜歡討論電腦技術的原因之一﹐
因為﹕是 0 的東西﹐不會是 1 。
--
======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗
"sonny" 撰寫於郵件
news:0AA1EQU$0001K7J$1@bbs.openfind.com.tw...
>
> 根據您站上的文章, 用 hub 連接, 所有的機器都可以收到
> 如果用 switch 接, 理論上, 大家都應該收不到別人的封包...
> (但是您又提到, 因為 MS 系列的 protocol, Switch 就沒輒了...
> 是不是暗指, 他們還是可以收到網路芳鄰傳出來的封包呢?!)
>
> (是不是表示 tcp/ip 的封包就收不到呢?!)
這要看階段﹐在 netbios 網路中﹐
關於 master browser election 和 master browser discover 、
還有 browsing list 的維護﹐這些封包有可能以廣播方式出現﹐
但是直接的 point to point 的查詢﹐卻依然是 unicast 的﹐
不管 L3 使用 IP address 還是 netbios name ,
在 ethernet 中﹐L2 上面都還是使用 MAC address 。
有空﹐不妨看看如下文章﹕
http://www.study-area.org/tips/nbh.htm
http://www.study-area.org/tips/browsing.htm
閱讀時請留意一下 wins 的影響。
>
> 這是我做的實驗,
>
> 實驗一:
> 192.168.254.20 --- router (192.168.254.1) --- 192.167.254.10
>
> 雖然這兩個 mask 都是一樣的,
> 我相互 ping 這兩來機器, 但是就是相互看不到!!!
> 沒有安裝 sniffer 所以不知道有沒有封包通過他們...
因為您的 router 在路由判斷上不知道如何處理﹐
除非您明確的用 host entry 來指定界面﹐或使用 proxy-arp 來解決。
我希望您讀一讀如下文章﹕
http://www.study-area.org/tips/iproute.htm
反復對照您 router 的 route table ﹐
以 mask bit 來 sort 您的 entries ﹐那就比較明朗了。
>
> 實驗二:
> switch
> +--- 192.168.254.100
> +--- 192.168.254.40
> +--- 10.10.10.105
> +--- router (192.168.254.1) --- DSL (真實 IP)
>
> 不知道這樣畫, 看不看得懂?!
>
> 192.168.254.40 和 10.10.10.105 是同意台 server ,
> 有兩張網路卡, ip 分別是 192.168.254.40 和 10.10.10.105
這樣的設計不好~~
既然是同一台 server ﹐分別連接兩個 network ﹐
但又接到同一個 switch 去﹖﹖
有空不妨參考這篇討論﹕
http://phorum.study-area.org/viewtopic.php?t=8594
>
> 我的機器是 192.168.254.100
>
> 三張網路卡接到 switch 上面, router 也接到 switch 上
>
> 我從 192.168.254.100 ping 192.168.254.40 可以 ping 到.
> 我從 192.168.254.100 ping 10.10.10.105 找不到這台機器.
> 我在我的機器安裝 sniffer, 所有的封包都收得到.
不解~~ 既然說 192.x.x.x ping 不到 10.x.x.x ﹐
那怎麼抓到所有封包呢﹖
TCP 不是要等 three-way-handsake 建立後才會真正連線嗎﹖
如果不能建立連線﹐那您抓到的封包只是 syn 階段的而已﹐
沒太大意義~~~
>
> Source address <--> Dest Address 有
> 10.10.10.105 <--> 10.10.10.105
> 192.168.254.40 <--> 真實 ip
> 192.168.254.40 <--> 192.168.254.100
10.x 到 10.x 的封包您在哪裡抓﹖
如果是 100 那台的話﹐而又不是一個 broadcast 封包的話﹐
那麼我建議您可以考慮換 switch 了。
比方 3Com 和 Cisco 的都不錯~~
>
> 但是, 我 ping 10.10.10.105 然後用 sniffer 只有
> 抓到從我封包丟出去, 沒有收到從他丟回來...
當然﹐因為沒 route entry 啊~~ 它們怎麼連﹖
但我可以給您一個很少被 document 的建議﹕
在兩台電腦上用 static arp 來設定﹐可以不必理會 router ﹐
就算不在同一個 subnet 內也通~~
>
> 然後我讓 sniffer run 久一點,
> 真的沒有從 10.10.10.105 丟出來的東西啊...
用 10.x 連外邊的看看是否能抓到﹖
如果抓不到﹐那可以暫緩換 switch ﹐那可能是您上一實驗有問題而已。
>
> 然後我在到 10.10.10.105 和 192.168.254.40 的 server 上,
> ping 10.10.10.105 和 192.168.254.40 都可以 ping 到
>
> 但是, 我在 192.168.254.100 就是收不到他們的封包啊...?!
>
那是 routing 的關係而已~~ 先將前面給您的文章看完再說吧。
p.s.
您的設計似乎沒怎麼合乎我的要求﹐
上次我是建議您用四台獨立的機器來測試﹐
而不是在一台機器上綁兩張界面的玩意~~~
--
======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗
"sonny" 撰寫於郵件
news:0AAJPC7$00031A9$1@bbs.openfind.com.tw...
>
> ㄣ...那如果說 Switch 已經知道 A 機器, 和 B 機器的位址
> A 機器也知道有 B 機器, B 機器也知道有 A 機器...
>
> 那當這兩台機器在傳資料的時候, C 機器會收到封包嗎...
您首先要重新溫習 OSI 的理論﹐
請搞懂 physical, data-link, network 這三層 layer 各自做什麼的﹖
然後搞懂 switch 在哪一層﹐管哪些 address ﹖
再看看 IP 在哪一層﹖和 switch 的關係如何﹖
最後了解一下封包從 A 到 B 的時候﹐
在 Layer 2 中的 switch 中是否會丟給 C﹖
但如果換用 hub 呢﹖
(tips: hub 是 Layer 1 的產品)
抽時間多研究一下 CSMA/CD 的工作原理﹐
還有 ARP 協定及 RARP 協定﹐
最好還看看 RIP 協定的工作原理﹐
以及 routable 的作用。
>
> 先請問一下, 您們常常在說 :
> "假如實體連線是不通的話﹐不用理會這篇回復﹕"
> 請問這是什麼意思呢???
> 什麼是實體連線???
>
> 是指大家所有的電腦都連在一個 hub 上面嗎...
> (switch 算不算呢???)
> 還是說, 我可以 ping 到您的機器???
在 OSI 中﹐Layer 1 就是 Physical Layer ﹐
如果用 hub ﹐那就當然是在同一個 physical network 上了。
但如果用 switch ﹐則有點複雜﹕
因為所謂的傳送﹐在 (大部份的)switch 中都會是 store-and-forward 的方式﹐
換句話說﹐A 和 B 的傳送﹐中間是由一個‘代理’來傳遞的﹐
只有 switch 上沒有 table entry 的時候﹐才 forward 到所有的 ports 上。
在沒有切割 VLAN 的情形下﹐也仍然是在同一個實體連線上。
但如果切割了 VLAN 呢﹖
雖然都在同一台 switch 上﹐但如果離開了設定資料﹐
誰也沒辦法告訴您 A 和 B 究竟是否在同一個實體網路上。
要了解這個﹐應該從 ARP 協定的運作流程來了解吧。
假如能收到 ARP request 的話﹐那基本上﹐可以認為在同一個實體網路上。
>
> 還是不能體會有什麼不好...
> 您們說, 在同一個 "實體網路下" (不了) 如果切 subnet
> 反而會增加 switch 的流量,讓它負荷不了,swithc 的碰撞的燈,
> 反而會閃個不停...
誰說過負荷不了﹖又誰說 switch 上的碰撞燈之類的~~~
您有看過 switch 的 full duplex 定義嗎﹖
希望別斷章取義~~
>
> 問題一: 請問, 您們的 switch 都有 routing 的功能嗎?
> 不然, 不同的 subnet, switch 頂多把 package 送到 router/getway
> 不是嗎???
難道之前叫您看的文章沒看懂嗎﹖還是沒抓到重點﹖
那我將這段貼上來好了﹕
--------------------------
> 而且﹐稍有常識的 TCP/IP 網管﹐都會避免在同一個物理連線上切割不同的 subnet
> 或使用不同的子網聚集。因為如果在同一個 subnet 內﹐host_1 到 host_2 的封包
> 送一次就好了﹐如果切在不同的 subnet 內﹐封包最少要變雙倍﹕host_1 -->
> router -->host_2 ﹐越繁忙的網路越慘﹗
--------------------------
我再說明一下好了﹐如果這樣還不理解﹐恐怕我也不能再說什麼了﹕
1) 在沒切 subnet 的情況下﹕
原本是 A 和 B 都在同一個實體網路上﹐
A 送給 B 的封包送一次就好了﹐
switch 只做兩個動作﹕
* 從 A 接收封包
* 將封包送給 B
2) 在切了 subnet 的情況下﹕
現在 A 和 B 和 R 都在同一個實體網路上﹐
A 送個 B 的封包要這樣送﹕
A -> R
R -> B
對 switch 而言﹐則會有這些動作﹕
* 從 A 接收封包
* 將封包送給 R
* 從 R 接收封包
* 將封包送給 B
這位仁兄現在知道我要說些什麼了吧﹖
>
> 可是我有告訴 switch 誰是 router/getway 嗎???
> 為什麼 switch 知道他們在哪裡呢???
>
> 所以, switch 會有雙重的流量, 是這樣出來的嗎:
> 機器 A 傳到 switch, switch 找不到另外一個 subnet 的機器 B
> 所以, switch 把 package 送給 router/getway
>
> 然後, router/getway 知道機器 B 在另外一個 subnet, 所以
> 她就再把 package 傳到 "同一個 switch 上", switch 再送到機器 B
>
> 是這樣子的嗎???
從上面那堆問號看得出來﹕
您將 router 和 switch 完全搞混亂了﹗
先將 Layer 3 和 Layer 2 拆開來看好不好﹖
一旦分開來看﹐您會非常明晰。
p.s.
所以我真的喜歡討論技術問題﹐
因為技術說明吹不了牛皮﹐
明眼人一眼就看得出發言者的水平和瓶頸在哪裡。
只是﹐我們最擔心發言者不敢說出自己的理解而已﹐
我覺得﹐不管是對是錯﹐先表達出來吧~~
這樣別人才能幫助您。
>
> 如果是: 那和我上面的情形, 有符合嗎???
> 一台機器有兩個 subnet 的 IP!!! (而不是兩台機器在不同的 subnet)
> 有什麼不好呢???
看前面的說明吧~~
如果這兩個 subnets 的 IP 不是接到同一個實體連線上﹐
的確沒什麼不好~~
如果您本來就是在兩個 subent 內﹐那也算了;
但如果本來明明是可以在同一個 subnet 內﹐
然後硬要拆開兩個 subnet ﹐又依然在同一個 switch 上﹐
那我會認為這是個 stupid 的行為﹐
我寧願分開 switch 或切 VLAN 將物理連線分開。
不過﹐這應該是個人喜好吧﹖
這裡沒辦法說‘一定’要如此~~
只是當您的網路有好幾百台機器的時候﹐
您的想法恐怕就不一樣了~~
比方說﹐我原本有一個 subnet ﹕
192.168.16.0 / 255.255.248.0
原本的 192.168.18.x 和 192.168.22.x 都直接接在同一個 switch 上﹐
現在需要將 mask bit 從 22 改為 24 ﹐那麼﹐
我會建議將 18.x 的機器接在同一個 switch 上﹐
然後將 22.x 的機器接在另外的 switch 上﹐
中間的 router 分別有兩張界面連接不同的 switch 。
>
> 10.10.x.x 的, 是要求連線的封包沒有錯...
>
> switch
> +--- 192.168.254.100
> +--- 192.168.254.40
> +--- 10.10.10.105
> +--- router (192.168.254.1) --- DSL (真實 IP)
>
> 有收到 ARP 的 broadcast 的封包, 有 NetBIOS BROWSER Server 的封包
> 但都只是從我機器出去進來的封包而已...
>
> 也就是說, 我只能收到 254.100 和 254.40 這兩台在溝通的封包
> 但是 254.100 自己對外的封包, 我就收不到了...
對啊~~ 這就是 switch 和 hub 的不同了~~
>
> 結論:
> 狀況一:
> 不同subnet, 且 router 不知道如何處理不同 subnet 的封包,
> 那這兩個 subnet 就永遠也抓不到對方的封包,
這個結論有問題。
我勸您先撇開 router 或 switch 吧﹐將條件簡單為﹕
封包沒到達的話﹐就永遠抓不到封包。
影響封包是否到達﹐
routing 是一個條件﹐
L1﹐L2﹐L3 的廣播也是條件﹐
switch 和 hub 的應用﹐也是條件~~~
>
> 也就是說, subnet A 的機器連到 Hinet 的資料, subnet B 的機器是不可能
> 知道的, 唯一能抓到的方法是, Hack Hinet 的機器, 然後才可以抓到
> 不是嗎???
當然不是﹐
如果您的封包今天是送來我的機器的話﹐
就算我不在 hinet 上﹐就算我在地球另一端﹐也照樣抓得到。
我說了很多遍了吧﹕
只要封包到達﹐我就能抓﹗
您還需要我重複多少遍呢﹖
>
> 狀況二:
> 如果 router 知道如何 route 這個封包, 那您還是抓不到其他 subnet 機器的封包
> 因為 switch 也不會把封包送到您的機器,
> 既然封包不到您的機器,您如何抓得到封包呢???
將 L3 和 L2 的連線再溫習一遍吧。
決定 routing 的是機器本身﹐
如果自己不能直接送﹐就交給 router 來送。
(tips: 如果 ARP 能直接告訴我怎麼送﹐那也不必勞駕 router 。)
這和 switch 一點邊也扯不上關係。
只有檔 L3 決定要從哪個界面送出封包﹐
然後封包在 L2 上經過 switch 才能說將封包交給哪個 node ﹐
如果 L2 沒有明確指定﹐那麼 L1 的所有連接接點都收得到。
>
> 所以,如果要抓其他 subnet 的封包,您得必須攔截 switch 的封包
> 也就是在 switch 裡面裝個 sniffer 的程式...
> 不然在 router 內也裝個 sniffer 程式也可以...
>
> 請問這樣對不對...
不對。
還是 L3﹐ L2﹐ L1 的關係要搞明白。
>
> 如果對, 那又奇怪了...
> 因為, 在 sniffer 裡面有一個 Host Table 的選項,
> 它可以看到所有 hosts 的 In Pkts, Out Pkts, In Bytes, Out Bytes 等等...
確定是所有 hosts 而不是本機的嗎﹖
您真的十分確定﹖
>
> 所以 Lan 裡面的機器都可以看到....
> 不管在同或是在不同 subnet 裡面都可以喔...
看 L2 是否有 switch 設備囉﹐
否則﹐全部在 L1 的機器都可以抓到封包﹐
只要是在同一個實體連線就一定可以。
>
> 就連 224.0.1.4
> 211.74.182.165 這些 host 都可以查到耶...
>
> 不過, 我猜, 這應該也只是從我機器, 和其他人機器的連線罷了...
repeat:
看 L2 是否有 switch 設備囉﹐
否則﹐全部在 L1 的機器都可以抓到封包﹐
只要是在同一個實體連線就一定可以。
> > 當然﹐因為沒 route entry 啊~~ 它們怎麼連﹖
> > 但我可以給您一個很少被 document 的建議﹕
> > 在兩台電腦上用 static arp 來設定﹐可以不必理會 router ﹐
> > 就算不在同一個 subnet 內也通~~
>
> 不是很懂,
> 您是說, 在 LMHOSTS 裡面自己設定???
什麼時候將 LMHOSTS 也扯出來了﹖
如果您連 L3﹐L2﹐L1 都還搞不懂﹐
那就先別管 NetBIOS 和 NetBIOS over TCP/IP 了。
簡單而言﹐LMHOSTS 負責兩種不同的 logical address 的(靜態)對應﹕
IP address v.s. NetBIOS name
> > 您的設計似乎沒怎麼合乎我的要求﹐
> > 上次我是建議您用四台獨立的機器來測試﹐
> > 而不是在一台機器上綁兩張界面的玩意~~~
>
>
> 不好意思, 沒有那麼多台機器...
> 所以, 就想出一個克難的方法^_^|||
>
那您前面不是在跟大家討論一個 LAN 裡面的東西嗎﹖
一般的 LAN 都有 4 台 PC 以上吧﹖
如果沒有實作的環境和基礎﹐
那您最好在討論的時候﹐加註﹕純為理論
這樣會比較不容易引起誤會。您說呢﹖
--
======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗
"sonny" 撰寫於郵件
news:0ABBJTM$0001F9G$1@bbs.openfind.com.tw...
> > 請搞懂 physical, data-link, network 這三層 layer 各自做什麼的﹖
>
> Physical: 實體層為七層中最低層,定義資料傳輸的機械、
> 電氣的程序等介面規格特性,如EIA的RS-232規格與X.25介面等。
>
> data-link: 提供實體間的可靠資訊傳送,可傳送與接受資料框(Frame);
> 此外,加上同步、錯誤控制與流量控制等功能,其中包括連線的建立、
> 維護、終止與資料的傳送。在區域網路標準IEEE 802 的規格中,
> 此層級又區分為LLC邏輯連接層(即802.2)與MAC媒體控制存取層
> (包括802.3,802.4,802.5與802.6等)兩個層次。
>
> network: 提供經由數據機傳與變換技術,達到更高層次的傳輸服務,
> CCITT的X.25與TCP/IP的IP均為本層的應用實例。
>
>
> 我也明白依OSI七層模式傳送使用者資料時,係由第七層(應用層)開始處理,
> 在原始資料上附加“AH”標頭(header)後,亦即附加一個協定後,再送給
> 第六層。第六層接到資料後,再附加“PH”標頭後送給第五層,直至傳送
> 至第一層(實體層),在傳送過程中每當資料框經過任一層時則附加一個協
> 定(包含一些控制訊息)。當資料框送到第一層後,即經由實際的傳輸媒體
> (medium)經由網路連線傳送給其它節點。資料框抵達接收端後,依相反程
> 序處理,傳經各層級時,將附在資料框上的標頭與標尾去除,再往上層傳
> 送,最後還原為原來的資料格式.
>
> 幾乎每一本書都是這樣講的啊....
> 大家講得都是一樣的...
重點是﹕
您是如何理解的﹖
我不管教科書如何寫、別人如何講~~
先用自己的語言、不參考任何資料﹐再寫一遍﹐
那就是您自己理解的了。
>
>
> > 然後搞懂 switch 在哪一層﹐管哪些 address ﹖
>
> switch 可以第二層, 如果好一點的 switch 有做到第三層...
> (看討論看來的...我也不知道我的 switch 是哪一層...
> 不是我買的...^_^|||)
switch 從 L2 到 L7 都有﹐
如果沒明確說是哪一個 layer﹐那 default 是 L2 。
>
> Router 就是第三層了, 因為 IP 在第三層
>
> > 再看看 IP 在哪一層﹖和 switch 的關係如何﹖
>
> Switch <-> MAC address table
> Router IP <-> MAC address 對應
簡單而言﹐IP 和 switch(L2) 沒任何關係﹗
當一個封包要離開本機之前﹐必須經過 routing 判斷。
然後才確定從哪個界面送出。
站在機器本身的角度而已﹐封包從界面送出之後﹐
根本不管這個封包是怎麼送的﹐
而是要在送出之前確定這個封包的下一站是哪個 MAC (在 ethenet 中)﹐
這個 MAC 就是 switch 的依據了。
如果機器本身不知道下一站的 MAC ﹐那就用 arp 來找﹐
不管是用 dynamic arp 還是 static arp ﹐
關鍵是要在機器的 arp table 中有 IP 和 MAC 的對應關係﹐
然後在往 L2 進行傳送的時候(從 L3 encapsulate 到 L2),
這個 MAC 是由機器指定的。
假如這個 MAC 在 switch 中沒有 entry ﹐
那就 forward 到所有的 port 上。
但如果機器本身就不知道這個 MAC 在哪裡的話﹐
那麼封包也不必送出去了﹐那麼 switch 當然也不必管如何送。
當 switch 在 L2 中判斷之後﹐
會將封包 place 到 physical media 上傳輸﹐
不管這個 media 是 coaxial, UTP/STP, wireless, fiber optic....
然後電子(fiber 是光子)信號在同一 media 上傳遞(強度因散失而遞減)﹐
只要在這個 media 上將信號攔截下來(也就是網路卡的工作)之後﹐
再往上 decapsulate ﹐就交到 L2 上面處理了﹔
L2 處理完之後﹐就交給 L3 處理。
而每一個 layer 所使用的傳遞依據是不同的﹕
L3﹕logical address (例如 IP﹐netbios name, IPX...)
L2: physical address (例如 MAC﹐HDLC﹐SDLC....)
L1: physcial media (例如 coaxial, fiber optic, Radio Frequence....)
因為用 HUB 來接的情況下﹐電子信號會送到所有的網路卡上﹐
所以就能 snif 到封包。
但 switch 卻能確保信號只從某一個 port 送出(除非沒有 entry)﹐
如果這個 port 只接到單一的網路卡上﹐那麼﹐
整個網路就只有一個 destination 能抓到這個封包。
>
>
> > 抽時間多研究一下 CSMA/CD 的工作原理﹐
> > 還有 ARP 協定及 RARP 協定﹐
> > 最好還看看 RIP 協定的工作原來﹐
> > 以及 routable 的作用。
>
> 看到這裡, 突然又有一個問題...:Q
> 那 router 和 NAT 有沒有一樣...
非常不一樣﹗
router 只單純做 ip forwarding (L3)﹐
但不會修改封包的 socket 等資訊(當然﹐TTL、fragment 這些還是會的)﹐
NAT 則會修改封包的 socket 等資訊﹐是否 forward﹐則還是 router 的事情。
但不管如何﹐當 routing process 接到一個 L3 封包的時候﹐
必須根據 destination (除非使用 source routing)來選擇下一站的 IP ﹐
再透過 arp 找到 MAC﹐再將封包從界面送出。
但是請不要忽略﹐routing 是不管這個封包是否經過 NAT 的﹐
只看其中的 IP 資訊就夠了。
所以在 iptables 中的 NAT 有分 PREROUTING 和 POSTROUTING ﹐
前者是在進行 routing 動作之前作 NAT 處理﹔
後者是在完成 routing 動作之後作 NAT 處理。
>
> 例如: 192.168.0.0/24 和 192.168.100.0/24 這兩個 subnet
> 要做溝通的時候, 我們可以設定 rout table
> 好像這兩個 subnet 就可以相互看到了吧????
>
> 但是, 如果使用 iptable -t nat 呢???
> 好像也可以吧...
那您可以說說為什麼可以嗎﹖
tips:
NAT 後﹐socket 資訊如何﹖
是否足夠達成 routing ﹖(別忘了 routing 是雙向的)
(忠告﹕如果 TCP/IP 不熟的話﹐就別碰 NAT 了吧。)
>
> 多一個 switch 只是分擔 switch 的工作量而已...
> (也就是說, 原本一個 switch 來做的工作, 現在還要再買
> 一個 switch 來分擔工作...)
>
> 但是...網路流量並沒有減少....
>
相同的流量給 10 台 switch 來處理要好﹐
還是給 1 台同級的 switch 處理要好﹖
>
> 那為什麼沒有人討論 router 的 loading 太重了...
> 為什麼會那麼在意 switch 呢???
因為 router 是否要使用得看主機的 routing 來決定啊~~
如果在同一 subnet ﹐幹嗎要用 router (您真的理解 routing 原理嗎)?
那請問﹐在 LAN 的環境中﹐
送給相同 subnet 的封包多還是不同 subnet 的多﹖
如果是 internet 呢﹖
所以﹐您會知道為什麼高階的 router 和一台雙 B 轎車同價了。
>
>
> 可是, 問題是...
> 我的封包如何跑到您的機器上...
> 第一: switch 沒有您的 address
> 第二: 我的 router 也沒有指定要 hop 到您的機器...
> 第三: 我的 isp 也不會把封包轉到您的"機器"上...
>
> 所以, 您必須要想辦法讓封包到您的機器...
>
> 我的 switch 和 DSL 的 router 您可以進來安裝個 sniff 嗎???
> (還是您根本不需要 sniffer)
>
> 不然, 您就必須在我的 DSL router 和 ISP getway 之間可以攔截到
> 我的封包...
>
> 因為, 如果您要攔截從 ISP router 後出去到其他 router 的封包...
> 這些封包不一定會到同一個 router 所以...
>
> 您還有可能攔截封包到最後目的地的封包...
>
> 也就是在 對方 ISP 和 對方的機器 之間攔截封包...
說了老半天﹐
我不知道您是在耍文字游戲還是真的理解不來。
我是從邏輯上進行分析的﹕
只要您要連線到我的機器上﹐封包就會送來﹔
只要封包送來﹐我就能抓。
記住﹕
我不是說要抓全部的封包。
我只是說﹕
抓封包的條件是﹕
只要封包到達﹐我就能抓。
如果有空翻翻舊討論﹐
我從來沒說過要將全部封包抓到﹐
而是強調抓封包的條件是﹕
只要封包到達﹐我就能抓。
不管是用 LAN、ISP、銀行網站、我的機器... 這些例子﹐
我從來沒說過要將全部封包抓到﹐
而是強調抓封包的條件是﹕
只要封包到達﹐我就能抓。
如果您堅持要說抓到全部的封包﹐好吧: you win! (開心﹖)
故事﹕
不知道大家看過 Sylvester Stallone(史泰龍) 的一部電影沒有﹖
我忘記了電影的名字﹐也忘記了女主角的名字了...
內容是講到世界最頂尖的殺手之間的故事﹐
有次 Stallone 接到一個任務是要殺一個匿名為 cat 的女子﹐
那女子盜取到許多機密資料﹐
後來 Stallone 下不了手﹐反而跟她墮入情網﹐
然後又有另外一名殺手要追殺他們....
如果您有印象的話﹐不妨想想後來的殺手是如何找到 cat 的住家的﹖
從相片﹗
那相片有什麼特征﹖
衛星通訊站﹗﹗
為什麼是衛星通訊站﹖
有網路傳送的資料﹗﹗﹗
資料有什麼用﹖
cat 能從中攔截資料﹐並進行解讀﹗﹗﹗﹗
如果 sonny朋友 還沒看過這部電影﹐
不妨到錄影店問問老闆﹐肯定租得到。
不必太計較電影情節﹐而想想以上的邏輯是否會發生﹖
然後再回到我們第一次開始的討論﹕
ssh 只對內部有用嗎﹖
>
> 但是 router 也不知道要怎麼送, 所以, 封包永遠也到不了 192.168.100.10
>
> 所以, 如果您的機器是 192.168.0.10 , 您可以使用 sinffer 抓得到
> 192.168.100.10 機器的封包嗎????
那是條件﹐也就是﹕
因為 router 沒將封包送來﹐所以抓不到。
但這不是能否抓封包的真正原因啊~~ (您在思考的時候是否可以抓到重點﹖)
抓封包的條件是﹕
只要封包到達﹐我就能抓。
影響封包是否到達﹐
routing 是一個條件 --> (您的問題只針對這個前提作文章﹐有意義嗎﹖)
L1﹐L2﹐L3 的廣播也是條件﹐
switch 和 hub 的應用﹐也是條件~~~
>
> 兩個不同的 subnet 差在單純的一個 switch 上可以算是在同一個實體層裡面嗎???
請將 ARP 和 CSMA/CD 給我 K 熟吧~~
>
> 我只是覺得很好奇...
> 我的機器是 192.168.0.10 , 我 ping 10.x.x.x 的機器不到...
> (表示為沒有設定 router)
>
> 我都不知道有這台機器存在, 為什麼 sniffer 會找得到呢???
>
> 我查網路芳鄰, 也看不到 10.x.x.x 的機器啊...
這就要仔細從 L3﹐L2﹐L1 的每一個動作來分析了﹕
1) L3 是否有 10.x.x.x 這個 entry?
2) 沒有﹖是否有 default GW?
3) 有﹖那是否有 gw 的 ARP ?
4) 有﹖那將封包送給 gw ...
5) 如果這個封包能被抓到﹐那就能看...
至於封包是否能送給 10.x.x.x ﹖
這時候輪到 gw 來重複上面的 4 個步驟。
一直下去﹐直到 TTL 沒有了﹐
或是在 internet router 上給 reject 掉。
p.s.
sonny朋友﹐如果您一時理解不來﹐
請不必著急﹐更不必針對文字游戲來打轉...
我可能比您要蠢很多﹐所以在學校裡面全職念書的時候﹐
兩年下來的 TCP/IP 還只理解到一半不到﹐
後來有機會工作之後﹐才慢慢的學到一半而已﹐
現在我仍覺得有一半還是不知道的。
如果您覺得已經將 TCP/IP 理解透了﹐歡迎撥空指教。
如果覺得還是理解不來﹐那就假以時日吧。
我會建議您找份有跨國(跨城市)網路的 MIS 職務來當當(別計較薪水)﹐
這樣會比較快理解。
要不然﹐一直紙上談兵是沒太大幫助的。
有空的話﹐不妨參考如下的書單﹐先將理論基礎打好﹕
http://www.study-area.org/tips/net_books.htm
如果您還沒完成所列書本的閱讀﹐然後再來討論目前這個題目的話﹐
我將不再作回應了。好自為之吧。
--
======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗
* ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
討論日期﹕
2002/04/18 ~ 2002/05/09
|