NAME
ipsec_tncfg - 操作KLIPS虚拟接口
SYNOPSIS
ipsec tncfg
ipsec tncfg --create
virtual
ipsec tncfg --delete
virtual
ipsec tncfg --attach --virtual
virtual --physical
physical
ipsec tncfg --detach --virtual
virtual
ipsec tncfg --clear
ipsec tncfg --version
ipsec tncfg --help
OBSOLETE
tncfg只支持KLIPS。将会在以后新版本中被去除
DESCRIPTION
tncfg用于(绑定/解绑)IPsec虚拟接口(到/从)物理接口。
--attach 绑定虚拟接口到对指定物理接口
--detach 解绑虚拟接口,无论它被绑定在哪个物理接口上
--clear 清除所有虚拟接口与物理接口的绑定关系
EXAMPLES
ipsec tncfg --create ipsec0
创建ipsec0设备,但没有进行绑定
ipsec tncfg --attach --virtaul ipsec0 --physical eth0
绑定
ipsec0虚拟接口到
eth0物理接口上
源码分析
programs/tncfg/tncfg.c
绑定/解绑
创建socket
s=safe_socket(AF_INET, SOCK_DGRAM,0);
调用ioctl接口
ioctl(s, shc.cf_cmd, &ifr)
shc.cf_cmd对应命令
IPSEC_SET_DEV 绑定虚拟接口与物理接口
IPSEC_DEL_DEV 解绑虚拟接口与物理接口
IPSEC_CLR_DEV 清除虚拟接口与物理接口绑定关系
struct ifreq ifr;
ifr.ifr_name 虚拟接口名字
ifr.ifr_ifru.ifru_newname 物理接口名字
创建/删除
createdelete_virtual(createdelete, virtname)
createdelete对应命令
SADB_X_PLUMBIF 创建接口
SADB_X_UNPLUMBIF 删除接口
virtname
需要创建的虚拟接口名字