Назад | Перейти на главную страницу

Попытка включить трансляцию сетевых адресов в iptables

У меня есть vps с двумя интерфейсами:

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:113 errors:0 dropped:0 overruns:0 frame:0
      TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
          RX bytes:11005 (11.0 KB)  TX bytes:11005 (11.0 KB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:127.0.0.1  P-t-P:127.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
          inet6 addr: ::1/128 Scope:Host
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:714 errors:0 dropped:0 overruns:0 frame:0
          TX packets:604 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:108787 (108.7 KB)  TX bytes:281389 (281.3 KB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:87.118.124.244  P-t-P:87.118.124.244  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

venet0:1  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:87.118.125.244  P-t-P:87.118.125.244  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

iptables -t nat -A POSTROUTING -o vnet0:0 -j MASQUERADE

Warning: weird character in interface `vnet0:0' (No aliases, :, ! or *).
iptables: No chain/target/match by that name.

Я пытался изменить имена интерфейсов, но не смог. Какие-либо предложения?

Я не мог использовать MASQUERADE, поскольку он не был виртуализирован как модуль, и вместо этого я должен использовать SNAT.

Я использовал эту команду, надеюсь, она поможет кому-то другому!

iptables -t nat -A POSTROUTING -s 0.0.0.0/24 -j SNAT --to-source <one of my external IPs>

Я вижу две проблемы. Вы сказали опечатку vnet0 вместо того venet0, и вы пытаетесь настроить правило для псевдонима IP.

Этот вопрос о использование iptables с псевдонимами IP должен помочь вам со второй проблемой.