版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、路由永久生效的5種方法及設(shè)置完畢后生效的優(yōu)先級。修訂版本號1v編輯時間2017.8編輯者Mercy校驗者Leo審核者Limis目的:為了在linux系統(tǒng)中設(shè)定路由方法一:找到/etc/rc.1ocal(開機自動啟動)推薦使用!使用vi編輯增加routeadd-net/24deveth0routeadd-net/24gw注:/24即是netmask這是一個C類地址的子掩碼/16即是netmask這是一個B類地址的子掩碼/8即是netmask這是一個A類地址的子掩碼/binfsh.4#7iliaac-riptwillbeenecut-ed亡r*allthtotherinitscripta#Ycru
2、can.put址口口匸ciwninitializationstuinhereizyoudan.11#want匸odethezullSysVatvleinit曰匸口二二touchfvar/lock/aui)aya/1oca1routeadd-net192.lG.2.0/24devethODouteadd-net/24gw重啟電腦后roottaiocalhostroute-nKernelIFroutingtableDestination192.1&8.5.0192.168.4.eGateway192.168.1,1192.168.1.LGenmiaskFla
3、gsMetricRefLseIfaceUG000ethoLG000etho255.255.255.QLG000ethoU000eth0U000eth0u100200ethoLG000etho方法二:切換到網(wǎng)絡(luò)配置目錄下/etc/sysconfig/network-scripts/推薦使用!使用vi編輯新建文檔在這之前需要確認默認網(wǎng)口是否是eth0也可以分別為不同的網(wǎng)口配置不同的路由。rootmercyfu#viroute-eth0/24via/24via:wqrootmercyfu#serviecenetworkrestart192.158,1.1UG030ethO152.158.S.O方法三
4、:開啟IP轉(zhuǎn)發(fā)rootmercyfu#vi/etc/sysctl.conf-net.ipv4.ip_forward=1(永久開啟)(設(shè)置后重啟網(wǎng)絡(luò)服務(wù)無反應(yīng),原因是:在打開內(nèi)核IP轉(zhuǎn)發(fā)功能后,我們就該為我們所假設(shè)的網(wǎng)絡(luò)添加路由功能了。在Linux變成路由功能,兩種方法來實現(xiàn),一種是通過IPTABLES工具的NAT轉(zhuǎn)發(fā)功能,一種是使用IPROUTER2工具集中的IPROUTE命令子集來實現(xiàn)。這兩種方法各有優(yōu)缺點,使用哪種方法,主要看你所在的網(wǎng)絡(luò)使用哪種方法連接互聯(lián)網(wǎng)。IPTABLES工具適合動態(tài)IP地址以及固定公網(wǎng)IP地址方式,同時,還提供了網(wǎng)絡(luò)地址轉(zhuǎn)換功能,此功能不僅能使使用私有IP地址的內(nèi)網(wǎng)
5、PC連接上互聯(lián)網(wǎng),而且還提供外網(wǎng)能過DNAT功能訪問處于內(nèi)網(wǎng)中的各種網(wǎng)絡(luò)服務(wù),以用隱藏內(nèi)容IP網(wǎng)絡(luò)段,增加了安全性。IPROUTE工具同樣適應(yīng)與IPTABELS相同的兩種上網(wǎng)方式,但不能提供NAT功能。)方法四:在/etc/sysconfig/network里添加到末尾GATEWAY=gw-ip或者GATEWAY=gw-devLNEIWOBWING=yaH05IWjiE=lccalhC3t.lccalddrain3GATEWAY=192.155.1.QrDQtlocalhDatrou.-nKeetieIIFroutin-5tableUseDeatinatiDnGatewayGeninaskFl
6、agaMEtricR-e192,.0.0UG00方法五:rootmercyfu#cd/etc/sysconfig/static-routes(沒有static-routes的話就手動使用vi編輯建立)rootlocalhaataacanzi-gvi.atHtic-r-Dutes161Vnet/24gw192.18.1.LBH7netnetmask255.2-55.255.0四192.1.1注:netmask就是/24nDtlocBlhD3taysconzig-Sroute-n.KeeheIIF匚outingtableFlagaMetricKezDeatinationGatewaytenmaak
7、0ethOethO|L32.US.5.0US01V132.L68.4.0US0關(guān)于配置完路由后的生效的優(yōu)先級網(wǎng)上未能找到關(guān)于配置路由后生效的優(yōu)先級的文章。所以換了一個角度來思考問題根據(jù)linux的開機啟動順序來分析問題:linux的開機步驟:1:加載BIOS(這一步和window相同)Power-on-BIOSPoweronUponpower-on.theprocessorfirstaccessesanaddressthatusuallyresidesinread-onlymemory(ROM(CMOS),Flash).BIOS(BasicInputOutputSystem)BIOSstore
8、shardware-specificsystemresourceinitializationcodeself-testandhardwareidentification-CPU與接口設(shè)備的頻率啟動設(shè)備的查找順序殛盤的大小與類型-系統(tǒng)時間各接口設(shè)備的I/O地址CPU誦信的IRQflnternjptRequesl)TheinterfacetoBIOSisaunifcrnnsetoffunctionsknownasinterrupts.Atloadtime.Linuxusestheseiinterrcptstoqueryavailablesysiemr&sources,I_丿當你打開計算機電源,計算
9、機會首先加載BIOS信息,BIOS信息是如此的重要,以至于計算機必須在最開始就找到它。這是因為BIOS中包含了CPU的相關(guān)信息、設(shè)備啟動順序信息、硬盤信息、內(nèi)存信息、時鐘信息、PnP特性等等。在此之后,計算機心里就有譜了,知道應(yīng)該去讀取哪個硬件設(shè)備了。在BIOS將系統(tǒng)的控制權(quán)交給硬盤第一個扇區(qū)之后,就開始由Linux來控制系統(tǒng)了。2:讀取MBRBIOS今MBR(bootloader)BIOS檢測完了,是否就該加載內(nèi)核了?由于不同OS的文件系統(tǒng)格式不同,因此須要一個引導(dǎo)裝載程序(bootloader)來加載內(nèi)核文件Boolloader程序安裝在哪里?磁盤的第一個sectorf扇區(qū))512B(一股
10、使用前稱為MBRfMasterBootRecord)Attheendofself-testandhardwareidentification,thesysteminitializationcode(BIOS)accessestheharddrivecontrollertoreadtheMBR.AfterBIOScompletesitsinitialization,itcopiesthefirst512bytesfromthebootdevicetoaddress0 x7c0Qandjumpstoit.盤上第0磁道第一個扇區(qū)被稱為MBR,也就是MasterBootRecord,即主引導(dǎo)記錄,它的
11、大小是512字節(jié),可里面卻存放了預(yù)啟動信息、分區(qū)表信息。可分為兩部分:第一部分為引導(dǎo)(PRE-BOOT)區(qū),占了446個字節(jié);第二部分為分區(qū)表(PARTITIONPABLE),共有66個字節(jié),記錄硬盤的分區(qū)信息。預(yù)引導(dǎo)區(qū)的作用之一是找到標記為活動(ACTIVE)的分區(qū),并將活動分區(qū)的引導(dǎo)區(qū)讀入內(nèi)存。系統(tǒng)找到BIOS所指定的硬盤的MBR后,就會將其復(fù)制到0 x7c00地址所在的物理內(nèi)存中。其實被復(fù)制到物理內(nèi)存的內(nèi)容就是BootLoader,而具體到你的電腦,那就是lilo或者grub了。3:啟動BootLoader(操作系統(tǒng)內(nèi)核運彳之前運行的一段小程序)BootLoaderMBRcopiesth
12、ecodefromtheactivebootpartitiontoaddress0 x7c00andbeginsexecutingit.theactivebootpartitioncarhaveabootloaderthat,inturn,loadstheoperatingsystem.自舉)LinuxBootloaderGRUB(GrandUnifiedBootloader)-LILOLinuxLOader)ootLoader-grubGRUBisanx86-basedbootloaderthatsusedtoloadLinux, HYPERLINK http:/www.qnu.orq/so
13、ftware/arub www.qnu.orq/software/arubGRUBrecognizesfilesystemsonthebootdrives,andthekernelcanbeloadedbyspecifyingthefilename,drive,andpartitionwherethekernelresides.GRUBcanactasatwo-stagebootloaderStage1isinstalledintheMBRandiscalledbyBIOS.Stage2ispartiallyloadedbyStage1andthenfinishesloadingitselff
14、romthefilesystemBootLoader就是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核做好一切準備。通常,BootLoade:是嚴重地依賴于硬件而實現(xiàn)的,不同體系結(jié)構(gòu)的系統(tǒng)存在著不同的BootLoader。Linux的引導(dǎo)扇區(qū)內(nèi)容是采用匯編語言編寫的程序,其源代碼在arch/i386/boot中(不同體系的CPU有其各自的boot目錄),有4個程序文件:bootsect.S,引導(dǎo)扇區(qū)的主程序,匯編后的代碼不超過512字節(jié),即一個扇區(qū)的大小setup.S,引
15、導(dǎo)輔助程序edd.S,輔助程序的一部分,用于支持BIOS增強磁盤設(shè)備服務(wù)video.S,輔助程序的另一部分,用于引導(dǎo)時的屏幕顯示BootLoader有若干種,其中Grub、Lilo和spfdisk是常見的Loader,這里以Grub為例來講解吧。系統(tǒng)讀取內(nèi)存中的grub配置信息(一般為menu.lst或grub.lst),并依照此配置信息來啟動不同的操作系統(tǒng)。4:加載內(nèi)核加載內(nèi)核/boot/grub/menu.lstdefault-!tlmeout-55plashiiiagB=(h11:/etc/rc.d/rc.systn11系統(tǒng)初始化1內(nèi)核被加載后,第一個運行的程序便是/sbin/init,
16、該文件會讀取/etc/inittab文件,并依據(jù)此文件來進行初始化工作。其實/etc/inittab文件最主要的作用就是設(shè)定Linux的運行等級,其設(shè)定形式是:id:5:initdefault:”,這就表明Linux需要運行在等級5上。Linux的運行等級設(shè)定如下:0:關(guān)機1:單用戶模式2:無網(wǎng)絡(luò)支持的多用戶模式3:有網(wǎng)絡(luò)支持的多用戶模式4:保留,未使用5:有網(wǎng)絡(luò)支持有X-Window支持的多用戶模式6:重新引導(dǎo)系統(tǒng),即重啟(設(shè)置路由的5種方法前5個步驟中都沒有涉及到接下來第六個步驟中就涉及到了)6:啟動第六步-init進程執(zhí)行rc.sysinit/sbin/init-/etc/inittab
17、/etc/rc.d/rc-sysinit在加載各項系統(tǒng)服務(wù)之前通過/etc/rc.d/rc.sysinit來設(shè)置系統(tǒng)環(huán)境設(shè)置網(wǎng)絡(luò)環(huán)境/etc/syscontig/network設(shè)置時區(qū)與時間格式/etc/sysconfig/clock加載用戶自定義模塊/etc/sysconfig/modules/*.modules力口載內(nèi)核設(shè)置/etc/sysctl.conf設(shè)置主機名和初始化電源管理以fsuk(filesystemcheck)來檢查磁盤文件系統(tǒng)重新以可讀寫模塊掛載系統(tǒng)磁盤將啟動相關(guān)信息存入文件中在設(shè)定了運行等級后,Linux系統(tǒng)執(zhí)行的第一個用戶層文件就是/etc/rc.d/rc.sysini
18、t腳本程序,它做的工作非常多,包括設(shè)定PATH、設(shè)定網(wǎng)絡(luò)配置(/etc/sysconfig/network)、啟動swap分區(qū)、設(shè)定/proc等等。如果你有興趣,可以至到/etc/rc.d中查看一下rc.sysinit文件。線程init的最終完成狀態(tài)是能夠使得一般的用戶程序可以正常地被執(zhí)行,從而真正完成可供應(yīng)用程序運行的系統(tǒng)環(huán)境。它主要進行的操作有:執(zhí)行函數(shù)do_basic_setup(),它會對外部設(shè)備進行全面地初始化。構(gòu)建系統(tǒng)的虛擬文件系統(tǒng)目錄樹,掛接系統(tǒng)中作為根目錄的設(shè)備(其具體的文件系統(tǒng)已經(jīng)在上一步驟中注冊)。打開設(shè)備/dev/console,并通過函數(shù)sys_dup()打開的連接復(fù)制
19、兩次,使得文件號0,1,2全部指向控制臺。這三個文件連接就是通常所說的標準輸入”stdin,標準輸出stdout和標準出錯信息stderr這三個標準I/O通道。準備好以上一切之后,系統(tǒng)開始進入用戶層的初始化階段。內(nèi)核通過系統(tǒng)調(diào)用execve()加載執(zhí)T子相應(yīng)的用戶層初始化程序,依次嘗試加載程序/sbin/initl,/etc/init,/bin/init,和/bin/sh。只要其中有一個程序加載獲得成功,那么系統(tǒng)就將開始用戶層的初始化,而不會再回到init()函數(shù)段中。至此,init()函數(shù)結(jié)束,Linux內(nèi)核的引導(dǎo)部分也到此結(jié)束。Linux系統(tǒng)執(zhí)行的第一個用戶層文件就是/etc/rc.d/r
20、c.sysinit腳本程序,它做的工作非常多,包括設(shè)定path、設(shè)定網(wǎng)絡(luò)配置(/etc/sysconfig/network)即/etc/sysconfig/network為第一優(yōu)先級。系統(tǒng)在知道自己的啟動等級后,顯示設(shè)置好主機的運行環(huán)境,在去啟動服務(wù)設(shè)置網(wǎng)絡(luò)環(huán)境/etc/sysconfig/network,如主機名,網(wǎng)關(guān),IP,DNS等。掛載/proc。此文件是個特殊文件,大小為0,因為它是在內(nèi)存當中。里面東西最好別刪。根據(jù)內(nèi)核在開機時的結(jié)果/proc/sys/kernel/modprobe。開始進行周邊設(shè)備的偵測。載入用戶自定義的模塊/etc/sysconfig/modules/*。modu
21、les讀取/etc/sysctloconf文件對內(nèi)核進行設(shè)定。即/etc.sysctl.conf即/etc/sysctl.conf為第二優(yōu)先級設(shè)定時間,終端字體,硬盤LVM或RAID功能,以fsck進行磁盤檢測。將開機狀況記錄到/var/log/dmesg中。(可以用命令dmesg查看結(jié)果)7:啟動第七步-啟動內(nèi)核模塊依據(jù)/etc/modules.conf文件或/etc/modules.d目錄下的文件來裝載內(nèi)核模塊8:啟動第八步-執(zhí)行不同運行級別的腳本程序根據(jù)運行級別的不同,系統(tǒng)會運行rc0.d到rc6.d中的相應(yīng)的腳本程序,來完成相應(yīng)的初始化工作和啟動相應(yīng)的服務(wù)。系統(tǒng)初始化階段還會用到的配置
22、文件/etc/rc.d/*rc.local用戶自定史開機啟動程序目錄:尤與rcO.drc1,drc2.drc3.drc4,drc5.drc6.d目錄:/etc/rc.d/init.d/下的服務(wù)關(guān)于模塊:/etc/modprobe.conf/etc/sysconlig/*啟動過程中,一些服務(wù)的配置文件在/etc/sysconfig下authconfig身份認證clock時鐘-i18n文字語言編碼支持Network/是否開啟網(wǎng)絡(luò),網(wǎng)絡(luò)主機名HOSTNAME199:啟動第九步-執(zhí)行/etc/rcd/rclocal在這里我們可以查詢一下這個rc.local的內(nèi)容就一下子明白了rootlocalhast
23、unt/etc/rc-.d/rc.Loc-a14i/bin./stl才Thiaacriptwillbeex-ecuted*ater*alltheotherinitacripta.中Yqucanputyourowninitializaticnatuzinh.ereyoudon11中wanttodoth-eull3sVstyleinitatu.t口uch/vsr/1crG-k/subsy3/1-qgs1routeadd-net152.1S.2.0/24d.evethOrouteadd-口毗1C2.ltJ.3.0/24gw192.LG8.1.1local就是在一切初始化工作后,Linux留給用戶進行
24、個性化的地方。你可以把你想設(shè)置和啟動的東西放到這里。即/etc/rclocal為第三優(yōu)先級別v10:啟動第十步-執(zhí)行/bin/login程序,進入登錄狀態(tài)即等待用戶輸入username和password的時候了,你已經(jīng)可以用自己的帳號登入系統(tǒng)了。那么問題來了。剩余兩個/etc/sysconfig/network-scripts與/etc.sysconf/static-route所寫的route路由的優(yōu)先級是什么呢。由于第一優(yōu)先級是/etc/sysconfig/network是一個在/etc.init.d下的腳本EO&tloeaLh&3t亠專cd/etc/init,d/EQCht1OCB1110
25、31init.d#13abrt-ccpgihaltUetwortilaiiagersaslauthdabrtdiitcaciiecleannfs-rdmasingleabrt-oopshttpdntpdsmartdlaGpi.dipfitaJalesntpdatespiGc-vdagentdssh4auditsirqbaLancepostTijcs.ss七mi;bit-availabilitjkduuippppoe-senrernd.ev-postbliuetoothkLllallpsacctvuMware-toolscpusEeedi2-Ivmetaduota_nldvm/are-t&o-l
26、s-thinprijitcroudi2-monitorr4scwiaenoncupsmdm&nitorrdmawiiLbiJiddninas/-dev/null2sl;thennex_logFTTq2021QVLANsupportaYsllsL-l-einkernel*fi.f,rvlaninterfac-es=esac#Addnoninterfiace-specificstatic-routes.if-f/etc/ysconfig/static-routes;thengreprAanyri/et-c/sysconfig/static-route3Iwhilereadignorearg3:do
27、/sbin./routeadd-$arg3dnefi#Addnoninterfiace-specificstaticiarpentriesif-f/亡匸c/ethers;then/sbin/arp-f/etc/ethersfiIFv6hook(postIPv43tar匸)if-x/etc/sysconfij/network-scripts/init.ipv6-globa1;then/etc/sysconfig/network-scripts/initipv6-glofc日13tartpD31fiRunthisagaintnciatchsanyinterfac-e-3pecificactions
28、apply_sysctltouch/var/loek/subsys/netw&rk-nrB$NETWORKDELAYri“/bin/sleep$HETWORKDEZAY.F.Fstop)EUID!=rB0rBexit4Don11shutthenetworkdownifrootisonNFSoranetworkblockdevicemrDDtfs=$awkTif($1“$2=/$3!=roDtfs)print$3;T/proc/mmints)network-scripts和static-routes其實在被network這個腳本調(diào)用的。network在執(zhí)行的時候到network-scripts那
29、么有network-scripts內(nèi)寫的路由生效network在執(zhí)行的時候到static-routes里面尋找any開頭的行,然后執(zhí)行并生效那么即/etc/sysconfig/network之后就是/etc/sysconfig/network-scripts再之后就是/etc/sysconfig/static-route那么又有一個問題來了。/etc/sysctl.conf的優(yōu)先級到底在network-scripts和static-route之前還是之后呢?照理來說sysctl.conf內(nèi)核文件應(yīng)該最先啟動才是。后經(jīng)過查詢/etc/sysctl.conf是一個允許改變正在運行中的Linux系統(tǒng)
30、的接口。并非內(nèi)核文件。在系統(tǒng)啟動的第六步中執(zhí)行完設(shè)置網(wǎng)絡(luò)的環(huán)境之后再是讀取/etc.sysctl.config文件對內(nèi)核進行設(shè)定。但是同事提出疑點,既然sysctl.conf是一個與系統(tǒng)內(nèi)核溝通的文件。那么有關(guān)于內(nèi)核配置的一定是在開啟網(wǎng)絡(luò)服務(wù)之前先啟動。根據(jù)啟動順序:/sbin/init/etc/inittab今/etc/rc.d/rc.sysinitcat查看rc.sysinit內(nèi)容由于腳本過長利用grep命令在/etc/rc.d/rc.sysinit中果然查找到了信息1ocalliDaE-#grep-nTn-Etwo-rT/-EtGArc;.,d/re日y日zLniLt;:iz-z/etc/ayaconzij/network;th-en!./etc/ayaeDiizig/netwrlIntheorythereshouldbtnamerethan,onem&twrhintErzaGeaGtlye34:*Useth-enetv
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廚房承包合同
- 宿舍承包合同范本
- 2025雜工勞務(wù)分包合同
- 2025關(guān)于住房公積金借款合同書例文
- 房子裝修承包合同
- 提高創(chuàng)新和問題解決能力的培訓(xùn)
- 2025會計工作勞動合同范本
- 2025副食品供貨合同范文
- 工程材料采購合同簡單
- 2025共有產(chǎn)權(quán)住房 預(yù)售合同 (范本)
- 2025江蘇南京市金陵飯店股份限公司招聘高頻重點提升(共500題)附帶答案詳解
- 公共政策分析 課件匯 陳振明 第0-9章 導(dǎo)論、緒論:政策科學(xué)的“研究綱領(lǐng)”- 政策監(jiān)控
- 2025年牛津譯林版英語七年級下冊全冊單元重點知識點與語法匯編
- UI與交互設(shè)計人機交互設(shè)計(第二版)PPT完整全套教學(xué)課件
- GMS要素-持續(xù)改進(CI)-上汽通用五菱-課件
- 《插畫設(shè)計》課程標準
- 高考作文答題卡(作文)
- 在鄉(xiāng)村治理中深化推廣運用清單制、積分制、一張圖工作方案
- 梅毒的診斷與治療課件
- 工程倫理第二講工程中的風險、安全與責任課件
評論
0/150
提交評論