Как настроить сеть на Виртуальной Машине для глобальной зоны с коммутатором 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
И теперь Вы можете добавить ещё другие зоны и провести тестовые процедуры по той же инструкции.
Удачи!