728x90
반응형
물리 네트워크 포트 확인 방법


1. Ethtool을 이용하여 포트 위치 확인
  
▶ ethtool -p eth0 : 이 명령을 실행하면 서버 후면 해당 네트워크 장치의 LED가 깜빡인다. (eth 장치가 up 상태여야 가능)

▶ ethtool eth0 : 해당 디바이스의 네트워크 속도 설정 및 링크 상태등을 확인 할 수 있다.




2.  dmidecode를 통해 Mac address 및 네트워크 포트 번호를 유추 할 수 있다.
   ▶ dmidecode | grep -i "NIC"

  

3. lspci 명령을 통해 pci 장치의 값을 확인하여 사용되는 포트의 수를 확인할 수 있다.
   ▶ lspci | grep -i ethernet



4. ifconfig 명령을 통하여 eth 장치별 Mac address를 확인한다.
   ▶ ifconfig | grep -i hwaddr






PCI 포트 확인 방법


1. 전체 PCI Slot 수와 Slot Type 확인
   ▶ dmidecode -t slot | grep Type | wc -l



2. 사용 가능한 PCI Slot 확인
   ▶ dmidecode -t slot | grep -i "available" | wc -l



3. 현재 사용중인 PCI Slot과 해당 BUS 정보 확인
   ▶ dmidecode -t slot | grep -i "in use" -B2 -A5



4. 현재 PCI Slot에 장착된 HBA Card (FC-Card) 확인
   ▶ lspci | grep -i "fibre channel"



5. HBA Card (FC-Card)가 사용중인 PCI Slot 확인
   ▶ for LIST in `lspci | grep -i "fibre channel" | cut -d "." -f 1 | uniq`; do dmidecode -t slot | grep ${LIST} -B7 && echo "================"; done



6. 확인된 HBA Card의 Bus 정보와 맵핑되는 FC Host 정보 확인
   ▶ find /sys/class/fc_host/ -type l -name device -exec ls -l {} \;






PCI 장치의 버스 정보를 통한 PCI NIC의 MAC 주소 찾기


1. PCI 버스 정보와 MAC 주소를 출력한다.
   ▶  for i in `ls -d /sys/class/net/eth*`; do B=$(<$i/address);A=$(ll $i/device);echo ${A##*../} — $B; done






HBA Card의 Bus 정보와 맵핑되된 FC Host의 Port Name(WWN) 확인


1. CentOS, RHEL 5버전 이상 부터는 FC Host에 대한 정보는 아래와 같은 경로에 저장이 된다.
   ▶ /sys/class/scsi_host/hostN/device/fc_host/hostN/port_name


2. 각 Host에 대한 Port Name을 확인하려면 아래와 같은 명령어를 입력한다.
   ▶ cat /sys/class/scsi_host/host4/device/fc_host/host4/port_name



3. 각 Host에 대한 Port Name을 전체 출력하려면 아래와 같은 명령어를 입력한다.
   ▶ for i in 0 1 2 3 4 5; do cat host$i/device/fc_host/host$i/port_name; done



반응형

'Linux' 카테고리의 다른 글

Linux ethtool  (0) 2018.08.08
Linux eth0이 안되고 eth1로 네트워크가 잡히는 경우  (0) 2018.08.08
Linux Gateway 2개 설정  (0) 2018.08.08
Linux ipv6 비활성화  (0) 2018.08.08
Linux Bonding fail over 문제해결  (0) 2018.08.08
728x90
반응형
개념

Linux에서 2개의 Lan Card를 사용하여 각각 다른 IP대역으로 통신을 해야하는 경우가 있다.

내부망(LAN)에서 사용되어 진다면 아무 문제가 없다. 하지만 2개의 IP가 모두 외부망과 접속이 필요한 경우나 외부망과 내부망의 통신이 필요할 때 문제가 발생한다.

(또는 서비스망과 스토리지망으로 구분)

Gateway가 하나인 경우 2개의 외부망 Gateway로 설정된 하나의 망에만 통신이 된다거나

내부망과 외부망을 같이 사용중인 경우 설정된 한개의 망에만 통신이 되는 문제가 발생한다.

2개의 망을 모두 사용하고 싶다면 Gateway를 추가시켜야한다.




설정


OS에서 초기에 Network 구성 파일을 읽어들일시 순서는 /etc/sysconfig/network 파일을 불러오고 그 뒤에 /etc/sysconfig/network-scripts/ifcfg-* 파일을 불러온다.

Default Route Addr는 인터페이스를 설정하는 ifcfg-eth* 파일의 Gateway항목에 입력하여도 되지만 /etc/sysconfig/network 안에 추가시켜도 된다.

eth0이 기본인터페이스이며 서비스망인 경우

IPADDR=10.1.0.13
NETMASK=255.255.255.0
GATEWAY=10.1.0.254

여기서 Gateway에 적힌 주소값이 기본 라우팅 주소이다. 이후에 192.168.1.0 대역으로도 다른 인터페이스를 통해 접근을 하려면 별도의 라우팅 주소를 삽입하여야 한다.

eth1을 스토리지망으로 연결하여야 하는 경우

IPADDR=192.168.1.5
NETMASK=255.255.255.0

여기서 eth1의 설정값안에는 Gateway의 주소를 적지않는다.

기본 Gateway에 다른 Gateway 주소를 추가하려면 /etc/sysconfig/network-scripts/route-eth1 파일을 새로 만들어주어야 한다.

route-eth1의 내용에는

ADRESS0=192.168.1.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.1.254

또는

192.168.1.0/24 via 192.168.1.254 dev eth1

를 적어주면 된다. 여기서 같은 인터페이스 안에 다른 라우팅를 더 추가시키려면 해당 파일안에 추가시키면 된다.

위의 방법은 service network restart 가 필요한 내용이며 network restart가 필요하지 않은 방법은

# vi /etc/sysconfig/network-scripts/route-eth1
# route add -net 192.168.1.0 netmask 255.255.255.0 dev eth1

을 사용하면 된다. route add 명령은 일시적으로 사용하여 재부팅시에 사라지는 적용방법이다.


참조 URL 


반응형
728x90
반응형
초기 화면



# vi /etc/sysctl.conf

# to disable IPv6 on all interfaces system wide
net.ipv6.conf.all.disable_ipv6 = 1

# sysctl -p  (변경 설정 적용)

변경 후



반응형
728x90
반응형
증상


- Active-Standby 상태의 구성에서 eth0(Active)이 단절시 eth1(Standby)로 failover되는데 OS의 구성에서는 정상적으로 설정되어있고 failover가 된 것으로 표시되나 실제적으로는 네트워크가 장애상태에 빠지는 현상



해결


1) bonding_opts에 fail_over_mac=1을 설정

BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"

스위치에서 learning 과정을 없애기 위해 fail over 발생시 기존 active의 mac을 그대로 사용하도록 하고 있다.
bond의 경우 eth0(Master)에 발생시 활성화된 eth1(Slave)의 MAC을 사용한다.
그렇기에 스위치에서는 기존 Active 되어있던 NIC(eth0)의 MAC을 가지고 있는데 OS에서 Master(eth0)가 Slave(eth1)로
Active가 변경되어 패킷을 송수신하는 MAC이 바뀌게된다. 스위치에서는 eth0의 MAC으로만 패킷을 송수신하게 설정되어 있어
eth1로 Master가 변경되면 MAC정보가 달라 패킷을 송수신하지 못하는 것이다. 
해당 옵션은 장애 발생시 기존 Active 상태였던 eth의 MAC Address를 그대로 상속하는 옵션이다.
(OS의 기본 fail_over_mac은 0으로 설정)



반응형

'Linux' 카테고리의 다른 글

Linux Gateway 2개 설정  (0) 2018.08.08
Linux ipv6 비활성화  (0) 2018.08.08
Linux Network 인터페이스 안올라옴  (0) 2018.08.08
Linux Bonding  (0) 2018.08.08
Linux firewall(RHEL7)  (0) 2018.08.08
728x90
반응형
증상


Bringing up interface eth0: Error: Connection activation faild: The connection is not for this device.

- 해당 Log 발생하면서 인터페이스가 올라오지 않음



해결


설정파일인 /etc/sysconfig/network-script/ifcfg-eth0 파일을 vi로 실행하여 해당파일안에
HWDDR이 있는지 확인한다.
Onboard에 있는 eth0의 MAC을 OS에서 인식하지못해 인터페이스를 시작하지못한현상
(OS의 Network 데몬이 eth0이 어떤 포트인지 인식하지못함)
/etc/rule.d/70-net 으로 시작하는 파일에서 eth0에 대한 MAC을 확인하여
eth0의 설정파일안에 추가시켜준다.






반응형

'Linux' 카테고리의 다른 글

Linux ipv6 비활성화  (0) 2018.08.08
Linux Bonding fail over 문제해결  (0) 2018.08.08
Linux Bonding  (0) 2018.08.08
Linux firewall(RHEL7)  (0) 2018.08.08
Linux Teaming  (0) 2018.08.08
728x90
반응형
Bonding이란?


- NIC 카드 이중화로 여러 물리적인 NIC을 논리적으로 묶어 대역폭을 늘리거나 가용성을 위해 사용하는 방법

- Linux에서는 Bonding, Windows에서는 Teaming, Cisco에서는 EtherChannel이라 부름

- 표준은 Link Aggregation이라 하며 몇몇 본딩 모드는 스위치의 EtherChannel 기능이 지원되야한다
(EtherChannel이 off되어 있거나 지원하지 않는다면 몇몇 모드는 사용할 수 없거나 기능이 떨어짐)


Bonding Mode

1) mode 0 : Round-robin
첫번째 가능한 슬레이브부터 마지막 슬레이브까지 순차적으로 전송한다. 이 모드는 부하분산과 failover를 제공한다. 
active-active, 이론상 슬레이브 수만큼의 배수대로 대역폭을 확장가능하다. 스위치에서 지원한다면 hashing 없이 load balancing 된다.
예를 들어 2개의 NIC이 있다면 2개의 NIC에 패킷을 순차적으로 분배한다. [ A nic -> B nic -> A nic -> B nic 순]으로 패킷을 분산하며
한쪽 네트워크의 연결이 끈어지더라도 장애허용으로 인해 이를 보완하는 기능이 존재한다.
RR(RoundRobin)방식 로드밸런스. 인터페이스의 라운드로빈(대역폭 상승 + Failover)

2) mode 1 : Active-backup
bond에서 하나의 슬레이브만 활성화된다. 다른 슬레이브는 standby 상태로 대기하다. 활성중이 슬레이브가 fail 된 경우 standby 슬레이브가 활성화 된다.
대역폭은 활성화 된 슬레이브의 대역폭을 갖는다. primary를 직접 설정하지 않으면 failback 되지 않는다.
실제 사용시에는 2개의 스위치나 백본에 2개의 NIC이 연결되며 IDC같은 곳에서는 하나의 스위치에 2회선을 물려 사용하기도 한다.

3) mode 2 : balance-xor (load balancing + failover)
0과 비슷하지만 xor연산을 이용하여 목적지 Mac과 근원지 Mac을 이용하여 분배한다.
( (출발지 mac XOR 목적지 mac) modula 슬레이브 개수 ) fault tolerance 와 load balancing 을 위한 XOR 으로 설정한다.
이 방식은 인터페이스가 slave 네트워크 카드들의 하나에 대한 Mac address 로 imcoming request의 Mac address를 연결하는 방식이다.

4) mode 3 : broadcast (failover)
모든 슬레이브 인터페이스로 전송한다. 이것은 failover를 제공한다(mirror).
하나의 슬레이브만큼 대역폭을 갖는다. 특별한 상황에서 사용한다.
그 특별한 경우는 랜카드가 절대로, 절대로 죽어서는 안되고 패킷이 절대로 절대로 없어지면 안되는 서버에 사용된다.
스위치의 지원이 필요없다.

5) mode 4 / LACP : 802.3ad (link aggregation)
Dynamic Link Aggregation 정책으로 동작된다. 같은 speed와 duplex 설정을 공유하는
aggregation group을 스위치에서 만들어야한다. (switch 가 802.3ad 를 지원해야 한다)
송/수신은 active aggregator 안에서 모든 슬레이브에서 수행된다.
이론상 슬레이브 수만큼의 배수대로 대역폭을 확장가능한다.
그룹화에 따라 회선의 정책이 변경되어 무단절 네트워크 연결을 가능하게 만드는 방식

6) mode 5 : balance-tlb
스위치의 지원이 필요없다.  이 모드는 특별한 지원이 OS 자체적으로 구동가능한 방법으로
각 링크의 현재 로드에 따라 보내는 데이터는 분산되어 전송된다.
데이터의 수신은 현재 slave쪽으로만 가게되며 해당 slave가 fail시 다른 slave가 MAC주소를 넘겨받아 수신한다.
데이터를 보낼 때에 드라이버가 MAC address를 링크의 것으로 바꿔 보내지만 받을 때에는 그냥 남겨둔다.
송신패킷만 로드밸런싱하며 동일한 스위치에 NIC들이 연결되어있어야 한다.

7) mode 6 : balance-alb
mode 4 즉 802.3ad 를 스위치가 지원하지 않는다면 이 모드인 mode 6를 사용하면된다.
스위치의 지원이 필요없다.  이 모드는 mode 5와 같이 동작하지만 데이터 수신 시에서 load-balancing을 하는데
두개의 링크에서 ARP negotiation을 통하여 동작한다. 
MAC 주소 트릭을 이용하여 데이터를 보내고 받을 때에 load-balancing을 하게 된다.
송수신패킷 로드밸런싱하며 동일한 스위치에 NIC들이 연결되어있어야한다.


TIP

본딩을 하기 위해서는 서버뿐만 아니라 스위치에서도 설정이 필요하며,
mode 1인 active-backup은 굳이 스위치의 설정은 별도로 필요없다.
시스코 스위치에서 본딩을 하여 대역폭 확장을 확실히 하기위해서는
mode 0 가 아닌 mode 4(시스코에서는 LACP-link aggregation )를 써야한다.
본딩은 리눅스 커널에서 본딩 기능이 지원되어야하고 최적의 성능을 위해서는 스위치가 EtherCannel 이 지원되어야한다.




Bonding 설정


1) NetworkManager 종료

# service NetworkManager Stop

# chkconfig NetworkManager off

# service Network restart

Bonding을 구성할 경우 Port와 IP는 고정으로 할당한다. 하지만 NetworkManager가 실행된 경우

NetworkManager에서 Booting시 먼저 올라온 Nic의 Port에 우선적으로 IP를 할당하기 때문에 

Bonding 구성에 문제가 생길 수 있다. 그러므로 NetworkManager는 종료한다.

Rhel 7버전부터는 NetworkManager를 종료하면 이더넷이 전혀 안되므로 종료하지 않고 진행하거나

7버전부터 권장사항인 Teaming을 구성한다.


2) Bonding 구성

- NIC는 총 4개 ,eth0, eth2를 bond0으로 묶고, eth1, eth3을 bond1로 묶음
(bond0을 Default Gateway로 잡고 필요한 Static Route는 bond1에 설정)

- ifcfg 파일에서 NAME=eth0, DEVICE=eth0으로 되어 있는데
NAME=eth0의 경우 NetworkManager가 인식하는 장치명이고
DEVICE=eth0의 경우는 Kernel이 인식하는 장치명이다.

1. 구성파일 만들기

# /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.0.101
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=168.126.63.1
DNS2=168.126.63.2
BONDING_OPTS="mode=1 miimon=100 use_carrier=0 primary=eth0"
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no

# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
MASTER=bond0
SLAVE=yes
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no

# /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
MASTER=bond0
SLAVE=yes
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no


# /etc/sysconfig/network-scripts/ifcfg-bond1
DEVICE=bond1
IPADDR=10.10.0.101
NETMASK=255.255.255.0
BONDING_OPTS="mode=1 miimon=100 use_carrier=0 primary=eth1"
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no

# /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
MASTER=bond1
SLAVE=yes
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no

# /etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
MASTER=bond1
SLAVE=yes
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no

* primary=eth0 옵션은 eth0(Active), eth1(Slave) 상태에서 eth0 장애시 eth1이 Master가 되어
Active 상태로 전환되는데 eth0이 복구된다면 eth1은 Master를 eth0으로 넘기고 자신은 다시 Slave가 된다.
(failback을 의미한다)


2. Static Router는 bond1에 추가

# /etc/sysconfig/network-scripts/route-bond1
10.10.0.0/16 via 10.10.0.1 dev bond1


3) Module 파일 설정

#/etc/modprobe.d/bond.conf 설정내에 아래의 사항을 추가
alias bond0 bonding
alias bond1 bonding
options bond0 mode=1 miimon=100
options bond1 mode=1 miimon=100

4) 모듈 로딩 및 네트워크 재시작
modprobe bonding # 본딩 모듈 로딩
/etc/init.d/network restart 혹은 service network restart

#5) 본딩 해제
# rmmod bonding


6) 본딩 구성 확인
/etc/sysconfig/network-scripts/route-bond1 파일에 설정하였고, 아래와 같이 route 명령어로 잘 설정되었음을 확인할 수 있다.

# route -n
Kernel IP routing tabl
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 bond1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 bond0
10.10.0.0       10.10.0.1       255.255.0.0     UG    0      0        0 bond1
169.254.0.0     0.0.0.0         255.255.0.0     U     1006   0        0 bond0
169.254.0.0     0.0.0.0         255.255.0.0     U     1007   0        0 bond1
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 bond0

network-scripts 설정이 완료되면 service network restart 한번 해주고, 아래와 같이 bonding 상태를 확인할 수 있다.

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0          #Active Device 명
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:15:5d:00:02:00
Slave queue ID: 0
Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:15:5d:00:02:25
Slave queue ID: 0






네트워크 설정파일 옵션


TYPE=Ethernet
=> 네트워크 타입
ONBOOT=yes
=> 부팅시 자동으로 활성화

BOOTPROTO=none
=> Static (고정), DHCP, none(상속), bootp 형식등이 있음 

USERCTL=no
=> 일반 유저가 컨트롤 할 수 없음 (root 권한 필요)

NM_CONTROLLED=no
=> NetworkManager가 컨트롤 할 수 없음
MASTER=bond0
=>MASTER는 Bonding 명

SLAVE=yes
=>대비책으로 구성 (Master는 bond0이므로 Slave 그룹에 가입)
BONDING_OPTS="mode=1 miimon=100"
=> 본딩 모드를 Active-Backup으로 설정하고 MII 링크 모니터링 주기를 100ms (0.1초) 로 설정

HWADDR=xx:xx:xx:xx:xx:xx : 맥주소 입력
TYPE= Ethernet : 이더넷 인터페이스의 종류
BOOTPROTO=static : ip할당 방식
– static : 고정 아이피 할당
– dhcp : 유동 아이피 할당
– bootp : dhcp 이전에 사용하던 방식
– none : 사용안함
DEFROUTE=yes : 디폴트라우트 사용 여부
PEERDNS=yes : dhcp 서버의 dns정보를 /etc/resolv.conf에 저장 여부
PEERROUTES=yes : dhcp 서버의 라우터 정보를 /etc/sysconfig/network에 저장 여부
IPV4_FAILURE_FATAL=yes : 설정이 잘 안됬을 때 IPv6 사용 여부(yes면 사용하지 않고 no면 사용)
IPV6INIT=yes : IPv6 사용 여부
NAME=enp0s3 : GUI 네트워크 설정 때 보이는 NIC 이름
ONBOOT=yes : 부팅시 자동 활성화 여부
BROADCAST= : 브로드캐스트 주소
IPADDR= : 아이피주소
NETMASK= : 넷마스크 주소
NETWORK= : 네트워크 주소
GATEWAY= : 게이트웨이 주소
DNS1= : DNS주소
DNS2= : DNS주소
USERCTL=no : 일반 사용자가 수정 할 수 있는지에 대한 여부
NM_CONTROLLED=yes : 네트워크 관리도구사용 여부

Miimon 옵션
- 링크 감시설정 모드( 밀리초 마다 인터페이스를 체크한다는 의미 )로 ms 단위를 사용하며 디폴트값이 0(사용안함)즉, 0으로 설정하면 Failover가

비활성화되는 부분으로 사용하며,기본적으로 리눅스에서는 100ms로 사용합니다.
반응형

'Linux' 카테고리의 다른 글

Linux Bonding fail over 문제해결  (0) 2018.08.08
Linux Network 인터페이스 안올라옴  (0) 2018.08.08
Linux firewall(RHEL7)  (0) 2018.08.08
Linux Teaming  (0) 2018.08.08
Linux eth0 사용하기(RHEL 7버전 이상)  (0) 2018.08.08
728x90
반응형
firewall 이란


  • RHEL7부터는 방화벽을 관리하는 데몬이 firewalld로 변경되었고 방화벽 설정은 iptables 명령어 대신 firewall-cmd (콘솔), firewall-config (X-Windows) 명령어를 사용해야 한다.
  • 기존에 사용하는 iptables가 완전이 사라진 것은 아니며 firewalld는 iptables를 기반으로 동작하고 있는 것 (firewalld은 iptables를 의존 패키지로 두고 있음)
  • 방화벽에는 zone(영역)이라는 것이 존재하는데 개방된 네트워크와 연결되어 있다면 public zone(공개 영역)에 있는 룰이 적용되고, 개인 네트워크에 있다면 다른 zone의 룰을 적용할 수 있다.
    네트워크 형태에 따라 적용하는 방화벽 룰을 다르게 할 수 있다. (서버 용도로 리눅스를 사용한다면 개방된 네트워크 public zone만 필요)
  • iptables의 룰 변경시 서비스 중지 및 설정 변경을 하여야 했지만 firewall의 경우 KVM, openstack과 같은 가상화, 클라우드 환경하에서의 필터링 정책을 동적으로 추가 가능하다.
    (즉 동적이기때문에 언제든지 설정을 변경할 수 있고 바로 실행되며 방화벽을 다시 로딩할 필요가 없으므로 기존 네트워크 연결에서 의도하지 않은 중단이 발생하지 않는다.)
  • iptables의 경우 응용프로그램 자체에서 필터링 정책을 구성하는 경우 iptables 정책과 충돌되는 등의 문제가 발생하였으나 firewalld는 DBUS API를 통한 정보 공유를 통해 정책 충돌 문제를 해결한다.





firewall 구동방식


  • 설정파일은 /etc/firewalld/zones/public.xml 파일로 xml 형식으로 존재한다. 해당 파일에는 firewall-cmd --permanent --zone=public 명령으로 추가했던 룰들이 저장되어 있으며
    zone의 설정 파일을 변경할 경우 방화벽을 reload 해야 반영이 된다.
  • firewall-cmd 에서 --permanent 옵션이 들어간다면 바로 반영이 되지않고 해당 zone의 설정파일에서 룰에 대한 추가 / 수정만  이루어진다. 따라서 --permanet 옵션을 넣었다면
    방화벽을 reload 해야한다(설정파일에 추가된 룰은 영구반영). 만약 --permanet 옵션을 넣지않으면 일시적으로 즉시 반영되지만 재부팅을 할 경우 zone의 설정파일에 추가되지
    않은 룰이므로 전부 삭제가 된다.





firewall 사용법


  1.  포트

- 포트추가
# firewall-cmd --permanent --zone=public --add-port=포트
예) firewall-cmd --permanent --zone=public --add-port=80/tcp

# firewall-cmd --reload

- 포트 제거
# firewall-cmd --permanent --zone=public --remove-port=포트
예) firewall-cmd --permanent --zone=public --remove-port=80/tcp

# firewall-cmd --reload


  1.  서비스

서비스에서 사용하는 룰을 적용하려면 아래와 같이 서비스를 추가하면 된다.
단, 해당 서비스 xml 룰 파일이 /usr/lib/firewalld/services 에 있어야 사용할 수 있다.

* 서비스 추가
firewall-cmd --permanent --zone=public --add-service=서비스
예) firewall-cmd --permanent --zone=public --add-service=http

# firewall-cmd --reload

* 서비스 제거
firewall-cmd --permanent --zone=public --remove-service=서비스
예) firewall-cmd --permanent --zone=public --remove-service=http

# firewall-cmd --reload

그리고 /usr/lib/firewalld/services 디렉토리에 있는 서비스 파일들을 수정하려면 /etc/firewalld/services에 복사후 수정해야 한다.
(/etc/firewalld/services에 있는 서비스 파일들이 우선 적용되기에 관리상 편리)


  1. 임의의 룰 (Rich rule)

포트, 서비스 룰 이외에 원하는 룰을 임의로 적용할 수 있다. 예를 들면 ip차단이다.

* 룰 추가
# firewall-cmd --permanent --zone=public --add-rich-rule="임의의 룰"
예) firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=192.168.0.4/24 service name=http accept"

# firewall-cmd --reload

* 룰 제거
# firewall-cmd --permanent --zone=public --remove-rich-rule="임의의 룰"
예) firewall-cmd --permanent --zone=public --remove-rich-rule="rule family=ipv4 source address=192.168.0.4/24 service name=http accept"

# firewall-cmd --reload


  1. 응용예시 - http(80번 포트) 서비스에서 특정 ip 차단

웹서버를 운영하다보면 특정ip(스팸같은)를 차단시키고 싶을 때가 있다. 그럴경우 아래와 같이 임의의 룰을 활용하면 된다.

차단시)
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=차단ip service name=http reject"

차단해제시)
# firewall-cmd --permanent --zone=public --remove-rich-rule="rule family=ipv4 source address=차단ip service name=http reject"

# firewall-cmd --reload

위 명령을 실행하면 즉시 영구적으로 해당 ip를 웹사이트에 접속하지못하게 차단시킬 수 있다.
이 방법은 웹서버 자체에서 ip를 차단시키는 것보다 효과적이다.


  1. 방화벽 기타 명령어


- zone - 

* 사전 정의된 존 목록 출력
# firewall-cmd --get-zones

* 전체 존 목록을 상세하게 출력
# firewall-cmd --list-all-zones

* 기존 존 출력
# firewall-cmd --get-default-zone

* 활성화된 존 출력
# firewall-cmd --get-active-zone

* public zone에 있는 서비스 목록
# firewall-cmd --zone=public --list-services

- service -

* 현재 존재하는 서비스 목록
# firewall-cmd --get-service

permanent 로 등록된 서비스 목록
# firewall-cmd --permanent --list-all


- port -

* 허용한 포트 목록
# firewall-cmd --list-ports

- other -

* 방화벽 상태 확인
# firewall-cmd --state


반응형

'Linux' 카테고리의 다른 글

Linux Network 인터페이스 안올라옴  (0) 2018.08.08
Linux Bonding  (0) 2018.08.08
Linux Teaming  (0) 2018.08.08
Linux eth0 사용하기(RHEL 7버전 이상)  (0) 2018.08.08
Linux UEFI Booting Error  (0) 2018.08.08
728x90
반응형
Teaming


- 기존 Bonding과 같은 개념

- Bonding의 경우 Network에 영향을 받지않게  NetworkManager를 종료하지만 Teaming은 NetworkManager 를 통해 구성할 수 있다.

- 지원하는 모드는 총 5가지

1) activebackup : failover runner로 이것은 데이터 전송을 위한 링크 변경을 감시하고 active port를 선택한다.

2) loadbalance : 트래픽을 모니터링하고 패킷 전송에 대한 포트를 선택할 때 완변학 균형에 도달하기 위해 hash function을 사용한다.

3) lacp : 802.3ad 링크 aggregation control protocol을 구현한다. loadbalance runner와 동일한 전송 포트를 선택할 수 있다.

4) broadcast : simple한 runner로 이것은 모든 포트로 부터 각각의 패킷을 전송한다.

5) roundrobin : simple한 runner로 이것은 각 포트에서 라운드 로빈 방식으로 각각의 패킷을 전송한다.





구성 방법


1) 사용가능한 NIC 확인

# ip link
# ip a



# nmcli device status
- 디바이스들의 DEVICE , TYPE , STATE , CONNECTION 의 정보를 조회



# nmcli connection show
- 네트워크 connection 상태를 확인 및 UUID 확인




2) Team device 생성 및 확인

# nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}'
- Team Mode는 Activebackup Mode로 설정하고 Device Name은 team0으로 설정



# cat /etc/sysconfig/network-script/ifcfg-team0 으로 파일 생성




3) NIC을 Team Port로 설정 및 확인

# nmcli connection add con-name team0-port1 type team-slave ifname ens33 master team0
# nmcli connection add con-name team0-port2 type team-slave ifname ens37 master team0



# nmcli connection show




4) Team Device에 IP 할당 및 확인

# nmcli connection modify team0 ipv4.addresses 192.168.124.134/24 ipv4.method manual



- ifcfg-team0 파일을 확인해보면 IP를 할당하기전 내용과 할당 후의 내용 변화를 확인할 수 있다.



# systemctl restart network
# systemctl restart NetworkManager
- 서비스 재시작


5) Team에서 현재 사용하고 있는 device 및 port 확인

# teamdctl team0 state
- team의 현재 구성을 확인



# teamnl team0 ports
- 현재 team에 설정되어 있는 port 확인



# teamnl team0 getoption activeport
- 현재 team에 활성화 되어있는 port 확인




6) 정상 구동 테스트

6-1. 현재 Active 중인 port 확인

# teamdctl team0 state



6-2. Active 중인 Port 연결 중단

# nmcli device disconnect ens33



6-3. Active port 변경되었는지 확인

teamdctl team0 state  



6-4. 포트 정상화

# nmcli device connect ens33
# teamdctl team0 state


반응형

'Linux' 카테고리의 다른 글

Linux Bonding  (0) 2018.08.08
Linux firewall(RHEL7)  (0) 2018.08.08
Linux eth0 사용하기(RHEL 7버전 이상)  (0) 2018.08.08
Linux UEFI Booting Error  (0) 2018.08.08
Linux /bin/sh가 삭제된 경우(chroot 명령어 실행 안됨)  (0) 2018.08.08
728x90
반응형
# vim /boot/grub2/grub.cfg

안에 커널라인 마지막에 net.ifnames=0 biosdevname=0 추가 


반응형
728x90
반응형
설치 오류

RHEL6 버젼 설치를 UEFI 모드로 설치 후 시스템 부팅시 아래와 같은 문구가 출력되는 현상

Invalid magic number: 0
Error 13: Invalid or unsupported executable format
Press any key to continue…
원인 :
Trusted Execution Technology와 tboot을  BIOS에서 지원합니다. 따라서 TXT와 tboot이 uEFI 모드가 동작중일 때에는 부팅을 할 수 없습니다. 따라서 tboot과 함께 사용하실 수 없습니다.
해결 :
설치시 패키지중 base (기본)에 고급을 보시면 tboot 패키지가 있습니다. 이것을 제외하시고 설치하시기 바랍니다. 


반응형

+ Recent posts