我有一台运行虚拟机的KVM主机(A)(B)。 它们每个都有自己的外部IP地址,并且在A上使用eth0和br0之间的桥接进行networking设置。B使用eth0,A是网关。
问题是两个外部IP地址在不同的子网(实际上是不同的/ 8),所以默认情况下,B声称它不能到达A(networking不可达)。
我可以通过在B上添加一个静态路由来解决这个问题:
echo "any host gateway_ip dev eth0" > /etc/sysconfig/static-routes
修改/etc/init.d/networking以在应用静态路由后重新加载网关(我只在fi之前添加了最后一行):
如果[-f / etc / sysconfig / static-routes]; 然后
grep“^ any”/ etc / sysconfig / static-routes | 而读取忽略参数; 做
/ sbin / route add - $ args
DONE
路由添加默认gw“$ {GATEWAY}”
科幻
如果我然后重新启动networking,它联机。 在安装系统之前,我怎样才能做到这一点(或以其他方式解决)?理想的情况是在Anaconda kickstart文件中?
既然你正在运行虚拟机,为什么不使用模板和快照而不是kickstarting呢? 定制可以放在/etc/rc.d/sysinit文件中
#configuration机器,如果/.unconfigured存在:
然后运行sys-unconfig来准备虚拟机成为一个模板。
完成之后,您可以使用qemu-img convert克隆映像或从原始映像中获取快照,以节省磁盘空间,并将克隆/快照映像附加到新VM。 他们都将具有相同的configuration和文件,减去由sys-unconfig删除的典型设置。 还有其他什么你当然也加到了rc.sysinit中。
/etc/sysconfig/static-routes文件不推荐使用,它使用route命令语法,这也被弃用。
您可以在文件中使用eth0接口的ip语法删除规则:
/etc/sysconfig/network-scripts/route-eth0
在kickstart文件中没有直接执行此操作,因此您必须在%post部分执行此操作。