看板 Network 關於我們 聯絡資訊
※ 引述《birdy590 (Birdy)》之銘言: : ※ 引述《leslieha (哈)》之銘言: : : Server 192.168.2.1 00-00-00-00-01-02 : : | netmask 255.255.255.0 : : | : : Internet : : | : : gateway 192.168.1.1 00-00-00-00-10-01 : : | : : switch : : | : : pc1 192.168.1.10 00-00-00-00-01-01 : : netmask 255.255.255.0 : : 當 pc1 送封包給 server : : 會先發送 arp 問 who is 192.168.2.1 please tell 192.168.1.10 : : gateway會回應 192.168.2.1 is at 00-00-00-00-10-01 : 這個想法不正確 : pc1 的行為是 : 1. 用 192.168.1.10/netmask 255.255.255.0 來檢查 192.168.2.1 是否 : 在同一個 subnet(答案為否) : 2. 不是在同一網段, 所以要去 routing table 裡面找(得到 192.168.1.1) ^^^^^^^^^^^^^ 這我就不懂了? 我發現我錯了 因為192.168.2.1 經過 netmask後 不在同一個subnet 直接去ARP table查 default gateway 的 MAC 當destination MAC address 若沒有找到 發出的ARP request 是問 who is 192.168.1.1 而不是問 who is 192.168.2.1 : 3. ARP table 找 192.168.1.1 的 MAC addr, 如果沒有則發 ARP request : 這裡用 192.168 舉例不太對, 因為到 Internet 不會通, 知道意思就好 抱歉 例子真的舉的不好 改用 server <--> router1 <--> router2 <--> gateway <--> switch <--> pc1 我想應該會好一點 : : pc1發送封包 : : DestAddress = 00-00-00-00-10-01 : : SrcAddress = 00-00-00-00-01-01 : : DestIPAddr = 192.168.2.1 : : SrcIPAddr = 192.168.1.10 : 這個結果倒是沒錯 : : 封包到switch後 會forward給gateway 不會更改封包內容 : : 想請問 : : 1. gateway 收到封包後 會不會更改封包內容呢? : 正常程序是 frame 要拆掉重新封裝, 因為你的下一站是寫 Internet, : 封裝成什麼格式都有可能, 甚至很有可能不是 Ethernet. : 不過 IP 層的內容是不會動的, 除非要做 NAT/PAT 之類的 dirty job : : 2. 若 server回應給pc1 那gateway收到的封包 : : DestAddress SrcAddress DestIPAddr SrcIPAddr 會是長怎樣啊? : 從頭再想過不就得了, 誰是 pc 誰是 server 完全沒差別啊 後來得知 gateway收到外部網路來的封包 DestAddress 會是 gateway 的 MAC address SrcAddress 會是傳給 gateway 的 router 的 MAC address -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.36.80 ※ 編輯: leslieha 來自: 140.129.36.80 (11/29 09:52)