实现细节

防火墙由 L3 Agent 通过修改 iptables 规则来实现,具体规则在网络节点的路由器命名空间中,作用到该租户所有路由器的 qr-xxx 接口上。

在网络节点上查看其中的 iptables 规则,会发现多了两个 iptables 链,分别处理进出两个方向的流量,被 neutron-vpn-agen-FORWARD 引用。

  1. $ sudo ip netns exec qrouter-40fff075-d3a2-477b-942c-6b1adb42e35e iptables -nvL
  2. Chain neutron-vpn-agen-iv4d8ed9898 (1 references)
  3. pkts bytes target prot opt in out source destination
  4. 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
  5. 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
  6. 0 0 ACCEPT tcp -- * * 0.0.0.0/0 10.0.0.0/24 tcp spts:1:65535 dpt:22
  7. Chain neutron-vpn-agen-ov4d8ed9898 (1 references)
  8. pkts bytes target prot opt in out source destination
  9. 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
  10. 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
  11. 0 0 ACCEPT tcp -- * * 0.0.0.0/0 10.0.0.0/24 tcp spts:1:65535 dpt:22