趙小牛 <RyanChao.bbs@bbs.kimo.com.tw> wrote in message
news:3beaHR$N0i@bbs.kimo.com.tw...
> ※ 引述《albin.bbs@bbs.yzu.edu.tw (.)》之銘言:
> > ※ 引述《RyanChao.bbs@bbs.mgt.ncu.edu.tw (懶得理妳)》之銘言:
> > >         虛擬ip ping真實ip可以啊...
> > >         若是真實的pi虛擬的就不行了啦....
> > >         網芳看的見是因為你是用netbuei在broadcasting...
> > >         它又不走tcp/ip的layer所以當然看得到...
> > 嗯~~但我虛擬ping虛擬可以!
> > 但虛擬ping真實就不行呀!
> > 在區域中唷!
> > 因為我是接在hub上的!
>
>         我終於搞清楚你在問啥了。...
>         你一定是跟那台電腦在不同網段吧??
>         而你跟那台虛擬IP的電腦又在同一網段說....
>
>         當然PING不到真實IP的那台啊....
>         因為你那網段的路由器把你虛擬IP給擋下來了....
>         但是同一網段的虛擬IP你當然PING是沒問題囉......
>
>         你恐怕要做ip routing了說...
>         不然那router一定是像門神一樣,把你的封包給擋下來...^O^

是否因為 router 擋下來有待權商。

但要弄懂 routing 之前﹐必須會得計算兩樣東西﹕net_ID 和 host_ID。這兩個都需要
IP 地址的值和 netmask 的值來計算﹕net_ID 是 IP 和 MASK 做一個 AND 的邏輯運算
求得﹐而 host_ID 則用 NAND 運算來獲得。

在相同 net_ID 下面﹐是不能使用相同 host_ID 的﹐否則就是所謂的 IP 地址衝突。
一台主機可以同時插上多張網路界面﹐而一個界面也可以同時綁上多個 IP。

先別管 host_ID﹐只要物理連線是可行的﹐兩個 IP 的 net_ID 是一樣的話﹐會查詢
ARP table﹐或者用 ARP 來查詢對方的 MAC﹐再把封包送給對方﹐然後再看所用的
datalinik 協定(IEEE80x或其它)完成數據的傳遞。

如果得出來到 net_ID 不一樣﹐那麼兩個 IP 之間(不是說兩個界面哦)就一定要經過
router 來完成﹐而 router 也必須要有相同的 net_ID 分別和兩端的 IP 連接(或是其
間經過多個 router)﹐然後再重複上面的檢測就是了。

弟有一篇討論是和網友討論 IP routing 相關問題的﹐或許可以參考一下﹕

http://pds.nchu.edu.tw/study_area/tips/iproute.htm

--