【背景】
創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、象州網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為象州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。今年ipv6的事情再次提上議程,工信部一直在強(qiáng)推,不知道大家都開搞沒有?我們這邊收到的要求是這樣的:
一開始只是說Q4只要保證測(cè)試環(huán)境下主要業(yè)務(wù)功能可以在ipv6 環(huán)境下順利運(yùn)作即可,突然就變成至少灰度10%的線上流量到ipv6環(huán)境
這段時(shí)間都在折騰ipv6 的事情,各種環(huán)境部署聯(lián)調(diào)什么的,翻閱不少資料,但網(wǎng)上關(guān)于這塊的資料實(shí)在太少了,環(huán)境部署期間踩過不少坑,這里簡(jiǎn)單記錄下。
【部署】
lb-01 | lb-02 | rs-01 | rs-02 | vip | |
ipv4 | 10.1.1.111 | 10.1.1.112 | 10.1.1.113 | 10.1.1.114 | 10.21.5.7 |
ipv6 | 240e:45e:1111:1ff::1 | 240e:45e:1111:1ff::2 | 240e:45e:1111:1ff::3 | 240e:45e:1111:1ff::4 | 240e:97d:1111:2ff::2 |
一、ospf
1、打開ospf6d進(jìn)程監(jiān)聽
ipv6環(huán)境下相比原來ipv4,需要額外打開ospf6d
root@node-01:/etc/quagga#?cat??daemons zebra=yes bgpd=no ospfd=yes ospf6d=yes ripd=no ripngd=no isisd=no
2、配置ospf
root@node-01:/etc/quagga#??cat?/etc/quagga/ospf6d.conf ! !?Zebra?configuration?saved?from?vty !???2019/11/21?11:55:20 ! hostname?ospf6d password?zebra log?stdout log?file?/var/log/quagga/ospf6d.log ! ! interface?eth0 ipv6?ospf6?hello-interval?1 ipv6?ospf6?dead-interval?3 ipv6?ospf6?priority?0 ipv6?ospf6?instance-id?0 interface?lo ipv6?ospf6?hello-interval?1 ipv6?ospf6?dead-interval?3 ipv6?ospf6?priority?0 ipv6?ospf6?instance-id?0 router?ospf6 ?router-id?10.1.1.111 ?interface?eth0?area?0.0.0.0 ?interface?lo?area?0.0.0.0 ! line?vty
以下是ipv4的ospf 配置,可以對(duì)比下配置之間的差異
! !?Zebra?configuration?saved?from?vty !???2019/10/15?16:51:09 ! hostname?ospfd password?zebra log?stdout log?file?/var/log/quagga/ospf.log ! ! interface?eth0 ! ip?ospf?hello-interval?1 ip?ospf?dead-interval?3 ip?ospf?priority?0 interface?eth2 ! ip?ospf?hello-interval?1 ip?ospf?dead-interval?3 ip?ospf?priority?0 ! router?ospf ospf?router-id?10.1.1.111 network?10.21.5.7/32?area?0.0.0.0 network?10.1.1.0/24?area?0.0.0.0 ! line?vty
注意事項(xiàng):
log file 建議設(shè)置一個(gè)額外的日志路徑,跟原來ipv4 ospfd 日志分開打印,方便日后排查問題
router ospf 配置改成router ospf6
ospf 進(jìn)程id一般使用機(jī)器IP(保證唯一即可)
還有一個(gè)大的不同就是機(jī)器IP網(wǎng)段跟VIP不需要在router ospf 里面宣告,ipv6只需要指定哪些接口需要對(duì)外宣告即可
3、啟動(dòng)quagga
root@node-01:/etc/quagga#?/etc/init.d/quagga?restart [?ok?]?Restarting?quagga?(via?systemctl):?quagga.service.
啟動(dòng)后會(huì)看到多watch 了一個(gè)ospf6d進(jìn)程
root@node-01:/etc/quagga#?ps?aux|grep?quagga quagga???25820??0.0??0.0??24496???616??????????Ss???15:15???0:00?/usr/lib/quagga/zebra?--daemon?-A?127.0.0.1 quagga???25824??0.0??0.0??26980??2732??????????Ss???15:15???0:00?/usr/lib/quagga/ospfd?--daemon?-A?127.0.0.1 quagga???25828??0.0??0.0??24556???628??????????Ss???15:15???0:00?/usr/lib/quagga/ospf6d?--daemon?-A?::1 root?????25833??0.0??0.0??15428???168??????????Ss???15:15???0:00?/usr/lib/quagga/watchquagga?--daemon?zebra?ospfd?ospf6d
telnet 本地2606 端口
root@node-01:/etc/quagga#?telnet?::1?2606 Trying?::1... Connected?to?::1. Escape?character?is?'^]'. Hello,?this?is?Quagga?(version?0.99.24.1). Copyright?1996-2005?Kunihiro?Ishiguro,?et?al. User?Access?Verification ospf6d>?show?ipv6?ospf6?neighbor Neighbor?ID?????Pri????DeadTime??State/IfState?????????Duration?I/F[State] 10.1.1.1???255????00:00:02???Full/DR??????????????00:00:09?eth0[DROther]
注:這里遇到一個(gè)坑,由于我們跑的是TUNNEL模式的LVS,需要將MTU設(shè)小,在ospf起來后,發(fā)現(xiàn)沒辦法跟交換機(jī)建立鄰居,交換機(jī)側(cè)日志顯示需要將交換機(jī)接口MTU設(shè)成一樣的值(我們的環(huán)境下是1440)
而ipv4 環(huán)境下交換機(jī)側(cè)并不需要設(shè)置MTU。
4、配置VIP
LB 上面啟動(dòng)ipv6 vip
有兩種配置方式:(IPV6相關(guān)操作命令見文末)
方式一:
root@node01:/etc/quagga#??ip?addr?add?240E:97D:1111:2FF::2/64?dev?lo:vip1?label?lo:vip1
方式二:
root@node01:/etc/quagga#??/sbin/ifconfig?lo:vip3?inet6?add?240E:97D:1111:2FF::2/64
5、測(cè)試ipv6 vip連通性
root@ubuntu:/usr/local/named/etc#?ping6?240e:97d:1111:2ff::2?-c?3 PING?240e:97d:1111:2ff::2(240e:97d:1111:2ff::2)?56?data?bytes 64?bytes?from?240e:97d:1111:2ff::2:?icmp_seq=1?ttl=51?time=28.4?ms 64?bytes?from?240e:97d:1111:2ff::2:?icmp_seq=2?ttl=51?time=28.4?ms 64?bytes?from?240e:97d:1111:2ff::2:?icmp_seq=3?ttl=51?time=28.3?ms
注意:
測(cè)試的機(jī)器必須也有ipv6地址,否則會(huì)返回網(wǎng)絡(luò)不可達(dá)
二、配置LVS
1、編譯安裝較新版本keepalived(這里我編譯的是keepalived-2.0.18)
注:建議在 ubuntu16.04 以上版本環(huán)境下編譯,嘗試過在12.04 跟 14.04等低版本下ubuntu有些包找不到
root@ubuntu:/usr/local/src/keepalived-2.0.18# apt-get install libnftnl-dev libmnl-dev
root@ubuntu:/usr/local/src/keepalived-2.0.18# apt-get install iptables-dev libipset-dev libnl-3-dev libnl-genl-3-dev libssl-dev
root@ubuntu:/usr/local/src/keepalived-2.0.18# ./configure --prefix=/usr/local/keepalived
root@ubuntu:/usr/local/src/keepalived-2.0.18# ?make && make install
2、keepalived配置
方式一:命令行
root@node-01:/etc/quagga#?ipvsadm?-A?-t?[240e:97d:2014:1ff::2]:80?-s?rr root@node-01:/etc/quagga#?ipvsadm?-a?-t?[240e:97d:2014:1ff::2]:80?-r?10.21.41.43:80?-i root@node-01:/etc/quagga#?ipvsadm?-a?-t?[240e:97d:2014:1ff::2]:80?-r?10.21.41.44:80?-i
方式二:
virtual_server?240e:97d:1111:2ff::2?80?{ ????delay_loop?6 ????lb_algo??wrr ????lb_kind?TUN ????persistence_timeout?0 ????protocol?TCP ????real_server?240e:45e:1111:1ff::3?80?{ ????????weight?10 ????????TCP_CHECK?{ ????????????connect_port?80 ????????????connect_timeout?8 ????????????nb_get_retry?3 ????????????delay_before_retry?3 ????????} ????} ????real_server?240e:45e:1111:1ff::4?80?{ ????????weight?10 ????????TCP_CHECK?{ ????????????connect_port?80 ????????????connect_timeout?8 ????????????nb_get_retry?3 ????????????delay_before_retry?3 ????????} ????} }
root@node-01:/etc/quagga#?ipvsadm?-ln IP?Virtual?Server?version?1.2.1?(size=1048576) Prot?LocalAddress:Port?Scheduler?Flags ??->?RemoteAddress:Port???????????Forward?Weight?ActiveConn?InActConn TCP??[240e:97d:1111:2ff::2]:80?rr ??->?[240e:45e:1111:1ff::3]:80????Tunnel??1??????0??????????0????????? ??->?[240e:45e:1111:1ff::4]:80????Tunnel??1??????0??????????0
3、配置RS VIP
LVS tunnel模式下,RS上面需要做2個(gè)事情,一個(gè)是起VIP,一個(gè)是跟LB間建立TUN隧道
root@node-03:~?#?ip?-6?tunnel?add?lvs6tun0?mode?ip6ip6?local?240e:45e:1111:1ff::3?remote?240e:45e:1111:1ff::2?dev?eth0 root@node-03:~?#?ip?link?set?dev?lvs6tun0?up root@node-03:~?#?ip?-6?addr?add?240e:97d:1111:2ff::2/64?dev?lvs6tun0
創(chuàng)建ipv6 tunnel 命令說明,由于是點(diǎn)對(duì)點(diǎn)tunnel,這里需要指明local 即本地RSIP,remote 對(duì)端IP,也就是LB的IP
ip?-6?tunnel?add?lvs6tun0?mode?ip6ip6?local?$rs-ip?remote?$lb-ip?dev?$interface
點(diǎn)對(duì)點(diǎn)顧名思義就是每個(gè)節(jié)點(diǎn)之間需要建立peer,n個(gè)LB節(jié)點(diǎn),m個(gè)RS節(jié)點(diǎn),最終需要建立 n * m 個(gè)tunnel
這里跟ipv4 比較大的區(qū)別是,ipv6沒有廣播地址,沒辦法建立一個(gè)一對(duì)多的tunnel,只能基于ip6ip6協(xié)議建立一個(gè)點(diǎn)對(duì)點(diǎn)的tunnel,下面是ipv4環(huán)境下tunnel 創(chuàng)建的方式,可以對(duì)比下:
/sbin/ifconfig?tunl0?$vip?broadcast?$vip?netmask?255.255.255.255?up /sbin/route?add?-host?$vip?dev?tunl0
4、服務(wù)測(cè)試
在一臺(tái)擁有ipv6 的機(jī)器上(不能是上述集群中的機(jī)器),嘗試通過ipv6 vip 訪問
root@ubuntu:~?#?for?i?in?{0..999};do?nc?-6?-v?-w?1?240e:97d:1111:2ff::2?80;done Connection?to?240e:97d:1111:2ff::2?80?port?[tcp/http]?succeeded! Connection?to?240e:97d:1111:2ff::2?80?port?[tcp/http]?succeeded! Connection?to?240e:97d:1111:2ff::2?80?port?[tcp/http]?succeeded! ...?... root@ubuntu:~?#?curl?http://[240e:97d:1111:2ff::2]/?-H"Host:ipv6-test.aaa.com" Test?Page
至此,測(cè)試環(huán)境可以正常通信。
另外說明一點(diǎn),測(cè)試的時(shí)候也驗(yàn)證了LVS NAT/DR模式,都可以原生支持,不像TUNNEL 這么麻煩,像DR模式,RS上配置個(gè)VIP上去就完事了。之所以沒采用DR,是因?yàn)镈R模式存在LB跟RS必須在同個(gè)網(wǎng)段的限制,我們生產(chǎn)環(huán)境無法保證LB跟RS一定在同網(wǎng)段。而NAT性能較差,F(xiàn)ullNAT 也有一部分業(yè)務(wù)在用,性能不是特別好,依賴nf_conntrack 表,最后選擇了TUNNEL模式。
注意:
部署過程中ipv6 tunnel 的配置最費(fèi)勁,嘗試過各種方式,都不行?,F(xiàn)象是LB 給RS 發(fā)了SYN包,但收不到ACK, LB上連接處于一個(gè)SYNC_RECV狀態(tài)(通過ipvsadm -lnc 可以看到連接狀態(tài))
最后通過上面的點(diǎn)對(duì)點(diǎn)tunnel方式解決,暫時(shí)沒有其他更合適的方式,后續(xù)發(fā)現(xiàn)了再更新下。
上述只是一個(gè)基本可用的測(cè)試環(huán)境,要正式上線的話還需要進(jìn)行各種性能、參數(shù)調(diào)優(yōu)才行。
ipv6 其實(shí)涉及的東西非常多,并不僅僅只有上面提到的,還有DNS、GSLB、業(yè)務(wù)、網(wǎng)絡(luò)、CDN等等各個(gè)層面都會(huì)涉及相關(guān)的改造。測(cè)試的話可以玩一玩,但正式上線還是得謹(jǐn)慎,畢竟據(jù)我了解國內(nèi)很多運(yùn)營商對(duì)ipv6 支持還不是特別好,據(jù)上次跟阿里云的同學(xué)交流,在相同場(chǎng)景下,從ipv4 切到 ipv6 性能會(huì)降20%-40%,需要靠后期不斷優(yōu)化,總的來說任重道遠(yuǎn)。
附:
1、IPV6環(huán)境測(cè)試網(wǎng)站
純ipv6環(huán)境請(qǐng)使用:http://ipv6.test-ipv6.com
雙棧環(huán)境請(qǐng)使用:http://www.test-ipv6.com/
2、ipv6相關(guān)指令
http://tldp.org/HOWTO/Linux+IPv6-HOWTO/ch06s02.html
http://tldp.org/HOWTO/Linux+IPv6-HOWTO/ch07s02.html
http://tldp.org/HOWTO/Linux+IPv6-HOWTO/ch04s03.html
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站欄目:LVS+OSPFIPV6部署-創(chuàng)新互聯(lián)
新聞來源:http://aaarwkj.com/article16/ccdpgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站收錄、網(wǎng)站制作、定制開發(fā)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容