Сеть (IP, firewall)

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Ethernet, Bridge, Bonding, Vlan

Всё работает максимально стандартно, как заведено в CentOS 6.

Настройки лежат в:

/etc/sysconfig/network-scripts/

Возможно какие-либо приложения (например Carbon Reductor) предоставляют дополнительно мастера настройки сети, требующие особенных ухищрений, необходимых для корректной работы, но в целом - это максимально стандартные настройки сети, все параметры отлично гуглятся.

Dummy

Теперь про не совсем стандартные части. Каждое приложение не особо зависит от настроек сети в базовой системе. Свои IP адреса они вешают на виртуальный интерфейс dummy0, реальный трафик попадает на эти IP адреса с помощью iptables (DNAT).

# ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 10.50.140.247/16 brd 10.50.255.255 scope global eth0
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 10.30.45.1/24 brd 10.30.45.255 scope global eth1
4: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    inet 169.254.80.81/16 scope global dummy0
    inet 169.254.80.80/16 scope global secondary dummy0
    inet 169.254.80.43/16 scope global secondary dummy0
    inet 169.254.80.83/16 scope global secondary dummy0
    inet 169.254.80.85/16 scope global secondary dummy0

Firewall

Правила iptables тоже имеют некоторые особенности. Каждый контейнер создаёт свою подцепочку с правилами, например:

# iptables -nvL FORWARD
Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  11M  740M reductor_forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
  146  8418 auth_forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
  228 13084 base_forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0  

Внутри которых так же могут быть ещё подцепочки:

# iptables -nvL reductor_forward
Chain reductor_forward (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            95.213.143.204      
  575 34500 reductor_ip_block  all  --  *      *       0.0.0.0/0            0.0.0.0/0           match-set ip_block dst,dst 
    0     0 reductor_https_dst  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           match-set port_https dst 
    0     0 reductor_https_src  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           match-set port_https src 
4476K  299M reductor_http  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           match-set port_http dst 
3716K  231M reductor_dns  udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:53 
7759K  485M reductor_other_traffic  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
5237K  285M ACCEPT     all  --  *      *       10.30.45.2           0.0.0.0/0           
2522K  200M ACCEPT     all  --  *      *       0.0.0.0/0            10.30.45.2  

Вопрос/ответ

Почему у меня веб-интерфейс слушает на 169.254.80.80, как я туда вообще попаду?

Вы попадёте туда через DNAT, при обращении на любой доступный вам IP адрес-сервера (например по которому вы подключаетесь по SSH):

[root@carbon ~]# iptables -t nat -nvL | grep DNAT
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080 ADDRTYPE match dst-type LOCAL to:169.254.80.80:8080 
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8043 ADDRTYPE match dst-type LOCAL to:169.254.80.43:8043 
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           match-set base_auth_users src tcp dpt:8081 ADDRTYPE match dst-type LOCAL to:169.254.80.81:8081 
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 ADDRTYPE match dst-type LOCAL to:169.254.0.80:80 
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443 ADDRTYPE match dst-type LOCAL to:169.254.4.43:443 
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           match-set base_auth_users tcp dpt:8083 ADDRTYPE match dst-type LOCAL to:169.254.80.83:8083

Если вас беспокоит то, что веб-интерфейс сервера может быть доступен абонентам - можете дополнительно ограничить доступ к нему по IP адресам в настройках базовой системы (пункт IP адреса/сети администратора/операторов).

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.