Virtualization
如何將 linux vm 配置為在兩個子網之間通信的路由器
我在 vmlayer 上安裝了 3 個虛擬機。我將其中兩個作為兩個不同網路的主機。
Host1 ip=192.168.1.13 gateway=192.168.1.11
和Host2 ip=192.168.2.14
和gateway=192.168.2.12
。現在我想要第三個虛擬機作為路由器,它可以將數據包從第一個虛擬機傳輸到第二個虛擬機,它有兩個適配器eth0 ip=192.168.1.11
和eth1 ip=192.168.2.12
. Host1 連接到eth0
Host2 連接到eth1
。我應該如何配置路由器,以便兩台主機可以通信並NAT
可以執行?請盡快回复。
你沒有說什麼作業系統,所以你必須處理假設 - 所以假設 Debian 衍生品
啟用轉發。在 /etc/sysctl.conf 中設置:net.ipv4.ip_forward=1
這就是 ping A -> B 所需的全部內容。
因為出於某種原因您還需要 NAT,所以在 /etc/rc.local - 添加您需要的模組 - 例如:
modprobe ipt_conntrack modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ip_nat_ftp modprobe ip_conntrack_irc modprobe ip_nat_irc modprobe ip_nat_snmp_basic
同樣在 /etc/rc.local 添加:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.11 iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.2.12
例如,如果您希望網關也可以訪問網際網路,那麼您可以為其提供第三個介面,例如 eth2,其 IP 地址位於您的 LAN 上,例如 10.0.0.200 然後添加:
iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to-source 10.0.0.200
或者如果它有一個 DHCP 地址(即,它不是靜態地址),則改為執行此操作
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
然後最後確保網關有指向您的 Internet LAN 網關、光纖線路或 DSL 調製解調器的預設路由。如果分配了 DHCP,這無論如何都會自動完成。