|
|
@@ -67,17 +67,18 @@ func (i *ipip) Init(base int) error {
|
|
|
// when traffic between nodes must be encapsulated.
|
|
|
func (i *ipip) Rules(nodes []*net.IPNet) []iptables.Rule {
|
|
|
var rules []iptables.Rule
|
|
|
+ proto := ipipProtocolName()
|
|
|
rules = append(rules, iptables.NewIPv4Chain("filter", "KILO-IPIP"))
|
|
|
rules = append(rules, iptables.NewIPv6Chain("filter", "KILO-IPIP"))
|
|
|
- rules = append(rules, iptables.NewIPv4Rule("filter", "INPUT", "-m", "comment", "--comment", "Kilo: jump to IPIP chain", "-p", "4", "-j", "KILO-IPIP"))
|
|
|
- rules = append(rules, iptables.NewIPv6Rule("filter", "INPUT", "-m", "comment", "--comment", "Kilo: jump to IPIP chain", "-p", "4", "-j", "KILO-IPIP"))
|
|
|
+ rules = append(rules, iptables.NewIPv4Rule("filter", "INPUT", "-p", proto, "-m", "comment", "--comment", "Kilo: jump to IPIP chain", "-j", "KILO-IPIP"))
|
|
|
+ rules = append(rules, iptables.NewIPv6Rule("filter", "INPUT", "-p", proto, "-m", "comment", "--comment", "Kilo: jump to IPIP chain", "-j", "KILO-IPIP"))
|
|
|
for _, n := range nodes {
|
|
|
// Accept encapsulated traffic from peers.
|
|
|
rules = append(rules, iptables.NewRule(iptables.GetProtocol(len(n.IP)), "filter", "KILO-IPIP", "-m", "comment", "--comment", "Kilo: allow IPIP traffic", "-s", n.IP.String(), "-j", "ACCEPT"))
|
|
|
}
|
|
|
// Drop all other IPIP traffic.
|
|
|
- rules = append(rules, iptables.NewIPv4Rule("filter", "INPUT", "-m", "comment", "--comment", "Kilo: reject other IPIP traffic", "-p", "4", "-j", "DROP"))
|
|
|
- rules = append(rules, iptables.NewIPv6Rule("filter", "INPUT", "-m", "comment", "--comment", "Kilo: reject other IPIP traffic", "-p", "4", "-j", "DROP"))
|
|
|
+ rules = append(rules, iptables.NewIPv4Rule("filter", "INPUT", "-p", proto, "-m", "comment", "--comment", "Kilo: reject other IPIP traffic", "-j", "DROP"))
|
|
|
+ rules = append(rules, iptables.NewIPv6Rule("filter", "INPUT", "-p", proto, "-m", "comment", "--comment", "Kilo: reject other IPIP traffic", "-j", "DROP"))
|
|
|
|
|
|
return rules
|
|
|
}
|