k8s網(wǎng)絡(luò)

[toc]

一、calico

官網(wǎng):https://www.projectcalico.org/

Calico是一個(gè)純?nèi)龑拥木W(wǎng)絡(luò)解決方案,為容器提供多node間的訪問(wèn)通信滑负,calico將每一個(gè)node節(jié)點(diǎn)都作為一個(gè)路由器(router)充包,各節(jié)點(diǎn)通過(guò)BGP(Border Gateway Protocol)邊界網(wǎng)關(guān)協(xié)議學(xué)習(xí)并在node節(jié)點(diǎn)生成路由規(guī)則跨算,從而將不通node節(jié)點(diǎn)上的pod連接起來(lái)進(jìn)行通信哺呜。

1.1 calico簡(jiǎn)介

網(wǎng)絡(luò)通過(guò)第三層路由技術(shù)(如靜態(tài)路由或BGP路由分配)或第二層地址學(xué)習(xí)來(lái)感知工作負(fù)載IP地址蜘澜。因此沾鳄,他們可以將未封裝的流量路由到作為最終目的地的端點(diǎn)的正確主機(jī)慨飘。但是,并非所有網(wǎng)絡(luò)都能夠路由工作負(fù)載IP地址译荞。例如公共云環(huán)境瓤的、跨VPC子網(wǎng)邊界的AWS,以及無(wú)法通過(guò)BGP吞歼、Calico對(duì)應(yīng)到underlay網(wǎng)絡(luò)或無(wú)法輕松配置靜態(tài)路由的其他場(chǎng)景圈膏,這就是為什么Calico支持封裝,因此可以再工作負(fù)載之間發(fā)送流量篙骡,而無(wú)需底層網(wǎng)絡(luò)知道工作負(fù)載IP地址本辐。

1.2 calico封裝類型

Calico支持兩種類型的封裝:VXLAN和IP-in-IP桥帆,VXLAN的數(shù)據(jù)包開(kāi)銷稍高,因?yàn)閳?bào)文頭較大慎皱,除非運(yùn)行的是網(wǎng)絡(luò)密集型工作負(fù)載老虫,否則通常不會(huì)注意到這種差異。另一個(gè)差異是Calico的VXLAN實(shí)現(xiàn)不使用BGP茫多,Calico的IP-in-IP是在Calico節(jié)點(diǎn)之間使用BGP協(xié)議實(shí)現(xiàn)跨子網(wǎng)祈匙。

BGP是一個(gè)去中心化的協(xié)議,它通過(guò)自動(dòng)學(xué)習(xí)和維護(hù)路由表實(shí)現(xiàn)網(wǎng)絡(luò)的可用性天揖,但是并不是所有的網(wǎng)絡(luò)都支持BGP夺欲,另外為了跨網(wǎng)絡(luò)實(shí)現(xiàn)更大規(guī)模的網(wǎng)絡(luò)管理,calico還支持IP-in-IP的疊加模型今膊,簡(jiǎn)稱IPIP些阅,IPIP可以實(shí)現(xiàn)跨不通網(wǎng)段建立路由通信,但是會(huì)存在安全性問(wèn)題斑唬,其在內(nèi)核內(nèi)置市埋,可以通過(guò)Calico的配置文件設(shè)置是否啟用IPIP,在公司內(nèi)部如果k8s的node節(jié)點(diǎn)沒(méi)有跨越網(wǎng)段建議關(guān)閉IPIP恕刘。

IPIP是一種將各Node的路由之間做一個(gè)tunnel缤谎,再把兩個(gè)網(wǎng)絡(luò)連接起來(lái)的模式。啟用IPIP模式時(shí)褐着,Calico將在各Node上創(chuàng)建一個(gè)名為"tunnel0"的虛擬網(wǎng)絡(luò)接口坷澡。

BGP模式則直接使用物理機(jī)作為虛擬路由器(vRouter),不再創(chuàng)建額外的tunnel含蓉。

1.3 calico核心組件

Felix:calico的agent频敛,運(yùn)行在每一臺(tái)node節(jié)點(diǎn)上,主要是維護(hù)路由規(guī)則馅扣、匯報(bào)當(dāng)前節(jié)點(diǎn)狀態(tài)以確保pod的跨主機(jī)通信斟赚。

BGP Client:每臺(tái)node都運(yùn)行,其主要負(fù)責(zé)監(jiān)聽(tīng)node節(jié)點(diǎn)上有felix生成的路由信息岂嗓,然后通過(guò)BGP協(xié)議廣播至其他node節(jié)點(diǎn),從而相互學(xué)習(xí)路由實(shí)現(xiàn)pod通信鹊碍。

Route Reflector:集中式的路由反射器厌殉,calico v3.3開(kāi)始支持,當(dāng)Calico BGP客戶端將路由從FIB(Forward Information dataBase侈咕,轉(zhuǎn)發(fā)信息庫(kù))通告到Route Reflector時(shí)公罕,Route Reflector會(huì)將這些路由通告為部署集群中的其他節(jié)點(diǎn),Route Reflector專門(mén)用于管理BGP網(wǎng)絡(luò)路由規(guī)則耀销,不會(huì)產(chǎn)生pod數(shù)據(jù)通信楼眷。

注:calico默認(rèn)工作模式是BGP的node-to-node mesh,如果要使用Route Reflector需要進(jìn)行相關(guān)配置。

二罐柳、flannel

2.1 flannel簡(jiǎn)介

由CoreOS開(kāi)源的針對(duì)k8s的網(wǎng)絡(luò)服務(wù)掌腰,解決k8s集群中各主機(jī)上的pod相互通信的問(wèn)題,借助于etcd維護(hù)網(wǎng)絡(luò)IP地址分配张吉,并為每一個(gè)node服務(wù)器分配一個(gè)不同的IP地址段齿梁。

2.2 flannel網(wǎng)絡(luò)模型

Flannel網(wǎng)絡(luò)模型(后端):UDP、VXLAN勺择、Host-gw

UDP:早起版本使用UDP封裝完成報(bào)文的跨主機(jī)轉(zhuǎn)發(fā)省核,安全性及性能不足气忠。

VXLAN:linux內(nèi)核再2012年底的v3.7.0之后加入VXLAN協(xié)議支持笔刹,因此新版本的flannel也由UDP轉(zhuǎn)換為VXLAN舌菜,VXLAN本質(zhì)上是一種tunnel(隧道)協(xié)議日月,用來(lái)基于三層網(wǎng)絡(luò)實(shí)現(xiàn)虛擬的二層網(wǎng)絡(luò)爱咬,目前flannel的網(wǎng)絡(luò)模型已經(jīng)是基于VXLAN的疊加(覆蓋)網(wǎng)絡(luò),目前推薦使用VXLAN網(wǎng)絡(luò)模型虱歪。

Host-gw:也就是Host GateWay笋鄙,通過(guò)在node節(jié)點(diǎn)上創(chuàng)建到達(dá)各目標(biāo)容器地址的路由表而完成報(bào)文的轉(zhuǎn)發(fā),因此這種方式要求各node節(jié)點(diǎn)必須處于同一個(gè)局域網(wǎng)(二層網(wǎng)絡(luò))中践美,不適用與網(wǎng)絡(luò)變動(dòng)頻繁或比較大型的網(wǎng)絡(luò)環(huán)境,但性能較好敛滋。

2.3 flannel組件

Cni0:網(wǎng)橋設(shè)備玫膀,每創(chuàng)建一個(gè)pod都會(huì)創(chuàng)建一對(duì)veth pair帖旨,其中一段是pod中的eth0解阅,另一端是Cni0網(wǎng)橋中的端口(網(wǎng)卡)述召,pod中從網(wǎng)卡eth0發(fā)出的流量都會(huì)發(fā)送到Cni0網(wǎng)橋設(shè)備的端口(網(wǎng)卡)上积暖,Cni0設(shè)備獲得的ip地址是該節(jié)點(diǎn)分配到的網(wǎng)段的第一個(gè)地址。

Flannel.1:overlay網(wǎng)絡(luò)的設(shè)備分别,用來(lái)進(jìn)行vxlan報(bào)文的處理(封包和解包)耘斩,不同node之間的pod數(shù)據(jù)流量都從overlay設(shè)備以隧道的形式發(fā)送到對(duì)端沼填。

三括授、flannel和calico網(wǎng)絡(luò)組件對(duì)比

calico支持網(wǎng)絡(luò)策略(NetworkPolicy),flannel不支持

calico性能優(yōu)于flannel

不啟用overlay:flannel host-gw(不支持網(wǎng)絡(luò)策略)荚虚,calico BGP(推薦)

啟用overlay:flannel vxlan,calico IPIP

四曲管、overlay和underlay

4.1 overlay網(wǎng)絡(luò)

4.1.1 overlay簡(jiǎn)介

疊加網(wǎng)絡(luò)(覆蓋網(wǎng)絡(luò))却邓,在物理網(wǎng)絡(luò)的基礎(chǔ)之上疊加實(shí)現(xiàn)新的虛擬網(wǎng)絡(luò)硕糊,在物理網(wǎng)絡(luò)的基礎(chǔ)之上疊加實(shí)現(xiàn)新的虛擬網(wǎng)絡(luò)腊徙,即可使用網(wǎng)絡(luò)中的容器相互通信

4.1.2 overlay實(shí)現(xiàn)方式

overlay使用VxLAN或NVGRE技術(shù)實(shí)現(xiàn)

  • VxLAN

VxLAN全稱是Visual eXtensible Local Area Network(虛擬擴(kuò)展本地局域網(wǎng))撬腾,主要有Cisco推出,vxlan是一個(gè)VLAN的擴(kuò)展協(xié)議漓踢,由IETF定義的NVO3(Network Virtualization over Layer 3)標(biāo)準(zhǔn)的技術(shù)之一,VXLAN的特點(diǎn)是將L2的以太幀封裝到UDP報(bào)文(即L2 over L4)中,并在L3網(wǎng)絡(luò)中傳輸挺据,即使用MAC in UDP的方法對(duì)報(bào)文進(jìn)行重新封裝,VxLAN本質(zhì)上是一種overlay的隧道封裝技術(shù)脖隶,它將L2的以太網(wǎng)幀封裝成L4的UDP數(shù)據(jù)報(bào)扁耐,然后再L3的網(wǎng)絡(luò)中傳輸,效果就像L2的以太網(wǎng)幀在一個(gè)廣播域中傳輸一樣产阱,實(shí)際上L2的以太網(wǎng)幀跨越了L3網(wǎng)絡(luò)傳輸婉称,但是不受L3網(wǎng)絡(luò)的限制,vxlan采用24位標(biāo)識(shí)vlan ID號(hào)心墅,可以支持2^24=16777216個(gè)vlan酿矢,其擴(kuò)展性比vlan強(qiáng)大很多,可以支持大規(guī)模數(shù)據(jù)中心的網(wǎng)絡(luò)需求怎燥。

  • VTEP

VTEP(VXLAN Tunnel Endpoint vxlan隧道端點(diǎn))瘫筐,VTEP是VXLAN網(wǎng)絡(luò)的邊緣設(shè)備,是VXLAN隧道的起點(diǎn)和終點(diǎn)铐姚,VXLAN對(duì)用戶原始數(shù)據(jù)幀的封裝和解封裝均在VTEP上進(jìn)行策肝,與物理網(wǎng)絡(luò)相連,分配的地址為物理網(wǎng)IP地址隐绵,VXLAN報(bào)文中源IP地址為本節(jié)點(diǎn)的VTEP地址之众,VXLAN報(bào)文中目的IP地址為對(duì)端節(jié)點(diǎn)的VTEP地址,一對(duì)VTEP地址就對(duì)應(yīng)著一個(gè)VXLAN隧道依许,服務(wù)器上的虛擬交換機(jī)(隧道flannel.1就是VTEP)棺禾,比如一個(gè)虛擬機(jī)網(wǎng)絡(luò)中的多個(gè)vxlan就需要多個(gè)VTEP對(duì)不同的網(wǎng)絡(luò)報(bào)文進(jìn)行封裝與解封裝。

  • VNI

VNI(VXLAN Network Identifier):VXLAN網(wǎng)絡(luò)標(biāo)識(shí)VNI類似VLAN ID峭跳,用于區(qū)分VXLAN段膘婶,不通VXLAN段的虛擬機(jī)不能直接二層相互通信缺前,一個(gè)VNI表示一個(gè)租戶,即使多個(gè)終端用于屬于同一個(gè)VNI悬襟,也表示一個(gè)租戶衅码。

  • NVGRE

NVGRE(Network Virtualization using Generic Routing Encapsulation):主要支持這是Microsoft,與VXLAN不通的是脊岳,NVGRE沒(méi)有采用標(biāo)準(zhǔn)傳輸協(xié)議(TCP/UDP)逝段,而是借助通用路由封裝協(xié)議(GRE),NVGRE使用GRE頭部的低24位作為租戶網(wǎng)絡(luò)標(biāo)識(shí)符(TNI)割捅,與VXLAN一樣可以支持1777216個(gè)vlan奶躯。

4.2 underlay網(wǎng)絡(luò)

4.2.1 undelay簡(jiǎn)介

underlay網(wǎng)絡(luò)就是傳統(tǒng)IT基礎(chǔ)設(shè)施網(wǎng)絡(luò),由交換機(jī)和路由器等設(shè)備組成亿驾,借助以太網(wǎng)協(xié)議巫糙、路由協(xié)議和VLAN協(xié)議等驅(qū)動(dòng),它還是overlay網(wǎng)絡(luò)的底層網(wǎng)絡(luò)颊乘,為overlay網(wǎng)絡(luò)提供數(shù)據(jù)通信服務(wù)参淹。容器網(wǎng)絡(luò)中的underlay網(wǎng)絡(luò)是借助驅(qū)動(dòng)程序?qū)⑺拗鳈C(jī)的底層網(wǎng)絡(luò)接口直接暴露給容器使用的一種網(wǎng)絡(luò)構(gòu)建技術(shù),較為常見(jiàn)的解決方案有MAC VLAN乏悄、IP VLAN和直接路由等浙值。underlay依賴于網(wǎng)絡(luò)進(jìn)行跨主機(jī)通信。

4.2.1 underlay實(shí)現(xiàn)方式

  • Bridge:橋接模式
  • MAC VLAN:支持在同一個(gè)以太網(wǎng)接口上虛擬出多個(gè)網(wǎng)絡(luò)接口(子接口)檩小,每個(gè)虛擬接口都擁有唯一的MAC地址并配置網(wǎng)卡子接口IP开呐。
  • IP VLAN:類似于MAC VLAN,它同樣創(chuàng)建新的虛擬網(wǎng)絡(luò)接口并為每個(gè)接口分配唯一的IP地址规求,不同之處在于筐付,每個(gè)虛擬接口將共享使用物理接口的MAC地址,從而不再違反防止MAC欺騙的交換機(jī)的安全策略阻肿,且不要求在物理接口上啟用混雜模式瓦戚。

IP VLAN有L2和L3兩種模型,其中IP VLAN L2的工作模式類似于MAC VLAN被用作網(wǎng)橋或交換機(jī)丛塌,而IP VLAN L3模式中较解,子接口地址不一樣,但是共用宿主機(jī)的MAC地址赴邻。雖然支持多種網(wǎng)絡(luò)模型印衔,但MAC VLAN和IP VLAN不能同時(shí)在同一物理接口上使用。

一般使用MAC VLAN姥敛。

Linux內(nèi)核從4.2版本后支持IP VLAN奸焙。

4.3 overlay和underlay區(qū)別

overlay容器有獨(dú)立的子網(wǎng),跨主機(jī)通信需要依賴隧道,報(bào)文做封裝和解封与帆,而underlay不需要金顿,underlay容器和宿主機(jī)是同一個(gè)子網(wǎng),跨主機(jī)通信不需要隧道封裝鲤桥,所以u(píng)nderlay性能更高一些;但是underlay需要占用宿主機(jī)網(wǎng)絡(luò)的ip渠概,overlay橫向擴(kuò)展性能要好茶凳,可以擴(kuò)相同網(wǎng)絡(luò)的主機(jī),也可以擴(kuò)不通網(wǎng)段的主機(jī)播揪。

五贮喧、node節(jié)點(diǎn)的iptables規(guī)則

5.1 iptables四表五鏈

5.1.1 四表

filter、nat猪狈、mangle箱沦、raw

優(yōu)先級(jí)由高到低:raw -> mangle -> nat -> filter

5.1.2 五鏈

  • PREROUTING:規(guī)則可存在于raw表,mangle表雇庙,nat表谓形。
  • INPUT:規(guī)則可存在于mangle表,filter表疆前,nat表(CentOS 7中有寒跳,CentOS 6沒(méi)有)。
  • FORWARD:規(guī)則可存在于mangle表竹椒,filter表童太。
  • OUTPUT:規(guī)則可存在于raw表,mangle表胸完,nat表书释,filter表。
  • POSTROUTING:規(guī)則可存在于mangle表赊窥,nat表爆惧。

5.2 PREROUTING鏈

5.2.1 匹配PREROUTING鏈raw表

使用raw表解決ip_conntrack、table full锨能、dropping packet等場(chǎng)景

raw表可以在那些不需要nat的情況下检激,以提高性能。如大量訪問(wèn)的web服務(wù)器腹侣,可以讓80端口不再讓iptables做數(shù)據(jù)包的鏈接跟蹤處理叔收,以提高用戶的訪問(wèn)速度。

raw表只使用在PREROUTING鏈和OUTPUT鏈上傲隶,因?yàn)閮?yōu)先級(jí)最高饺律,從而可以對(duì)收到的數(shù)據(jù)包在連接跟蹤前進(jìn)行處理。一旦用戶使用了raw表跺株,在某個(gè)鏈上复濒,raw表處理完后脖卖,將跳過(guò)nat表和ip_conntrack處理,即不再做地址轉(zhuǎn)換和數(shù)據(jù)包的鏈接跟蹤處理了巧颈。

如果PREROUTING鏈上畦木,既有mangle表,也有nat表砸泛,那么優(yōu)先由mangle表處理十籍,然后由nat表處理

PREROUTING鏈的raw表主要是對(duì)報(bào)文進(jìn)行打標(biāo)記,沒(méi)有執(zhí)行訪問(wèn)轉(zhuǎn)發(fā)操作唇礁,然后繼續(xù)向下勾栗。

5.2.2 匹配PREROUTING鏈mangle表

mangle表的主要功能是根據(jù)規(guī)則修改數(shù)據(jù)包的一些標(biāo)志位,以便其他規(guī)則或程序可以利用這種標(biāo)志對(duì)數(shù)據(jù)包進(jìn)行過(guò)濾或策略路由盏筐。

PREROUTING鏈的mangle表主要是對(duì)報(bào)文添加注釋和打標(biāo)記围俘,并沒(méi)有執(zhí)行訪問(wèn)轉(zhuǎn)發(fā)操作,然后繼續(xù)向下琢融。

5.2.3 匹配PREROUTING鏈nat表

PREROUTING鏈的nat表界牡,如需要就要做目的地址轉(zhuǎn)換(DNAT)

報(bào)文被PREROUTING鏈中的匹配規(guī)則通過(guò)之后,就會(huì)到達(dá)本機(jī)路由階段漾抬,本機(jī)路由匹配去往目的pod的路由欢揖,如果pod在本機(jī),則本機(jī)轉(zhuǎn)發(fā)至本機(jī)奋蔚,如果目的pod不在本機(jī)她混,則基于本機(jī)路由表,轉(zhuǎn)發(fā)至指定目的node節(jié)點(diǎn)泊碑。

5.3 INPUT鏈

對(duì)目的地之為本機(jī)的報(bào)文進(jìn)行規(guī)則匹配

5.3.1 匹配INPUT鏈mangle表

規(guī)則默認(rèn)為空坤按,默認(rèn)放行

5.3.2 匹配INPUT鏈nat表

為空,不需要在INPUT的階段做NAT

5.3.3 匹配INPUT鏈filter表

filter表是iptables的默認(rèn)操作的表馒过,用于對(duì)訪問(wèn)地址為本機(jī)的報(bào)文進(jìn)行匹配和執(zhí)行下一步動(dòng)作臭脓。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市腹忽,隨后出現(xiàn)的幾起案子来累,更是在濱河造成了極大的恐慌,老刑警劉巖窘奏,帶你破解...
    沈念sama閱讀 212,222評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘹锁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡着裹,警方通過(guò)查閱死者的電腦和手機(jī)领猾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人摔竿,你說(shuō)我怎么就攤上這事面粮。” “怎么了继低?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,720評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵熬苍,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我袁翁,道長(zhǎng)柴底,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,568評(píng)論 1 284
  • 正文 為了忘掉前任梦裂,我火速辦了婚禮,結(jié)果婚禮上盖淡,老公的妹妹穿的比我還像新娘年柠。我一直安慰自己,他們只是感情好褪迟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,696評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布冗恨。 她就那樣靜靜地躺著,像睡著了一般味赃。 火紅的嫁衣襯著肌膚如雪掀抹。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,879評(píng)論 1 290
  • 那天心俗,我揣著相機(jī)與錄音傲武,去河邊找鬼。 笑死城榛,一個(gè)胖子當(dāng)著我的面吹牛揪利,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播狠持,決...
    沈念sama閱讀 39,028評(píng)論 3 409
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼疟位,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了喘垂?” 一聲冷哼從身側(cè)響起甜刻,我...
    開(kāi)封第一講書(shū)人閱讀 37,773評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎正勒,沒(méi)想到半個(gè)月后得院,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,220評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡章贞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,550評(píng)論 2 327
  • 正文 我和宋清朗相戀三年尿招,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,697評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡就谜,死狀恐怖怪蔑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丧荐,我是刑警寧澤缆瓣,帶...
    沈念sama閱讀 34,360評(píng)論 4 332
  • 正文 年R本政府宣布,位于F島的核電站虹统,受9級(jí)特大地震影響弓坞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜车荔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,002評(píng)論 3 315
  • 文/蒙蒙 一渡冻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧忧便,春花似錦族吻、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,782評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蒂教,卻和暖如春巍举,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凝垛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,010評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工懊悯, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人梦皮。 一個(gè)月前我還...
    沈念sama閱讀 46,433評(píng)論 2 360
  • 正文 我出身青樓定枷,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親届氢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子欠窒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,587評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容