Ссылки на venet0:0 и venet0:1 в iptables на OpenVZ
У меня есть Ubuntu VPS, который размещен с OpenVZ. Некоторое время у меня были проблемы с использованием имен интерфейсов в iptables, таких как: (отредактировано)
-A INPUT -i venet0:0 -p tcp -m tcp --dport 80 -j ACCEPT
Проблема в том, что iptables не понимает, что такое venet0:0. У меня также есть довольно странная конфигурация сети. Выход из ifconfig -a
gre0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-20-4A-00-00-00-00-00-00-00-00
NOARP MTU:1476 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
gretap0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
BROADCAST MULTICAST MTU:1476 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
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:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
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.2 P-t-P:127.0.0.2 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:44859 errors:0 dropped:0 overruns:0 frame:0
TX packets:37950 errors:0 dropped:103 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9472928 (9.0 MiB) TX bytes:8953521 (8.5 MiB)
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:xx.xx.xx.xx P-t-P:xx.xx.xx.xx Bcast:xx.xx.xx.xx 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:xy.xy.xy.xy P-t-P:xy.xy.xy.xy Bcast:xy.xy.xy.xy Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
Я по электронной почте мой провайдер VPS и спросил, как назначить интерфейсы, такие как eth0
а также eth1
для ссылки на интерфейс iptables, и они ответили, что это не возможно, но что venet
интерфейсы могут быть использованы как таковые. Однако когда я пытаюсь их использовать, ничего не происходит.
Я знаю, что должно быть что-то, что я делаю неправильно или не понимаю. Я тоже не понимаю, что gre0
а также gretap0
интерфейсы есть, или для чего они. Есть идеи?
1 ответ
Вы не можете указать псевдоним интерфейса с помощью iptables, только фактическое имя интерфейса. Хитрость заключается в том, чтобы добавить IP-адрес назначения в качестве дополнительного условия. Также вам не нужно -m tcp
часть. Поэтому, если вы хотите принимать трафик на порт 80 на обоих интерфейсах с псевдонимами, правила будут такими:
-A INPUT -i venet0 -d xx.xx.xx.xx -p tcp --dport 80 -j ACCEPT
-A INPUT -i venet0 -d xy.xy.xy.xy -p tcp --dport 80 -j ACCEPT