默認路由配置在eth0
① 百為bv990w萬兆路由器怎麼設置
一、登錄路由的管理界面
設備出廠的介面的IP地址,參考如下表
介面
IP地址 掩碼
eth0 192.168.0.1 255.255.255.0
eth1 192.168.1.1 255.255.255.0
eth2 192.168.2.1 255.255.255.0
eth3 192.168.3.1 255.255.255.0
eth4 192.168.4.1 255.255.255.0
eth5 192.168.5.1 255.255.255.0
(備註:BV200H、BV900W型號至只有5個網口,則沒有eth5)
舉例說明通過eth0口登錄路由,操作步驟如下:
(1)網線連接到百為路由器的eth0口,保證登錄的客戶機到路由的網路正常連接。
(2)路由器的eth0口的默認地址是192.168.0.1,路由的eth0口沒有啟用DHCP服務,連接路由器的客戶機,需要在網卡配置和eth0同個網段的IP地址,比如客戶機的IP配置為192.168.0.200,子網掩碼配置為:255.255.255.0.
(3)客戶機嘗試ping 192.168.0.1,如果能ping通,說明連接正常,則通過瀏覽器,輸入 http://192.168.0.1:2011,登錄了路由的web界面,web界面默認的用戶名和密碼均是 admin
二、配置路由器上網
1、配置LAN口
路由所有網口,默認配置為LAN口模式,修改LAN口IP,不需要修改介面類型。[網路配置]→[介面配置],選擇要配置的網口,直接修改 IP 地址。比如修改 eth0 的 IP 地址為
192.168.0.254,直接填寫IP地址「192.168.0.254」,點擊保存。
備註:有些用戶需要在一個 LAN 口使用連續多個網段,比如 eth0 口需要配置掩碼: 255.255.252.0,由於eth1、eth2、eth3、eth4、eth5默認為192.168.1.1、192.168.2.1 ......,修改eth0的掩碼為255.255.252.0之前,需要把eth1、eth2、eth3、eth4、eth5,先修改為別的網段的IP,比如172.16.1.xxx、172.16.2.xxx、172.16.3.xxx ......
2、配置WAN口
[網路配置]→[介面配置],選擇要配置的網口,修改介面類型為「WAN(外網口)」,比如選擇 eth4修改介面類型為「WAN(外網口)」,並配置好外網信息
2.1、上網方式——根據實際情況,選擇上網方式
ADSL/PPPOE:填入寬頻賬號和密碼
固定IP:填入運營商提供的IP、掩碼、網關及DNS
DHCP:直接插入運營商提供的線路,獲取IP
2.2、線路中斷檢測——檢測線路是否通外網,如果線路不通,或者線路質量差,丟包嚴重。路由自動處理,不負載到該線路。建議啟用線路中斷檢測。成都和重慶專網線路不能勾選(無法進行檢測)
2.3、帶寬配置——配置線路的帶寬,比如上行 4M 下行 100M 的撥號光纖,可以配置上行為500KB,下行 10000KB。配置線路帶寬非常重要,智能流控根據所配的帶寬自動流控。(需要勾選「啟用智能流控」的勾選項,配置帶寬的值才生效)
3、配置分流規則
單線路可以不配置分流規則;多線路,必須配置分流規則。[網路配置]→[分流規則],點擊「自動創建分流規則」。比如三個WAN口,通過自動創建分流規則,可選擇線路承載哪些應用。勾選後點擊「確定」。
網吧用戶,強烈建議部署百為客戶端。百為客戶端,是運行在客戶機的一程序,是單文件的綠色軟體,雙擊運行,沒有的安裝流程。通常配置開機調用。比如添加到開機啟動項,或者從無盤伺服器推送為開機調用。
百為官網提供客戶端下載,下載路徑:http://www.bytevalue.com/down/ 運行百為客戶端有如下作用:
1、配合路由識別客戶機的應用軟體,識別更精確;
2、分流指定應用程序走某條線路,需要客戶端配合;
3、客戶端可以抑制內網攻擊路由;
4、可以更精確的觀察客戶機的進程流量,方便排查問題。
查看客戶端--點擊[系統管理]→[在線IP列表],可在左邊欄看到有運行客戶端的機器,如下圖所示,如若看到有客戶端的版本號,即說明客戶端已經工作。
② pod內部訪問svc失敗分析
pod 無法訪問svc
環境:
3 mst 2 worker
node 雙網卡
node eth0:默認路由在eth0 ,k8s管理網路,node訪問svc ,pod經過node訪問svc,以及pod回包給node都會經過eth0
pod eth1:pod 訪問pod需要經過 eth1的網關
情況描述:
原因:kube-proxy 沒有開啟masquerade導致的, 不開啟pod發出的包經過ipvs就不會被偽裝成eth0的ip和mac,而是只替換了mac。由於ipvlan模式下,eth1網卡無法向外轉發,所以走了eth0出去,即eth0發出了一個不是自己的ip也不是自己的mac的包,所以會導致出問題。
像macvlan,ipvlan,kube-ovn 多網卡場景的node,eth0是k8s管理網卡(svc依賴)必須開啟該模式
對比 啟用 masquerade 之後
基於kubespray 更新全偽裝之後,舊的lb未生效,所以直接重建了下測試集群
首要問題pod 訪問svc 概率性不通的問題:
場景1: 在kube-proxy 不啟用全偽裝模式的時候, 此時pod 內部訪問 curl -k https://kubernetes:443/livez?verbose
小概率可成功響應,大概率失敗。 而node上訪問完全正常。
當kubernetes有三個後端,那麼pod內部的成功率是1/3,而node成功率是100%。
原因: 由於是雙網關,且無偽裝。 pod訪問svc後端的node需要eth0的網關,而回包是直接返回給pod。由於node回包給pod時,網關轉發包的混亂,包看起來是隨機發送給任何一個node的,所以小概率,pod可以收到包。
小結: 本質上是因為node訪問pod,跨網關轉發,這個轉發是不穩定的。
開啟全偽裝模式之後, pod內部訪問 curl -k https://kubernetes:443/livez?verbose 100%成功, 只是有首包慢的問題,localdns的緩存效果,後續請求就很快
前提: 在kube-proxy 啟用全偽裝模式的情況下,進行2 自建svc的測試。
一般情況下,pod創建出來,node 能否平通 pod是概率性的,但是pod可以100% ping通node
在pod ping 通node之後的一段時間內,node ping pod 也是100%可通的。 也就是在這段時間內,網關知道pod在哪裡,可以准確轉發。
情況1: 在node 無法ping通pod的情況下,pod 訪問svc的情況是概率性的,和kube-proxy未開啟全偽裝的表現幾乎一樣
當自定義svc有兩個後端, pod內部訪問svc成功率是1/2, 而node成功率為0
原因:
跟蹤contrack表發現
pod 內部 ping svc, 沒有新的contrack條目創建。也就是就是沒基於cluster ip建立連接
node 內部 ping svc,發現有新的contrack條目創建。 但是由於node ping 不同 pod,所以依舊無法訪問
情況2: 在 node 可以ping 通 pod的情況下,pod 訪問svc 100% 成功
保持pod 對node的ping
此時有兩條icmp的記錄,svc兩個後端pod 保持 對 master1的ping
此時在master1 訪問cluster ip 100%成功
等待 node訪問的contrack記錄消失,再進行 pod訪問的測試
測試pod訪問自定義svc
始終是1/2的成功率,但是完全沒有新的contrack記錄。 pod訪問svc 應該沒走kube-proxy。
解決方式: 移除eth1的網卡上的ip,該情況完全消失。 pod 內部訪問100%成功,node訪問會產生新的contrack
如果自定義 svc 只有一個pod,pod 訪問 svc 始終都是成功的
可以看到eth1網卡發起的arp廣播。
由於eth1作為master,是無法通往外部以及本地pod的
也就是說這張網卡,完全沒有聯通的功能,但是仍然會觸發arp的更新。
解決方式:該網卡的ip以及路由需要移除掉,達到禁用該網卡的目的
禁用網卡時,可以看到eth1相關的arp記錄全部清除
執行ip addr flush dev eth1 時,eth1的arp記錄全部清除
pod 內部 訪問多pod 後端的svc 也100%回復正常
參考:ipvs https://blog.dianidian.com/post/lvs-snat%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90/
③ 靜態路由配置格式是什麼
靜態路由配置格式在redhat環境下,有三種配置方法:
方法一:在/etc/sysconfig/network配置文件中配置:
default via 192.168.3.1 dev eth0 #192.168.3.1為eth0網卡的網關地址
10.211.6.0/24 via 192.168.3.1 dev eth0
10.0.0.0/8 via 10.212.52.1 dev eth1 #10.212.52.1為eth1網卡的網關地址
註:該種配置寫法同樣支持寫到/etc/sysconfig/network-scripts/route-interferface 配置文件中。
具體可以參看redhat官方文檔。
方法二:在/etc/sysconfig/network-scripts/route-interferface 配置文件配置
在這里支持祥塵悉兩種配置格式的寫法
A:方法1中提到的方法
cat /etc/sysconfig/network-scripts/route-eth0
0.0.0.0/0 via 192.168.3.1 dev eth0
10.211.6.0/24 via 192.168.3.1 dev eth0
cat /etc/sysconfig/network-scripts/route-eth1
10.0.0.0/8 via 10.212.52.1 dev eth1
B:網路掩碼法
cat /etc/sysconfig/network-scripts/route-eth0
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=192.168.3.1
ADDRESS1=10.211.6.0
NETMASK1=255.255.255.0
GATEWAY1=192.168.3.1
其中網段地址和掩碼全是0代表為所有網段,即默認路由。
cat /etc/sysconfig/network-scripts/route-eth1
ADDRESS0=10.0.0.0
NETMASK0=255.0.0.0
GATEWAY0=10.212.52.1
網路掩碼法也可以參看redhat官方文檔。
方法三:/etc/sysconfig/static-routes配置
cat /etc/sysconfig/static-route
any net any gw 192.168.3.1
any net 10.211.6.0/24 gw 192.168.3.1
any net 10.0.0.0 netmask 255.0.0.0 gw 10.212.52.1
註:默認情況下主機中並沒有該文件,之所以該方法也可以是因為/etc/init.d/network啟動腳本會調用該文件,具體調用部分代碼如下:
Add non interface-specific static-routes.
if [ -f /etc/sysconfig/static-routes ]; then
grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
fi
三、suse靜態路由配置
(3)默認路由配置在eth0擴展閱讀:
配置靜態路由的命令的格式為:
router(config)# ip route network [mask] {address | interface} [distance] [permanent]
其中各參數含義如下:
network:目標網路謹乎的網路ID。
mask:目標網路的子網掩碼。
address:到達目標網路經過的下一跳路由器的入口IP地址。
interface:到兄螞達目標網路的必經的本地路由器的出口的介面名稱。
distance:管理開銷,不需要改變默認管理開銷時,使用該參數進行修改。
permanent:永久有效。如果配置了該選項,即使該介面被關閉,這條靜態路由也不會被刪除。
參考資料:網路-靜態路由
④ Centos 雙網卡載入順序引起默認路由配置問題
centos cloud和 裸機均有次問題。
當centos有2個網卡,eth0是連公網,eth1是連內網,default route應該走eth0,系統啟動後不能從公網鏈接。
原因是default route 配置到eth1了,找原因:
/etc/sysconfig/network-scripts/ifcfg-eth0:
/etc/sysconfig/network-scripts/ifcfg-eth1:
雖然有cloudinit 配置默認路由,但是後面還得network service再配置一把,最終改路由的腳本:
network service是按照eth0,eth1 的順序配置網卡的,配置eth0的時候有DEFROUTE=yes,但是到了配置eth1的時候配置文件ifcfg-eth1里沒有指定DEFROUTE,而腳本只判斷了變數!="no",其實DEFROUTE這個變數沒定義,這個條件也滿足,後面也會把default route 替換成從eth1的。
解決辦法很多,一個簡單的就是echo "DEFROUTE=no" >> /etc/sysconfig/network-scripts/ifcfg-eth1
這個還可以寫在cloud環境的userdata里。
⑤ linux怎麼設置永久路由
1
首先讓我們查看一下當前機器的路由表,執行如下命令:route -n
當前本機只有一條默認路由,網關是192.168.142.1
2
然後我們確認一下當前工作的網卡,這里我們使用的是eth0。
補充:如果機器中存在多塊網卡,我們可以為不同網卡指定不同的靜態路由。
比如還有eth1,eht2;那麼方法是一樣的,我們依次為每塊網卡創建一個對應的路由配置文件。route-eth0;route-eth1;route-eth2
3
接下來讓我們添加兩條靜態路由,訪問192.168.142.100時通過192.168.142.10;訪問192.168.142.200時通過192.168.142.20。執行如下命令:vim /etc/sysconfig/network-scripts/route-eth0
添加如下信息:
192.168.142.100/32 via 192.168.142.10
192.168.142.200/32 via 192.168.142.20
保存並退出。
4
然後我們需要重新重啟一下網路服務:service network restart
5
最後讓我們驗證一下:route -n;發現此時路由信息已經添加到路由表了,這時無論是重啟主機還是重啟網路服務路由信息都不會丟了。