即使是家用路由器,每個介面的IP所在的網段也不能相同。
這個問題可以簡化為:為何一臺路由器的兩個介面IP不能一樣?
全域性變數
如果問程式設計師,兩個全域性變數名可以一摸一樣吧?
程式設計師會強壓內心的鄙視與不屑,然後故作輕鬆地回答,那肯定不能一樣啊,系統編譯肯定報錯!
全域性路由表
路由器的介面IP地址所在的網段,可以看作全域性變數,全域性變數是唯一的,不能衝突,如果有衝突,系統會禁止這樣的配置。
舉例
一個介面IP = 10.1.1.1/24,另外一個介面也是IP = 10.1.1.1/24,可以嗎?
不可以,完全衝突了。
一個介面IP = 10.1.1.1/24,另外一個介面IP =10.1.1.2/24,可以嗎?
不可以,兩個介面的網段都是10.1.1,衝突了。
有同學肯定不服氣,後一種情況,兩個介面的網段即使相同,但IP地址卻是不同的,衝突在哪裡?
肯定沒法回答我,對嗎?
所以路由器的不同介面IP所在網段不能衝突,不是大腦一熱臨時想出來的,是深思熟慮的結果。
區域性變數
有程式設計經驗的同學,還使用過區域性變數。所謂區域性變數,就是在不同的函式內,可以定義完全相同的變數名,而不會引起歧義。那是因為即使變數名相同,但是由於它們的生存空間沒有重疊,所以不會有衝突,這就是俗話說的,井水不犯河水!
VRF路由表
對於運營商來說,一臺PE裝置可能會端接成百上千的客戶CE裝置,通常PE使用子介面來完成一個CE裝置的端接,比如:
PE G0/0.1001 ----------- CE1
PE G0/0.1002 ----------- CE2
PE G0/0.1003 ----------- CE3
…
問題來了,這些CE裝置往往使用10.0.0.0/8網段的地址,假如CE裝置都使用10.1.1.2/24來連線PE裝置:
PE G0/0.1001 ----------- CE1 (10.1.1.2/24)
PE G0/0.1002 ----------- CE2 (10.1.1.2/24)
PE G0/0.1003 ----------- CE3 (10.1.1.2/24)
...
這不是逼著G0/0眾多子介面都處於10.1.1.0/24這個網段的嗎?
上文的全域性路由表說過,介面、子介面的IP不能處在相同網段!
如何解決這個問題?
很好辦,只要定義G0/0的子介面不在全域性的路由表裡,而是在一個區域性的路由表裡,就可以了。
如何定義區域性路由表?
VRF路由表,VRF是 Virtual Routing Forwarding的縮寫,通俗地說,就是一個用於收納客戶私有路由的小池子。每個VRF路由表天然隔離,井水不犯河水,所以即使G0/0子介面的IP地址是一樣的,也不會引起任何歧義。
Interface G0/0.1001
VRF forwarding VRF1001
IP address 10.1.1.1/24
Interface G0/0.1002
VRF forwarding VRF1002
Interface G0/0.1003
VRF forwarding VRF1003
有了VRF的邏輯隔離,即使每個子介面的IP地址都是相同的,也是一點問題沒有。
即使是家用路由器,每個介面的IP所在的網段也不能相同。
這個問題可以簡化為:為何一臺路由器的兩個介面IP不能一樣?
全域性變數
如果問程式設計師,兩個全域性變數名可以一摸一樣吧?
程式設計師會強壓內心的鄙視與不屑,然後故作輕鬆地回答,那肯定不能一樣啊,系統編譯肯定報錯!
全域性路由表
路由器的介面IP地址所在的網段,可以看作全域性變數,全域性變數是唯一的,不能衝突,如果有衝突,系統會禁止這樣的配置。
舉例
一個介面IP = 10.1.1.1/24,另外一個介面也是IP = 10.1.1.1/24,可以嗎?
不可以,完全衝突了。
一個介面IP = 10.1.1.1/24,另外一個介面IP =10.1.1.2/24,可以嗎?
不可以,兩個介面的網段都是10.1.1,衝突了。
有同學肯定不服氣,後一種情況,兩個介面的網段即使相同,但IP地址卻是不同的,衝突在哪裡?
肯定沒法回答我,對嗎?
所以路由器的不同介面IP所在網段不能衝突,不是大腦一熱臨時想出來的,是深思熟慮的結果。
區域性變數
有程式設計經驗的同學,還使用過區域性變數。所謂區域性變數,就是在不同的函式內,可以定義完全相同的變數名,而不會引起歧義。那是因為即使變數名相同,但是由於它們的生存空間沒有重疊,所以不會有衝突,這就是俗話說的,井水不犯河水!
VRF路由表
對於運營商來說,一臺PE裝置可能會端接成百上千的客戶CE裝置,通常PE使用子介面來完成一個CE裝置的端接,比如:
PE G0/0.1001 ----------- CE1
PE G0/0.1002 ----------- CE2
PE G0/0.1003 ----------- CE3
…
問題來了,這些CE裝置往往使用10.0.0.0/8網段的地址,假如CE裝置都使用10.1.1.2/24來連線PE裝置:
PE G0/0.1001 ----------- CE1 (10.1.1.2/24)
PE G0/0.1002 ----------- CE2 (10.1.1.2/24)
PE G0/0.1003 ----------- CE3 (10.1.1.2/24)
...
這不是逼著G0/0眾多子介面都處於10.1.1.0/24這個網段的嗎?
上文的全域性路由表說過,介面、子介面的IP不能處在相同網段!
如何解決這個問題?
很好辦,只要定義G0/0的子介面不在全域性的路由表裡,而是在一個區域性的路由表裡,就可以了。
如何定義區域性路由表?
VRF路由表,VRF是 Virtual Routing Forwarding的縮寫,通俗地說,就是一個用於收納客戶私有路由的小池子。每個VRF路由表天然隔離,井水不犯河水,所以即使G0/0子介面的IP地址是一樣的,也不會引起任何歧義。
Interface G0/0.1001
VRF forwarding VRF1001
IP address 10.1.1.1/24
Interface G0/0.1002
VRF forwarding VRF1002
IP address 10.1.1.1/24
Interface G0/0.1003
VRF forwarding VRF1003
IP address 10.1.1.1/24
有了VRF的邏輯隔離,即使每個子介面的IP地址都是相同的,也是一點問題沒有。