※ 引述《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)