Networking vserver guests RHEL
From Linux-VServer
Contents |
Public IP Space
5.5.5.5
Chose a private IP range
Private IP Range: 192.168.1.0
Host Private IP: 192.168.1.1
Guest Private IP: 192.168.1.2
network-scripts
In a RHEL based system many configurations are stored in /etc/sysconfig. The network settings are /etc/sysconfig/network-scripts.
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1 vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1 HWADDR=00:0e:0c:69:ed:e0 ONBOOT=yes NETMASK=255.255.255.0 IPADDR=192.168.1.1 TYPE=Ethernet
This IP address will now start at boot up.
ifup eth0:1
Assuming your vserver is test01
echo "eth0:1" > /etc/vservers/test01/interfaces/0/dev echo "192.168.1.2" > /etc/vservers/test01/interfaces/0/ip echo "255.255.255.0" > /etc/vservers/test01/interfaces/0/mask
You can use iptables to make youre system act as a router.
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 \ -d ! 192.168.1.0/24 -j SNAT --to-source 5.5.5.5 iptables-save > /etc/sysconfig/iptables
Now your guest should have outbound connectivity.
[root@34 ~]# vserver test01 enter bash-3.1# ifconfig eth0 Link encap:Ethernet HWaddr 00:0E:0C:69:ED:E0 inet addr:10.10.10.2 Bcast:10.10.10.255 Mask:255.255.255.0 ... bash-3.1# ping www.google.com PING www.l.google.com (74.125.45.99) 56(84) bytes of data. 64 bytes from yx-in-f99.google.com (74.125.45.99): icmp_seq=1 ttl=244 time=22.3 ms 64 bytes from yx-in-f99.google.com (74.125.45.99): icmp_seq=2 ttl=244 time=22.5 ms
Inbound Connections and NAT
Now we have to establish inbound connectivity. This can be done with Network Address Translation. We can expose the SSH service through NAT.
5.5.5.5:9000->192.168.1.2:22
iptables -t nat -A PREROUTING -s ! 192.168.1.0/24 \ -m tcp -p tcp --dport 9000 -j DNAT --to-destination 192.168.1.2:22 iptables-save > /etc/sysconfig/iptables