1. 程式人生 > >IP別名及其應用

IP別名及其應用

Linux下配置網絡卡ip別名

何謂ip別名(ip alias)?
用windows的話說,就是為一個網絡卡配置多個ip。
什麼場合增加ip別名能派上用場?
佈網需要、多ip訪問測試、特定軟體對多ip的需要...and so on.

下面通過幾個例子簡單介紹一下如何使用ifconfig命令給網絡卡配置ip別名。
環境:新購買的伺服器,剛裝好RedHat AS4作業系統,只有一個網絡卡並且乾乾淨淨沒做過任何配置。

一、首先為伺服器網絡卡配置靜態ip地址
#ifconfig eth0 192.168.6.99 netmask 255.255.255.0 up
eth0                                     //機器的第一個網絡卡,有些機器有多個網絡卡,eth1、eth2...

192.168.6.99                       //設定網絡卡的靜態ip地址
netmask 255.255.255.0       //ip地址的子網掩碼,無需多解釋
up                                      //表示立即啟用該網絡卡

#ifconfig
if一下,如圖所示靜態ip已經設定成功



二、設定網絡卡的ip別名
#ifconfig eth0:0 192.168.6.100 netmask 255.255.255.0 up
#ifconfig eth0:1 173.173.173.173 netmask 255.255.255.0 up
#ifconfig eth0:2 119.110.120.1 netmask 255.255.255.0 up

......

eth0:x                    //虛擬網路介面,建立在eth0上,取值範圍0-255
192.168.6.xxx        //增加ip別名,想加多少就加多少~~

#ifconfig
設定完我們if一下看看,如圖所示,增加的ip都已經生效了



#ping 192.168.6.100
#ping 173.173.173.173
#ping 119.110.120.1
然後在本機分別ping一下這幾個ip,如圖所示一路暢通~~




*注意:在設定ip別名時,如果增加的是和區域網同一網段的ip(如192.168.6.100),那麼區域網內機器都可以ping通這個ip。如果增加的是奇形怪狀的ip,那麼就只有本機可以ping通而已,後者主要用於本機測試需要。



三、保留網絡卡的ip別名資訊
當我們汗流浹背的增加了n個ip,正準備大展拳腳進行專案測試時,突然~~停電了[email protected]#$%,轉眼月上枝頭,好不容易來電了開啟電腦一看,傻了~~剛剛增加的ip全沒了???
原來當系統重啟後,所有的ip別名都會丟失...rpwt...xx$#%@
基於linux這個特點,所以如果需要長時間使用ip別名,最好將別名資訊儲存起來,一般方法有兩個,如下:

1.將增加ip別名的命令填寫到/etc/rc.local檔案中
即將所有如這樣ifconfig eth0:0 192.168.6.100 netmask 255.255.255.0 up的命令一行行全部填寫到rc.local檔案中去,rc.local檔案是作用於linux開機自動執行命令,詳細用法g或b一下,這裡不詳細說明。
這個方法最方便,但不太可靠,有時會失靈。

2.手動編寫ip別名的網絡卡配置檔案
所有網絡卡的配置檔案都儲存在/etc/sysconfig/network-scripts目錄中,一個網絡卡對應一個配置檔案,如圖:


檔案ifcfg-eth0就是本機網絡卡的配置檔案,我們可以通過仿照這個檔案的格式來編寫其他ip別名的配置檔案。

#cp ifcfg-eth0 ifcfg-eth0:0
將ifcfg-eth0複製一份
#vi ifcfg-eth0:0
按照下文的介紹修改部分資訊,修改完成後儲存退出

以下是網絡卡配置檔案的部分資訊說明,其他類似資訊預設即可:
##############################################################################

# 3Com Corporation 3c905B 100BaseTX [Cyclone]    //硬體型號,忽略不計
DEVICE=eth0:0                 //虛擬網路介面,隨意                                    
ONBOOT=yes                    //系統啟動時啟用
BOOTPROTO=static             //使用靜態ip地址                
IPADDR=192.168.6.100          //該虛擬網路介面的ip別名,隨意
NETMASK=255.255.255.0         //子網掩碼,對應ip別名
GATEWAY=192.168.6.1           //閘道器,對應ip別名
HWADDR=00:10:5A:5E:B1:E4      //網絡卡MAC地址,無需更改                   
USERCTL=no                    //是否給予非root使用者裝置管理許可權

##############################################################################

其他ip別名的配置檔案大同小異,純粹體力活~~
這個方法最繁瑣,但又是最可靠,唉,人生就是這樣,永遠不得兩全其美~~

四、清除ip別名
#ifconfg eth0:0 down
#ifconfg eth0:1 down

#ifconfg eth0:2 down

......

五、ip別名和從屬ip地址(secondary ip address

secondary ip address和ip alias是不同的概念,首先問Google,Google沒有給我好的答案。只好自己摸索了,於是目前只能得到下面的一些概念:

ip alias和secondary ip address是兩種不同的實現方式,用來在Linux系統中給同一個物理網絡卡增加多個ip地址。

ip alias是由ifconfig程式來建立和維護的,而secondary ip address則是有ip程式來建立和維護的。ip addr add 建立的scondary ip address不能在ifconfig -a中看到,反過來,ifconfig建立的ethX:Y卻能在ip addr show中看到。

ip alias在上面介紹了,因此說說secondary ip address如何建立

[[email protected] autostart]# ifconfig
eth1 Link encap:Ethernet HWaddr 00:13:77:00:7C:C6
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:163438 errors:2515 dropped:0 overruns:0 frame:2515
TX packets:165217 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:96792997 (92.3 MiB) TX bytes:16356841 (15.5 MiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:561 errors:0 dropped:0 overruns:0 frame:0
TX packets:561 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:119798 (116.9 KiB) TX bytes:119798 (116.9 KiB)
eth0被我用ifconfig eth0 down了。

[[email protected] autostart]# ip addr sh
2: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
4: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:12:f0:1d:e8:c5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.101/24 brd 192.168.1.255 scope global eth0
6: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:13:77:00:7c:c6 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.100/24 brd 192.168.0.255 scope global eth1
down下去的eth0在這裡還是能體現出來的。

[[email protected] autostart]# ip addr add 192.168.0.102/24 dev eth1
[[email protected] autostart]# ip addr sh eth1
6: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:13:77:00:7c:c6 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.100/24 brd 192.168.0.255 scope global eth1
inet 192.168.0.102/24 scope global secondary eth1
[[email protected] autostart]# ping 192.168.0.102
PING 192.168.0.102 (192.168.0.102) 56(84) bytes of data.
64 bytes from 192.168.0.102: icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from 192.168.0.102: icmp_seq=2 ttl=64 time=0.043 ms
通過ip程式增加了一個secondar ip address,通過ip addr show也能看到,而且能ping通,但是ifconfig中卻看不到。

[[email protected] autostart]# ifconfig -a
eth1 Link encap:Ethernet HWaddr 00:13:77:00:7C:C6
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:163888 errors:2515 dropped:0 overruns:0 frame:2515
TX packets:165696 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:96837439 (92.3 MiB) TX bytes:16426734 (15.6 MiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:565 errors:0 dropped:0 overruns:0 frame:0
TX packets:565 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:120134 (117.3 KiB) TX bytes:120134 (117.3 KiB)
但是ip alias和secondary ip address在實際的使用過程中,會有什麼差別呢?
大部分HA軟體,包括開源的heartbeat都採用了ip alias的方式,為什麼他們不採用secondary ip address方式呢?
或者說ip alias和secondary ip address比較起來,誰更優秀呢?

五、ip別名的應用

通過使用從屬ip地址或ip別名,你可以在一個ip地址上提供一個服務如sendmail,以及在另一個ip地址上提供另外的服務,如HTTP,即使這兩個ip地址同屬於一臺計算機(一塊物理網絡卡,一個MAC地址)。

當你使用Heartbeat在一個從屬ip地址(或ip別名)上提供一個服務時,這個服務是屬於伺服器的(意味著伺服器是啟用的或主要節點),伺服器擁有用於訪問服務的ip地址,備用節點必須使用從屬ip地址(或ip別名),當主節點出故障時,服務應該都備用節點提供,備用伺服器不但需要啟動服務或守護程序,而且還需要為它的網絡卡新增適當的從屬ip地址(或ip別名)。

使用乙太網傳輸心跳資料包的雙節點Heartbeat叢集配置如圖6-2所示。

 
(點選檢視大圖)圖6-2:一個基本的Heartbeat配置

在圖6-2中,ip地址209.100.100.2是主伺服器的主ip地址,它永遠不需要轉移到備用伺服器,備用伺服器的主ip地址是209.100.100.5,同樣這個ip地址也永遠不用轉移到另外的網絡卡上,然而,ip地址209.100.100.3和209.100.100.4分別關聯到執行在主伺服器上的某個特定的服務上,如果主伺服器停掉,這些ip地址需要轉移到備用伺服器上,如圖6-3所示。

 
(點選檢視大圖)圖6-3:主伺服器失效後相同的Heartbeat基本配置

相關推薦

IP別名及其應用

Linux下配置網絡卡ip別名何謂ip別名(ip alias)?用windows的話說,就是為一個網絡卡配置多個ip。什麼場合增加ip別名能派上用場?佈網需要、多ip訪問測試、特定軟體對多ip的需要...and so on.下面通過幾個例子簡單介紹一下如何使用ifconfi

Storm概念、原理詳解及其應用(一)BaseStorm

when 結構 tails 並發數 vm 虛擬機 cif 異步 優勢 name 本文借鑒官文,添加了一些解釋和看法,其中有些理解,寫的比較粗糙,有問題的地方希望大家指出。寫這篇文章,是想把一些官文和資料中基礎、重點拿出來,能總結出便於大家理解的話語。與大多數“wordc

九. 常用類庫、向量與哈希5.向量及其應用

構造 pty obj 元素 init container right setsize 使用數組 Vector(向量)是 java.util 包中的一個類,該類實現了類似動態數組的功能。向量和數組相似,都可以保存一組數據(數據列表)。但是數組的大小是固定的,一旦指定,就不能改

Java類的設計----多態性及其應用

強制轉換 override enter -c ont 處理 shopping exce int 多態性及其應用 多態性 多態—在Java中,子類的對象可以替代父類的對象使用一個變量只能有一種確定的數據類型一個引用類型變量可能指向(引用)多種不同類型的對象   Pers

組合數學及其應用——polya計數

固定 更多 符號 .com 過程 嘗試 容易 高中 立方體 在處理類似下面的問題中,一般的計數方法會出現問題:假如你要用紅、藍兩種顏色給一個正四面體的四個頂點著色,試問存在多少種不同的著色方案? 在高中我們常用的方法是模擬塗色過程,分情況討論,然後基於分步乘法原理

《ACM-ICPC程序設計系列 數論及其應用》課後習題個人答案記錄

%0 show ++ cpc problem 要求 sca c程序 .cn 例1.1:HDU2099(2017/9/4) 本題書上給的答案是從0到99枚舉,顯然可以優化到每次遞增b,這樣至少可以把枚舉次數減少到1/10。 1 #include<cstdio>

Java實現深度遍歷和廣度遍歷數及其應用

fss blog nac emd fan 深度遍歷 apu soc use dc9mr6賦炮炮窖屠韌http://docstore.docin.com/hhmg5158wbx7ax睪躍茁胤駁諭http://shufang.docin.com/sina_6372926856g

日誌收集系統Flume及其應用

註意 內存緩存 外部 ner 流動 場景 啟動 net conf Apache Flume概述   Flume 是 Cloudera 提供的一個高可用的,高可靠的,分布式的海量日誌采集、聚合和傳輸的系統。Flume 支持定制各類數據發送方,用於收集各類型數據;同時,Flu

【數據結構】——堆及其應用

swap 堆的插入 一維數組 assert memset tro != for 統計 一、堆 先說說堆概念:如果有一個關鍵碼的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉樹的順序存儲方式存儲在一個一維數組中,並滿足:Ki <= K2i+1

智能指針的原理及其應用

智能指針的原理及其應用所謂智能指針就是自動化管理指針所指向的動態資源的釋放。那麽智能指針的引用是為了解決哪些問題呢?代碼中經常會忘掉釋放動態開辟的資源,引用智能指針可用於動態資源管理,資源分配即初始化,定義一個類來封裝資源的分配和釋放,在構造函數中完成資源的分配和初始化,在析構函數完成資源的清理,可以保證資源

打造信任機器——區塊鏈技術及其應用

得到 顛覆 消費 要素 生態系統 新特性 客戶 流程 另一個 《展望》:區塊鏈技術被稱為革命性技術,具有改變世界的潛力。為何大家對它如此樂觀?區塊鏈技術又會對我們的生活和工作方式產生什麽影響? 區塊鏈技術確實備受關註,這主要由於其重要應用——比特幣的顛覆性特點。比特幣在一定

day27—JavaScript實現定時器及其應用案例

scrip tin 定時 定時器對象 延遲 day 方法 fun value 轉行學開發,代碼100天——2018-04-12 JavaScript中定時器有兩種,分別是setInterval和setTimeout;其用法如下: 開啟: setTimeout("fun

素數序列的生成及其應用(采用了新學的更高效的算法:布爾標記法 + 倍數淘汰法)

lin ++ lse 大於 所有 void ont null -a 問題: 不超過2000的素數有哪些? 她的QQ號是素數嗎? 解決: 已知: 1不是素數 2是素數 大於2的偶數不是素數 大於2的素數是奇數 當自然數k > 1時,素數的k被數不是素數 策略:

素數序列的生成及其應用 Advanced Version 1

one version 全部 text 硬盤 tar TP AD edr 算法依據: 若某大於1的整數N的算術平方根以內的所有素數都不能整除N,那麽N是素數。 數據容器: 小型數組BUFFER、二進制文件CACHE 程序特性: 理論上使用極少的內存(0.5MB左右)就能獲取

高等數學之多元函數微分及其應用之小結

鄰域 ont 我們 有偏 函數 bsp 倒數 連續 span                                 1.多元函數的極限 1.證明多元函數的極限 |.為了區別一元函數的極限,我們把二元函數的極限叫做二重極限。三元及以上就依次類推。 2.極值的必要條件

【圖的遍歷】廣度優先遍歷(DFS)、深度優先遍歷(BFS)及其應用

bsp 及其 spa (第五版 family 實驗 條件 soft 深度優先遍歷算法 無向圖滿足約束條件的路徑 • 目的:掌握深度優先遍歷算法在求解圖路徑搜索問題的應用 內容:編寫一個程序,設計相關算法,從無向圖G中找出滿足如下條件的所有路徑 (1)給定

方法重寫概述及其應用 學習筆記

pub 父類靜態 static ID 詳細 string nds CA 主體 class Demo7_Phone { public static void main(String[] args) { Ios8 i = new Ios8();

數字簽名原理及其應用

原理 https tail baidu aid detail tar 數字簽名 blank https://blog.csdn.net/qmickecs/article/details/73696954 https://baike.baidu.com/item/%E6%9

淺談Android中幸運快三平臺出租的meta-data及其應用

key 引用 平臺 name 如何 Coding pri sch xxxxx 在日常幸運快三平臺出租 haozbbs.com Q1446595067 的Android開發中,AndroidManifest中總會出現一些標簽,或是第三方SDK配置信息,或是系統配置,不禁讓人

《Python語言及其應用》.pdf: pdf 完整版免費下載

python文件 ott ... 復制 容器 nis 是否 style 4.5 《Python語言及其應用》.pdf: pdf 完整版免費下載https://u253469.ctfile.com/fs/253469-298090780 更多電子書下載: http://