[問題] LAN PC透過Router 到 google流程
大家好,最近被人問了一個問題,覺得有點深奧不知道要
去哪裡獲取這方面的知識,想請各位大大解惑。
假設現在 PC1 --
Router(Gateway) -- 外網許多Gateway -- Google
PC2 --
PC1的電腦第一次想要 ping google.com ,
1. 問PC1的封包怎麼到google的所有流程
2. PC1 一開始要決定封包的 SA DA(Destination MAC)要怎麼決定,PC1網路卡
driver(思考一般通用網路卡的行為)是不是會先過濾一下封包是不是要往哪裡丟
? PC1網卡driver怎麼判斷, 丟出去的封包 DA怎麼決定?
3. 假設封包跑到了Gateway , Gateway 怎麼知道要步要Routing? 如果是看routing
table決定,那麼 Gateway Routing Table怎麼查表的?
4. 最後從Gateway出去時會經過NAT轉換source IP,在經過很多層的Gateway到達
Google, 那傳回來的封包 Gateway 怎麼知道要 DNAT 到哪一個 PCx?會有port
紀錄嗎還是什麼方法? NAT表怎麼查表?
以上問題我只會回答上層大概,關於底層和如何查表都沒概念呢?
例如:
一開始先檢查PC1 MAC cache有沒有那個MAC,找對應的IP。如果沒有就先發
一個ARP 封包,然後沒人回應就往 Gateway發,但是不知道 DA MAC會是誰(可能是
先填Gateway?),所以 目的IP 可能先寫8.8.8.8(假設已經知道google IP),
然後Gateway,看到目標查表發現要routing,幫忙做MASQARE(類似SNAT改源地址),
然後就送出去了。
希望有大大能夠提供很詳細的解答呢(尤其著重於網卡行為 查表route NAT等),
謝謝各位。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.93.45
※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1537241647.A.427.html
推
09/18 13:58,
6年前
, 1F
09/18 13:58, 1F
→
09/18 13:59,
6年前
, 2F
09/18 13:59, 2F
推
09/18 14:07,
6年前
, 3F
09/18 14:07, 3F
→
09/19 09:33,
6年前
, 4F
09/19 09:33, 4F
→
09/19 15:36,
6年前
, 5F
09/19 15:36, 5F
→
09/19 15:37,
6年前
, 6F
09/19 15:37, 6F
→
09/20 00:59,
6年前
, 7F
09/20 00:59, 7F
→
09/20 01:00,
6年前
, 8F
09/20 01:00, 8F
→
09/20 01:00,
6年前
, 9F
09/20 01:00, 9F
→
09/20 01:00,
6年前
, 10F
09/20 01:00, 10F
→
09/20 01:00,
6年前
, 11F
09/20 01:00, 11F
→
09/20 01:00,
6年前
, 12F
09/20 01:00, 12F
→
09/20 01:00,
6年前
, 13F
09/20 01:00, 13F
→
09/20 01:01,
6年前
, 14F
09/20 01:01, 14F
→
09/20 01:01,
6年前
, 15F
09/20 01:01, 15F
→
09/20 01:01,
6年前
, 16F
09/20 01:01, 16F
推
08/25 20:33,
6年前
, 17F
08/25 20:33, 17F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章