| Dve IP adresy z rovnakej podsiete na dvoch fyzických rozhraniach |
| Blog - GNU/Linux |
| Napísal Jaroslav Petráš |
| Utorok, 09 November 2010 23:10 |
|
Pred nedávnou dobou mi dali zo serverovne na známosť že moja mašina robí na sieti bordel. Na ARP ping vraj odpovedalo z jednej IP adresy viac fyz. rozhraní. Pomyslel som si že to predsa nie je možné. Po bližšej analýze som zistil že to tak skutočne je. Server má celkom tri RJ45 porty. Jeden pre vzdialenú správu (ten už ďalej nespomeniem, keďže nie je podstatný) a dve nezávislé sieťové rozhrania. Nastaviť každému rozhraniu vlastnú pevnú IP adresu z prideleného rozsahu nestačí ako som sa stihol presvedčiť pri riešení tohto problému. Celý problém bol spôsobený prednastavenými hodnotami v sieťovom IPv4 stacku. Oprava teda spočívala v nastavení: net.ipv4.conf.eth0.arp_filter = 1 net.ipv4.conf.eth1.arp_filter = 1 net.ipv4.conf.eth0.arp_ignore = 1 net.ipv4.conf.eth1.arp_ignore = 1 net.ipv4.conf.eth0.arp_announce = 1 net.ipv4.conf.eth1.arp_announce = 1v súbore /etc/sysctl.conf (platí pre Debian GNU/Linux)Nastavenia načítame pomocou # sysctl -p Následne je nutné nakonfigurované sieťové rozhrania reštartovať. Z dokumentácie: arp_filterZdroj: http://www.linuxinsight.com/proc_sys_net_ipv4_conf_eth0.html Po prečítaní úryvkov z dokumentácie teda vidíme že systém implicitne posiela odpoveď cez akékoľvek rozhranie ktoré je k dispozícii a je na rovnakej podsieti. Keďže sa nám toto správanie podarilo pozmeniť nastavením uvedeným vyššie, ďalším krokom bude vytvorenie vlastnej smerovacej tabuľky pre každé rozhranie (eth0, eth1). Postupovať môžeme napríklad takto: /etc/network/interfaces
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 hwaddress ether xx:xx:xx:xx:xx:xx post-up /usr/local/bin/add-route-i1 allow-hotplug eth1 iface eth1 inet static address 192.168.1.200 netmask 255.255.255.0 hwaddress ether xx:xx:xx:xx:xx:xx post-up /usr/local/bin/add-route-i2Kde obsah skriptu /usr/local/bin/add-route-i1 je:
#! /bin/bash if ! /bin/ip "route" "add" "default" "via" "192.168.1.1" "src" "192.168.1.100" "dev" "eth0" "table" "i1"; then exit 1 fi if ! /bin/ip "rule" "add" "from" "192.168.1.100" "table" "i1"; then exit 2 fi if ! /usr/local/bin/add-route-default; then exit 3 fi exit 0a /usr/local/bin/add-route-i2
#! /bin/bash if ! /bin/ip "route" "add" "default" "via" "192.168.1.1" "src" "192.168.1.200" "dev" "eth1" "table" "i2"; then exit 1 fi if ! /bin/ip "rule" "add" "from" "192.168.1.200" "table" "i2"; then exit 2 fi exit 0Pritom platí že 192.168.1.1 je adresa brány, 192.168.1.100 je adresa eth0 a 192.168.1.200 je adresa eth1. V add-route-i1 sa spúšťa aj/usr/local/bin/add-route-default ktorého obsah je:
#! /bin/bash if ! /bin/ip "route" "add" "default" "via" "192.168.1.1"; then exit 1 fi exit 0Nakonfigurované rozhrania stačí už len reštartovať a je hotovo. |
| Posledná úprava Streda, 12 Január 2011 21:02 |

ts.niekde.skts.cyberasylum.eu