本地流量出站 2023-07-29

本地流量出站鏈路

問題:目前需要ping google.com,從命令下發(fā)到icmp 請求完成出站的過程中,dns,防火墻和本地路由表分別起到了什么作用,它們在鏈路中的順序是怎樣的

  • DNS解析:首先,您的系統(tǒng)需要將域名google.com解析為一個IP地址。為此,系統(tǒng)會查詢配置的DNS服務(wù)器。DNS服務(wù)器會查找與google.com關(guān)聯(lián)的IP地址并將其返回給您的系統(tǒng)。如果DNS緩存中已經(jīng)存在google.com的IP地址,這個過程會更快。

  • 防火墻:在確定了目標IP地址后,系統(tǒng)將檢查防火墻規(guī)則,以確定是否允許向該IP地址發(fā)送ICMP Echo請求(ping請求)。如果防火墻規(guī)則允許此類請求,流程將繼續(xù)。如果防火墻阻止了該請求,您將無法ping目標地址,可能會收到類似“請求超時”或“目標主機不可達”的錯誤消息。

  • 本地路由表:一旦防火墻允許ping請求,系統(tǒng)將根據(jù)本地路由表確定如何將請求路由到目標IP地址。路由表包含了關(guān)于如何將數(shù)據(jù)包從源IP地址路由到目標IP地址的信息。這包括網(wǎng)關(guān)、子網(wǎng)掩碼和接口等信息。系統(tǒng)將根據(jù)路由表中的信息將ICMP Echo請求發(fā)送到適當?shù)木W(wǎng)關(guān)或直接到目標地址(如果在同一局域網(wǎng)上)。

  • 請求出站:在完成上述步驟后,ICMP Echo請求將從您的系統(tǒng)出站,沿著網(wǎng)絡(luò)路徑傳輸?shù)絞oogle.com的服務(wù)器。然后,服務(wù)器將響應(yīng)ICMP Echo應(yīng)答,您的系統(tǒng)將接收到該應(yīng)答,并顯示ping請求的往返時間(RTT)

出站鏈路順序是:DNS解析 -> 防火墻檢查 -> 本地路由表查找 -> 請求出站

數(shù)據(jù)包在經(jīng)過 iptables 的各個鏈(如 PREROUTING、INPUT、FORWARD、OUTPUT 和 POSTROUTING)的處理后,只有通過了相應(yīng)的規(guī)則(沒有被丟棄或拒絕),才會進入路由表進行路由選擇。

在這個過程中,iptables 可以根據(jù)配置的規(guī)則對數(shù)據(jù)包進行過濾、修改或其他操作。只有滿足規(guī)則的數(shù)據(jù)包才能繼續(xù)向下傳遞,最終進入路由表進行路由選擇。如果在 iptables 的某個鏈中,數(shù)據(jù)包被丟棄或拒絕,那么它將不會進入路由表,也不會到達目標地址。

本機網(wǎng)絡(luò)不通,一般和【iptables或路由】的設(shè)置有關(guān)

本機網(wǎng)絡(luò)不通排查實戰(zhàn)

本機ping不通30.160.241.214,請排查

[root@VM-100-149-centos ~]# ping 30.160.241.214
PING 30.160.241.214 (30.160.241.214) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
^C
--- 30.160.241.214 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4086ms

查看iptables:

[root@VM-100-149-centos ~]# #【iptables DROP了目的地是30.160.241.214的icmp請求】
[root@VM-100-149-centos ~]# iptables -t filter -L OUTPUT --line-numbers -v -n | grep 30.160.241.214
4        5   420 DROP       icmp --  *      *       0.0.0.0/0            30.160.241.214       icmptype 8
[root@VM-100-149-centos ~]# iptables -t filter -D OUTPUT 4
[root@VM-100-149-centos ~]#

查看路由表:

[root@VM-100-149-centos ~]# # 【路由表將 30.160.241.0/24的目標網(wǎng)絡(luò),應(yīng)通過本地環(huán)回接口(loopback interface)進行路由,下一跳網(wǎng)關(guān)為127.0.0.1,ICMP請求實際上將在本地計算機上進行處理,而不是發(fā)送到外部網(wǎng)絡(luò)】
[root@VM-100-149-centos ~]# route -en | grep 30.160.   
30.160.241.0    127.0.0.1       255.255.255.0   UG        0 0          0 lo
[root@VM-100-149-centos ~]# ip route list table main | grep 30.160.241  # or ip route show | grep 30.160.241.214
30.160.241.0/24 via 127.0.0.1 dev lo scope link   
[root@VM-100-149-centos ~]# ip route del 30.160.241.0/24 via 127.0.0.1 dev lo scope link
[root@VM-100-149-centos ~]#

ping通:

[root@VM-100-149-centos ~]# ping 30.160.241.214
PING 30.160.241.214 (30.160.241.214) 56(84) bytes of data.
64 bytes from 30.160.241.214: icmp_seq=1 ttl=64 time=1.65 ms
64 bytes from 30.160.241.214: icmp_seq=2 ttl=64 time=1.59 ms
64 bytes from 30.160.241.214: icmp_seq=3 ttl=64 time=1.62 ms
^C
--- 30.160.241.214 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.591/1.626/1.658/0.027 ms
[root@VM-100-149-centos ~]# 

解析:

  • 用戶執(zhí)行ping 30.160.241.214命令,系統(tǒng)生成一個 ICMP 類型 8(echo request)的數(shù)據(jù)包。

  • 數(shù)據(jù)包進入 iptables 的 OUTPUT 鏈。在這里,數(shù)據(jù)包會遇到規(guī)則DROP icmp -- * * 0.0.0.0/0 30.160.241.214 icmptype 8,因為它是發(fā)往 30.160.241.214 的 ICMP 類型 8 數(shù)據(jù)包。根據(jù)這個規(guī)則,數(shù)據(jù)包會被丟棄。

  • 由于數(shù)據(jù)包在 iptables 的 OUTPUT 鏈被丟棄,它不會進入路由表進行路由選擇。因此,即使路由表中有針對目標 IP 地址 30.160.241.214 的路由規(guī)則(30.160.241.0/24 via 127.0.0.1 dev lo scope link),數(shù)據(jù)包也不會被發(fā)送到本地回環(huán)接口(lo)。

  • 由于數(shù)據(jù)包在 iptables 的 OUTPUT 鏈被丟棄,它不會離開服務(wù)器,也不會到達目標 IP 地址 30.160.241.214。

注:發(fā)往 localhost(即 127.0.0.1)的數(shù)據(jù)包會經(jīng)過防火墻,但是它們不會通過物理網(wǎng)絡(luò)接口,而是經(jīng)過本地回環(huán)接口(lo,一個虛擬的網(wǎng)絡(luò)接口)。

packets to 127.0.0.1 aren't allowed "outside" the computer. But they still go out of the firewall and are sent to lo

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ping 這個命令不用多說,我們通常使用這個命令判斷網(wǎng)絡(luò)的連通性以及網(wǎng)速,偶爾還順帶當做域名解析使用(查看域名的 ...
    LeaForest閱讀 1,662評論 0 1
  • 詳述iptables五鏈 防火墻程序是工作在內(nèi)核的TCP/IP的網(wǎng)絡(luò)協(xié)議棧的框架之上,通過網(wǎng)絡(luò)過濾可以實現(xiàn)入侵檢測...
    Net夜風閱讀 1,009評論 1 1
  • 1、iptables基礎(chǔ)知識 Netfilter組件防火墻功能是集成在內(nèi)核中的,通過以下命令可以看出防火墻功能是以...
    阿喪小威閱讀 465評論 0 0
  • 1.常見防火墻選用 硬件防火墻 開源軟件:iptables(默認規(guī)則改為INPUT DROP) 云服務(wù)器:安全組(...
    酷酷的偉閱讀 1,239評論 0 2
  • 1. ping 簡介 ping屬于一個通信協(xié)議,是TCP/IP協(xié)議的一部分。它的原理是:利用網(wǎng)絡(luò)上機器IP地址的唯...
    睡不醒的大橘閱讀 727評論 0 0

友情鏈接更多精彩內(nèi)容