服务器物理部署拓扑图,【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(五)-物理服务器路由方案及配置...
5.1 本節目標
理解物理機的業務ip之間的通信過程;
了解如何在leaf交換機上配置業務ip的靜態路由;
了解如何在物理機上配置業務ip及其他相關配置項;
5.2 拓撲結構
本節拓撲結構與上節相比沒有變化,如下圖:
5.3 物理機業務網絡地址規劃與配置
云平臺各服務之間用于通信的ip地址稱為業務ip地址,在spine
leaf網絡中,我們為服務器分配業務ip地址,并配置在br0接口上,本系列文章研究spine
leaf網絡。下面為四個物理機規劃業務IP地址:
主機名?業務ip地址
devopsr01n01 10.10.10.21/32
devopsr01n02 10.10.10.22/32
devopsr02n01 10.10.10.23/32
devopsr02n02 10.10.10.24/32
按照上面的規劃,給物理機配置業務ip,以devopsr01n01為例,進行如下配置:
brctl addbr br0
ip link set br0 up
ip address add 10.10.10.21/32 dev br0
其余物理機按例配置。
5.4 物理機業務地址路由方案與配置
5.4.1 在leaf交換機上配置路由
在leaf交換機上采用靜態路由協議,路由方案的思路如下:
對于每個物理機業務ip地址,在一對leaf上配置靜態路由;
通過檢測路由下一跳ip的可達性,確定路由條目的有效性;
本文采用的是arista交換機來進行實驗,因此提供arista交換機的配置方式,需要用到擴容模塊PingCheck,點擊查看安裝方法,擴展模塊安裝完成后,進行下面的配置:
# 在leaf01上配置devopsr01n01的路由
ip route 10.10.10.21/32 Ethernet3 169.254.0.2 #
配置devopsr01n01的靜態路由
daemon PingCheck3 #
此處因為devopsr01n01接在e3口,所以為了方便,這里名稱寫PingCheck3
exec
/usr/local/bin/PingCheck
option CHECKINTERVAL
value 1 # Ping間隔時間1s
option CONF_FAIL value
/mnt/flash/pingcheck/failed_3.conf # Ping失敗時執行的操作,內容填“no ip route
10.10.10.21/32 Ethernet3 169.254.0.2”,
即刪除到devopsr01n01的靜態路由條目
option CONF_RECOVER value
/mnt/flash/pingcheck/recover_3.conf # Ping恢復時執行的操作,內容填“ip route
10.10.10.21/32 Ethernet3 169.254.0.2”,即添加到devopsr01n01的靜態路由條目
option HOLDDOWN value
1
option HOLDUP value
1
option IPv4 value
169.254.0.2 #
Ping的目標地址,即到devopsr01n01的靜態路由的下一跳地址,也就是devopsr01n01上與leaf01互聯的網口的ip地址
option PINGCOUNT value
2
option PINGTIMEOUT value
2
option SOURCE value et3 #
指定Ping的出接口,即leaf01上與devopsr01n01互聯的網口
no shutdown #
開始運行PingCheck
# 在leaf02上配置devopsr01n01的路由
ip route 10.10.10.21/32 Ethernet3 169.254.1.2 #
配置devopsr01n01的靜態路由
daemon PingCheck3 #
此處因為devopsr01n01接在e3口,所以為了方便,這里名稱寫PingCheck3
exec
/usr/local/bin/PingCheck
option CHECKINTERVAL
value 1 # Ping間隔時間1s
option CONF_FAIL value
/mnt/flash/pingcheck/failed_3.conf # Ping失敗時執行的操作,內容填“no ip route
10.10.10.21/32 Ethernet3 169.254.0.2”,
即刪除到devopsr01n01的靜態路由條目
option CONF_RECOVER value
/mnt/flash/pingcheck/recover_3.conf # Ping恢復時執行的操作,內容填“ip route
10.10.10.21/32 Ethernet3 169.254.0.2”,即添加到devopsr01n01的靜態路由條目
option HOLDDOWN value
1
option HOLDUP value
1
option IPv4 value
169.254.1.2 #
Ping的目標地址,即到devopsr01n01的靜態路由的下一跳地址,也就是devopsr01n01上與leaf01互聯的網口的ip地址
option PINGCOUNT value
2
option PINGTIMEOUT value
2
option SOURCE value et3 #
指定Ping的出接口,即leaf01上與devopsr01n01互聯的網口
no shutdown #
開始運行PingCheck
按例在leaf02上配置devopsr01n02的路由,在leaf03/04上配置devopsr02n01、devopsr02n02的路由。完成配置后,讓我們來測試一下,是否達到了預期的效果:
在devopsr01n01的所有鏈路正常時,在leaf01, leaf02,
spine01上觀察到devopsr01n01的路由條目:
# 在spine01上觀察路由, 有兩條等價路由,下一跳分別是leaf01和leaf02
spine01#sh ip route 10.10.10.21
B E?10.10.10.21/32 [200/0] via 169.254.0.249,
Ethernet1
via 169.254.1.249,
Ethernet2
# 在leaf01上觀察路由,有一條靜態路由,可從e3下聯接口到達
leaf01#sh ip route 10.10.10.21
S?10.10.10.21/32 [1/0] via
169.254.0.2, Ethernet3
# 在leaf02上觀察路由,有一條靜態路由,可從e3下聯接口到達
leaf02#sh ip route 10.10.10.21
S?10.10.10.21/32 [1/0] via
169.254.1.2, Ethernet3
在h11鏈路故障時(可通過關閉服務器網卡模擬),觀察在leaf01, leaf02,
spine01上觀察到devopsr01n01的路由條目:
# 在devopsr01n01上關閉eth1
ifconfig eth1 down
# 在spine上觀察路由, 發現只剩一條路徑可用,下一跳為leaf02
spine01#sh ip route 10.10.10.21
B E?10.10.10.21/32 [200/0] via 169.254.1.249,
Ethernet2
# 在leaf01上觀察路由,
發現此時從leaf01無法從下聯接口到達目標,從而選擇從spine學到的bgp路由,經由spine到達目標
leaf01#sh ip route 10.10.10.21
B E?10.10.10.21/32 [200/0] via 169.254.0.250,
Ethernet1
via 169.254.0.254,
Ethernet2
# 在leaf02上觀察路由,有一條靜態路由,可從e3下聯接口到達
leaf02#sh ip route 10.10.10.21
S?10.10.10.21/32 [1/0] via
169.254.1.2, Ethernet3
請模擬在h12鏈路故障時的情況,觀察路由變化。
5.4.2 在物理機上配置路由
業務ip配置在br0上,而非物理網卡上,因此需開啟內核轉發功能:
sysctl -w net.ipv4.ip_forward=1
以devopsr01n01為例,流量經由eth0和eth1兩個網口收發,可以達到提高帶寬,鏈路冗余的作用,因此在服務器上的路由配置如下:
# 兩個下一跳地址分別為物理機和對應的兩個leaf相連的網口互聯ip地址
ip route replace default src 10.10.10.21 nexthop via
169.254.0.1 nexthop via 169.254.1.1
配置完上述路由后,與在交換機上的PingCheck一樣,服務器也需要某種機制來判斷下一跳是否有效:
# 對eth0
eth1啟用鏈路檢測,當鏈路down時,使相應的路由失效,否則物理機可能將流量發往down的鏈路,從而發生網絡故障
sysctl -w
net.ipv4.conf.eth0.ignore_routes_with_linkdown=1
sysctl -w
net.ipv4.conf.eth1.ignore_routes_with_linkdown=1
# 配置完這一條后可做如下測試,先查看本機路由條目, 發現默認路由有兩條等價路由
root@devopsr01n01:~# ip r
default?src 10.10.10.21
nexthop via 169.254.0.1?dev eth1 weight
1
nexthop via 169.254.1.1?dev eth0 weight
1
169.254.1.0/30 dev eth0?proto
kernel?scope link?src
169.254.1.2
# 然后關閉eth1接口
ifconfig eth1 down
# 然后再查看路由,發現eth1對應的路由條目失效
root@devopsr01n01:~# ip r
default?src 10.10.10.21
nexthop via 169.254.0.1?dev eth1 weight 1
dead linkdown
nexthop via 169.254.1.1?dev eth0 weight
1
169.254.1.0/30 dev eth0?proto
kernel?scope link?src
169.254.1.2
(Optional)上述步驟完成后,物理機上的路由就算完成了,當然,還可以加上以下的參數,讓系統根據ip地址和端口來計算hash,作為選擇路由的依據:
sysctl -w net.ipv4.fib_multipath_hash_policy=1
請按照上面的步驟,為其余幾臺物理機也完成路由配置。
5.5 測試配置結果
從devopsr01n01上ping devopsr01n02, 能夠連通,說明配置成功,
其他節點測試方法相同。
root@devopsr01n01:~# ping 10.10.10.22 -c 1
PING 10.10.10.22 (10.10.10.22) 56(84) bytes of data.
64 bytes from 10.10.10.22: icmp_seq=1 ttl=63 time=721 ms
--- 10.10.10.22 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time
0ms
rtt min/avg/max/mdev = 721.175/721.175/721.175/0.000 ms
5.6 小結
本節主要講解了在交換機和服務器上如何為業務ip配置等價多路徑(ECMP)路由條目,以及判斷路由條目有效性的機制,這很重要,因為這樣的機制才使得各個設備總是能選擇到正確的路由。接下來的章節,將介紹在spine
leaf網絡中,虛擬機的路由機制。
附 :其他品牌交換機上的路由檢測機制
本節中arista交換機使用了PingCheck這個擴展模塊來實現路由檢測,以判斷路由條目的有效性,其他廠商的網絡設備大都有內置的命令可以實現這一功能,下面用一組配置范例來對比說明arista和Cisco
Nexus 9K的配置。
如下配置為本節中leaf01上檢測devopsr01n01業務ip路由有效性的一組配置
ip route 10.10.10.21/32 Ethernet3 169.254.0.2 #
配置devopsr01n01的靜態路由
daemon PingCheck3 #
此處因為devopsr01n01接在e3口,所以為了方便,這里名稱寫PingCheck3
exec
/usr/local/bin/PingCheck
option CHECKINTERVAL
value 1 # Ping間隔時間1s
option CONF_FAIL value
/mnt/flash/pingcheck/failed_3.conf # Ping失敗時執行的操作,內容填“no ip route
10.10.10.21/32 Ethernet3 169.254.0.2”,
即刪除到devopsr01n01的靜態路由條目
option CONF_RECOVER value
/mnt/flash/pingcheck/recover_3.conf # Ping恢復時執行的操作,內容填“ip route
10.10.10.21/32 Ethernet3 169.254.0.2”,即添加到devopsr01n01的靜態路由條目
option HOLDDOWN value
1
option HOLDUP value
1
option IPv4 value
169.254.0.2 #
Ping的目標地址,即到devopsr01n01的靜態路由的下一跳地址,也就是devopsr01n01上與leaf01互聯的網口的ip地址
option PINGCOUNT value
2
option PINGTIMEOUT value
2
option SOURCE value et3 #
指定Ping的出接口,即leaf01上與devopsr01n01互聯的網口
no shutdown #
開始運行PingCheck
在Cisco Nexus 9K上,對應上面配置的功能,應該作出如下一組配置
feature sla sender # 開啟sla功能
ip sla 3 # 此處因為devopsr01n01接在e1/3口,所以為了方便,這里名稱寫sla 3
icmp-echo 169.254.0.2 source-interface
ethernet 1/3 #
Ping的目標地址,即到devopsr01n01的靜態路由的下一跳地址,也就是devopsr01n01上與leaf01互聯的網口的ip地址,以及指定Ping的出接口,即leaf01上與devopsr01n01互聯的網口
threshold 500 # 閾值 500ms,
小于等于超時時間timeout值即可
timeout 500 # 超時時間500ms
frequency 1 # ping的頻率,單位秒
ip sla schedule 3 life forever start-time now #
開始序號為3的sla檢測,一直運行,立即開始
track 3 ip sla 3 # 配置track 3, 跟蹤sla 3的狀態
ip route 10.10.10.21 255.255.255.255 ethernet 1/3 169.254.0.2
track 3 # 配置到devopsr01n01業務ip的路由,以track 3的狀態決定改路由的有效性
————————————————
版權聲明:本文為CSDN博主「eponia」的原創文章,遵循 CC 4.0 BY-SA
版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/m0_37904728/article/details/100012269
總結
以上是生活随笔為你收集整理的服务器物理部署拓扑图,【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(五)-物理服务器路由方案及配置...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cad服务器手动改自动,几百块就能手动改
- 下一篇: 移动app显示远程服务器错误,KIS移动