kvm虛擬化網(wǎng)絡(luò)管理(5)

一川背、Linux Bridge網(wǎng)橋管理

網(wǎng)絡(luò)虛擬化是虛擬化技術(shù)中最復(fù)雜的部分贰拿,也是非常重要的資源。
第一節(jié)中我們創(chuàng)建了一個(gè)名為br0的linux-bridge網(wǎng)橋熄云,如果在此網(wǎng)橋上新建一臺(tái)vm膨更,如下圖:


image

VM2 的虛擬網(wǎng)卡 vnet1 也連接到了 br0 上。 現(xiàn)在 VM1 和 VM2 之間可以通信缴允,同時(shí) VM1 和 VM2 也都可以與外網(wǎng)通信荚守。

查看網(wǎng)絡(luò)狀態(tài):


image

用brctl show 顯示當(dāng)前網(wǎng)橋連接狀態(tài):


image

brctl命令:


image

二、Vlan介紹

LAN 表示 Local Area Network,本地局域網(wǎng)矗漾,通常使用 Hub 和 Switch 來(lái)連接 LAN 中的計(jì)算機(jī)锈候。一般來(lái)說(shuō),兩臺(tái)計(jì)算機(jī)連入同一個(gè) Hub 或者 Switch 時(shí)缩功,它們就在同一個(gè) LAN 中晴及。

一個(gè) LAN 表示一個(gè)廣播域。 其含義是:LAN 中的所有成員都會(huì)收到任意一個(gè)成員發(fā)出的廣播包嫡锌。

VLAN 表示 Virtual LAN虑稼。一個(gè)帶有 VLAN 功能的switch 能夠?qū)⒆约旱亩丝趧澐殖龆鄠€(gè) LAN。計(jì)算機(jī)發(fā)出的廣播包可以被同一個(gè) LAN 中其他計(jì)算機(jī)收到势木,但位于其他 LAN 的計(jì)算機(jī)則無(wú)法收到蛛倦。 簡(jiǎn)單地說(shuō),VLAN 將一個(gè)交換機(jī)分成了多個(gè)交換機(jī)啦桌,限制了廣播的范圍溯壶,在二層將計(jì)算機(jī)隔離到不同的 VLAN 中。

比方說(shuō)甫男,有兩組機(jī)器且改,Group A 和 B,我們想配置成 Group A 中的機(jī)器可以相互訪問(wèn)板驳,Group B 中的機(jī)器也可以相互訪問(wèn)又跛,但是 A 和 B 中的機(jī)器無(wú)法互相訪問(wèn)。 一種方法是使用兩個(gè)交換機(jī)若治,A 和 B 分別接到一個(gè)交換機(jī)慨蓝。 另一種方法是使用一個(gè)帶 VLAN 功能的交換機(jī),將 A 和 B 的機(jī)器分別放到不同的 VLAN 中端幼。

VLAN 的隔離是二層上的隔離礼烈,A 和 B 無(wú)法相互訪問(wèn)指的是二層廣播包(比如 arp)無(wú)法跨越 VLAN 的邊界。但在三層上(比如IP)是可以通過(guò)路由器讓 A 和 B 互通的婆跑。

現(xiàn)在的交換機(jī)幾乎都是支持 VLAN 的此熬。 通常交換機(jī)的端口有兩種配置模式: Access 和 Trunk。如下圖


image

Access 口
這些端口被打上了 VLAN 的標(biāo)簽滑进,表明該端口屬于哪個(gè) VLAN摹迷。 不同 VLAN 用 VLAN ID 來(lái)區(qū)分,VLAN ID 的 范圍是 1-4096郊供。 Access 口都是直接與計(jì)算機(jī)網(wǎng)卡相連的,這樣從該網(wǎng)卡出來(lái)的數(shù)據(jù)包流入 Access 口后就被打上了所在 VLAN 的標(biāo)簽近哟。 Access 口只能屬于一個(gè) VLAN驮审。

Trunk 口
假設(shè)有兩個(gè)交換機(jī) A 和 B。 A 上有 VLAN1(紅)、VLAN2(黃)疯淫、VLAN3(藍(lán))地来;B 上也有 VLAN1、2熙掺、3未斑,那如何讓 AB 上相同 VLAN 之間能夠通信呢?

辦法是將 A 和 B 連起來(lái)币绩,而且連接 A 和 B 的端口要允許 VLAN1蜡秽、2、3 三個(gè) VLAN 的數(shù)據(jù)都能夠通過(guò)缆镣。這樣的端口就是Trunk口了芽突。 VLAN1, 2, 3 的數(shù)據(jù)包在通過(guò) Trunk 口到達(dá)對(duì)方交換機(jī)的過(guò)程中始終帶著自己的 VLAN 標(biāo)簽。

三董瞻、Linux Bridge實(shí)現(xiàn)Vlan原理

KVM 虛擬化環(huán)境下實(shí)現(xiàn) VLAN 架構(gòu)寞蚌,如下圖


image

eth0 是宿主機(jī)上的物理網(wǎng)卡,有一個(gè)命名為 eth0.10 的子設(shè)備與之相連钠糊。 eth0.10 就是 VLAN 設(shè)備了挟秤,其 VLAN ID 就是 VLAN 10。 eth0.10 掛在命名為 brvlan10 的 Linux Bridge 上抄伍,虛機(jī) VM1 的虛擬網(wǎng)卡 vent0 也掛在 brvlan10 上艘刚。

這樣的配置其效果就是: 宿主機(jī)用軟件實(shí)現(xiàn)了一個(gè)交換機(jī)(當(dāng)然是虛擬的),上面定義了一個(gè) VLAN10逝慧。 eth0.10昔脯,brvlan10 和 vnet0 都分別接到 VLAN10 的 Access口上。而 eth0 就是一個(gè) Trunk 口笛臣。VM1 通過(guò) vnet0 發(fā)出來(lái)的數(shù)據(jù)包會(huì)被打上 VLAN10 的標(biāo)簽云稚。

eth0.10 的作用是:定義了 VLAN10
brvlan10 的作用是:Bridge 上的其他網(wǎng)絡(luò)設(shè)備自動(dòng)加入到 VLAN10 中

增加一個(gè) VLAN20,如下圖


image

這樣虛擬交換機(jī)就有兩個(gè) VLAN 了沈堡,VM1 和 VM2 分別屬于 VLAN10 和 VLAN20静陈。

對(duì)于新創(chuàng)建的虛機(jī),只需要將其虛擬網(wǎng)卡放入相應(yīng)的 Bridge诞丽,就能控制其所屬的 VLAN鲸拥。
VLAN 設(shè)備總是以母子關(guān)系出現(xiàn),母子設(shè)備之間是一對(duì)多的關(guān)系僧免。 一個(gè)母設(shè)備(eth0)可以有多個(gè)子設(shè)備(eth0.10刑赶,eth0.20 ……),而一個(gè)子設(shè)備只有一個(gè)母設(shè)備懂衩。

四撞叨、Linux Bridge實(shí)現(xiàn)Vlan

(1)查看核心是否提供VLAN 功能金踪,執(zhí)行
dmesg | grep -i 802
或者檢查/proc/net/vlan目錄是否存在。
如果沒(méi)有提供VLAN 功能牵敷,/proc/net/vlan目錄是不存在的胡岔。


image

如果8021q模塊沒(méi)有載入系統(tǒng),則可以通過(guò)使用modprobe模組命令載入802.1q模組枷餐,並且利用lsmod命令確認(rèn)模組是否已經(jīng)載入到核心內(nèi)靶瘸。
modprobe 8021q
lsmod | grep 8021q


image

設(shè)置開(kāi)機(jī)載入8021q模塊(可選)
在/etc/sysconfig/modules下增加一個(gè)8021q.modules文件,文件內(nèi)容為modprobe 8021q
vi /etc/sysconfig/modules/8021q.modules
modprobe 8021q

(2)安裝查看用于查看Vlan配置的工具————vconfig
提前裝備好vconfig-1.9-16.el7.x86_64.rpm
rpm -ivh vconfig-1.9-16.el7.x86_64.rpm
rpm -qa vconfig


image

(3)創(chuàng)建vlan接口
創(chuàng)建vlan接口前毛肋,在設(shè)備上添加一塊網(wǎng)卡ens34怨咪,
網(wǎng)絡(luò)配置如右圖:


image

注意:
將BOOTPROTO=static

基于網(wǎng)卡ens34建立vlan10,vlan20接口:ens34.10村生,ens34.20:

vconfig add ens34 10
vconfig add ens34 20


image
image

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens34 ifcfg-ens34.10 -- 創(chuàng)建ens33.10接口配置文件
編輯ifcfg-ens34.10文件惊暴,增加/修改下面內(nèi)容:
vim ifcfg-ens34.10
VLAN=yes
TYPE=vlan
PHYSDEV=ens34
VLAN_ID=10
NAME=ens34.10
ONBOOT=yes
ZONE=trusted
DEVICE=ens34.10
BRIDGE=brvlan-10

cp ifcfg-ens34.10 ifcfg-ens34.20
編輯ifcfg-ens34.20文件,增加/修改下面內(nèi)容:
vim ifcfg-ens34.20
VLAN=yes
TYPE=vlan
PHYSDEV=ens34
VLAN_ID=20
NAME=ens34.20
ONBOOT=yes
ZONE=trusted
DEVICE=ens34.20
BRIDGE=brvlan-20

(4)分別建立網(wǎng)橋brvlan-10趁桃,brvlan-20
brctl addbr brvlan-10
brctl addbr brvlan-20


image

(5)編輯網(wǎng)橋brvlan-10配置文件:
vim ifcfg-brvlan-10
TYPE=bridge
BOOTPROTO=static
NAME=brvlan-10
DEVICE=brvlan-10
ONBOOT=yes

編輯網(wǎng)橋brvlan-20配置文件:
vim ifcfg-brvlan-20
TYPE=bridge
BOOTPROTO=static
NAME=brvlan-20
DEVICE=brvlan-20
ONBOOT=yes

(6)將網(wǎng)橋brvlan-10接到網(wǎng)口ens34.10辽话,brvlan-20接到網(wǎng)口ens34.20
brctl addif brvlan-10 ens34.10
brctl addif brvlan-20 ens34.20

image

(7)重新啟動(dòng)網(wǎng)絡(luò)服務(wù)
systemctl restart network


image

五、Vlan模式測(cè)試虛機(jī)

先將NetworkManager服務(wù)關(guān)閉
(1)在宿主機(jī)中已經(jīng)提前創(chuàng)建好了虛機(jī) VM1
在 virt-manager 中將 VM1 的虛擬網(wǎng)卡掛到 brvlan-10 上


image

(2)從VM1克隆一臺(tái)虛機(jī)VM2
virst-clone -o vm1 -n vm2 -f /var/lib/libvirt/images/vm2.qcow2

(3)啟動(dòng)VM1和VM2卫病,并配置ip

(4)查看 Bridge油啤,發(fā)現(xiàn) brvlan10 已經(jīng)連接了 vnet0 vnet1設(shè)備。

image

六蟀苛、網(wǎng)卡配置bond(綁定)

(1)網(wǎng)卡bond(綁定)益咬,也稱作網(wǎng)卡捆綁。就是將兩個(gè)或者更多的物理網(wǎng)卡綁定成一個(gè)虛擬網(wǎng)卡帜平。網(wǎng)卡是通過(guò)把多張網(wǎng)卡綁定為一個(gè)邏輯網(wǎng)卡幽告,實(shí)現(xiàn)本地網(wǎng)卡的冗余,帶寬擴(kuò)容和負(fù)載均衡裆甩,在應(yīng)用部署中是一種常用的技術(shù)冗锁。

多網(wǎng)卡綁定實(shí)際上需要提供一個(gè)額外的軟件的bond驅(qū)動(dòng)程序?qū)崿F(xiàn)。通過(guò)驅(qū)動(dòng)程序可以將多塊網(wǎng)卡屏蔽嗤栓。對(duì)TCP/IP協(xié)議層只存在一個(gè)Bond網(wǎng)卡冻河,在Bond程序中實(shí)現(xiàn)網(wǎng)絡(luò)流量的負(fù)載均衡,即將一個(gè)網(wǎng)絡(luò)請(qǐng)求重定位到不同的網(wǎng)卡上茉帅,來(lái)提高總體網(wǎng)絡(luò)的可用性叨叙。

(2)網(wǎng)卡綁定的目的:
1.提高網(wǎng)卡的吞吐量。
2.增強(qiáng)網(wǎng)絡(luò)的高可用堪澎,同時(shí)也能實(shí)現(xiàn)負(fù)載均衡擂错。

(3)網(wǎng)卡配置bond(綁定)bond模式:

1、Mode=0(balance-rr) 表示負(fù)載分擔(dān)round-robin樱蛤,平衡輪詢策略马昙,具有負(fù)載平衡和容錯(cuò)功能
bond的網(wǎng)卡MAC為當(dāng)前活動(dòng)的網(wǎng)卡的MAC地址桃犬,需要交換機(jī)設(shè)置聚合模式,將多個(gè)網(wǎng)卡綁定為一條鏈路行楞。

2、Mode=1(active-backup) 表示主備模式土匀,具有容錯(cuò)功能子房,只有一塊網(wǎng)卡是active,另外一塊是備的standby,這時(shí)如果交換機(jī)配的是捆綁就轧,將不能正常工作证杭,因?yàn)榻粨Q機(jī)往兩塊網(wǎng)卡發(fā)包,有一半包是丟棄的妒御。

3解愤、Mode=2(balance-xor) 表示XOR Hash負(fù)載分擔(dān)(異或平衡策略),具有負(fù)載平衡和容錯(cuò)功能
每個(gè)slave接口傳輸每個(gè)數(shù)據(jù)包和交換機(jī)的聚合強(qiáng)制不協(xié)商方式配合乎莉。(需要xmit_hash_policy)送讲。

4、Mode=3(broadcast) 表示所有包從所有interface發(fā)出惋啃,廣播策略哼鬓,具有容錯(cuò)能力,這個(gè)不均衡边灭,只有冗余機(jī)制...和交換機(jī)的聚合強(qiáng)制不協(xié)商方式配合异希。

5、Mode=4(802.3ad) 表示支持802.3ad協(xié)議(IEEE802.3ad 動(dòng)態(tài)鏈接聚合) 和交換機(jī)的聚合LACP方式配合(需要xmit_hash_policy)绒瘦。

6称簿、Mode=5(balance-tlb) 適配器傳輸負(fù)載均衡,并行發(fā)送惰帽,無(wú)法并行接收憨降,解決了數(shù)據(jù)發(fā)送的瓶頸。 是根據(jù)每個(gè)slave的負(fù)載情況選擇slave進(jìn)行發(fā)送善茎,接收時(shí)使用當(dāng)前輪到的slave券册。

7、Mode=6(balance-alb) 在5的tlb基礎(chǔ)上增加了rlb垂涯。適配器負(fù)載均衡模式并行發(fā)送烁焙,并行接收數(shù)據(jù)包。

5和6不需要交換機(jī)端的設(shè)置耕赘,網(wǎng)卡能自動(dòng)聚合骄蝇。4需要支持802.3ad。0操骡,2和3理論上需要靜態(tài)聚合方式九火,但實(shí)測(cè)中0可以通過(guò)mac地址欺騙的方式在交換機(jī)不設(shè)置的情況下不太均衡地進(jìn)行接收赚窃。

常用的有三種:

mode=0:平衡負(fù)載模式,有自動(dòng)備援岔激,但需要”Switch”支援及設(shè)定勒极。

mode=1:自動(dòng)備援模式,其中一條線若斷線虑鼎,其他線路將會(huì)自動(dòng)備援辱匿。

mode=6:平衡負(fù)載模式,有自動(dòng)備援炫彩,不必”Switch”支援及設(shè)定匾七。

(4)網(wǎng)卡配置bond(綁定)

1、eth1江兢,eth2昨忆,eth3都配置綁定為bond0,例如:
cat ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eth1
ONBOOT=yes
MASTER=bond0
SLAVE=yes

載入bond模塊:
modprobe bonding

2杉允、查看bond0邑贴,并橋接到br1
cat ifcfg-bond0
DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=static
USERCTL=no
ONBOOT=yes
BONDING_OPTS="mode=6 miimon=100"
BRIDGE=br1

3、查看網(wǎng)橋br0
cat ifcfg-br1
TYPE=Bridge
DEVICE=br1
ONBOOT=yes
IPADDR=192.168.10.1
IPADDR1=192.168.20.1
IPADDR2=192.168.30.1
IPADDR3=192.168.40.1
IPADDR4=192.168.50.1
PREFIX3=24
PREFIX4=24

4夺颤、重啟系統(tǒng)
查看網(wǎng)卡信息:
ethtool bond0

七痢缎、網(wǎng)卡配置bond+vlan實(shí)踐

(1)創(chuàng)建bond0,并創(chuàng)建配置文件

(2)將bond0橋接到br1世澜,并創(chuàng)建br1配置文件独旷,重啟網(wǎng)絡(luò)服務(wù)

(3)在br1上,創(chuàng)建虛擬vlan網(wǎng)口:br1.10寥裂,br1.20嵌洼,并創(chuàng)建配置文件

(4)創(chuàng)建brvlan-10,brvlan-10封恰,并創(chuàng)建配置文件

(5)將網(wǎng)橋與虛擬vlan網(wǎng)口連接
brctl addif brvlan-10 br1.10
brctl addif brvlan-20 br1.20

(6)重啟網(wǎng)絡(luò)服務(wù)


image
image

課堂實(shí)驗(yàn)架構(gòu)圖:


image.png

實(shí)驗(yàn)步驟:
[root@yunwei2 network-scripts]# cat ifcfg-ens37
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens37
ONBOOT=yes
MASTER=bond0
SLAVE=yes

[root@yunwei2 network-scripts]# modprobe bonding

[root@yunwei2 network-scripts]# cat ifcfg-bond0
DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=static
USERCTL=no
ONBOOT=yes
BONDING_OPTS="mode=6 miimon=100"
BRIDGE=br1

[root@yunwei2 network-scripts]# brctl addbr br1

[root@yunwei2 network-scripts]# cat ifcfg-br1
TYPE=Bridge
NAME=br1
DEVICE=br1
ONBOOT=yes
BOOTPROTO=static

[root@yunwei2 network-scripts]# vconfig add br1 10
[root@yunwei2 network-scripts]# vconfig add br1 20

[root@yunwei2 network-scripts]# cat ifcfg-br1.10
VLAN=yes
TYPE=vlan
PHYSDEV=br1
VLAN_ID=10
NAME=br1.10
ONBOOT=yes
ZONE=trusted
DEVICE=br1.10
BRIDGE=brvlan-10

[root@yunwei2 network-scripts]# brctl addbr brvlan-10
[root@yunwei2 network-scripts]# brctl addbr brvlan-20

[root@yunwei2 network-scripts]# cat ifcfg-brvlan-10
TYPE=bridge
BOOTPROTO=static
NAME=brvlan-10
DEVICE=brvlan-10
ONBOOT=yes

[root@yunwei2 network-scripts]# brctl addif brvlan-10 br1.10
[root@yunwei2 network-scripts]# brctl addif brvlan-20 br1.20

[root@yunwei2 network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a1940e no ens33
br1 8000.000c29a19418 no bond0
brvlan-10 8000.000c29a19418 no br1.10
brvlan-20 8000.000c29a19418 no br1.20
virbr0 8000.525400de6b4d yes virbr0-nic

[root@yunwei2 network-scripts]# systemctl restart network

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末麻养,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子诺舔,更是在濱河造成了極大的恐慌鳖昌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件低飒,死亡現(xiàn)場(chǎng)離奇詭異许昨,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)褥赊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門糕档,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人拌喉,你說(shuō)我怎么就攤上這事速那±” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵端仰,是天一觀的道長(zhǎng)捶惜。 經(jīng)常有香客問(wèn)我,道長(zhǎng)荔烧,這世上最難降的妖魔是什么售躁? 我笑而不...
    開(kāi)封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮茴晋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘回窘。我一直安慰自己诺擅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布啡直。 她就那樣靜靜地躺著烁涌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪酒觅。 梳的紋絲不亂的頭發(fā)上撮执,一...
    開(kāi)封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音舷丹,去河邊找鬼抒钱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛颜凯,可吹牛的內(nèi)容都是我干的谋币。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼症概,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蕾额!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起彼城,我...
    開(kāi)封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤诅蝶,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后募壕,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體调炬,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年司抱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了筐眷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡习柠,死狀恐怖匀谣,靈堂內(nèi)的尸體忽然破棺而出照棋,到底是詐尸還是另有隱情,我是刑警寧澤武翎,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布烈炭,位于F島的核電站,受9級(jí)特大地震影響宝恶,放射性物質(zhì)發(fā)生泄漏符隙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一垫毙、第九天 我趴在偏房一處隱蔽的房頂上張望霹疫。 院中可真熱鬧,春花似錦综芥、人聲如沸丽蝎。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屠阻。三九已至,卻和暖如春额各,著一層夾襖步出監(jiān)牢的瞬間国觉,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工虾啦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留麻诀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓缸逃,卻偏偏與公主長(zhǎng)得像针饥,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子需频,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351