운영체제/RHEL&CENTOS

[Centos/RHEL] eth0 으로 들어 데이터 동일 인터페이스 내보내기를 위한 routing 설정

louky 2019. 6. 24. 14:39
반응형

환경

  •  OS : Centos 7.6 

 

linux에서 eth0 인터페이스로 들어 데이터를 다시 eth0으로 내보내기 위한  routing 설정 방법이다. 

 

예를 들면, 아래와 같은 네트워크 구성에서 Svr01의 192.168.0.x망에서  Svr02로 접근하고자 할 경우 동일 네트워크 대역인 192.168.0.x로 접근하면 아무 이상없이 접근이 가능하다. 하지만 Svr01에서  Svr02의 172.16.0.x대역으로 접근하려 하면 Svr02의  기본 routing table에 의해 정상적으로 접근이 어렵다. 

 

이유인즉, Svr02 에는  Svr01의 소스IP인 192.168.0.x의 routing table이 존재하여 해당 인터페이스로 데이터를 내보내기 때문이다. 

192.168.0.x대역을 eth0 이라고 가정하고 172.16.0.x를 eth1로 가정한다면  Svr02 서버에서는 eth1로 들어데이터를 eth0으로 보내기 때문에 정상적으로 통신이 될수 없다.

 

 

이럴 경우를 대비해서 eth1로 들어온 데이터는 다시 eth1로 내보내기 위한 방법이다.  (이러한 설정은 흔한 설정 방법은 아니다. )

 

설정은 Svr02에서만 하면 된다. 

 

rule table 생성

 

eth0에 대한 rule table 생성 

[root@cronus network-scripts]# ip rule add from 192.168.0.2 tab 1 priority 500

eth1에 대한 rule table 생성 

[root@cronus network-scripts]# ip rule add from 172.16.0.2 tab 2 priority 500

 

설정된 rule table로 routing 추가  

[root@cronus network-scripts]# ip route add default via 192.168.0.1 tab 1 dev eth0
[root@cronus network-scripts]# ip route add default via 172.16.0.1 tab 2 dev eth1

 

설정 확인

 

- 확인 방법 1 

[root@cronus network-scripts]# ip rule ls
0:	from all lookup local
500:	from 192.168.0.1 lookup 1
500:	from 172.16.0.1 lookup 2
32766:	from all lookup main
32767:	from all lookup default

- 확인 방법 2

[root@cronus network-scripts]# ip rule show
0:	from all lookup local
500:	from 192.168.0.1 lookup 1
500:	from 172.16.0.1 lookup 2
32766:	from all lookup main
32767:	from all lookup default

- 확인 방법 3

[root@cronus network-scripts]# ip route ls
default via 192.168.0.1 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1011
169.254.0.0/16 dev eth1 scope link metric 1013
172.16.0.0/20 dev eth1 proto kernel scope link src 172.16.0.1
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.11

 

sysctl -a | grep rp_filter 을  실행하여  kernel parameter가 0이 있을 경우 모두 1로 변경한다. lo 인터페이스는 굳이 변경하지 않아도 된다.  변경하지 않을 경우 arp table상에서 지속적으로  warning을 발생 시킨다. 

 

reboot 이후에도 반영하고자 한다면 /etc/rc.local에 등록한다. 

 

반응형