Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 75 additions & 7 deletions npm/iptm/helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ import (
func getAllChainsAndRules() [][]string {
funcList := []func() [][]string{
getAzureNPMChainRules,
getAzureNPMIngressChainRules,
getAzureNPMIngressPortChainRules,
getAzureNPMIngressFromChainRules,
getAzureNPMEgressChainRules,
getAzureNPMEgressPortChainRules,
getAzureNPMEgressToChainRules,
}
Expand All @@ -32,12 +34,12 @@ func getAzureNPMChainRules() [][]string {
{
util.IptablesAzureChain,
util.IptablesJumpFlag,
util.IptablesAzureIngressPortChain,
util.IptablesAzureIngressChain,
},
{
util.IptablesAzureChain,
util.IptablesJumpFlag,
util.IptablesAzureEgressPortChain,
util.IptablesAzureEgressChain,
},
{
util.IptablesAzureChain,
Expand Down Expand Up @@ -78,11 +80,6 @@ func getAzureNPMChainRules() [][]string {
util.IptablesCommentFlag,
fmt.Sprintf("ACCEPT-on-EGRESS-mark-%s", util.IptablesAzureEgressMarkHex),
},
{
util.IptablesAzureChain,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
},
{
util.IptablesAzureChain,
util.IptablesModuleFlag,
Expand All @@ -99,6 +96,35 @@ func getAzureNPMChainRules() [][]string {
}
}

// getAzureNPMIngressChainRules returns rules for AZURE-NPM-INGRESS-PORT
func getAzureNPMIngressChainRules() [][]string {
return [][]string{
{
util.IptablesAzureIngressChain,
util.IptablesJumpFlag,
util.IptablesAzureIngressPortChain,
},
{
util.IptablesAzureIngressChain,
util.IptablesJumpFlag,
util.IptablesReturn,
util.IptablesModuleFlag,
util.IptablesMarkVerb,
util.IptablesMarkFlag,
util.IptablesAzureIngressMarkHex,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
fmt.Sprintf("RETURN-on-INGRESS-mark-%s", util.IptablesAzureIngressMarkHex),
},
{
util.IptablesAzureIngressChain,
util.IptablesJumpFlag,
util.IptablesAzureIngressDropsChain,
},
}
}

// getAzureNPMIngressPortChainRules returns rules for AZURE-NPM-INGRESS-PORT
func getAzureNPMIngressPortChainRules() [][]string {
return [][]string{
Expand Down Expand Up @@ -137,6 +163,48 @@ func getAzureNPMIngressFromChainRules() [][]string {
}
}

// getAzureNPMEgressChainRules returns rules for AZURE-NPM-INGRESS-PORT
func getAzureNPMEgressChainRules() [][]string {
return [][]string{
{
util.IptablesAzureEgressChain,
util.IptablesJumpFlag,
util.IptablesAzureEgressPortChain,
},
{
util.IptablesAzureEgressChain,
util.IptablesJumpFlag,
util.IptablesReturn,
util.IptablesModuleFlag,
util.IptablesMarkVerb,
util.IptablesMarkFlag,
util.IptablesAzureAcceptMarkHex,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
fmt.Sprintf("RETURN-on-EGRESS-and-INGRESS-mark-%s", util.IptablesAzureAcceptMarkHex),
},
{
util.IptablesAzureEgressChain,
util.IptablesJumpFlag,
util.IptablesReturn,
util.IptablesModuleFlag,
util.IptablesMarkVerb,
util.IptablesMarkFlag,
util.IptablesAzureEgressMarkHex,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
fmt.Sprintf("RETURN-on-EGRESS-mark-%s", util.IptablesAzureEgressMarkHex),
},
{
util.IptablesAzureEgressChain,
util.IptablesJumpFlag,
util.IptablesAzureEgressDropsChain,
},
}
}

// getAzureNPMEgressPortChainRules returns rules for AZURE-NPM-INGRESS-PORT
func getAzureNPMEgressPortChainRules() [][]string {
return [][]string{
Expand Down
2 changes: 1 addition & 1 deletion npm/iptm/helper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
func TestGetAllChainsAndRules(t *testing.T) {
allChainsandRules := getAllChainsAndRules()

parentNpmRulesCount := 7
parentNpmRulesCount := 6

if len(allChainsandRules[0]) > 3 {
t.Errorf("TestGetAllChainsAndRules failed @ INGRESS target check")
Expand Down
5 changes: 4 additions & 1 deletion npm/iptm/iptm.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,14 @@ var (
// IptablesAzureChainList contains list of all NPM chains
IptablesAzureChainList = []string{
util.IptablesAzureChain,
util.IptablesAzureIngressChain,
util.IptablesAzureEgressChain,
util.IptablesAzureIngressPortChain,
util.IptablesAzureIngressFromChain,
util.IptablesAzureEgressPortChain,
util.IptablesAzureEgressToChain,
util.IptablesAzureTargetSetsChain,
util.IptablesAzureIngressDropsChain,
util.IptablesAzureEgressDropsChain,
}
)

Expand Down
20 changes: 10 additions & 10 deletions npm/translatePolicy.go
Original file line number Diff line number Diff line change
Expand Up @@ -799,13 +799,13 @@ func translateIngress(ns string, policyName string, targetSelector metav1.LabelS
entry.Specs = append(
entry.Specs,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesAzureIngressDropsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-"+
targetSelectorComment+
"-TO-JUMP-TO-"+util.IptablesAzureTargetSetsChain,
"-TO-JUMP-TO-"+util.IptablesAzureIngressDropsChain,
)
entries = append(entries, entry)
} else if addedIngressFromEntry {
Expand Down Expand Up @@ -834,13 +834,13 @@ func translateIngress(ns string, policyName string, targetSelector metav1.LabelS
entry.Specs = append(
entry.Specs,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesAzureIngressDropsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-"+
targetSelectorComment+
"-TO-JUMP-TO-"+util.IptablesAzureTargetSetsChain,
"-TO-JUMP-TO-"+util.IptablesAzureIngressDropsChain,
)
entries = append(entries, entry)
}
Expand Down Expand Up @@ -1491,13 +1491,13 @@ func translateEgress(ns string, policyName string, targetSelector metav1.LabelSe
entry.Specs = append(
entry.Specs,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesAzureEgressDropsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-FROM-"+
targetSelectorComment+
"-TO-JUMP-TO-"+util.IptablesAzureTargetSetsChain,
"-TO-JUMP-TO-"+util.IptablesAzureEgressDropsChain,
)
entries = append(entries, entry)
} else if addedEgressToEntry {
Expand Down Expand Up @@ -1526,13 +1526,13 @@ func translateEgress(ns string, policyName string, targetSelector metav1.LabelSe
entry.Specs = append(
entry.Specs,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesAzureEgressDropsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-FROM-"+
targetSelectorComment+
"-TO-JUMP-TO-"+util.IptablesAzureTargetSetsChain,
"-TO-JUMP-TO-"+util.IptablesAzureEgressDropsChain,
)
entries = append(entries, entry)
}
Expand All @@ -1554,7 +1554,7 @@ func getDefaultDropEntries(ns string, targetSelector metav1.LabelSelector, hasIn

if hasIngress {
entry := &iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Chain: util.IptablesAzureIngressDropsChain,
Specs: append([]string(nil), targetSelectorIngressIptEntrySpec...),
}
entry.Specs = append(
Expand All @@ -1571,7 +1571,7 @@ func getDefaultDropEntries(ns string, targetSelector metav1.LabelSelector, hasIn

if hasEgress {
entry := &iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Chain: util.IptablesAzureEgressDropsChain,
Specs: append([]string(nil), targetSelectorEgressIptEntrySpec...),
}
entry.Specs = append(
Expand Down
Loading