我想创build我的虚拟机的桥梁。 而且我想通过我的虚拟桥接进入互联网。 我做了什么:
DEVICE=br1 TYPE=Bridge ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.1 NETMASK=255.255.255.0
我在我的networking(通过dhcp)桥接,与eth0链接:
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.110.14 netmask 255.255.255.0 broadcast 192.168.110.255
BR0:
DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=dhcp
为eth0:
TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes PEERDNS=yes PEERROUTES=yes NAME=eth0 DEVICE=eth0 ONBOOT=yes BRIDGE=br0
iptables命令:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.110.14
但它不工作。
ping -I br1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) from 192.168.1.1 br1: 56(84) bytes of data. ^C --- 8.8.8.8 ping statistics --- 61 packets transmitted, 0 received, 100% packet loss, time 59999ms
我做错了什么? 请帮忙。
桥接在第二层,路由在第三层,iptables在第三层而不是第二层。 在网桥运行的第二层没有路由的概念。 网桥使用第2层(例如MAC)地址,并将帧直接传送到目标第2层地址。 桥接发生在一个局域网上。 路由发生在局域网之间,它使用第3层(例如IP)地址将数据包从局域网发送到另一局域网。 在局域网中,帧封装了数据包,用于将帧从一台主机直接发送到另一台主机。
局域网中的主机将屏蔽目的地的第3层地址,以查看目的地是否在其局域网上。 如果是,它将为目标主机创build一个框架。 如果没有,它将为其configuration的网关(路由器)创build一个框架。 在二层,网关只是局域网中的另一台主机。 这是执行路由的网关,而不是网桥。 帧是否传递到目标主机或网关取决于源主机,而不是网桥。