openstack Neutron 组件 命名空间问题介绍

Neutron 组件 命名空间问题介绍

network namespace简称netns

 Linux 中,命名空间(namespace)可以被认为是隔离的拥有单独网络栈(网卡、路由转发表、iptables)的环境。
 网络名字空间经常用来隔离网络设备和服务,只有拥有同样网络名字空间的设备,才能看到彼此

[root@controller02 ~]# ip net list
qdhcp-0a388da0-4bba-4f31-8511-7580820358f6
qdhcp-c7bafb36-4c6d-4790-a1e8-53d2bda4bc35
qrouter-c6f52d30-4b50-4bc0-9d9b-5b75af654c55
qrouter-7bcd933c-ab0e-465c-9b60-1c25faeb6312
qdhcp-75fef252-8381-4ddf-8107-fcfe04837052
qdhcp-1aaca46e-29e2-4734-bc26-32dccb88c831
qdhcp-aa7e3414-d491-4431-9241-68cf5f421609
qdhcp-756e2637-b4a1-4af2-83a9-90a2602181ff
qdhcp-92e2c23e-ed31-4aca-8275-03a5078d12b1
qdhcp-347d3e07-f96d-435d-ae9f-5753968db8e9
qdhcp-3c0887dd-fa13-47cd-a788-67f73bd5b037
qdhcp-660582c8-5145-4dfd-811c-d7b8ca535fd1
qdhcp-beeec023-0c44-41ff-821a-f6a65de47297
qdhcp-1cc45e24-9f4e-496d-959d-c18a84860828
qdhcp-38931dcf-6604-45f3-b13d-6f89a0b32fb6
qdhcp-92bee597-bbdd-4bb5-b5a3-0c9035f88c9a
qdhcp-d2f7c2c7-214f-41fb-9dfe-c314c6685f3b


[root@node1 ~]#
##具体可以用ip net help 来查看使用方法

[root@ansible ~]# ip net help
Usage: ip netns list
       ip netns add NAME
       ip netns set NAME NETNSID
       ip [-all] netns delete [NAME]
       ip netns identify [PID]
       ip netns pids NAME
       ip [-all] netns exec [NAME] cmd ...
       ip netns monitor
       ip netns list-id


[root@ansible ~]#


[root@controller02 ~]# ip netns exec qdhcp-c7bafb36-4c6d-4790-a1e8-53d2bda4bc35 ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    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
53: tap3b0e89ea-ff: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether fa:16:3e:e1:84:32 brd ff:ff:ff:ff:ff:ff
    inet 10.xx.x.2/24 brd 10.20.2.255 scope global tap3b0e89ea-ff
       valid_lft forever preferred_lft forever
    inet 169.254.169.254/16 brd 169.254.255.255 scope global tap3b0e89ea-ff
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fee1:8432/64 scope link
       valid_lft forever preferred_lft forever


[root@controller02 ~]#
#可以看到,dhcp服务的网络命名空间只有有一个网络接口"3b0e89ea-ff",它通过"tap3b0e89ea-ff"连接到br-int上 这个是dhcp 的port

 


路由服务

首先,要理解什么是 router,router是提供跨 subnet 的互联功能的。比如用户的内部网络中主机想要访问外部互联网的地址,
就需要router来转发(因此,所有跟外部网络的流量都必须经过router)。目前router的实现是通过iptables进行的

[root@controller02 ~]# ip net list
qdhcp-0a388da0-4bba-4f31-8511-7580820358f6
qdhcp-c7bafb36-4c6d-4790-a1e8-53d2bda4bc35
qrouter-c6f52d30-4b50-4bc0-9d9b-5b75af654c55
qrouter-7bcd933c-ab0e-465c-9b60-1c25faeb6312
qdhcp-75fef252-8381-4ddf-8107-fcfe04837052
qdhcp-1aaca46e-29e2-4734-bc26-32dccb88c831
qdhcp-aa7e3414-d491-4431-9241-68cf5f421609
qdhcp-756e2637-b4a1-4af2-83a9-90a2602181ff
qdhcp-92e2c23e-ed31-4aca-8275-03a5078d12b1
qdhcp-347d3e07-f96d-435d-ae9f-5753968db8e9
qdhcp-3c0887dd-fa13-47cd-a788-67f73bd5b037
qdhcp-660582c8-5145-4dfd-811c-d7b8ca535fd1
qdhcp-beeec023-0c44-41ff-821a-f6a65de47297
qdhcp-1cc45e24-9f4e-496d-959d-c18a84860828
qdhcp-38931dcf-6604-45f3-b13d-6f89a0b32fb6
qdhcp-92bee597-bbdd-4bb5-b5a3-0c9035f88c9a
qdhcp-d2f7c2c7-214f-41fb-9dfe-c314c6685f3b


[root@controller02 ~]# ip netns exec qrouter-c6f52d30-4b50-4bc0-9d9b-5b75af654c55 ip route
169.254.192.0/18 dev ha-327f3319-05  proto kernel  scope link  src 169.254.192.1
[root@controller02 ~]# ip netns exec qrouter-7bcd933c-ab0e-465c-9b60-1c25faeb6312 ip route
169.254.192.0/18 dev ha-b18961b1-af  proto kernel  scope link  src 169.254.192.1
[root@controller02 ~]#
 

[root@controller02 ~]# ip netns exec qrouter-7bcd933c-ab0e-465c-9b60-1c25faeb6312 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    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: ingress_qos: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc htb state UNKNOWN qlen 32
    link/ether 12:6b:8f:c4:74:66 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::106b:8fff:fec4:7466/64 scope link
       valid_lft forever preferred_lft forever
52: ha-b18961b1-af: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether fa:16:3e:9c:74:ba brd ff:ff:ff:ff:ff:ff
    inet 169.254.192.1/18 brd 169.254.255.255 scope global ha-b18961b1-af
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe9c:74ba/64 scope link
       valid_lft forever preferred_lft forever
55: qg-d685e09d-9c: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc htb state UNKNOWN qlen 1000
    link/ether fa:16:3e:f1:13:43 brd ff:ff:ff:ff:ff:ff
[root@controller02 ~]#

#ha-b18961b1-af


[root@controller02 ~]# ip netns exec qrouter-c6f52d30-4b50-4bc0-9d9b-5b75af654c55 iptables -t nat -S

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-N neutron-postrouting-bottom
-N neutron-vp-agen-OUTPUT
-N neutron-vp-agen-POSTROUTING
-N neutron-vp-agen-PREROUTING
-N neutron-vp-agen-float-snat
-N neutron-vp-agen-snat
-A PREROUTING -j neutron-vp-agen-PREROUTING
-A OUTPUT -j neutron-vp-agen-OUTPUT
-A POSTROUTING -j neutron-vp-agen-POSTROUTING
-A POSTROUTING -j neutron-postrouting-bottom
-A neutron-postrouting-bottom -m comment --comment "Perform source NAT on outgoing traffic." -j neutron-vp-agen-snat
-A neutron-vp-agen-PREROUTING -d 169.254.169.254/32 -i qr-+ -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 9697
-A neutron-vp-agen-snat -j neutron-vp-agen-float-snat


[root@controller02 ~]#

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石兴稳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值