基本上我正在尝试创建一个自定义 TCP 堆栈。你可能知道我不能使用 eth0,因为 Linux 内核 TCP 堆栈使用它,因此我需要创建一个 tun/tap 接口并将其用于我的自定义 TCP 堆栈。
/etc/网络/接口:
auto lo
iface lo inet loopback
allow-hotplug eth0
auto eth0
iface eth0 inet static
address 192.168.1.152
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-server 192.168.1.1
allow-hotplug tap0
auto tap0
iface tap0 inet manual
pre-up ip tuntap add tap0 mode tap user root
pre-up ip addr add 192.168.1.153/24 dev tap0
up ip link set dev tap0 up
post-up ip route del 192.168.1.0/24 dev tap0
post-up ip route add 192.168.1.152/32 dev tap0
post-down ip link del dev tap0
如果配置
inet addr:192.168.1.152 bcast:192.168.1.255 netmask 255.255.255.0
lo:
inet addr:127.0.0.1 mask 255.0.0.0
tap0:
inet addr: 192.168.1.153 bcast:0.0.0.0 mask 255.255.255.0
通过以下配置,我可以使用 eth0 访问 wan/lan,但我什至无法使用 tap0 访问我的网关。
如果您能告诉我我在这里犯了什么错误,我将不胜感激。
答案1
我只是桥接两者,在这种情况下,tap0 上不需要 IP 地址,即;
brctl addif br0 tap0
ip link set tap0 master br0
或者如果您还没有安装bridge-utils,那么:
ip tuntap add tap0 mode tap
ip link set dev tap0 up
ip link add br0 type bridge
ip link set tap0 master br0
ip link set eth0 master br0
(配置主机br0的IP地址,从机将共享它)