技术解析

关于虚拟网卡问题
0
2021-06-22 06:30:03
idczone

有没有大牛能够帮忙解答如下问题?知识薄弱,都不知道如何搜索好⊙﹏⊙b !

路由: 192.168.1.1 联网

机器 A:

 物理网卡   eth0  192.168.1.2/24,  连接路由器

 虚拟网卡  veth0  192.168.2.2/24,已经通过 eth0 联网

机器 B:

 物理网卡   eht0  192.168.1.2/24,连接路由器

问题 1: 机器 A 如何配置能够通过 veth0 上网

问题 2: 机器 B 如何通过机器 A 的 veth0 上网


ip 冲突?

不能吧。你的 A 机器 veth0 的 ip 配置和路由都不在一个网段上,怎么上?

问题一,通过 route 命令配置默认路由

你这个 veth0 是怎么弄出来的?

机器 A 加一个 bridge 应该就可以了,后者机器 A 开启 ip_forward 试试看。
sysctl -w net.ipv4.ip_forward=1
参考下:
https://wiki.gentoo.org/wiki/Network_bridge
https://wiki.gentoo.org/wiki/Ethernet_plus_WiFi_Bridge_Router_and_Firewall

veth 是成对出现的。比如 veth0 与 veth1,发往 veth0 的数据包只能由另一个 veth1 接收。
通过网桥桥接 eth0 与 veth1,可以另发往 veth0 的数据包到达 eth0 端口。

veth 是网络虚拟化的一种,虚拟的是链路层以太网,使用 ip link 可以创建。

A 通过 nat,B 和 A 处于同一网络 ip 冲突怎么上网?

大兄弟是不是搭了一套 vpn 想做个二级路由翻墙啊,虚拟网卡是 vpn 创的
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o veth0 -j MASQUERADE
iptables -t filter -A FORWARD -i veth0 -j ACCEPT
iptables -A FORWARD -o veth0 -j ACCEPT
iptables -t filter -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
对了,默认路由用你 veth 那个,这个我就不写命令了啊
这样 A 机器上所有流量走 veth,B 机器设置默认网关为 192.168.1.2, 所有流量走 veth,相当于把 A 当路由器了
你且试试?

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服