有没有大牛能够帮忙解答如下问题?知识薄弱,都不知道如何搜索好⊙﹏⊙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 当路由器了
你且试试?