【问题标题】:Can I ping with Tun/Tap interface我可以用 Tun/Tap 接口 ping 吗
【发布时间】:2021-08-15 09:30:48
【问题描述】:

我正在学习使用 tuntap 接口的路由...我已经创建了一个 tun0 接口并使用 ifconfig 命令在不同的子网上配置了 IP 地址,并使用 ip route 命令添加了网关,我还使用了伪装规则... 我的疑问是我可以用 tuntap 接口 ping 还是它们仅用于路由流量或我不知道这些接口的东西,或者可能是配置错误..

可能这个问题听起来我是新手,但请给我正确的方向..

好的格哈德,

编辑:我这样创建了 tun dev:

int tun_dev_alloc()
{
    struct ifreq ifr;
    int tun_dev_fd , ioctl_err;
    if((tun_dev_fd = open("/dev/net/tun",O_RDWR)) < 0)
    {
        perror("Can't open /dev/net/tun");
        return tun_dev_fd;
    }

    memset(&ifr,0,sizeof(ifr));

    ifr.ifr_flags = IFF_TUN | IFF_NO_PI;
    strncpy(ifr.ifr_name,TUN_DEV,IFNAMSIZ);
    
    if((ioctl_err = ioctl(tun_dev_fd, TUNSETIFF, (void*) &ifr)) < 0)
    {
        perror("ioctl[TUNSETIFF]");
        close(tun_dev_fd);
        return ioctl_err;
    }
    return tun_dev_fd;

}

此 tun0 设备的配置:

$sudo ifconfig tun0 10.0.3.4/24 mtu 1500 up
$sudo ip route add default gateway via 10.0.3.10 dev tun0
$sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

现在 ping 响应:

ping  8.8.8.8 -I tun0
ping: Warning: source address might be selected on device other than tun0.
PING 8.8.8.8 (8.8.8.8) from 10.0.2.15 tun0: 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
20 packets transmitted, 0 received, 100% packet loss, time 1028ms

任何帮助将不胜感激......

【问题讨论】:

  • 您似乎在使用 shell 命令来完成这些任务。我没有看到您问题的任何与编程相关的部分。我想,SuperUserUnix&Linux 会比 StackOverflow 更适合这个问题。另外请不要添加与您的问题无关的标签。根本不涉及 C。
  • @Gerhardh no no 实际上我是通过从 /dev/net/tun 打开 fd 并使用命令进行所有配置来创建 tun0 设备
  • 在这种情况下,你应该展示你做了什么。
  • @gerhardh 请检查编辑。

标签: c networking routes vpn tun


【解决方案1】:

标准网络接口背后有一块硬件(网卡)。

Tuntap 不要:

https://www.kernel.org/doc/Documentation/networking/tuntap.txt

tl;dr:发送到 tuntap 接口的数据包被移交给用户空间程序进行处理。该程序以某种方式扮演网卡的角色(例如:openvpn)。除非有程序从设备中取出数据包并对它们做一些有意义的事情,否则它们将消失在虚空中(就像网卡与断开的电缆一样)。

【讨论】:

  • 是的,你是正确的..为了使用 tuntap 接口进行 ping,我必须创建网络堆栈或特别是 ping 功能..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-20
  • 1970-01-01
  • 1970-01-01
  • 2014-02-28
  • 2023-03-20
  • 1970-01-01
相关资源
最近更新 更多