1. 程式人生 > >vmware centos 中 quagga ospf 路由建立

vmware centos 中 quagga ospf 路由建立

背景:

因為docker 需要進行部署 一個多主機的叢集,在leader的k8s上有介紹有利用quagga進行一個叢集的路由的建立,於是利用本想利用docker直接部署一個,但是期間碰見了各種問題,於是先從quagga的非docker版本進行一個建立,然後排錯,以下記錄一下部署過程中碰見的各種問題.

第一步: 建立VMware的網路

(1)建立虛擬網路

編輯->虛擬網路編輯器->進行設定 如下

(2)虛擬機器選擇建立的網路.

虛擬機器設定->網路介面卡

(3)虛擬機器中驗證是否配置成功

如果ping 不成功 可以進行網路一個重啟 ,這個幫我解決了不少問題.

如下:

service network restart

至此 虛擬機器的網路建立完成.

第二步 quagga的安裝 .

架構圖:

        

如上: 有兩臺虛擬機器 ,一臺的ip為192.168.181.129 ,上面的docker0的網段為192.168.10.1 

                              另外一臺的ip為192.168.181.128 ,上面的docker0的網段為192.168.20.1

附上 修改docker 網路 的 命令 

       可以用編輯/etc/docker/daemon.json檔案,新增內容 "bip": "ip/netmask" [ 切勿與宿主機同網段 ]

[[email protected] /]# vi /etc/docker/daemon.json
 
{"bip":"192.168.100.1/24"}

安裝 quagga

  Quagga軟體包含有幾個協同執行的後臺程式。我

  Zebra:核心後臺程式,負責核心介面和靜態路由。

  Ospfd:IPv4 OSPF後臺程式。

  將Quagga安裝到CentOS上

  我們首先使用yum來安裝Quagga。

yum install quagga

在CentOS 7上,SELinux在預設情況下阻止/usr/sbin/zebra寫入到其配置目錄中。這個SELinux策略干擾了我們所要描述的安裝過程,於是我們想禁止該策略。為此,關閉SELinux(不推薦),或者啟用“zebra_write_config”布林表示式,如下所示。如果你使用CentOS 6,可以跳過這一步。

  setsebool -P zebra_write_config 1

     要是不進行這種更改,我們在試圖從Quagga的命令外殼裡面儲存Zebra配置時,就會看到下列錯誤。

  Can‘t open configuration file /etc/quagga/zebra.conf.OS1Uu5.

  (無法開啟配置檔案/etc/quagga/zebra.conf.OS1Uu5。)

  Quagga安裝完畢後,我們就配置必要的對等IP地址,並更新OSPF設定。Quagga隨帶一個名為vtysh的命令列外殼。vtysh裡面使用的Quagga命令類似思科或瞻博等各大路由器廠商的那些命令

第一個階段:配置Zebra (配置對等網,已經是對等網可跳過這一階段)

由於yum install的時候預設是會啟動zebra跟ospfd 程序的,所有要先舊的關閉掉然後啟動新的.

cp /usr/share/doc/quagga-XXXXX/zebra.conf.sample/etc/quagga/zebra.conf

chown quagga -R /etc/quagga/ #給予許可權,每次write 後都回制動生成一個sav 的備份檔案

systemctl enable zebra

systemctl start zebra

systemctl list-unit-files|grep "zebra"

建立zebra 配置

啟動vtysh命令外殼:

vtysh

首先,我們為Zebra配置日誌檔案。為此,輸入下列內容,進入vtysh中的全域性配置模式:

啟動vtysh命令外殼:

vtysh

首先,我們為Zebra配置日誌檔案。為此,輸入下列內容,進入vtysh中的全域性配置模式:

site-A-RTR# configure terminal

並指定日誌檔案位置,然後退出該模式:

site-A-RTR(config)# log file /var/log/quagga/quagga.log

site-A-RTR(config)# exit

永久性儲存配置:

site-A-RTR# write

下一步,我們在必要時確定可用介面,然後配置IP地址。

site-A-RTR# show interface

Interface ens33 up,line protocol detection is disabled

. . . . .

Interface docker0 is up, line protocol detection isdisabled

配置ens33 引數:

site-A-RTR# configure terminal

site-A-RTR(config)# interface ens33

site-A-RTR(config-if)# ip address 192.168.181.129/24

site-A-RTR(config-if)#description to-site-B

site-A-RTR(config-if)# no shutdown

繼續配置docker0引數:

site-A-RTR(config)# interface docker0

site-A-RTR(config-if)# ip address  192.168.10.1/24

site-A-RTR(config-if)#description to-site-A-LAN

site-A-RTR(config-if)# no shutdown

現在驗證配置:

site-A-RTR(config-if)# do show interface ens33

site-A-RTR(config-if)# do show interface docker0

永久性儲存配置:

site-A-RTR(config-if)# do write

提示:

提示:一旦Zebra後臺程式已啟動,用vtysh的命令列介面進行的任何更改會立即生效。不需要在配置變更後重啟Zebra後臺程式。沒有write 是不會寫到配置檔案中的show running-config 可檢視正在執行的配置。

可以通過 檢視/etc/quagga/zebra.conf 進行 對比驗證 檢視是否正確.

[[email protected] quagga]# cat zebra.conf內容如下:

!
! Zebra configuration saved from vty
!   2018/09/10 05:18:26
!
hostname Router
password zebra
enable password zebra
log file /var/log/quagga/quagga.log
!
interface docker0
description to-site-A-LAN
ip address 192.168.10.1/24
ipv6 nd suppress-ra
!
interface ens33
description to-site-B
ip address 192.168.181.129/24
ipv6 nd suppress-ra
!
interface lo
!
interface virbr0
ipv6 nd suppress-ra
!
interface virbr0-nic
ipv6 nd suppress-ra
!
ip forwarding
!
!
line vty
!

對於第二臺主機同樣貼出對應的配置:

[[email protected] quagga]# cat zebra.conf


!
! Zebra configuration saved from vty
!   2018/09/10 05:18:26
!
hostname Router
password zebra
enable password zebra
log file /var/log/quagga/quagga.log
!
interface docker0
description to-site-A-LAN
ip address 192.168.20.1/24
ipv6 nd suppress-ra
!
interface ens33
description to-site-B
ip address 192.168.181.128/24
ipv6 nd suppress-ra
!
interface lo
!
interface virbr0
ipv6 nd suppress-ra
!
interface virbr0-nic
ipv6 nd suppress-ra
!
ip forwarding
!
!
line vty
!

如果直接修改配置 需要重啟程序來讓配置生效。

配置完成之後可以通過 ping 來驗證網路是否通了。

第2個階段:配置OSPF

我們先建立一個OSPF配置檔案,然後啟動OSPF後臺程式:

# cp /usr/share/doc/quagga-XXXXX/ospfd.conf.sample/etc/quagga/ospfd.conf

chown quagga -R /etc/quagga/

systemctl enable ospfd

systemctl start ospfd

systemctl list-unit-files|grep "ospfd"

現在啟動vtysh外殼,繼續進行OSPF配置:

vtysh

進入路由器配置模式:

site-A-RTR# configure terminal

site-A-RTR(config)# router ospf

還可以手動設定router-id:

這個IP一定要唯一,不然後期可能回引發很多問題這裡我們暫時定為宿主機IP

site-A-RTR(config-router)# router-id 192.168.181.129

新增將參與OSPF的網路:

site-A-RTR(config-router)# network 192.168.181.0/24 area 0 #對等網段 即宿主機外網網段

site-A-RTR(config-router)# network 192.168.10.0/24 area 0 #內網段即docker容器所在網段

永久性儲存配置:

site-A-RTR(config-router)# do write

針對site-B,也重複類似的OSPF配置:

site-B-RTR(config-router)# network 192.168.181.0/24 area 0 #對等網段 即宿主機外網網段

site-B-RTR(config-router)# network 192.168.20.0/24 area 0 #內網段即docker容器所在網段

site-B-RTR(config-router)# do write

提示:OSPF鄰居現在應該會出現。只要ospfd在執行,通過vtysh外殼所作的任何與OSPF有關的配置變更都會立即生效,沒必要重啟ospfd。

同樣貼出 /etc/quagga/ospfd.conf的配置

[[email protected] quagga]# cat ospfd.conf

!
! Zebra configuration saved from vty
!   2018/09/10 05:18:26
!
hostname ospfd
password zebra
log stdout
!
!
!
interface docker0
!
interface ens33
!
interface lo
!
interface virbr0
!
interface virbr0-nic
!
router ospf
ospf router-id 192.168.181.129
network 192.168.10.0/24 area 0.0.0.0
network 192.168.181.0/24 area 0.0.0.0
!
line vty
!

另外一臺主機 配置

[[email protected] quagga]# cat ospfd.conf

!
! Zebra configuration saved from vty
!   2018/09/10 05:18:26
!
hostname ospfd
password zebra
log file /var/log/quagga/ospf.log
!
!
!
interface docker0
!
interface ens33
!
interface lo
!
interface virbr0
!
interface virbr0-nic
!
router ospf
ospf router-id 192.168.181.128
network 192.168.20.0/24 area 0.0.0.0
network 192.168.181.0/24 area 0.0.0.0
!
line vty
!

網上的步驟大多到 第二步:

第三個階段 配置 iptalbes 因為這個沒有配置導致 不能自學習路由。


[[email protected] ~]#  iptables -F

[[email protected] ~]#  iptables -t nat -F

[[email protected] ~]#  iptables-save

第四個階段 驗證配置正確性:

128上驗證:

129上驗證

vtysh 驗證

[[email protected] ~]# vtysh

Hello, this is Quagga (version 0.99.22.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

localhost.localdomain# show ip route  
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, A - Babel,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 via 192.168.181.2, ens33
C>* 127.0.0.0/8 is directly connected, lo
O   192.168.10.0/24 [110/10] is directly connected, docker0, 00:01:56
C>* 192.168.10.0/24 is directly connected, docker0
O>* 192.168.20.0/24 [110/20] via 192.168.181.128, ens33, 00:01:15
C>* 192.168.122.0/24 is directly connected, virbr0
O   192.168.181.0/24 [110/10] is directly connected, ens33, 00:02:47
C>* 192.168.181.0/24 is directly connected, ens33

驗證OSPF鄰居和路由器

localhost.localdomain# show ip ospf neighbor

    Neighbor ID Pri State           Dead Time Address         Interface            RXmtL RqstL DBsmL
192.168.181.128   1 Full/Backup       30.355s 192.168.181.128 ens33:192.168.181.129     0     0     0

步驟5. 這個我沒實踐過 記錄下~
相關參考核心引數調優:sysctl -a
#該引數決定了,網路裝置接收資料包的速率比核心處理這些包的速率快時,允許送到佇列的資料包的最大數目

net.core.netdev_max_backlog = 500000
#開啟路由轉發功能

net.ipv4.ip_forward = 1
#修改檔案描述符
fs.nr_open = 5242880
fs.file-max = 4194304
sed -i 's/1024/4194304/g' /etc/security/limits.conf

相關推薦

vmware centos quagga ospf 路由建立

背景: 因為docker 需要進行部署 一個多主機的叢集,在leader的k8s上有介紹有利用quagga進行一個叢集的路由的建立,於是利用本想利用docker直接部署一個,但是期間碰見了各種問題,於是先從quagga的非docker版本進行一個建立,然後排錯,以下記錄一下

VMware Centos創建克隆虛擬機導致網卡設備無法啟動的問題

com net eth nging .com 虛擬機 這一 文件 echo 一、前言 在創建克隆虛擬機的時候,如果樣板虛擬機沒有事先配置好,則會導致網卡設備無法啟動的問題(報錯如下)。 Bringing up interface eth0: Device eth0 does

VMware Centos克隆而帶來的網路問題

VMware Centos中修改克隆而帶來的網路問題 如果你虛擬機器中的網路已經設定好了,現在需要克隆虛擬機器來進行叢集或者其他的事情,你克隆的系統現在網路不能正常啟動,接下來我們看一下怎樣設

OSPF路由網絡建立過程

路由器 數據庫 優先級 網絡 通告 發現鄰居--選舉DR/BDR--形成鏈路狀態數據庫--SPF算法--形成路由網絡在 發現鄰居--選舉DR/BDR 階段路由器之間互相發送Hello報文,根據Hello包,每臺路由器生成了基本的Datebase;然後根據優先級和RID在每一個網段選出一個D

如何在VMware系統的ubuntu16.04建立與win7系統的共享文件夾

alt hgfs vmware 結果 vmw 設置 too 得到 image 點擊虛擬機設置一次得到如圖所示 系統默認放在了 /mnt/hgfs文件夾 點擊虛擬機安裝vmware tools 解壓vmware tools壓縮包 運行sudo ./vmwar

VMware workstations安裝CentOS-7-x86_64-Everything-1611.ISO

linux運維在VMware workstations中安裝CentOS-7-x86_64-Everything-1611.ISO對於最近在Linux學習的過程中,許多同學對centOS系統的詳細配置還不熟悉,於是我編寫此詳細步驟供大家參考。 工具:VMware workstations;centOS-7-x

操作一:在Centos建立ftp伺服器

總結性:就在linux中下載ftp安裝並配置,就完成了一個伺服器的搭建   安裝: 第一步:使用yum命令,安裝vsftpd元件 安裝完後,有/etc/vsftpd/vsftpd.conf 檔案,是vsftp的配置檔案。 [[email protected]

關於在RIP 域和 OSPF做雙向路由引入而導致的問題分析及解決方法

實驗拓撲如圖。步驟:左邊R1、R2、R3採用RIPV2學習彼此的路由。右邊R2、R3、R4採用OSPF學習路由。然後在路由器R2和R3上做雙向路由引入。(產生問題的前提)。按照如圖所示的內容對路由器進行配置,然後檢視R2和R3的路由表;R2:R3:實驗現象:針對4.4.4.4

Linux ~VMware Fusion 如何複製centos/linux虛擬機器

環境:mac OSX(10.10.2) + vmware fusion(7.0.0) 步驟一:先複製虛擬機器檔案 先在Virtual Machine Library視窗中,選中要複製的虛擬機器,右鍵-> Show in Finder 進入虛擬機器檔案所在在目錄

VMware Workstation安裝linux系統(CentOS)超詳細(部分轉載)

out info ext html 技術 復制 station default acad 首先準備一下VMware虛擬機和linux鏡像文件,鏈接如下: 對於32位windows機子安裝的是10.0.7版本的VMware Workstation,鏈接: https://pa

CentOS使用VeraCrypt(一):安裝及建立整個加密硬碟

前一階段看了一些關於資料安全,系統安全,以及社會工程學的書籍,突然覺得資料加密是一項十分重要的工作,由其是公司的敏感資料、商業機密,或者個人的重要檔案都應該隨時進行加密;就算是平時的備份資料也要進行合理的加密,以保證資料安全。VeraCrypt是目前一款比較流行

centos如何建立一個txt檔案

centos中如何建立一個txt檔案 聽語音 原創 | 瀏覽:5533 | 更新:2018-11-01

CentOS與網絡相關的常用

p地址 har 位數 主機名 strong mac sha 邏輯地址 led CentOS中與網絡相關的常用配置文件 1. 常見的網絡配置文件 /etc/hosts      本地域名解析表,用於解析主機名。對應於win系統中的C:\Windows\Sy

centos安裝mangodb

x86 local code -o mongo lin inux 下載 b- 1、下載完安裝包,並解壓 tgz(以下演示的是 64 位 Linux上的安裝) curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x8

阿裏雲CentOSvsftp安裝、配置、卸載

配置文件 列表 span 安裝配置 conn gre vsftp 設置 div --------------------------------------------------------- 阿裏雲CentOS中vsftp安裝、配置、卸載 1--卸載 查

Jenkins在CentOS的安裝

sysconf download 修改 log https home 自動 安裝目錄 load 環境準備: tomcat,jdk 包準備:Jenkins的war包,下載路徑:https://jenkins.io/download/ 把下載好的war包放在tomcat的w

AngularJS1.6版本ui-router路由/#!/的解決方法 - zhuan

ret soft https variable name class over func efi 本地編譯出的文件可以正常運行,但是服務器編譯後到了測試那裏路由上就莫名的出現了/#!/,這導致了很多問題。 後來查了下是服務器編譯器把AngularJS升級到了1.6版本,而我

VMware Workstation批量創建上千臺虛擬機(下)

workstation 創建虛擬機 vmrun 2 快速克隆100臺Workstation虛擬機方法在上一節的內容中,無論是創建"完全克隆"的虛擬機還是"克隆鏈接"的虛擬機,都是在VMware Workstation的圖形界面中以向導的方式創建的,每次創建一個虛擬機都需要多個步驟才能完成。在創建的

VMware Workstation批量創建上千臺虛擬機(上)

vnc workstation VMware Workstation 是我們經常使用的虛擬機軟件,其功能強大,性能較好。大多數用戶都會在"圖形界面"中創建虛擬機、修改虛擬機配置、添加虛擬機參數,或者使用"克隆"功能創建多個虛擬機,這些都無需介紹。但是你有沒有想過● 將 VMware Workstati

CentOS 使用yum出現的“UnicodeDecodeError: 'ascii' codec”問題解決方法

dede epo from use line speed 方式 set art 問題 新裝了CentOS 6.5系統,打算使用yum安裝程序是出現了例如以下錯誤: Loading mirror speeds from cached hostfile Traceback