Netfilter学习之NAT类型动态配置(六)全锥型NAT用户空间iptables命令行实现

  本文主要实现全锥型NAT的用户空间iptables命令行扩展的实现,实现思路见上文,具体可以模仿MASQUERADE的源码进行改写。

1.关键部分实现代码

  由于fullcone类型并不需要输入参数,因此parse可以为空,print和save也很简单,只需要help和结构注册两部分保证正确即可。

  help如下:

static void FULLCONE_help(void)
{
  printf(
  "FULLCONE target options:\n"
  "Author cty"
  "Empty here for further extension"
  );
}

  注册结构和masquerade类似:

static struct xtables_target fullcone_tg_reg = {
  .name = "FULLCONE",
  .version = XTABLES_VERSION,
  .family = NFPROTO_IPV4,
  .size = XT_ALIGN(sizeof(struct nf_nat_ipv4_multi_range_compat)),
  .userspace = XT_ALIGN(sizeof(struct nf_nat_ipv4_multi_range_compat)),
  .help = FULLCONE_help,
  .init = FULLCONE_init,
  .x6_parse = FULLCONE_parse,
  .print = FULLCONE_print,
  .save = FULLCONE_save,
  .x6_options = FULLCONE_opts,
};

2.小结

   相对来说用户空间iptables的扩展是很容易实现的。需要完全代码的可以上我的github看或者联系我。

猜你喜欢

转载自blog.csdn.net/u013354486/article/details/79832471
今日推荐