LVS-DR VIP和RIP不同網段的配置方法
在網上流傳的很多文章中,LVS-DR模式都要求VIP和RIP在同一網段,很少有在不同網段配置成功的案例。但章文嵩博士已經在官網上明
確回答了是可以在不同網段的(見),負載排程器只要有一個網口和真實伺服器是透過不分
段的網路連線起來就可以,真實伺服器可以透過自己的路由器將響應報文傳送給客戶。也就是說Director至少要有兩個網口才滿足VIP和RIP
不在同一網段。
LVS-HOWTO()也說明了LVS-DR的要求。
從realserver到client路由,可以是另外的,也可能透過director,但要使用director做路由必須對director的核心打forward_shared
補丁,不然director不會轉發源IP是自已的包(見)。
如果使用另外的路由,則只要求能從realserver到client就行了,不需要得到client的響應,因此realserver可以放在防火牆後面。
下面是具體的配置過程:
director有兩塊網路卡:
eth0 192.168.2.254 用於跟realserver連線
eth1 61.180.79.110 外網IP,VIP也繫結到此網路卡
director的配置
1、安裝ipvsadm
ipvsadm是用來管理lvs設定的命令列工具,可以用來檢視當前狀態。
yum install ipvsadm
2、安裝keepalived
keepalived可以用於雙機熱備的自動故障轉移,也可以管理lvs的realserver列表,自動對realserver做健康檢查。
wget -c
tar zxvf keepalived-1.2.2.tar.gz
cd keepalived-1.2.2
./configure --prefix=/usr --sysconfdir=/etc
如果最後顯示
Use IPVS Framework : No
IPVS sync daemon support : No
請指定核心原始碼目錄再執行configure
./configure --prefix=/usr --sysconfdir=/etc --with-kernel-dir=/usr/src/kernels/linux-2.6.35.9
make && make install
將keepalived加入服務中
chkconfig --add keepalived
chkconfig --level 35 keepalived on
修改配置檔案
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.old
vi /etc/keepalived/keepalived.conf
填入以下內容
! Configuration File for keepalived
global_defs {
notification_email {
#需要本機SMTP服務
}
notification_email_from
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER #備份伺服器上將MASTER改為BACKUP
interface eth1 #HA監測網路介面(繫結VIP的網口)
virtual_router_id 1 #主、備機的virtual_router_id一定要相同,必須相同!!!
priority 100 #主、備機取不同的優先順序,主機值較大,備份機值較小
advert_int 1 #VRRP Multicast廣播週期秒數
authentication {
auth_type PASS #VRRP認證方式
auth_pass 1111 #VRRP口令字
}
virtual_ipaddress {
61.180.79.18 #LVS虛擬地址,可寫多個VIP,一行一個VIP
}
}
virtual_server 61.180.79.18 80 {
delay_loop 2 #延時等待時間
lb_algo wrr #輪詢演算法
lb_kind DR #傳輸模式
persistence_timeout 0 #單一連結重連保持時間秒
protocol TCP
real_server 192.168.2.11 80 {
weight 1 #權重
TCP_CHECK { #realserve的狀態檢測設定部分,單位是秒
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.2.12 80 {
weight 1 #權重
TCP_CHECK { #realserve的狀態檢測設定部分,單位是秒
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
realserver的配置
rs1和rs2的IP分別是192.168.2.11 192.168.2.12
1、安裝nginx用於測試
wget -c
tar zxvf nginx-0.8.54.tar.gz
cd nginx-0.8.54
./configure --prefix=/usr/local/nginx
make && make install
啟動nginx
/usr/local/nginx/sbin/nginx
2、繫結VIP到lo
ifconfig lo:0 61.180.79.18 broadcast 61.180.79.18 netmask 255.255.255.255 up
3、將繫結VIP的網路卡設定為no_arp
vi /etc/sysctl.conf
增加
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
使之生效
sysctl -p
4、設定realserver能到達client的路由閘道器
route add default gw 192.168.2.1
我開始測試的時候,使用一個tp-link的無線寬頻路由器,一直配置不成功,後來用tcpdump分析才發現,這個路由器就是不轉發從
realserver到client的資料包,不知道什麼原因,但直接ping client又是通的,後來直接用一臺linux做路由就可以了
(net.ipv4.ip_forward = 1,而且這臺路由啟用NAT也不影響)。
如果要使用director做realserver到client的閘道器,就需要給director的核心打補丁,我是使用最新的核心編譯的,過程如下:
wget -c
tar -xjvf linux-2.6.35.9.tar.bz2
mv linux-2.6.35.9 /usr/src/kernels
為核心打forward_shared補丁
cd /usr/src/kernels
wget -c /usr/src/kernels/linux-2.6.35.9
patch -p1 < ../forward_shared-2.6.34-2.diff
cd
為了方便編譯配置,將boot目錄下的配置檔案複製到 /usr/src/kernels/linux-2.6.35.9
cp /boot/config-2.6.18-194.32.1.el5 /usr/src/kernels/linux-2.6.35.9/.config
make menuconfig 選擇 Load an Alternate Configuration 回車確認載入
預設情況下啟動時會提示如下錯誤:
mount: could not find filesystem ‘/dev/root’
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic – not syncing: Attempted to kill init!
解決方法:
執行完make menuconfig後,修改/usr/src/kernels/linux-2.6.35.9/.config
將#CONFIG_SYSFS_DEPRECATED_V2 is not set
預設被註釋掉的,將其改為y。即修改為
CONFIG_SYSFS_DEPRECATED_V2=y
根據需要再選擇編譯選項;
make (這個過程相當的漫長,起碼半個小時以上)
如果沒有錯誤,執行模組編譯安裝
make modules_install
編譯核心安裝
make install
sh /usr/src/kernels/linux-2.6.35.9/arch/x86/boot/install.sh 2.6.35.9 arch/x86/boot/bzImage
System.map "/boot"
看到如上提示表示編譯成功,
如果沒有看到錯誤,可以修改啟動項 讓 centos 啟動時載入 新核心, (如有編譯錯誤請勿修改啟動配置,否則啟動失敗)
vi /boot/grub/grub.conf
default=0 (修改為0 即可)
不知為什麼這個核心啟動的時候會報錯
insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists
解決辦法如下:
1、解壓initrd檔案
[root@vhost ~]# cp /boot/initrd-2.6.35.4.img /tmp
[root@vhost ~]# cd /tmp/
[root@vhost tmp]# ls
initrd-2.6.35.4.img
[root@vhost tmp]# mkdir newinitrd
[root@vhost tmp]# cd newinitrd/
[root@vhost newinitrd]# zcat ../initrd-2.6.35.4.img |cpio -i
11282 blocks
釋放之後看到如下內容
[root@vhost newinitrd]# ls
bin dev etc init lib proc sbin sys sysroot
2、下邊就是編輯init,刪掉其中重複的四行中的兩行
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
3、重新打包initrd
[root@vhost newinitrd]# find .|cpio -c -o > ../initrd
11282 blocks
[root@vhost newinitrd]# cd ..
[root@vhost tmp]# gzip -9 < initrd > initrd.img
[root@vhost tmp]# ls
initrd-2.6.35.4.img initrd initrd.img newinitrd
initrd.img就是重新打包的initrd了,然後把initrd.img複製到/boot
[root@vhost tmp]# mv /boot/initrd-2.6.35.4.img /boot/initrd-2.6.35.4.img.bak
[root@vhost tmp]# mv initrd.img /boot/initrd-2.6.35.4.img
[root@vhost tmp]# reboot
這樣“insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists” 就不會有了
使用新核心重啟後
vi /etc/sysctl.conf
修改或增加
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.eth0.forward_shared = 1
net.ipv4.conf.all.forward_shared = 1
sysctl -p
注意檢視forward_shared選項是否成功設定
這樣,就可以將realserver的閘道器改為192.168.2.254了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25723371/viewspace-1446935/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於不同網段的RAC架構VIP修改架構
- RIP配置
- RIP的基本配置
- 網路篇 RIP的實驗配置-23
- 配置RIP、OSPF實現全網互通
- 基於同網段的RAC架構VIP修改架構
- 同網段不同網段主機間通訊原理
- 實驗四————RIP協議的配置協議
- Tomcat 配置支援不同的域名訪問各自不同程式的配置方法Tomcat
- 配置RAC中的VIP
- 配置rip動態路由實驗路由
- eNSP華為路由器OSPF配置----OSPF和RIP互相通訊路由器
- 組網複習7 RIP
- LINUX下不同網段互相ping通Linux
- LVS NAT模式下,CIP和RIP處於同一內網的問題以及解決方法模式內網
- RIP
- 不同時間段的光色模型模型
- 不同作業系統下快照恢復後糾正網路配置的方法作業系統
- 在不同網段使用 VLAN 通訊 - SVI,單臂路由路由
- SQL Server 不同網段IP通過名稱訪問SQLServer
- js根據不同的時間段輸出不同的語句JS
- 微服務化的不同階段 Kubernetes 的不同玩法微服務
- git 不同目錄用不同的配置Git
- MYSQL + MHA +keepalive + VIP安裝配置(二)--MHA的配置MySql
- RAC 11GR3雙網段設定兩套VIP SCAN IP以及LISTENER
- 網際網路企業安全指南3.2 不同階段的安全建設重點
- Linux 下新增多網段方法Linux
- Docker預設網段和主機網段衝突解決Docker
- vue不同環境的壓包配置方法(vue-cli 3.0)Vue
- 11gr2 rac改IP系列之二:修改VIP為同網段其它IP
- 簡單的RIP實驗
- 天網防火牆的配置方法防火牆
- RAC中如何更改對外網路卡和內部網際網路卡的IP及VIP
- 將資料、程式碼、棧放入不同的段
- 專案管理不同階段的重點(轉)專案管理
- rac的vip和監聽莫名故障
- 網咖防治駭客策略的配置方法
- Apache配置多個網站的方法Apache網站