关于虚拟网卡问题

2019-02-07 17:36:26 +08:00
 Grandia

有没有大牛能够帮忙解答如下问题?知识薄弱,都不知道如何搜索好⊙﹏⊙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 上网

3382 次点击
所在节点    Linux
9 条回复
batman2010
2019-02-07 17:52:59 +08:00
ip 冲突?
mchong
2019-02-07 17:55:50 +08:00
不能吧。你的 A 机器 veth0 的 ip 配置和路由都不在一个网段上,怎么上?
koebehshian
2019-02-07 17:56:27 +08:00
问题一,通过 route 命令配置默认路由
ysc3839
2019-02-07 18:03:42 +08:00
你这个 veth0 是怎么弄出来的?
henglinli
2019-02-07 18:15:58 +08:00
机器 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
feather12315
2019-02-07 18:24:29 +08:00
veth 是成对出现的。比如 veth0 与 veth1,发往 veth0 的数据包只能由另一个 veth1 接收。
通过网桥桥接 eth0 与 veth1,可以另发往 veth0 的数据包到达 eth0 端口。
feather12315
2019-02-07 18:26:04 +08:00
@ysc3839 #4 veth 是网络虚拟化的一种,虚拟的是链路层以太网,使用 ip link 可以创建。
Leigg
2019-02-07 18:45:13 +08:00
A 通过 nat,B 和 A 处于同一网络 ip 冲突怎么上网?
thomaspaine
2019-02-08 14:45:38 +08:00
大兄弟是不是搭了一套 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 当路由器了

你且试试?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/533332

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX