기본적으로 사용자 지정 TCP 스택을 만들려고 합니다. 아시다시피 Linux 커널 TCP 스택이 eth0을 사용하기 때문에 eth0을 사용할 수 없습니다. 따라서 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 주소를 구성하면 슬레이브가 이를 공유합니다)