code: func (c *ChainInfo) Link(action Action, ip1, ip2 net.IP, port int, proto string, bridgeName string) error {
  	// forward
  	args := []string{
  		"-i", bridgeName, "-o", bridgeName,
  		"-p", proto,
  		"-s", ip1.String(),
  		"-d", ip2.String(),
  		"--dport", strconv.Itoa(port),
  		"-j", "ACCEPT",
  	}
  	if err := ProgramRule(Filter, c.Name, action, args); err != nil {
  		return err
  	}
  	// reverse
  	args[7], args[9] = args[9], args[7]
  	args[10] = "--sport"
  	return ProgramRule(Filter, c.Name, action, args)
  }
docs: // Link adds reciprocal ACCEPT rule for two supplied IP addresses.
  // Traffic is allowed from ip1 to ip2 and vice-versa