※ 引述《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)
3. ARP table 找 192.168.1.1 的 MAC addr, 如果沒有則發 ARP request
這裡用 192.168 舉例不太對, 因為到 Internet 不會通, 知道意思就好
: 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 完全沒差別啊
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.204.206.9