初探Openstack Neutron DVR
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
32768: from 10.0.1.5 lookup 16
32769: from 10.0.2.3 lookup 16
167772417: from 10.0.1.1/24 lookup 167772417
167772417: from 10.0.1.1/24 lookup 167772417
167772673: from 10.0.2.1/24 lookup 167772673 在main表中沒有合適的路由:
10.0.1.0/24 dev qr-ddbdc784-d7 proto kernel scope link src 10.0.1.1
10.0.2.0/24 dev qr-001d0ed9-01 proto kernel scope link src 10.0.2.1
169.254.31.28/31 dev rfp-0fbb351e-a proto kernel scope link src 169.254.31.28 由於包是從10.0.1.5發來的之後會檢視table 16:
default via 169.254.31.29 dev rfp-0fbb351e-a 包會命中這條路由。 路由之後會通過netfilter的POSTROUTING鏈中進行SNAT: [email protected]:~# ip netns exec qrouter-0fbb351e-a65b-4790-a409-8fb219ce16aa iptables -nvL -t nat 。。。 Chain neutron-l3-agent-float-snat (1 references) pkts bytes target prot opt in out source destination 0 0 SNAT all -- * * 10.0.2.3 0.0.0.0/0 to:172.24.4.7 0 0 SNAT all -- * * 10.0.1.5 0.0.0.0/0 to:172.24.4.5 。。。 之後就可以看到包會通過rfp-0fbb351e-a傳送給169.254.31.29。 埠rfp-0fbb351e-a和fpr-0fbb351e-a是一對veth pair。在fip namespace中你可以看到這個介面:
fg-081d537b-06 Link encap:Ethernet HWaddr fa:16:3e:a4:eb:6b
inet addr:172.24.4.6 Bcast:172.24.4.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fea4:eb6b/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:50 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:2512 (2.5 KB)
fpr-0fbb351e-a Link encap:Ethernet HWaddr 42:0d:9f:49:63:c6
inet addr:169.254.31.29 Bcast:0.0.0.0 Mask:255.255.255.254
inet6 addr: fe80::400d:9fff:fe49:63c6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1116 (1.1 KB) TX bytes:1116 (1.1 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:13 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1250 (1.2 KB) TX bytes:1250 (1.2 KB)
到了fip的namespace之後,會查詢路由, 這裡有通往公網的預設路由: [email protected]:~# ip netns exec fip-fbd46644-c70f-4227-a414-862a00cbd1d2 ip route
default via 172.24.4.1 dev fg-081d537b-06
169.254.31.28/31 dev fpr-0fbb351e-a proto kernel scope link src 169.254.31.29
172.24.4.0/24 dev fg-081d537b-06 proto kernel scope link src 172.24.4.6
172.24.4.5 via 169.254.31.28 dev fpr-0fbb351e-a
172.24.4.7 via 169.254.31.28 dev fpr-0fbb351e-a 通過fg-081d537b-06 傳送到br-ex。這是從虛機發送到公網的過程。 反過來,從外網發起連線到虛機時,在fip的namespace會做arp代理: [email protected]:~# ip netns exec fip-fbd46644-c70f-4227-a414-862a00cbd1d2 sysctl net.ipv4.conf.fg-081d537b-06.proxy_arp
net.ipv4.conf.fg-081d537b-06.proxy_arp = 1 可以看到介面的arp代理是開啟的,對於floating ip 有以下兩條路由: [email protected]:~# ip netns exec fip-fbd46644-c70f-4227-a414-862a00cbd1d2 ip route
。。。
172.24.4.5 via 169.254.31.28 dev fpr-0fbb351e-a
172.24.4.7 via 169.254.31.28 dev fpr-0fbb351e-a 。。。 ARP會去通過VETH Pair到IR的namespace中去查詢,在IR中可以看到,介面rfp-0fbb351e-a配置了floating ip: [email protected]:~# ip netns exec qrouter-0fbb351e-a65b-4790-a409-8fb219ce16aa ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: rfp-0fbb351e-a: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether ea:5c:56:9a:36:9c brd ff:ff:ff:ff:ff:ff
inet 169.254.31.28/31 scope global rfp-0fbb351e-a
valid_lft forever preferred_lft forever
inet 172.24.4.5/32 brd 172.24.4.5 scope global rfp-0fbb351e-a
valid_lft forever preferred_lft forever
inet 172.24.4.7/32 brd 172.24.4.7 scope global rfp-0fbb351e-a
valid_lft forever preferred_lft forever
inet6 fe80::e85c:56ff:fe9a:369c/64 scope link
valid_lft forever preferred_lft forever
17: qr-ddbdc784-d7: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
link/ether fa:16:3e:66:13:af brd ff:ff:ff:ff:ff:ff
inet 10.0.1.1/24 brd 10.0.1.255 scope global qr-ddbdc784-d7
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe66:13af/64 scope link
valid_lft forever preferred_lft forever
19: qr-001d0ed9-01: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
link/ether fa:16:3e:69:b4:05 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.1/24 brd 10.0.2.255 scope global qr-001d0ed9-01
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe69:b405/64 scope link
valid_lft forever preferred_lft forever
相關推薦
初探Openstack Neutron DVR
比如我們在虛機中ping 8.8.8.8 。首先在虛機中查詢路由,和第一種情況一樣,虛機會發送給閘道器。傳送的包如下: Dest IP: 8.8.8.8 Souce IP: 10.0.1.5 Dest MAC: MAC of 10.0.1.1 Source MAC: MAC of 10.0.1.5 檢
openstack-neutron網路DVR模式-學習
簡介: 1 不是DVR模式時,資料流向圖: 圖解:可見無論是虛擬機器出外網/還是虛擬機器之間的通訊,都需要經過Vrouter(網路節點應用) 兩個概念: a 南北流量=(走向外部網路的流量,一般
OpenStack neutron 環境雲主機使用keepalived vip + 給vip綁定浮動IP 步驟及註意事項
cut associate http 其它 配置 ups work all net 在openstack環境創建的多臺雲主機配置keepalived作主備,默認情況下無法生效,直接對雲主機一張網卡配置兩個IP進行測試也是同樣結果,因為: 可以看到,port所在的宿主機上i
帶著問題了解Openstack Neutron安全組
ont 全局 sta 允許 allow top nat ingress env 本文是由最近一個Openstack Neutron安全組的問題所觸發而寫。希望之後借此機會深入探討一下iptables和netfilter相關用法、原理等。 本節先看看網絡問題的解決思路以及Op
openstack neutron 簡單理解
ima tps restfu 防火墻服務 容易 gin ice span nova api 分析1)位於最上層的Neutron Server充當一個門派中的“掌門人”角色(RESTful Server),負責接受來自外部門派(項目)的API請求,比如Nova API創建網絡
openstack-- neutron 二/三層網路實現探究
引出 Neutron 是openstack 中提供網路虛擬化的元件,根據二層網路的實現方式不同(即agent的不同),可以分為Linux bridge的方式,Openvswitch的方式。而且,lay2 network分為local,flat,vlan,vxlan 等型別(gre與vxlan類似,不再
OpenStack neutron刪除網路裝置出錯解決辦法
From: https://www.cnblogs.com/starof/p/4224342.html 目標:要刪除外網Ext-Net2 直接刪網路也會出錯:因為有一個或多個埠在使用該網路 [email protected]:~# neutron net-list +--
openstack neutron學習(一) ---- neutron-server入口
宣告: 本部落格歡迎轉發,但請保留原作者資訊! 內容系本人學習、研究和總結,如有雷同,不勝榮幸! 參考資料 通過devstack啟動neutron服務的配置 通過devstack啟動neutron服務需要在localrc中加入如下配置: disable_
解讀Mirantis最新的OpenStack Neutron效能測試
最近,mirantis的工程師釋出了最新的基於Mitaka版本的Neutron效能測試結果。得出的結論是:Neutron現在的效能已經可以用生產環境了。報告的三位作者都是OpenStack社群的活躍開發者,其中一位還是Neutron的core reviewer。並且這份報告出
OpenStack Neutron (1):外部網路建立與分析
OpenStack中建立的instance想要訪問外網必須要建立外部網路(即provider network),然後通過虛擬路由器的連線實現。Neutron是通過網橋的方式實現外網的訪問,在建立外部網路之前檢視網路配置情況:[email protected]:~#
OpenStack Neutron(3):建立instance分配floating IP及neutron原理分析
現在可以通過Dashboard建立instance並且分配floating IP,從而我們可以通過外網隨意訪問建立的instance,例如ping或者SSH。需要注意的是在分配security group的時候,如果要使用Default 的security group,需要新
Neutron DVR實現multi-host特性打通東西南北流量提前看(by quqi99)
作者:張華 發表於:2014-03-07 版權宣告:可以任意轉載,轉載時請務必以超連結形式標明文章原始出處和作者資訊及本版權宣告 (http://blog.csdn.net/quqi99 ) Legacy Routing and Distributed Router i
OpenStack Neutron(2):建立私有網路並與公網相連
在OpenStack中,建立instance之前必須建立網路。這裡通過Dashbord建立私有網路並且通過虛擬路由器與公網相連。私有網路即Tenant network。1. 建立私有網路及其子網登入Dashbord->Project->Network->Ne
Openstack neutron l3 HA的實現
記錄學習neutron l3 HA實現的過程。 1. router所在的所有節點的namespace中都會啟動keepalived服務,通過keepalived服務來控制節點的選舉: keepalived的程序: keepalived -P -f /var/lib/ne
openstack neutron使用中遇到的問題總結
@db_api.retry_if_session_inactive() def create_or_update_agent(self, context, agent_state): """Registers new agent in the database or updates e
OpenStack neutron floatingips 與 iptables 深入分析
1. 簡介neutron-l3-agent OpenStack neutron-l3-agent 主要負責實現網路三層協議,為虛擬機器完成SNAT,DNAT等地址的轉換與偽裝,提供安全彈性隔離的雲網絡環境, 下面詳細敘述了OpenStack如何使用iptables鏈與規則完
OpenStack Neutron原始碼分析:ovs-neutron-agent啟動原始碼解析
宣告: 本部落格歡迎轉載,但請保留原作者資訊! 作者:華為雲端計算工程師 林凱 團隊:華為杭州研發中心OpenStack社群團隊 本文是在個人學習過程中整理和總結,由於時間和個人能力有限,錯誤之處在所難免,歡迎指正! OpenStack Neutron,是專注於為Ope
openstack neutron L3 HA
作者:Liping Mao 發表於:2014-08-20 版權宣告:可以任意轉載,轉載時請務必以超連結形式標明文章原始出處和作者資訊及本版權宣告 最近Assaf Muller寫了一篇關於Neutron L3 HA的文章很不錯。 建議看原文,地址如下: http:/
在OpenStack Neutron裡如何改變預設租戶網路的型別
OpenStack Neutron支援的租戶網路型別有flat, local, VLAN, VXLAN和GRE。通常用的比較多的是VLAN, VXLAN和GRE。在使用租戶網路的時候,有時侯會面臨一個問題,如何改變預設的租戶網路型別,比如從VLAN改為VXLAN。要實現這一
OpenStack Neutron FWaaS 學習( by quqi99 )
OpenStack Neutron FWaaS 學習 ( by quqi99 )作者:張華 發表於:2013-06-24版權宣告:可以任意轉載,轉載時請務必以超連結形式標明文章原始出處和作者資訊及本版權宣告 ( http://blog.csdn.net/quqi99 )