溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SNAT的作用是什么?怎么解決nginx容器的訪問(wèn)問(wèn)題

發(fā)布時(shí)間:2020-06-02 20:29:23 來(lái)源:億速云 閱讀:623 作者:Leah 欄目:系統(tǒng)運(yùn)維

SNAT的作用是什么?怎么解決nginx容器的訪問(wèn)問(wèn)題?這些問(wèn)題可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到的。通過(guò)這些問(wèn)題,希望你能收獲更多。下面是揭開(kāi)這些問(wèn)題的詳細(xì)內(nèi)容。

一、SNAT規(guī)劃優(yōu)化作用

解決兩宿主機(jī)容器之間的透明訪問(wèn),如不進(jìn)行優(yōu)化,容器之間的訪問(wèn),日志記錄為宿主機(jī)的IP地址。
1、宿主機(jī)訪問(wèn)172.7.22.2的nginx容器情況

SNAT的作用是什么?怎么解決nginx容器的訪問(wèn)問(wèn)題

2、172.7.22.2查看nginx訪問(wèn)日志

SNAT的作用是什么?怎么解決nginx容器的訪問(wèn)問(wèn)題

3、進(jìn)入172.7.21.2的容器訪問(wèn)172.7.22.2的nginx容器,查看日志

SNAT的作用是什么?怎么解決nginx容器的訪問(wèn)問(wèn)題

4、再次查看172.7.22.2的nginx訪問(wèn)日志

SNAT的作用是什么?怎么解決nginx容器的訪問(wèn)問(wèn)題

5、解決問(wèn)題:當(dāng)容器172.7.21.2訪問(wèn)172.7.22.2的nginx容器時(shí),展示的日志應(yīng)為172.7.21.2

二、解決方法

1、安裝iptables-services組件
[root@test-nodes1 ~]# yum -y install iptables-services
[root@test-nodes1 ~]# systemctl start iptables
[root@test-nodes1 ~]# systemctl enable iptables
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
-----------------------------------------------------------------------------------------------

2、把以下iptable記錄的偽裝轉(zhuǎn)向刪除
[root@test-nodes1 ~]# iptables-save |grep -i postrouting
:POSTROUTING ACCEPT [68:4098]
:KUBE-POSTROUTING - [0:0]
-A POSTROUTING -m comment --comment "kubernetes postrouting rules" -j KUBE-POSTROUTING
-A POSTROUTING -s 172.7.21.0/24 ! -o docker0 -j MASQUERADE       #刪除此條
-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -m mark --mark 0x4000/0x4000 -j MASQUERADE
-----------------------------------------------------------------------------------------------

3、刪除該記錄
[root@test-nodes1 ~]# iptables -t nat -D POSTROUTING -s 172.7.21.0/24 ! -o docker0 -j MASQUERADE
-----------------------------------------------------------------------------------------------

4、插入一條新的記錄(排除對(duì)172.7.0.0/16網(wǎng)絡(luò)訪問(wèn)的偽裝)
[root@test-nodes1 ~]# iptables -t nat -I POSTROUTING -s 172.7.21.0/24 ! -d 172.7.0.0/16 ! -o docker0 -j MASQUERADE
-----------------------------------------------------------------------------------------------

5、查看是否生效
[root@test-nodes1 ~]# iptables-save |grep -i postrouting
:POSTROUTING ACCEPT [13:814]
:KUBE-POSTROUTING - [0:0]
-A POSTROUTING -s 172.7.21.0/24 ! -d 172.7.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -m comment --comment "kubernetes postrouting rules" -j KUBE-POSTROUTING
-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -m mark --mark 0x4000/0x4000 -j MASQUERADE
-----------------------------------------------------------------------------------------------

6、刪除iptables上所有reject拒絕規(guī)則
[root@test-nodes1 ~]# iptables-save | grep -i reject
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
[root@test-nodes1 ~]# iptables -t filter -D INPUT -j REJECT --reject-with icmp-host-prohibited
[root@test-nodes1 ~]# iptables -t filter -D FORWARD -j REJECT --reject-with icmp-host-prohibited
[root@test-nodes1 ~]# iptables-save | grep -i reject
-----------------------------------------------------------------------------------------------

7、保存iptables規(guī)則
[root@test-nodes1 ~]# iptables-save > /etc/sysconfig/iptables

三、驗(yàn)證結(jié)果

1、通過(guò)容器172.7.21.2訪問(wèn)172.7.22.2

SNAT的作用是什么?怎么解決nginx容器的訪問(wèn)問(wèn)題

2、查看172.7.22.2的容器日志

SNAT的作用是什么?怎么解決nginx容器的訪問(wèn)問(wèn)題

備注:test-nodes需要有相同的操作

上文描述的就是SNAT的使用以及訪問(wèn)nginx容器報(bào)錯(cuò)的解決問(wèn)題,具體使用情況還需要大家自己動(dòng)手實(shí)驗(yàn)使用過(guò)才能領(lǐng)會(huì)。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI