沒有IP位址的主機如何保持IP層聯通

2021-09-09 08:47:27 字數 1948 閱讀 7475

在《兩台不同網段的pc直連是否可以相互ping通》一文中,我有點像在玩旁門左道,本文中,我繼續走火入魔。兩台機器,m1和m2,各自有乙個網絡卡eth0,配置如下:

m1的配置:

eth0上不配置任何ip位址。

m2的配置:

eth0上不配置任何ip位址。

....

**,機器上都沒有ip位址,通個毛線球啊!!

我只是想在7年後進一步闡述乙個常識,即能否互通,路由是根本。在7年前的2023年,我寫了一篇文章《關於ip網段間互訪的問題—路由是根本》,在前段時間,我寫了一篇類似的《兩台不同網段的pc直連是否可以相互ping通》,7年了,好似沒有任何進步,除了文章排版好看了些,唉,也是沉醉,但不妨礙我更進一步。

我依然想用m1的1.1.1.1來ping m2的2.2.2.2,但卻不把這兩個位址配置在m1和m2上,怎麼辦?很簡單,配置路由即可。配置如下:

m1的配置:       

ip route add local 1.1.1.1/32 dev eth0

ip route add 2.2.2.2/32 dev eth0 scope link 或者 ip route add 2.2.2.2/32 via 2.2.2.2 dev eth0 onlink

m2的配置:

ip route add local 2.2.2.2/32 dev eth0

ip route add 1.1.1.1/32 dev eth0 scope link 或者 ip route add 1.1.1.1/32 via 2.2.2.2 dev eth0 onlink

試試看,在m1上來ping 2.2.2.2,盡情互通吧。

看到了吧,沒有配置任何ip位址,只配置了路由即可互通,以上配置中,local路由指示了本機接收哪些資料報,而onlink路由則可以直接arp目標。兩條路由非常好理解。

如果是**裝置,需不需要local路由呢?答案是需要的。也許你會問,作為**裝置,沒有任何資料報要到本地啊,為什麼還要local路由呢?這麼理解是對的,然而你忽略了arp。

不過如果你的鏈路層不是乙太網,而是點到點的noarp鏈路的話,那麼作為**裝置而言,local路由則不再需要。

--------------------

看了這個例子之後,也許你會問,那麼ip位址的意義何在?說實話,ip位址的意義僅兩點:

1.標識節點。

2.幫配置該ip的節點生成幾條路由項:

2.1.標識自身的local路由;

2.2.標識子網的廣播路由;

2.3.標識鏈路的鏈路層路由,即scope link路由;

看到了嗎?如果說你不需要標識主機,只是為了通訊,那麼當你可以手工配置上述三種路由之後,也就根本不需要ip位址了。

--------------------

其實,ip路由這東西,沒什麼太多的知識在裡面,關鍵看玩法。高階的玩法,可以搞搞演算法,搞搞最短路徑,生成樹啥的,中端點的可以玩玩協議,bgp,is-is,ospf啥的精通了也夠裝逼了,屌絲一點的,就像我這種,折騰下邊緣點的東西,幫看到我文章的出點**點的面試題,就很滿足了。哈哈。

說了這麼多,路由是根本!沒有顯示bind的tcp listener怎麼知道bind哪個位址?靠路由。udp報文怎麼填充源位址?靠路由。arp怎麼處理?靠路由...

補充:在m1上,如果你如下敲入配置:

ip route add 20.2.2.2/32 via 4.4.4.4 dev eth0 

將會怎樣?很顯然,會提示網路不可達。如何解決?首先你要知道為何網路不可達?很顯然系統不知道4.4.4.4在**,而你既然想讓4.4.4.4成為到達20.2.2.2的下一跳,那它一定在m1的鏈路上,那麼好辦,配一條到達4.4.4.4的link路由即可:

ip route add 4.4.4.4/32 dev eth0 scope link

接下來,繼續配置ip route add 20.2.2.2/32 via 4.4.4.4 dev eth0,你將看到自己的微笑。

想互通,路由是根本!

沒有ip位址

問題在於新建的centos 會有好多預設的設定,不通linux預設設定跟預設命令都有以下差異,這裡用的是centos 7。ip addr 發現 ip 只有一行 127.0.0.1 顯然網絡卡是關閉狀態。網上查詢的配置檔案位址在於 etc sysconfig network scripts ifcfg...

ifconfig沒有ip位址

前幾天晚上家裡的光纖被折斷了,漫漫長夜沒有網路可不是個開心的事,雖然我手機是無限流量,但是電腦用不了啊,今天就介紹下利用手機熱點橋接路由器,從而實現電腦上網,之前也有人問過我這個問題,今天就好好講解下,希望大家遇到類似情況可以救急。首先你要有 裝有無限流量卡的手機一部 路由器乙個 電腦一部 有了以上...

ruby獲取主機ip位址

在debian和freebsd測試可用的方法。用以獲取本機ip位址。ruby debian freebsd ip位址 基本抄襲facter的實現 def get ip freebsd ip nil output x output.split s each ipenddef get ip linux ...