Skip to content

Commit b37d661

Browse files
committed
title: Add ipsec tunnel mode to support cross clusters and elastic ip
description: add explanatory note Signed-off-by: GreatLazyMan <[email protected]>
1 parent d1a6fda commit b37d661

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

pkg/apis/kosmos/v1alpha1/nodeconfig_types.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,12 @@ func (a *Arp) Compare(v Arp) bool {
105105
}
106106

107107
/*
108-
Just like linux command:
108+
Use this struct like linux command:
109109
110110
ip xfrm policy add src $LeftNet dst $RightNet dir $Dir \
111111
tmpl src $LeftIP dst $RightIP proto esp reqid $ReqID mode tunnel
112+
ip xfrm policy del src $LeftNet dst $RightNet dir $Dir \
113+
tmpl src $LeftIP dst $RightIP proto esp reqid $ReqID mode tunnel
112114
*/
113115
type XfrmPolicy struct {
114116
LeftIP string `json:"leftip"`
@@ -129,9 +131,10 @@ func (a *XfrmPolicy) Compare(v XfrmPolicy) bool {
129131
}
130132

131133
/*
132-
Just like linux command:
134+
Use this struct like linux command:
133135
134-
ip xfrm state add src $LeftIP dst $RightIP proto esp spi $SPI reqid $ReqID mode tunnel aead 'rfc4106(gcm(aes))' $PSK 128
136+
ip xfrm state add src $LeftIP dst $RightIP proto esp spi $ID reqid $ID mode tunnel aead 'rfc4106(gcm(aes))' $PSK 128
137+
ip xfrm state del src $LeftIP dst $RightIP proto esp spi $ID reqid $ID mode tunnel aead 'rfc4106(gcm(aes))' $PSK 128
135138
*/
136139
type XfrmState struct {
137140
LeftIP string `json:"leftip"`

pkg/clusterlink/network/xfrm_policy.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ import (
1515

1616
// For reference:
1717
// https://github.com/flannel-io/flannel
18+
/*
19+
Use this func like linux command:
20+
21+
ip xfrm policy add src $srcNet dst $dstNet dir $dir \
22+
tmpl src $srcIP dst $dstIP proto esp reqid $reqID mode tunnel
23+
*/
1824
func AddXFRMPolicy(srcNet, dstNet *net.IPNet, srcIP, dstIP net.IP, dir netlink.Dir, reqID int) error {
1925
policy := &netlink.XfrmPolicy{
2026
Src: srcNet,
@@ -50,6 +56,12 @@ func AddXFRMPolicy(srcNet, dstNet *net.IPNet, srcIP, dstIP net.IP, dir netlink.D
5056
return nil
5157
}
5258

59+
/*
60+
Use this func like linux command:
61+
62+
ip xfrm policy del src $srcNet dst $dstNet dir $dir \
63+
tmpl src $srcIP dst $dstIP proto esp reqid $reqID mode tunnel
64+
*/
5365
func DeleteXFRMPolicy(srcNet, dstNet *net.IPNet, srcIP, dstIP net.IP, dir netlink.Dir, reqID int) error {
5466
policy := netlink.XfrmPolicy{
5567
Src: srcNet,
@@ -76,6 +88,11 @@ func DeleteXFRMPolicy(srcNet, dstNet *net.IPNet, srcIP, dstIP net.IP, dir netlin
7688
return nil
7789
}
7890

91+
/*
92+
Use this func like linux command:
93+
94+
ip xfrm state add src $srcIP dst $dstIP proto esp spi $spi reqid $reqID mode tunnel aead 'rfc4106(gcm(aes))' $psk 128
95+
*/
7996
func AddXFRMState(srcIP, dstIP net.IP, reqID int, spi int, psk string) error {
8097
k, _ := hex.DecodeString(psk)
8198
state := netlink.XfrmState{
@@ -110,6 +127,11 @@ func AddXFRMState(srcIP, dstIP net.IP, reqID int, spi int, psk string) error {
110127
return nil
111128
}
112129

130+
/*
131+
Use this func like linux command:
132+
133+
ip xfrm state del src $srcIP dst $dstIP proto esp spi $spi reqid $reqID mode tunnel aead 'rfc4106(gcm(aes))' $psk 128
134+
*/
113135
func DeleteXFRMState(srcIP, dstIP net.IP, reqID int, spi int, psk string) error {
114136
k, _ := hex.DecodeString(psk)
115137
state := netlink.XfrmState{

0 commit comments

Comments
 (0)