问题是有关要利用Tun / Tap模块的Linux主机的正确配置。
我的目标:
利用现有的路由软件(以下简称APP1和APP2),但截取和修改由它发送和接收的所有消息(由Mediator完成)。
我的场景:
Ubuntu 10.04 Machine
+---------------------------------------------+
| |
|APP1 --- tap1 --- Mediator --- tap2 --- APP2 |
| |
+---------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
tap1和tap2:分别设置带有IFF_TAP标志和IP 10.0.0.1/24和10.0.0.2/24的设备设置。创建设备的代码如下:
#include <stdlib.h>
#include <stdio.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <linux/if.h>
#include <linux/if_tun.h>
#include <string.h>
#include <errno.h>
#include <sys/resource.h>
void createTun(char *, char *, short);
int main(void)
{
const short FLAGS = IFF_TAP;
char *tunName;
char *tunIP;
// Create tap1
tunName = "tap1\0";
tunIP = "10.0.0.1/24\0";
createTun(tunName, tunIP, FLAGS);
printf("Created %s with …Run Code Online (Sandbox Code Playgroud)