@@ -299,6 +299,24 @@ class ControlPlaneAclManager(daemon_base.DaemonBase):
299299
300300 return block_ip2me_cmds
301301
302+ def get_chassis_midplane_interface_ip (self ):
303+ ip_address_cmd0 = ['ip' , '-4' , '-o' , 'addr' , 'show' , "eth1-midplane" ]
304+ ip_address_cmd1 = ['awk' , '{print $4}' ]
305+ ip_address_cmd2 = ['cut' , '-d' , '/' , '-f1' ]
306+ ip_address_cmd3 = ['head' , '-1' ]
307+ return self .run_commands_pipe (ip_address_cmd0 , ip_address_cmd1 , ip_address_cmd2 , ip_address_cmd3 )
308+
309+ def generate_allow_internal_chasis_midplane_traffic (self , namespace ):
310+ allow_internal_chassis_midplane_traffic = []
311+ if not namespace :
312+ chassis_midplane_ip = self .get_chassis_midplane_interface_ip ()
313+ if not chassis_midplane_ip :
314+ return allow_internal_chassis_midplane_traffic
315+ allow_internal_chassis_midplane_traffic .append (['iptables' , '-A' , 'INPUT' , '-s' , chassis_midplane_ip , '-d' , chassis_midplane_ip , '-j' , 'ACCEPT' ])
316+ allow_internal_chassis_midplane_traffic .append (['iptables' , '-A' , 'INPUT' , '-i' , 'eth1-midplane' , '-j' , 'ACCEPT' ])
317+
318+ return allow_internal_chassis_midplane_traffic
319+
302320 def generate_allow_internal_docker_ip_traffic_commands (self , namespace ):
303321 allow_internal_docker_ip_cmds = []
304322
@@ -539,6 +557,9 @@ class ControlPlaneAclManager(daemon_base.DaemonBase):
539557 # Add iptables commands to allow internal docker traffic
540558 iptables_cmds += self .generate_allow_internal_docker_ip_traffic_commands (namespace )
541559
560+ # Add iptables commands to allow internal chasiss midplane traffic
561+ iptables_cmds += self .generate_allow_internal_chasis_midplane_traffic (namespace )
562+
542563 # Add iptables/ip6tables commands to allow all incoming packets from established
543564 # connections or new connections which are related to established connections
544565 iptables_cmds .append (self .iptables_cmd_ns_prefix [namespace ] + ['iptables' , '-A' , 'INPUT' , '-m' , 'conntrack' , '--ctstate' , 'ESTABLISHED,RELATED' , '-j' , 'ACCEPT' ])
0 commit comments