LINUX.ORG.RU
ФорумAdmin

eth1:0 в другой подсети


0

1

(RHEL6) Есть 2 IP адреса на одном eth1:

eth1      Link encap:Ethernet  HWaddr 00:AA:BB:D8:07:11
          inet addr:6.193.102.84  Bcast:6.193.102.127  Mask:255.255.255.192
          inet6 addr: fe80::230:48ff:fed8:711/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:171736 errors:0 dropped:0 overruns:0 frame:0
          TX packets:65498 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:14109129 (13.4 MiB)  TX bytes:3673265 (3.5 MiB)
          Interrupt:17 Memory:e8100000-e8120000

eth1:0    Link encap:Ethernet  HWaddr 00:AA:BB:D8:07:11
          inet addr:6.244.116.4  Bcast:6.244.116.4  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:17 Memory:e8100000-e8120000
Оба адреса отвечают - могу зайти по ssh. Вот что мне непонятно:

  • Как этот eth1:0 оказался в другой подсети ?
  • Как бы мне назначить его ip kvm-виртуалке подключенной через мост, если default route для него находится в другой подсети?

Мост для kvm настраивал так или вот так.


чтобы назначить его виртуалке, есть несколько вариантов:
1. самый правильный, прописать его с маской /24, и проверить есть ли GW в сети по (6.244.116.1) адресу. если есть то так и использовать.

2. если GW нету на первом адресе, прописать его так: 6.244.116.4/32
route add host 6.193.102.1 dev eth0 (для виртуалки это будет eth0, и опять же указать правильный шлюз вместо )
route add default gw 6.193.102.1
и все должно работать

3. прописать виртуалке сеть 192.168.0.2, серверу дать 192.168.0.1
и рулить пакеты DNAT`ом и SNAT`ом

kam ★★
()

а какой вывод у команд:

netstat -nr

brctl show

и на виртуалке

netstat -nr

ifconfig

Если надо извне заходить на виртуалку по ssh через eth1:0, то достаточно сделать DNAT 6.244.116.4:22 to VM_IP:22, а чтоб виртуалка видела инет надо сделать SNAT (from VM ip to 6.244.116.4)

может надо отдать второй адрес виртуалке? Тогда надо создать tuntap1 и отдать его виртуалке, объединить мостом br1 eth1 и tuntap1, назначить br1 первый адрес, а в витруалке назначить второй.

anonymous
()
Ответ на: комментарий от kam

На хосте:

# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
6.193.102.64    0.0.0.0         255.255.255.192 U         0 0          0 eth1
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
0.0.0.0         6.193.102.65    0.0.0.0         UG        0 0          0 eth1

-----------------------

# brctl show
bridge name     bridge id               STP enabled     interfaces
bridge0         8000.003048d80711       no              eth1
                                                        vnet1
virbr0          8000.525400e96a05       yes             virbr0-nic
                                                        vnet0

На виртуалке пока определенного конфига нет. Перебираю разные варианты.

По первому пункту - нет роута на 6.193.102.1. По второму пункту делаю так в виртуалке(eth0 - локальный, eth1 подключен к мосту):

# ifconfig eth1 down
# ifconfig eth1 6.244.116.4 netmask 255.255.255.255 up
# route add host 6.193.102.65 dev eth1
host: Host name lookup failure
Но если сделать на виртуалке так(чтобы default route с хост-машины таки попал в подсеть - ставлю маску 255.0.0.0):
# ifconfig eth1 down
# ifconfig eth1 6.244.116.4 netmask 255.0.0.0 up
# route add default 6.193.102.65
То на хосте в tcpdump я уже могу видеть icmp запросы и ответы посланные в с виртуалки к адресам в интернете(за шлюзом) и идущие к ней, но почему-то не доходящие до нее. iptables везде выключен, net.ipv4.ip_forward=1 включен

fjoe
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.