Neutron OVN模式下的流量分析

环境路由和floatingip均为分布式的

东西向二层流量

OVN_EW_L2.png

同一geneve网络下跨节点访问

vlan网络net1下的云主机vm1访问vm3(上图标号1.*)

vm1的流量到br-int走逻辑交换机,打上vlan标签从br-int和br-prv的patch口发出(每个网络OVN都会自动创建一个patch口)

 cookie=0xefb298f1, duration=359369.164s, table=65, n_packets=79, n_bytes=7086, idle_age=12740, hard_age=65534, priority=100,reg15=0x1,metadata=0x1f actions=mod_vlan_vid:1157,output:681,strip_vlan

外层交换机转发后数据从patch口进入后剥离vlan,并设置metadata等数据后转发到vm3

 cookie=0xefb298f1, duration=345143.445s, table=0, n_packets=74, n_bytes=7084, idle_age=65534, hard_age=65534, priority=150,in_port=1125,dl_vlan=1157 actions=strip_vlan,load:0x61->NXM_NX_REG13[],load:0x5f->NXM_NX_REG11[],load:0x60->NXM_NX_REG12[],load:0x1f->OXM_OF_METADATA[],load:0x1->NXM_NX_REG14[],resubmit(,8)

数据包带vlan tag,mac地址为vm1和vm3的mac地址

11:45:55.426855 fa:16:3e:d7:41:89 > fa:16:3e:72:29:33, ethertype 802.1Q (0x8100), length 102: vlan 1157, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 20933, offset 0, flags [DF], proto ICMP (1), length 84)
    192.168.112.13 > 192.168.112.76: ICMP echo request, id 63233, seq 0, length 64

overlay网络net2下的云主机vm2访问vm4(上图标号2.*)

vm2的流量到br-int走逻辑交换机,根据metadata设置vni id并封装geneve数据包后发出

 cookie=0xd33701a1, duration=349.008s, table=37, n_packets=10, n_bytes=980, idle_age=142, priority=100,reg15=0x3,metadata=0x20 actions=load:0x20->NXM_NX_TUN_ID[0..23],set_field:0x3->tun_metadata0,move:NXM_NX_REG14[0..14]->NXM_NX_TUN_METADATA0[16..30],output:548

datapath的tunnel_key

()[root@ovn-ovsdb-sb-0 /]# ovn-sbctl list datapath lc_net2
_uuid               : e3344b60-dabb-4426-b937-00f96bf5f7e6
external_ids        : {logical-switch="86faac9e-8a62-4ade-875a-3672add713c4", name=neutron-f3586ec0-8dbc-478d-9460-6f7784a42309, name2=lc_net2}
load_balancers      : []
tunnel_key          : 32

数据包带vni号,数值和metadata及datapath的tunnel_key一致,内层mac地址为vm2和vm4的mac。

11:42:35.735756 d6:35:ee:b0:05:48 > ea:d1:f1:27:dd:4c, ethertype IPv4 (0x0800), length 156: (tos 0x0, ttl 64, id 62704, offset 0, flags [DF], proto UDP (17), length 142)
    192.168.20.2.ardus-cntl > 192.168.20.4.6081: [bad udp cksum 0xa9e2 -> 0x076e!] Geneve, Flags [C], vni 0x20, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8 data 00030002]
        fa:16:3e:5b:fe:bb > fa:16:3e:7d:b1:b4, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 54155, offset 0, flags [DF], proto ICMP (1), length 84)
    10.66.3.139 > 10.66.0.177: ICMP echo request, id 58369, seq 7, length 64

东西向三层流量

OVN_EW_L3.png

不同子网虚机跨节点访问,net1为geneve网络,net2为vlan网络
不同子网虚机跨节点访问,两个网络均为geneve网络

overlay网络net2下的云主机vm2访问vlan网络下net1下的云主机vm3

vm2的流量到br-int走逻辑路由,后打上vlan标签从br-int的patch口发出。如果目的主机所在主机使用的geneve,则逻辑路由后封装成geneve包。

 cookie=0xefb298f1, duration=338936.038s, table=65, n_packets=51, n_bytes=4998, idle_age=4107, hard_age=65534, priority=150,reg15=0x1,metadata=0x1f,dl_src=fa:16:3e:6c:a0:2e actions=mod_dl_src:ce:05:16:96:4d:43,mod_vlan_vid:1157,output:681

数据包

14:09:50.794428 ce:05:16:96:4d:43 > fa:16:3e:72:29:33, ethertype 802.1Q (0x8100), length 102: vlan 1157, p 0, ethertype IPv4, (tos 0x0, ttl 63, id 37976, offset 0, flags [DF], proto ICMP (1), length 84)
    10.66.3.139 > 192.168.112.76: ICMP echo request, id 60673, seq 3, length 64

南北向流量SNAT模式

OVN_SN_SNAT.png

geneve网络下虚机访问外部网络(lrp port和虚机在不同一节点)
geneve网络下虚机访问外部网络(lrp port和虚机在同一节点)

vlan网络net1下的云主机vm1访问外部ip,但是逻辑路由的lrp port不在vm1所在的节点

逻辑路由信息

()[root@ovn-ovsdb-nb-2 /]# ovn-nbctl show 9eb2766d-dec8-4f73-8bc8-9f31dab3d6db
router 9eb2766d-dec8-4f73-8bc8-9f31dab3d6db (neutron-62e2ca59-b6cf-4a17-a531-776fecd8dbf5) (aka lc_router)
    port lrp-f60cd81a-7a5e-4b2d-b687-fcf2881a725a
        mac: "fa:16:3e:fd:11:6c"
        networks: ["10.66.0.1/16"]
    port lrp-cc3da0db-31e8-40a0-ad9f-c54f7a848ac7
        mac: "fa:16:3e:e7:f2:d2"
        networks: ["172.90.0.111/24"]
        gateway chassis: [9e7fc81f-12dc-4e83-b28c-a90060c579c6 ef5bb610-b0e6-4dc4-aa59-6d4d7972bc22 e8427df8-1dc6-45e3-b45c-35c35e8d6ed3]
    port lrp-d14d66bc-dfda-44a2-b1aa-a0481c0119ab
        mac: "fa:16:3e:6c:a0:2e"
        networks: ["192.168.112.1/24"]
    nat 1b9b075b-e56d-45e7-a750-cb1e366a7d08
        external ip: "172.90.0.111"
        logical ip: "192.168.112.0/24"
        type: "snat"
    nat 1d0eb0c0-67e8-43a3-8f7d-4da54d3fa562
        external ip: "172.90.0.111"
        logical ip: "10.66.0.0/16"
        type: "snat"
    nat bc8472b4-3ef9-4a18-bc6b-e9f12db01d4d
        external ip: "172.90.0.118"
        logical ip: "10.66.3.139"
        type: "dnat_and_snat"

lrp-cc3da0db-31e8-40a0-ad9f-c54f7a848ac7落在的节点信息(lrp port在node-3上,但是vm1在node-1)

()[root@ovn-ovsdb-sb-0 /]# ovn-sbctl show | grep -B 9 lrp-cc3da0db-31e8-40a0-ad9f-c54f7a848ac7
Chassis "9e7fc81f-12dc-4e83-b28c-a90060c579c6"
    hostname: node-3.domain.tld
    Encap geneve
        ip: "192.168.20.4"
        options: {csum="true"}
    Port_Binding "a7578b9a-c0b6-4980-8961-c968e027926f"
    Port_Binding "a9dce74f-f655-42b8-9529-f26a370feca9"
    Port_Binding "3427338f-1e5a-494b-9a8c-34bc80590c61"
    Port_Binding "f57f5ac7-6491-416f-8eb5-e4d1cb5fd41f"
    Port_Binding cr-lrp-cc3da0db-31e8-40a0-ad9f-c54f7a848ac7

数据包路径(vlan网络为例):

vm1->br-int(node-1)->br-ex(node-1)->br-ex(node-3)->br-int(node-3)->br-ex(node-3)->public network->target ip->br-ex(node-3)->patch port to br-prv->private network->br-prv->patch port to br-int->br-int->vm1
  1. vm1出来的数据包,先经过本节点的逻辑路由发往lrp port(sip: ip vm1, dip: dst ip, smac: mac chassis which vm1 on, dmac: mac lrp port)并带上public network的vlan号
16:48:17.822115 6a:22:16:11:a3:47 > fa:16:3e:e7:f2:d2, ethertype 802.1Q (0x8100), length 102: vlan 2901, p 0, ethertype IPv4, (tos 0x0, ttl 63, id 39850, offset 0, flags [DF], proto ICMP (1), length 84)
    192.168.112.13 > 14.215.177.39: ICMP echo request, id 56321, seq 25, length 64
  1. lrp port所在节点的逻辑路由将sip和smac转换成lrp port的ip和mac后通过br-ex发出(sip: ip lrp port, dip: dst ip, smac: mac lrp port)
16:48:17.822127 fa:16:3e:e7:f2:d2 > f8:bc:12:4e:44:dd, ethertype 802.1Q (0x8100), length 102: vlan 2901, p 0, ethertype IPv4, (tos 0x0, ttl 62, id 39850, offset 0, flags [DF], proto ICMP (1), length 84)
    172.90.0.111 > 14.215.177.39: ICMP echo request, id 56321, seq 25, length 64
  1. 数据回包时lrp port所在的逻辑路由收到数据包(sip: target ip, dip: ip lrp port, dmac: mac lrp port)后直接路由,将数据包打上vlan后通过br-prv发出(sip: target ip, dip: ip vm1, dmac: mac vm1)
16:48:17.858433 00:1d:09:65:eb:63 > fa:16:3e:e7:f2:d2, ethertype 802.1Q (0x8100), length 102: vlan 2901, p 0, ethertype IPv4, (tos 0x0, ttl 51, id 39850, offset 0, flags [DF], proto ICMP (1), length 84)
    14.215.177.39 > 172.90.0.111: ICMP echo reply, id 56321, seq 25, length 64
16:48:17.858890 f2:d0:90:45:36:48 > fa:16:3e:d7:41:89, ethertype 802.1Q (0x8100), length 102: vlan 1157, p 0, ethertype IPv4, (tos 0x0, ttl 50, id 39850, offset 0, flags [DF], proto ICMP (1), length 84)
    14.215.177.39 > 192.168.112.13: ICMP echo reply, id 56321, seq 25, length 64

南北向流量floagintip(SNAT and DNAT)模式

OVN_SN_SNAT_DNAT.png

通过floatingip访问外部网络

vm1上挂有floatingip访问外部网络ip,不管逻辑路由的lrp port在哪个节点

vm1出去的和到vm1的数据包到br-int的逻辑路由后直接做SNAT和DNAT

14:54:25.282304 fa:16:3e:b5:dc:a7 > fa:16:3e:e7:f2:d2, ethertype 802.1Q (0x8100), length 102: vlan 2901, p 0, ethertype IPv4, (tos 0x0, ttl 63, id 8994, offset 0, flags [DF], proto ICMP (1), length 84)
    172.90.0.118 > 14.215.177.39: ICMP echo request, id 61441, seq 0, length 64
14:54:25.317236 00:1d:09:65:eb:63 > fa:16:3e:b5:dc:a7, ethertype 802.1Q (0x8100), length 102: vlan 2901, p 0, ethertype IPv4, (tos 0x0, ttl 51, id 8994, offset 0, flags [DF], proto ICMP (1), length 84)
    14.215.177.39 > 172.90.0.118: ICMP echo reply, id 61441, seq 0, length 64
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容