/
Как настроить сеть на Виртуальной Машине для глобальной зоны с коммутатором etherstub

Как настроить сеть на Виртуальной Машине для глобальной зоны с коммутатором etherstub

Процедура установки и настройки сети на настоящей (не виртуальной) машине описана здесь. Но когда Вы попробуете проделать то же самое на Виртуальной Машине, процедура может несколько отличаться. Структура сети для глобальной зоны будет выглядеть так:

Прежде всего, на Виртуальной Машине нет настоящего адаптера Ethernet, а есть только Виртуальный Адаптер, который будет подключаться к другим машинам сети. На Виртуальной Машине обычно его имя vmxnet3s0 , но в любом случае, Вы можете узнать его имя при помощи команды ‘dladm show-phys’ :

root@dilos:~# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE vmxnet3s0 Ethernet up 10000 full vmxnet3s0

Его адрес будет точно тот, который Вы указали при установке DilOS. В нашем примере мы будем использовать адрес 10.20.50.165, который подходит для использования в сети SPB Labs. Но Вы можете проверить адрес командой ‘ifconfig’ так:

root@dilos:~# ifconfig lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 vmxnet3s0: flags=1100843<UP,BROADCAST,RUNNING,MULTICAST,ROUTER,IPv4> mtu 1500 index 3 inet 10.20.50.165 netmask ffffff00 broadcast 10.20.50.255 ether 0:50:56:b2:71:ae lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1 inet6 ::1/128

Предполагается, что Internet в этом месте правильно сконфигурирован и работает.

Итак, для корректной работы с зонами мы организуем VPN на нашей Виртуальной Машине и приконнектим наши зоны к этой VPN. Для Вашей VPN Вы можете выбрать любой диапазон адресов, который не пересекается с внешними адресами (в нашем примере внешние адреса - 10.20.50.XXX). Для нашего VPN выберем диапазон 192.168.0.XXX.

Для начала нам нужно создать виртуальный программный коммутатор (etherstub) и дать ему имя, например, vsw0:

dladm create-etherstub vsw0 dladm set-linkprop -p mtu=1500 vsw0

После этого нам нужно создать интерфейс (end point) для коммутатора etherstub в виде виртуального контроллера сетевого интерфейса (VNIC - Virtual Network Interface Card) вместо физического кабеля, подключаемого к к физическому NIC, и назвать его, например, int0, а затем подключить его к vsw0 и проверить, что всё подключилось правильно:

root@dilos:~# dladm create-vnic -l vsw0 int0 root@dilos:~# dladm show-link LINK CLASS MTU STATE BRIDGE OVER vmxnet3s0 phys 1500 up -- -- vsw0 etherstub 9000 up -- -- int0 vnic 9000 up -- vsw0

Теперь мы видим, что etherstub создался, и vnic int0 к нему подключен (строки 5 и 6). Все интерфейсы зон (как Вы увидите несколько позже) будут тоже подключены к vsw0 внутри нашей VPN.

Интерфейс int0 Вы можете сконфигурмровать вручную, как это показано ниже:

root@dilos:~# ifconfig int0 plumb root@dilos:~# ifconfig int0 inet 192.168.0.254/24 up root@dilos:~# ifconfig int0 int0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 9000 index 3 inet 192.168.0.254 netmask ffffff00 broadcast 192.168.0.255 ether 2:8:20:85:3d:bf

Создайте файл /etc/hostname.int0 и напишите в нём:

192.168.0.254 netmask 255.255.255.0 broadcast + up

Это можно сделать либо при помощи редактора, либо из терминала командой:

cat > /etc/hostname.int0 <<EOT 192.168.0.254 netmask 255.255.255.0 broadcast + up EOT

Для пересылки пакетов за пределы VPN (в Internet) и обратно нужно сконфигурировать NAT (Network Address Translation). Это можно сделать путём добавления следующих строк в файл /etc/ipf/ipnat.conf:

map vmxnet3s0 192.168.0.0/24 -> 0/32 proxy port ftp ftp/tcp map vmxnet3s0 192.168.0.0/24 -> 0/32 portmap tcp/udp auto map vmxnet3s0 192.168.0.0/24 -> 0/32

или выполнением команды:

cat > /etc/ipf/ipnat.conf <<EOT map vmxnet3s0 192.168.0.0/24 -> 0/32 proxy port ftp ftp/tcp map vmxnet3s0 192.168.0.0/24 -> 0/32 portmap tcp/udp auto map vmxnet3s0 192.168.0.0/24 -> 0/32 EOT

Это присоединит виртуальный адаптер vmxnet3s0 и наш виртуальный коммутатор 192.168.0.0.

Включите ipfilter , если он отключен:

root@dilos:~# svcs ipfilter STATE STIME FMRI disabled 9:48:03 svc:/network/ipfilter:default root@dilos:~# svcadm enable ipfilter root@dilos:~# svcs ipfilter STATE STIME FMRI online 11:29:25 svc:/network/ipfilter:default

Ну, и проверьте прохождение пакетов ip:

root@dilos:~# routeadm Configuration Current Current Option Configuration System State --------------------------------------------------------------- IPv4 routing disabled disabled IPv6 routing disabled disabled IPv4 forwarding disabled disabled IPv6 forwarding disabled disabled Routing services "route:default ripng:default" Routing daemons: STATE FMRI disabled svc:/network/routing/ripng:default online svc:/network/routing/ndp:default disabled svc:/network/routing/legacy-routing:ipv4 disabled svc:/network/routing/legacy-routing:ipv6 disabled svc:/network/routing/rdisc:default disabled svc:/network/routing/route:default

Здесь видно, что пересылка пакетов IPv4 отключена (строка 7); включите её:

root@dilos:~# routeadm -u -e ipv4-forwarding root@dilos:~# routeadm Configuration Current Current Option Configuration System State --------------------------------------------------------------- IPv4 routing disabled disabled IPv6 routing disabled disabled IPv4 forwarding enabled enabled IPv6 forwarding disabled disabled Routing services "route:default ripng:default" Routing daemons: STATE FMRI disabled svc:/network/routing/ripng:default online svc:/network/routing/ndp:default disabled svc:/network/routing/legacy-routing:ipv4 disabled svc:/network/routing/legacy-routing:ipv6 disabled svc:/network/routing/rdisc:default disabled svc:/network/routing/route:default

Теперь, когда она включена, можно скофигурировать первую зону для проверки результата. Полная процедура установки зоны описана здесь , можете её проделать. Ниже приведены некоторые важные моменты, которые нужно проделать для сетевой конфигурации:

root@dilos:~# zonecfg -z zone01 zone01: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:zone01> create zonecfg:zone01> set zonename=zone01 zonecfg:zone01> set zonepath=/zones/zone01 zonecfg:zone01> set autoboot=false zonecfg:zone01> set ip-type=exclusive zonecfg:zone01> add net zonecfg:zone01:net> set physical=iz1 zonecfg:zone01:net> set global-nic=vsw0 zonecfg:zone01:net> add property (name=ip,value="192.168.0.1") zonecfg:zone01:net> add property (name=gateway,value="192.168.0.254") zonecfg:zone01:net> add property (name=netmask,value="255.255.255.0") zonecfg:zone01:net> add property (name=primary,value="true") zonecfg:zone01:net> end zonecfg:zone01> add attr zonecfg:zone01:attr> set name=resolvers zonecfg:zone01:attr> set type=string zonecfg:zone01:attr> set value=8.8.8.8 zonecfg:zone01:attr> end zonecfg:zone01> verify zonecfg:zone01> commit zonecfg:zone01> exit

Вот эти моменты:

  • в строке 10 наш зонный интерфейс внутри VPN мы называем iz1

  • в строке 11 мы подключаем наш интерфейс к коммутатору vsw0

  • в строке 12 мы назначаем IP адрес нашей зоне 192.168.0.1

  • в строке 13 мы подключаем нашу зону к VPN через интерфейс int0 192.168.0.254

  • и в строке 20 мы прописываем адрес нашего name-сервера (у нас это Google name server 8.8.8.8)

А теперь Вы можете установить и загрузить зону , как это написано в инструкции, о которой мы говорили в начале этой странички.

И если всё сделано правильно, Вы увидите, что наша зона создалась и подключена к нашей VPN (строки 5 и 6):

root@dilos:~# dladm show-link LINK CLASS MTU STATE BRIDGE OVER vmxnet3s0 phys 1500 up -- -- vsw0 etherstub 9000 up -- -- int0 vnic 9000 up -- vsw0 iz1 vnic 9000 up -- vsw0

И теперь Вы можете добавить ещё другие зоны и провести тестовые процедуры по той же инструкции.

Удачи!

Related content