亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        OVS環(huán)境IPv4/v6數(shù)據(jù)包轉換

        2018-01-20 06:42:04胡宇鴻高鴻峰韋旭勤蔣源
        電腦知識與技術 2018年31期
        關鍵詞:流表

        胡宇鴻 高鴻峰 韋旭勤 蔣源

        摘要:為實現(xiàn)數(shù)據(jù)中心虛擬主機在IPv4/6混合使用情況下IPv4與IPv6主機間的數(shù)據(jù)交換,在開源虛擬交換機(OVS)中匹配確定的v4地址規(guī)則,增加數(shù)據(jù)包轉換模塊,完成內(nèi)嵌IPv4的IPv6地址的地址轉換和數(shù)據(jù)包轉換,匹配確定的v6地址到預定v4地址的數(shù)據(jù)包轉換。

        關鍵詞:開源虛擬交換機;IPv4/v6;流表

        中圖分類號:TP393.06? ? ? 文獻標識碼:A? ? ? 文章編號:1009-3044(2018)31-0036-02

        隨著云計算被越來越多用戶接受,各類IT服務企業(yè)均大量建設和擴展數(shù)據(jù)中心,同時伴隨著IPv4地址的耗盡,IPv6技術在新建或擴展數(shù)據(jù)中心時被越來越多地采用,但是實現(xiàn)IPv4/v6在數(shù)據(jù)中心的完全融合、平滑過渡,仍然需要逐步實現(xiàn)。當前虛擬化技術廣泛地被應用到數(shù)據(jù)中心,虛擬交換機也越來越多地被用來通過標準接口和擴展編程實現(xiàn)服務器分布式管理和大規(guī)模網(wǎng)絡自動化。

        基于此本文討論基于虛擬交換機環(huán)境下IPv4/v6的數(shù)據(jù)包轉換技術,實現(xiàn)虛擬交換機環(huán)境下IPv4/v6主機間的數(shù)據(jù)交換。

        1 虛擬交換機

        OpenVswitch是Apache2.0許可下的開源多層虛擬交換機,可實現(xiàn)對數(shù)據(jù)包的接收、分析和處理,是網(wǎng)絡虛擬化的重要組成部分,同時支持NetFlow、sFlow、SPAN、RSPAN等標準的管理接口和協(xié)議。通過與虛擬主機緊密結合能實現(xiàn)比物理交換機工作更高的工作效率,根據(jù)實際需求可同時虛擬出多個虛擬端口,與物理交換機相比具有更靈活、成本更低等優(yōu)勢[1]。

        1.1 Linux內(nèi)核數(shù)據(jù)包處理流程

        常規(guī)情況下數(shù)據(jù)報文由驅動程序處理后從物理網(wǎng)卡獲取數(shù)據(jù),如數(shù)據(jù)報文目的不為本地,則根據(jù)路由信息從指定物理接口轉發(fā)出去;如報文需本地處理則按照分層原則逐層分析,最后通過用戶態(tài)與內(nèi)核態(tài)接口將數(shù)據(jù)傳送到用戶態(tài)由上層應用繼續(xù)處理[2]。

        在OVS運行條件下,當數(shù)據(jù)包從物理網(wǎng)卡進入后,需依據(jù)OVS虛擬網(wǎng)橋中虛擬端口(vport)所綁定的物理網(wǎng)絡接口信息決定報文是否經(jīng)過vport進入OVS中,由OVS進行處理。

        1.2 OVS組成及數(shù)據(jù)處理流程

        OVS主要組成部件如圖2,ovsdb提供數(shù)據(jù)庫服務,存儲虛擬交換機的配置信息,利用OVSDB協(xié)議與管理端、vswitchd交換信息。vswitchd是OVS的核心部件,通過openflow可與controller通信,使用OVSDB協(xié)議與ovsdb-server通信,通過netlink和內(nèi)核模塊通信,支持多個獨立的datapath網(wǎng)橋,通過更改flow table實現(xiàn)綁定和VLAN等功能[1]。Datapath是OVS的內(nèi)核模塊,負責執(zhí)行數(shù)據(jù)交換,把從接收端口收到的數(shù)據(jù)包在流表中進行匹配,并執(zhí)行匹配到的動作。

        2 OVS下IPv4/v6數(shù)據(jù)包轉換

        2.1 OVS接收數(shù)據(jù)處理過程

        當虛擬交換機收到數(shù)據(jù)包,首先完成報文頭的提取并計算key值,根據(jù)實際需求選擇使用外部控制器管理或本地流表,虛擬交換機根據(jù)key值從第一個流表開始和流表項進行匹配,如果匹配成功,則更新計數(shù)器并根據(jù)流表中對應的action找到其對應的操作方法,完成相應的動作;匹配不成功,則執(zhí)行默認的動作或回到Linux內(nèi)核網(wǎng)絡協(xié)議棧中繼續(xù)處理。詳細代碼處理過程如圖3[2]。

        ovs_vport_receive_packets()接收到數(shù)據(jù)包后skb生成key值,如果出錯則調(diào)用ovs_dp_process_packet交付給datapath處理。正確則利用ovs_flow_tbl_lookup_stats()基于key值進行流表查找,返回匹配的流表項;若不存在匹配,則調(diào)用ovs_dp_upcall上傳至用戶空間進行匹配。匹配成功,則調(diào)用ovs_execute_actions執(zhí)行對應的操作。

        2.2 IPv4/v6的地址轉換

        在本次實現(xiàn)中,當v4地址轉換為v6地址時采用內(nèi)嵌IPv4的IPv6地址方案實現(xiàn)v4地址到v6地址的轉換[3]。根據(jù)預先設定的目標v6子網(wǎng)的方式選擇一個特定的/64前綴,然后加上4個設置為0的8位組構成/96特定網(wǎng)絡前綴,/96位的網(wǎng)絡前綴加上32位的v4地址構成完整的v6地址。

        當v6地址轉換為v4地址時,因為v6地址的空間遠遠大于v4地址空間,本次實驗中采用預指定的方式構成v6地址到v4地址的對應。

        數(shù)據(jù)包協(xié)議頭轉換如表1、表2[4]。

        2.3 OVS中轉換過程的實現(xiàn)過程

        目前OVS最新版本支持IPv4和IPv6基本功能,但是并未提供v4/v6數(shù)據(jù)包轉換的功能。根據(jù)OVS數(shù)據(jù)包接收處理流程,根據(jù)需要在匹配流標后轉到指定的action執(zhí)行對應操作。

        定義v4conv6和v6conv4的action。

        /* OpenFlow 1.2, 1.3, and 1.4 actions. */

        static conststruct ofpact_map of12[]? { OFPACT_HANDLE_V4TOV6, 30 },

        static conststruct ofpact_map of12[]? { OFPACT_HANDLE_V6TOV4, 32 },

        添加raw action type

        enum ofp_raw_action_type {

        ……

        /* OF1.2-1.4(28): void. */

        OFPAT_RAW12_HANDLE_V4TOV6,

        OFPAT_RAW12_HANDLE_V6TOV4,

        ……

        }

        添加HANDLE_V4TOV6的action的處理函數(shù)。

        Static enum ofperr decode_OFPAT_RAW12_ HANDLE_V4 TOV6(struct ofpbuf *out)

        static void encode_HANDLE_EXAMPLE (conststruct ofpact_null *null OVS_UNUSED, enum ofp_version ofp_version, struct ofpbuf *out)

        static char *OVS_WARN_UNUSED_RESULT parse_ HANDLE_V4TOV6(char *arg OVS_UNUSED, struct ofpbuf *ofpacts, enum ofputil_protocol *usable_protocols OVS_UNUSED)

        static void format_HANDLE_V4TOV6 (conststruct ofpact_null *a OVS_UNUSED, struct ds *s)

        convert_IPV4_V6_addr具體實現(xiàn)

        static void convert_IPV4_V6_addr(struct sk_buff *skb,__be32 s_ipv6[4],__be32 d_ipv6[4])

        {

        //按2.2中所述完成IPv4到IPv6報文頭轉換;

        }

        類似添加HANDLE_V6TOV4的action的處理函數(shù)。

        static void convert_IPV4_V6_addr(struct sk_buff *skb,__be32 s_ipv4,__be32 d_ipv4)

        {

        //按2.2中所述完成IPv6到IPv4報文頭轉換;

        }

        3 結語

        本文通過在OVS中實現(xiàn)IPv4和IPv6數(shù)據(jù)包轉換,為OVS與控制器結合對v4/v6數(shù)據(jù)包的靈活傳輸、處理及應用做好準備。

        參考文獻:

        [1] A Linux Foundation Collaborative Project Open vSwitch Documentation [EB/OL]. http://docs.openvswitch.org/en/latest/, 2016.

        [2] 張若晨. 基于OpenvSwitch的代理虛擬交換機在SDN網(wǎng)絡中的實現(xiàn)與應用[D]. 廣州: 華南理工大學軟件學院, 2016: 17-22.

        [3] BAO C, HUITEMA C, BAGNULO M, et al.IPv6 addressing of IPv4/IPv6 translators[S]. RFC 6052, 2010.

        [4] LI X, BAO C, BAKER F. IP/ICMP translation algorithm[S]. RFC 6145, 2011.

        猜你喜歡
        流表
        適應機動通信網(wǎng)絡混合SDN控制機制研究
        基于匹配動作表模型的可編程數(shù)據(jù)平面流表歸并
        OpenFlow交換機流表溢出緩解技術研究綜述
        基于Holt 雙參數(shù)指數(shù)平滑法的SDN 交換機流表超時優(yōu)化策略*
        基于時序與集合的SDN流表更新策略
        軟件定義網(wǎng)絡中OpenFlow流表空間優(yōu)化技術研究進展
        基于包成批特性的OpenFlow流表高效區(qū)分存儲算法
        基于緩存策略的OpenFlow流表存儲優(yōu)化方案研究
        電子測試(2018年21期)2018-11-08 03:09:34
        簡析yangUI流表控制
        軟件定義網(wǎng)絡中一種兩步式多級流表構建算法
        少妇私密会所按摩到高潮呻吟 | 国产精品第一区亚洲精品| 国产让女高潮的av毛片| 日本视频一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 午夜性无码专区| 香蕉成人啪国产精品视频综合网| 日本高清中文一区二区三区| 亚洲中文字幕乱码第一页| 国产一区二区三区免费观看在线| 亚洲人成无码网站久久99热国产 | 97一区二区国产好的精华液| jk制服黑色丝袜喷水视频国产| 亚洲成av人片极品少妇| av无码国产在线看免费网站| 永久免费观看的毛片手机视频 | 久久婷婷色综合一区二区| 国产精品自拍首页在线观看| 最新中文字幕亚洲一区| 免费人成视频x8x8入口| 国产黑丝在线| 日本成人在线不卡一区二区三区| 免费国产在线视频自拍白浆| 亚洲熟妇无码八av在线播放| 老汉tv永久视频福利在线观看| 国产熟女露脸大叫高潮| 国产日韩欧美一区二区东京热| a级毛片毛片免费观看久潮喷| 成人午夜免费福利| 一本之道日本熟妇人妻| 亚洲精品乱码久久久久久| 国产精选污视频在线观看| 日韩欧美在线观看成人| 人妻少妇偷人精品一区二区三区 | 四虎成人精品无码永久在线| 亚洲视频在线免费观看一区二区| 亚洲色大成网站www永久| 又硬又粗又大一区二区三区视频| 一区二区三区不卡免费av | 无码aⅴ精品一区二区三区浪潮 | 99热爱久久99热爱九九热爱|