두 Linux 시스템 간에 IPsec 연결을 설정하려고 합니다. 커널 옵션을 활성화했습니다IPsec Howto에서 언급됨.
setkey
다음과 같은 스크립트를 설정했습니다 .
#! /usr/sbin/setkey -vf
add 192.168.210.1 192.168.210.2 esp 24501 -E 3des-cbc "123456789012123456789012";
add 192.168.210.1 192.168.210.2 ah 24500 -A hmac-md5 "1234567890123456";
결과는 "프로토콜이 지원되지 않음"을 반환합니다(자세한 내용은 아래 참조). 다음 을 사용하여 커널 설정을 다시 확인했습니다 /proc/config.gz
. 하우투에 언급된 모든 옵션에는 "y"가 있습니다. 내가 또 무엇을 놓치고 있을까요?
# /flash/ipsec
sadb_msg{ version=2 type=3 errno=0 satype=3
len=16 reserved=0 seq=0 pid=23105
sadb_ext{ len=4 type=9 }
sadb_key{ bits=192 reserved=0
key= 03000500 ff200000 02000000 44f2adbf 00000000 00000000 }
sadb_ext{ len=2 type=1 }
sadb_sa{ spi=24501 replay=0 state=0
auth=0 encrypt=3 flags=0x00000040 }
sadb_ext{ len=2 type=19 }
sadb_x_sa2{ mode=0 reqid=0
reserved1=52 reserved2=2 sequence=1076530488 }
sadb_ext{ len=3 type=5 }
sadb_address{ proto=255 prefixlen=32 reserved=0x0000 }
sockaddr{ len=16 family=2 port=0
44f2adbf }
sadb_ext{ len=3 type=6 }
sadb_address{ proto=255 prefixlen=32 reserved=0x0000 }
sockaddr{ len=16 family=2 port=0
b86ae316 }
sadb_msg{ version=2 type=3 errno=93 satype=3
len=2 reserved=0 seq=0 pid=23105
The result of line 2: Protocol not supported.
sadb_msg{ version=2 type=3 errno=0 satype=2
len=15 reserved=0 seq=0 pid=23105
sadb_ext{ len=3 type=8 }
sadb_key{ bits=128 reserved=0
key= 02000000 44f2adbf 00000000 00000000 }
sadb_ext{ len=2 type=1 }
sadb_sa{ spi=24500 replay=0 state=0
auth=2 encrypt=0 flags=0x00000040 }
sadb_ext{ len=2 type=19 }
sadb_x_sa2{ mode=0 reqid=0
reserved1=52 reserved2=2 sequence=1076530488 }
sadb_ext{ len=3 type=5 }
sadb_address{ proto=255 prefixlen=32 reserved=0x0000 }
sockaddr{ len=16 family=2 port=0
44f2adbf }
sadb_ext{ len=3 type=6 }
sadb_address{ proto=255 prefixlen=32 reserved=0x0000 }
sockaddr{ len=16 family=2 port=0
b86ae316 }
sadb_msg{ version=2 type=3 errno=93 satype=2
len=2 reserved=0 seq=0 pid=23105
The result of line 3: Protocol not supported.
#
답변1
다음 커널 구성 설정으로 문제가 해결됩니다.
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y